Բովանդակություն:
Video: Birra_Monitor: 3 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Նախատեսվում է ծառայել մոնիտորինգի fermentazione della birra fatta in casa tramite un semplice sensore di vibrazione (SW-420 NC): l'aggiunta del sensore di temperatura (DHT22) ծառայում են մոնիտորալ ջերմաստիճանի և ջերմաստիճանի բարձրացման համար: Questi dati vengono gestiti da una scheda nodemcu e visualizzati tramite Blynk app deputata allo sviluppo di soluzioni IoT.
Նախագիծը օգտագործվում է տնական գարեջրի խմորումը վերահսկելու համար `օգտագործելով պարզ թրթռման սենսոր (SW-420 NC): ջերմաստիճանի տվիչի (DHT22) ավելացումը ծառայում է խմորման համար պիտանի սենյակի ջերմաստիճանի և խոնավության վերահսկմանը: Այս տվյալները կառավարվում են nodemcu քարտով և արտացոլվում են Blynk հավելվածի միջոցով, որը նշանակված է IoT լուծումներ մշակելու համար:
Քայլ 1: Փաթեթավորում
Scheda e sensori sono alloggiate in una semplice scatola di derivazione- ում:
Տախտակը և տվիչները տեղադրված են պարզ միացման տուփի մեջ:
Քայլ 2: Աշխատանքի սենսոր
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
ինչ է տեղի ունենում, երբ սենսորը «տեղադրվում» է պղպջակների վրա, և ամեն անգամ, երբ CO2- ն արտանետվում է, սենսորը գրանցում է թրթռանքներ, որոնք կցուցադրվեն Blynk հավելվածում:
Քայլ 3: Կոդ
il codice per pertetere il funzionamento del tutto è il seguente che basterà caricare sulla scheda tramide il software Arduino IDE
Ամբողջի գործունեությունը թույլատրող ծածկագիրը հետևյալն է, որը բավարար կլինի քարտի վրա Arduino IDE ծրագրակազմը բեռնելու համար
#ներառել Adafruit_Sensor.h
#ներառել DHT.h
#սահմանել BLYNK_PRINT Սերիա
#ներառել ESP8266WiFi.h;
#ներառել BlynkSimpleEsp8266.h;
#ներառել SimpleTimer.h;
#ներառել WidgetRTC.h;
float lettura [50]; // dimensione Arrayper լրատվամիջոցներ
int nume_Letture = 0; // progressivo letture
float tot_Letture = 0; // somma letture
float media_Letture = 0; // մեդիա letture
int conteggio = 0; // variabile di conteggio primario
// inizio dichiarazioni variabili per media continua
int i = 0;
int cc = 0;
int togli = 0;
// տուգանք dichiarazioni variabili մեկ մեդիա մայրցամաքում
int val; // variabile registrazione vibrazione
int vibr_pin = 5; // Piedino x Sensore di Vibrazione D1
int vb = 0; // Inizializzo vb a 0
int vbr = 0; // Inizializzo vb a 0
int vbinit = 0; // Inizializzo vbinit a 0
անստորագիր երկար պրիմա = 0; // օգտակար մեկ փոխանակման համար min/max
երկար Tempmax = 660000; // օգտակար մեկ փոխանակման համար min/max
բոց tmax = -100; // impostazione impossibile per la temperatura massima
բոց tmin = 100; // impostazione impossibile per il temperatura minima
float umax = 0; // impostazione impossibile per umidità massima
float umin = 100; // impostazione impossibile per umidità minima
Լարային տեքստ; // stringa visualizzata su Blynk
Լարային անանուխ; // stringa visualizzata su Blynk
Լարային maxu; // stringa visualizzata su Blynk
Լարային մինու; // stringa visualizzata su Blynk
char author = "a °°°°°("
char ssid = T °°°°°°°(// wifi
char pass = O °°°(// psw
#սահմանել DHTPIN 2 // pin sensore DHT
#սահմանեք DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
SimpleTimer ժմչփ; // ժմչփ
WidgetRTC rtc; // orologio di sistema Blynk
WidgetLED led1 (V15); // Led Blynk sul pin V15
BLYNK_CONNECTED () {
rtc.begin (); // avvio RTC
}
BLYNK_WRITE (V0) // ռեժիմ ՝ ըստ ճաշակի վերակայման համար Բլինկի
{
int attiva = param.asInt ();
եթե (attiva == 1) {
tmax = -100;
tmin = 100;
ումաքս = 0;
umin = 100;
maxt = "------------";
անանուխ = "------------";
maxu = "------------";
minu = "------------";
media_Letture = 0;
tot_Letture = 0;
nume_Letture = 0;
conteggio = 0;
cc = 0;
Serial.println (conteggio);
Blynk.virtualWrite (V8, media_Letture);
Blynk.virtualWrite (V10, maxt);
Blynk.virtualWrite (V11, անանուխ);
Blynk.virtualWrite (V12, maxu);
Blynk.virtualWrite (V13, minu);
Blynk.virtualWrite (V1, conteggio);
Serial.println ("Resetta");
ուշացում (200);
Blynk.virtualWrite (V0, LOW);
}
}
void sendSensor () // normale procedura di lettura
{
Լարային ընթացիկ ժամանակ = լարային (ժամ ()) + ":" + րոպե ();
Լարի ընթացիկ Ամսաթիվ = Լար (օր ()) + "/" + ամիս ();
բոց h = dht.readHumidity ();
float t = dht.readTemperature ();
եթե (isnan (h) || isnan (t)) {
Serial.println («Չհաջողվեց կարդալ DHT սենսորից»);
led1.on ();
վերադարձ;
}
ուրիշ {
led1.off ();
}
եթե (t> tmax) {
tmax = t;
maxt = Լար (t) + "° C (" + currentTime + "-" + currentDate + ")";
}
եթե (t <tmin) {
tmin = t;
անանուխ = String (t) + "° C (" + currentTime + "-" + currentDate + ")";
}
եթե (h> umax) {
umax = h;
maxu = String (h) + "% (" + currentTime + "-" + currentDate + ")";
}
եթե (h <umin) {
umin = h;
minu = Լար (h) + "% (" + currentTime + "-" + currentDate + ")";
}
Blynk.virtualWrite (V5, ժ);
Blynk.virtualWrite (V6, t);
Blynk.virtualWrite (V7, vb);
Blynk.virtualWrite (V10, maxt);
Blynk.virtualWrite (V11, անանուխ);
Blynk.virtualWrite (V12, maxu);
Blynk.virtualWrite (V13, minu);
}
void calcolo_media () // ընթացակարգ ՝ ըստ գրանցման տվյալների մեդիայի
{
lettura [nume_Letture] = dht.readTemperature ();
եթե (isnan (lettura [nume_Letture])) {
led1.on ();
վերադարձ;
}
// ընթացակարգային մեդիա շրջանառություն
եթե (nume_Letture> = 48) {
togli = nume_Letture-48;
tot_Letture -= (lettura [togli]);
tot_Letture += (lettura [nume_Letture]);
nume_Letture = 0; // setta a zero e riparte tutto
cc = 1; // identifica primo passaggio dopo 48 letture (24ore)
}
եթե (cc == 1) {
կոնտեջիո = 48; // DOPO le prime 24ore բաժանեք կիսամյակ մեկ 24 -ի համար (48mezzore)
}
ուրիշ {
// media prima dello scadere delle 24ore
tot_Letture += (lettura [nume_Letture]);
conteggio = կոնտեջիո+1;
}
media_Letture = tot_Letture/conteggio;
nume_Letture = nume_Letture+1;
Blynk.virtualWrite (V8, media_Letture);
Blynk.virtualWrite (V1, conteggio);
}
դատարկ կարգավորում ()
{
Serial.begin (115200);
Blynk.begin (author, ssid, pass);
dht.begin ();
timer.setInterval (10000, sendSensor); // lettura temperatura umidità ogni 5 րոպե
timer.setInterval (1800000, calcolo_media); // lettura e media ogni 30min
}
դատարկ շրջան ()
{
Blynk.run ();
timer.run ();
երկար adesso = millis ();
val = digitalRead (vibr_pin);
vb = vb+val;
եթե (adesso - prima> = Tempmax)
{
vb = 0;
vbinit = vb;
պրիմա = ադեսո;
}
Խորհուրդ ենք տալիս:
Arduino մեքենայի հետադարձ կայանման ահազանգման համակարգ - Քայլ առ քայլ: 4 քայլ
Arduino մեքենայի հետադարձ կայանման ահազանգման համակարգ | Քայլ առ քայլ. Այս նախագծում ես նախագծելու եմ մի պարզ Arduino մեքենայի հետադարձ կայանման սենսորային միացում ՝ օգտագործելով Arduino UNO և HC-SR04 ուլտրաձայնային տվիչ: Այս Arduino- ի վրա հիմնված Car Reverse ազդանշանային համակարգը կարող է օգտագործվել ինքնավար նավարկության, ռոբոտների ռանգի և այլ տեսականու համար
Քայլ առ քայլ համակարգչային շենք. 9 քայլ
Քայլ առ քայլ համակարգչի կառուցում. Պարագաներ. Սարքավորումներ. Մայրական համակարգիչ CPU coolerPSU (Էներգամատակարարման միավոր) Պահեստավորում (HDD/SSD) RAMGPU (պարտադիր չէ) Գործ CaseTools: Պտուտակահան ESD ապարանջան/matsthermal paste w/aplikator
Երեք բարձրախոս շղթա -- Քայլ առ քայլ ձեռնարկ ՝ 3 քայլ
Երեք բարձրախոս շղթա || Քայլ առ քայլ ձեռնարկ. Բարձրախոսների սխեման ուժեղացնում է շրջակա միջավայրից ստացված աուդիո ազդանշանները MIC- ում և այն ուղարկում է խոսնակին, որտեղից արտադրվում է ուժեղացված ձայնը:
Քայլ առ քայլ կրթություն ռոբոտաշինության մեջ `հանդերձանքով. 6 քայլ
Քայլ առ քայլ կրթություն ռոբոտաշինության մեջ ՝ հանդերձանքով. Իմ սեփական ռոբոտը կառուցելուց մի քանի ամիս անց (խնդրում եմ անդրադառնալ այս բոլորին), և երկու անգամ մասերի խափանումից հետո, ես որոշեցի մի քայլ հետ գնալ և նորից մտածել իմ մասին ռազմավարություն և ուղղություն: Մի քանի ամսվա փորձը երբեմն շատ հատուցող էր, և
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ) `8 քայլ
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ). Ուլտրաձայնային ձայնային փոխարկիչներ L298N Dc կանացի ադապտեր էներգիայի մատակարարում արական dc pin Arduino UNOBreadboard և անալոգային նավահանգիստներ ՝ կոդը փոխարկելու համար (C ++)