Cov txheej txheem:
Video: Birra_Monitor: 3 Kauj Ruam
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:27
Il progetto ua tus saib xyuas la fermentazione della birra fatta hauv casa tramite un semplice sensore di vibrazione (SW-420 NC). l'aggiunta del sensore di temperatura (DHT22) ua tus saib xyuas qhov kub thiab txias ntawm lub cev ua rau lub cev tsis muaj zog. Questi dati vengono gestiti da una scheda nodemcu e visualizzati tramite Blynk app deputata allo sviluppo di soluzioni IoT.
Txoj haujlwm no yog siv los tshuaj xyuas cov dej cawv hauv tsev uas siv cov khoom siv yooj yim co co (SW-420 NC). qhov sib ntxiv ntawm qhov ntsuas kub (DHT22) ua haujlwm los saib xyuas qhov kub thiab txias ntawm chav nyob haum rau fermentation. Cov ntaub ntawv no tau tswj hwm los ntawm daim npav nodemcu thiab pom tau los ntawm Blynk app tau xaiv los txhim kho IoT cov kev daws teeb meem.
Kauj Ruam 1: Ntim
Scheda e sensori sono alloggiate in una semplice scatola di derivazione.
Lub rooj tsavxwm thiab cov ntsuas tau nyob hauv lub thawv yooj yim sib txuas.
Kauj Ruam 2: Sensor ntawm Kev Ua Haujlwm
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
dab tsi tshwm sim thaum lub ntsuas ntsuas tau "teeb tsa" ntawm lub tshuab npuas uas txhua lub sijhawm CO2 raug tshem tawm lub sensor yuav kaw qhov kev co uas yuav tshwm rau ntawm Blynk app
Kauj ruam 3: Code
il codice per permettere il funzionamento del tutto è il seguente che basterà caricare sulla scheda tramide il software Arduino IDE
cov cai kom tso cai ua haujlwm ntawm tag nrho yog cov hauv qab no uas yuav txaus rau thauj ntawm daim npav Arduino IDE software
#suav nrog Adafruit_Sensor.h
#suav nrog DHT.h
#define BLYNK_PRINT Serial
#suav nrog ESP8266WiFi.h;
#suav nrog BlynkSimpleEsp8266.h;
#suav nrog SimpleTimer.h;
#suav nrog WidgetRTC.h;
ntab lettura [50]; // dimensione Arrayper media
int nume_Letture = 0; // kev hloov pauv
float tot_Letture = 0; // somma lus
ntab media_Letture = 0; // media letture
int cov = 0; // variabile di conteggio primario
// inizio dichiarazioni variabili per media continua
int ib = 0;
nco cc = 0;
int tau = 0;
// nplua dichiarazioni variabili per media continua
koj val; // variabile registrazione vibrazione
int vibr_pin = 5; // Piedino x Sensore di Vibrazione D1
int ib = 0; // Cov lus qhia vb a 0
int vbr = 0; // Cov lus qhia vb a 0
int vbinit = 0; // Cov lus piav qhia ntawm 0
unsigned ntev prima = 0; // siv tau rau kev sib pauv min/max
Ntev Tempmax = 660000; // siv tau rau kev sib pauv min/max
ntab tmax = -100; // impostazione impossibile per la temperatura massima
ntab tmin = 100; // impostazione impossibile per il temperatura minima
ntab umax = 0; // impostazione impossibile rau umidità massima
ntab umin = 100; // impostazione impossibile rau umidità minima
Txoj hlua maxt; // stringa visualizzata su Blynk
Txoj hlua mint; // stringa visualizzata su Blynk
Txoj hlua maxu; // stringa visualizzata su Blynk
Txoj hlua minu; // stringa visualizzata su Blynk
char auth = "a °°°°°°°°°°°°°° d"; // token Blynk
char ssid = "T °°°°°°°°°°°°°°ຊ 9 9"; // wifi xwb
char pass = "O °°°°°°°°°°°°° R"; // psw ua
#define DHTPIN 2 // pin sensore DHT
#define DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
SimpleTimer timer; // timer
WidgetRTC rtc; // orologio di system Blynk
WidgetLED coj 1 (V15); // Led Blynk sul pin V15
BLYNK_CONNECTED () {
rtc.begin (); // avvio RTC
}
BLYNK_WRITE (V0) // ib txwm ua rau rov pib dua nrog Blynk
{
int attiva = param.asInt ();
yog (attiva == 1) {
txm = -100;
txm = 100;
awm = 0;
nim = 100;
maxt = "------------";
mint = "------------";
maxu = "------------";
minu = "------------";
media_Letture = 0;
tot_Letture = 0;
num_Letture = 0;
conteggio = 0;
cc = 0 hli;
Serial.println (txuas ntxiv);
Blynk.virtualWrite (V8, media_Letture);
Blynk.virtualWrite (V10, maxt);
Blynk.virtualWrite (V11, mint);
Blynk.virtualWrite (V12, maxu);
Blynk.virtualWrite (V13, minu);
Blynk.virtualWrite (V1, txuas ntxiv);
Serial.println ("Resetta");
ncua (200);
Blynk.virtualWrite (V0, QIB);
}
}
void sendSensor () // normale procedureura di lettura
{
Txoj hlua tam sim no = Txoj hlua (teev ()) + ":" + feeb ();
Txoj hlua tam sim no Hnub = Txoj hlua (hnub ()) + "/" + hli ();
ntab h = dht.readHumidity ();
ntab t = dht.readTemperature ();
yog (isnan (h) || isnan (t)) {
Serial.println ("Ua tsis tau zoo nyeem los ntawm DHT sensor!");
coj1.on ();
rov qab;
}
lwm tus {
coj1.off ();
}
yog (t> tmax) {
txm = t;
maxt = Txoj hlua (t) + "° C (" + currentTime + "-" + currentDate + ")";
}
yog tias (t <tmin) {
tmin = tsi;
mint = Txoj hlua (t) + "° C (" + currentTime + "-" + currentDate + ")";
}
yog (h> umax) {
hwm = h;
maxu = Txoj hlua (h) + "% (" + currentTime + "-" + currentDate + ")";
}
yog (h <umin) {
nim = h;
minu = Txoj hlua (h) + "% (" + currentTime + "-" + currentDate + ")";
}
Blynk.virtualWrite (V5, h);
Blynk.virtualWrite (V6, t);
Blynk.virtualWrite (V7, vb);
Blynk.virtualWrite (V10, maxt);
Blynk.virtualWrite (V11, mint);
Blynk.virtualWrite (V12, maxu);
Blynk.virtualWrite (V13, minu);
}
tsis muaj dab tsi calcolo_media () // txheej txheem rau kev sau npe rau dati media
{
lettura [nume_Letture] = dht.readTemperature ();
yog (isnan (lettura [nume_Letture])) {
coj1.on ();
rov qab;
}
// txheej txheem txheej txheem xov xwm ncig
yog tias (nume_Letture> = 48) {
togli = nume_Letture-48;
tot_Letture -= (lettura [togli]);
tot_Letture += (lettura [nume_Letture]);
num_Letture = 0; // setta a zero e riparte tutto
cc = ib; // identifica primo passaggio dopo 48 letture (24ore)
}
yog (cc == 1) {
cov = 48; // DOPO le prime 24ore faib semper rau 24ore (48mezzore)
}
lwm tus {
// media prima dello scadere delle 24ore
tot_Letture += (lettura [nume_Letture]);
conteggio = koom+1;
}
media_Letture = tot_Letture/conteggio;
num_Letture = num_Letture+1;
Blynk.virtualWrite (V8, media_Letture);
Blynk.virtualWrite (V1, txuas ntxiv);
}
void teeb tsa ()
{
Serial.begin (115200);
Blynk.begin (auth, ssid, dhau);
dht.begin ();
timer.setInterval (10000, xa เซนเซอร์); // ua kom sov sov ua kom sov li 5 feeb
timer.setInterval (1800000, calcolo_media); // hais tawm thiab tshaj tawm xov xwm 30min
}
void lub voj ()
{
Blynk.run ();
timer.run ();
ntev adesso = millis ();
val = digitalRead (vibr_pin);
vb = vb+val;
yog (adesso - prima> = Tempmax)
{
wb = 0;
vbinit = wb;
prima = adesso;
}
Pom zoo:
Arduino Tsheb Rov Qab Chaw Nres Tsheb Ceeb Toom - Cov Kauj Ruam ntawm Kauj Ruam: 4 Kauj Ruam
Arduino Tsheb Rov Qab Chaw Nres Tsheb Ceeb Toom | Cov kauj ruam ib kauj ruam: Hauv txoj haujlwm no, kuv yuav tsim qhov yooj yim Arduino Tsheb Rov Qab Tsheb Nres Tsheb Nres Sensor Siv Arduino UNO thiab HC-SR04 Ultrasonic Sensor. Qhov no Arduino raws Lub Tsheb Rov Qab ceeb toom tuaj yeem siv rau Kev Tshawb Fawb Txog Tus Kheej, Robot Ranging thiab lwm yam
Tsev Automation Kauj Ruam ntawm Kauj Ruam Siv Wemos D1 Mini Nrog PCB Tsim: 4 Kauj Ruam
Tsev Automation Kauj Ruam Ib Leeg Siv Wemos D1 Mini Nrog PCB Tsim: Tsev Automation Kauj Ruam los ntawm Kauj Ruam siv Wemos D1 Mini nrog PCB Tsim cov tub ntxhais kawm ntawv qib siab. Tom qab ntawd ib tus ntawm peb cov tswv cuab tuaj
RC Taug Qab Neeg Hlau Siv Arduino - Kauj Ruam Ib kauj ruam: 3 Kauj Ruam
RC Tracked Robot Siv Arduino - Kauj Ruam Ib Nrab: Hav guys, Kuv rov qab los nrog lwm tus neeg hlau txias chassis los ntawm BangGood. Vam tias koj tau dhau los ntawm peb cov phiaj xwm yav dhau los - Spinel Crux V1 - Tus Cwj Pwm Tswj Tus Neeg Hlau, Spinel Crux L2 - Arduino Xaiv thiab Muab Neeg Hlau nrog Robotic caj npab thiab Badland Braw
Kawm Yuav Ua Li Cas Kos Tus Tswm Ciab - Kauj Ruam Ib Kauj Ruam: 6 Kauj Ruam
Kawm Yuav Ua Li Cas Thiaj Li Tswmciab - Kauj Ruam Ib kauj ruam: Cov tswm ciab no siv sijhawm 10 feeb los kos yog tias koj ua raws kuv cov kauj ruam ua tib zoo
DIY Arduino Robotic Arm, Kauj Ruam ntawm Kauj Ruam: 9 Kauj Ruam
DIY Arduino Robotic Arm, Kauj Ruam ntawm Kauj Ruam: Cov ntawv qhia no yog qhia koj yuav tsim lub Caj Npab Caj Npab ntawm koj tus kheej li cas