Spisu treści:
Wideo: Birra_Monitor: 3 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
Il progetto służyć monitorre la fermentazione della birra fatta in casa tramite un semplice sensore di vibrazione (SW-420 NC). l'aggiunta del sensore di temperatura (DHT22) służy monitorre temperatura e umidità della stanza atta alla fermentazione. Ta aplikacja służy do zarządzania schematami i wizualizacjami w aplikacji Blynk, która pomaga opracować rozwiązania IoT.
Projekt służy do monitorowania procesu fermentacji domowego piwa za pomocą prostego czujnika drgań (SW-420 NC). dodanie czujnika temperatury (DHT22) służy do monitorowania temperatury i wilgotności pomieszczenia odpowiedniego do fermentacji. Dane te są zarządzane przez kartę nodemcu i wizualizowane przez aplikację Blynk wyznaczoną do opracowywania rozwiązań IoT.
Krok 1: Pakowanie
Scheda e sensori sono alloggiate in una semplice scatola di derivazione.
Płytka i czujniki są umieszczone w prostej puszce połączeniowej.
Krok 2: Czujnik w pracy
quello che succede quando il sensore è "montato" sul gorgogliatore che ad ogni espulsione di CO2 il sensore registrerà delle vibrazioni che verranno visualizzate sull'app Blynk
co się dzieje, gdy czujnik jest „zamontowany” na bełkocie, że za każdym razem, gdy CO2 jest wyrzucany, czujnik rejestruje wibracje, które będą wyświetlane w aplikacji Blynk
Krok 3: Kod
il codice permittere il funzionamento tutto e il seguente che basterà a caricare sulla scheda il software Arduino IDE
kod umożliwiający funkcjonowanie całości jest następujący, który wystarczy do załadowania na kartę oprogramowania Arduino IDE
#dołącz Adafruit_Sensor.h
#dołącz DHT.h
#define BLYNK_PRINT Serial
#dołącz ESP8266WiFi.h;
#include BlynkSimpleEsp8266.h;
#include SimpleTimer.h;
#include WidgetRTC.h;
pływająca lettura[50]; //wymiar nośnika tablicy
int liczba_Letture=0; //progresivo sałata
pływak tot_Letture=0; //somma sałata
pływak media_Letture=0; //wykład medialny
int conteggio=0; //variabile di conteggio primario
//inizio dichiarazioni variabili per media continua
int i=0;
intcc=0;
int togli=0;
//drobne dichiarazioni variabili per media continua
wewn wart; //zmienna rejestracja vibrazione
int vibr_pin=5; //Piedino x Sensore di Vibrazione D1
int vb=0; //Inicjalizo vb a 0
int vbr=0; //Inicjalizo vb a 0
int vbinit=0; //Inicjalizo vbinit a 0
prima długa bez znaku=0; //utile na swap min/max
długi Tempmax=660000; //utile na swap min/max
pływak tmax=-100; //impostazione impossibile per la temperatura massima
pływak tmin=100; //impostazione impossibile per il temperatura minima
pływak umax=0; //impostazione impossibile per umidità massima
pływak umin=100; //impostazione impossibile per minima
Maks. ciąg; //stringa wizualizacja na Blynk
mięta sznurkowa; //stringa wizualizacja na Blynk
Maks. ciąg; //stringa wizualizacja na Blynk
Ciąg minus; //stringa wizualizacja na Blynk
char auth = "a°°°°°°°°°°°°°°d";//token Blynk
char ssid = „T°°°°°°°°°°°°°9”; //wifi
znak = „O°°°°°°°°°°°°R”; //psw
#define DHTPIN 2 //pin czujnik DHT
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
Zegar SimpleTimer; //regulator czasowy
WidgetRTC RTC; //orologia systemu Blynk
WidgetLED led1 (V15); //Led Blynk sul pin V15
BLYNK_CONNECTED () {
rtc.początek(); //avvio RTC
}
BLYNK_WRITE(V0) //rutynę na resetowanie przez Blynk
{
int attiva = param.asInt();
jeśli (attiva==1){
tmax=-100;
tmin=100;
umaks=0;
mmin=100;
maxt= "---------------";
mennica= "------------";
maxu= "----------------";
minu= "---------------";
media_Letture=0;
tot_Letture=0;
liczba_nauczanie = 0;
conteggio = 0;
cc=0;
Serial.println(conteggio);
Blynk.virtualWrite(V8, media_Letture);
Blynk.virtualWrite(V10, maxt);
Blynk.virtualWrite(V11, mięta);
Blynk.virtualWrite(V12, maxu);
Blynk.virtualWrite(V13, min);
Blynk.virtualWrite(V1, conteggio);
Serial.println("Resetuj");
opóźnienie(200);
Blynk.virtualWrite(V0, LOW);
}
}
void sendSensor() //normalna procedura czytania
{
String currentTime = String(godzina()) + ":" + minuta();
Ciąg bieżącaData = Ciąg(dzień()) + "/" + miesiąc();
float h = dht.odczytWilgotność();
float t = dht.odczytTemperatura();
jeśli (isnan(h) || isnan(t)) {
Serial.println("Nie udało się odczytać z czujnika DHT!");
led1.on();
powrót;
}
w przeciwnym razie {
led1.off();
}
jeśli (t > tmax) {
tmax=t;
maxt= String(t) + "°C (" + aktualnyCzas + "-" +bieżącaData+ ")";
}
jeśli (t < tmin) {
tmin=t;
mint= String(t) + "°C (" + aktualnyCzas + "-" +bieżącaData+ ")";
}
jeśli (h > umax) {
umax=h;
maxu= String(h) + "% (" + aktualnyCzas + "-" +bieżącaData+ ")";
}
jeśli (h < min) {
umin=h;
minu= String(h) + "% (" + aktualnyCzas + "-" +bieżącaData+ ")";
}
Blynk.virtualWrite(V5, h);
Blynk.virtualWrite(V6, t);
Blynk.virtualWrite(V7, vb);
Blynk.virtualWrite(V10, maxt);
Blynk.virtualWrite(V11, mięta);
Blynk.virtualWrite(V12, maxu);
Blynk.virtualWrite(V13, min);
}
void calcolo_media() //procedura rejestracji mediów danych
{
lettura[liczba_napisu] = dht.odczytTemperatura();
if (isnan(lettura[numer_Letture])) {
led1.on();
powrót;
}
//procedura media circolare
if (numer_Letture>=48){
togli=numer_Letture-48;
tot_Letture -=(lettura[togli]);
tot_Letture +=(lettura[numer_Letture]);
liczba_Wykład=0; //setta a zero e riparte tutto
cc=1; //identifica primo passaggio dopo 48 sałata (24ore)
}
jeśli (cc==1) {
conteggio=48; //DOPO le prime 24ore podzielić semper na 24ore (48mezzore)
}
w przeciwnym razie{
//media prima dello scadere delle 24ore
tot_Letture +=(lettura[numer_Letture]);
conteggio=conteggio+1;
}
media_Letture=tot_Letture/conteggio;
liczba_naucza=liczba_naucza+1;
Blynk.virtualWrite(V8, media_Letture);
Blynk.virtualWrite(V1, conteggio);
}
pusta konfiguracja()
{
Serial.początek(115200);
Blynk.begin(auth, ssid, pass);
dht.początek();
timer.setInterval(10000, sendSensor); //lettura temperatura umidità ogni 5 min
timer.setInterval(1800000, calcolo_media); //lettura e media ogni 30min
}
pusta pętla()
{
Blynk.run();
timer.uruchom();
długie adesso=millis();
val = digitalRead (wibr_pin);
vb=vb+val;
if (adesso - prima >= Tempmax)
{
vb=0;
vbinit=vb;
prima=adesso;
}
Zalecana:
Pierwsze kroki z IDE STM32f767zi Cube i prześlij własny szkic: 3 kroki
Rozpoczęcie pracy z IDE STM32f767zi i przesłanie własnego szkicu: KUP (kliknij test, aby kupić/odwiedzić stronę internetową) OPROGRAMOWANIE STM32F767Z WSPIERANE· IDE STM32CUBE· KEIL MDK ARM µVISION· EWARM IAR EMBEDDED WORKBENCH· Dostępne różne oprogramowanie ARDUINO służy do programowania mikrokontrolerów STM
Jak zrobić podwójną antenę 4G LTE BiQuade Proste kroki: 3 kroki
Jak zrobić podwójną antenę 4G LTE BiQuade Proste kroki: W większości przypadków nie mam dobrej siły sygnału w mojej codziennej pracy. Więc. Szukam i próbuję różnych typów anten, ale nie działa. Po zmarnowanym czasie znalazłem antenę, którą mam nadzieję zrobić i przetestować, bo to zasada budowy nie
Strumieniowanie wideo na żywo 4G/5G HD z drona DJI z małym opóźnieniem [3 kroki]: 3 kroki
Strumieniowanie wideo na żywo 4G/5G HD z drona DJI z małym opóźnieniem [3 kroki]: Poniższy przewodnik pomoże Ci uzyskać strumienie wideo na żywo w jakości HD z prawie każdego drona DJI. Za pomocą aplikacji mobilnej FlytOS i aplikacji internetowej FlytNow możesz rozpocząć przesyłanie strumieniowe wideo z drona
Pierwsze kroki z automatyką domową: Instalacja Home Assistant: 3 kroki
Rozpoczęcie pracy z automatyką domową: instalacja asystenta domowego: teraz rozpoczniemy serię automatyki domowej, w której stworzymy inteligentny dom, który pozwoli nam kontrolować takie rzeczy, jak światła, głośniki, czujniki itp., Za pomocą centralnego koncentratora wraz z asystent głosowy. W tym poście dowiemy się, jak ins
4 kroki do pomiaru rezystancji wewnętrznej baterii: 4 kroki
4 kroki do pomiaru rezystancji wewnętrznej baterii: Oto 4 proste kroki, które mogą pomóc zmierzyć rezystancję wewnętrzną baterii