Բովանդակություն:

Birra_Monitor: 3 քայլ
Birra_Monitor: 3 քայլ

Video: Birra_Monitor: 3 քայլ

Video: Birra_Monitor: 3 քայլ
Video: Мне стыдно 3. Шоу постыдных историй. В гостях Бека Easy, Асхат Ибитанов и Биржан Кабылбаев 2024, Նոյեմբեր
Anonim
Birra_Monitor
Birra_Monitor

Նախատեսվում է ծառայել մոնիտորինգի 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;

պրիմա = ադեսո;

}

Խորհուրդ ենք տալիս: