Mündəricat:

Birra_Monitor: 3 addım
Birra_Monitor: 3 addım

Video: Birra_Monitor: 3 addım

Video: Birra_Monitor: 3 addım
Video: ПОЧЕМУ Я ЖДУ L4D3 2024, Iyul
Anonim
Birra_Monitor
Birra_Monitor

İlkin olaraq, vibrasyona (SW-420 NC) görə tramit və ya mayelərdə bir fermentasiya xidməti göstərilir. Temperaturun (DHT22) monitorinqi temperaturun və temperaturun monitorinqini həyata keçirir. Blynk proqramının IoT ilə əlaqəli bütün proqramları Blynk tətbiqetməsində tapa bilərsiniz.

Layihə sadə bir vibrasiya sensoru (SW-420 NC) istifadə edərək evdə hazırlanan pivənin mayalanmasını izləmək üçün istifadə olunur. temperatur sensoru (DHT22) əlavə edilməsi, fermentasiya üçün uyğun olan otağın temperaturunu və rütubətini izləməyə xidmət edir. Bu məlumatlar bir nodemcu kartı ilə idarə olunur və IoT həlləri hazırlamaq üçün təyin edilmiş Blynk tətbiqi ilə görüntülənir.

Addım 1: Qablaşdırma

Qablaşdırma
Qablaşdırma
Qablaşdırma
Qablaşdırma

Şəxsi sensorlar son nəticədə heç bir problem yaratmır.

Lövhə və sensorlar sadə qovşaq qutusuna yerləşdirilib.

Addım 2: Sensor İşdə

Sensor İşdə
Sensor İşdə
Sensor İşdə
Sensor İşdə

quello che succede quando il sensore è "montato" sul gorgogliatore və CO2 il sensore registrerà delle vibrazioni che verranno visualizzate sull'app Blynk

Sensor köpükləyiciyə "quraşdırıldıqda" nə olur ki, hər dəfə CO2 atıldıqda sensor Blynk tətbiqində nümayiş olunacaq titrəmələri qeyd edəcək

Addım 3: Kod

proqram təminatı Arduino IDE proqram təminatı ilə təmin edilir.

Arduino IDE proqramını karta yükləmək üçün kifayət edəcək kodun hamısının işləməsinə icazə verilir.

#Adafruit_Sensor.h daxil edin

#DHT.h daxil edin

#blynk_print seriyasını təyin edin

#ESP8266WiFi.h daxil edin;

#daxil BlynkSimpleEsp8266.h;

#SimpleTimer.h daxil edin;

#WidgetRTC.h daxil edin;

float lettura [50]; // ölçü Arrayper mediası

int nume_Letture = 0; // progressivo letture

float tot_Letture = 0; // somma letture

float media_Letture = 0; // media Letturası

int conteggio = 0; // dəyişkən di conteggio primario

// hər bir media üçün dəyişə bilərsiniz

int i = 0;

int cc = 0;

int togli = 0;

// hər bir medya üçün çox yaxşı dəyişikliklər

int val; // dəyişkən registrazione vibrazione

int vibr_pin = 5; // Piedino x Sensore di Vibrazione D1

int vb = 0; // Başlanğıc və s

int vbr = 0; // Başlanğıc və s

int vbinit = 0; // Başlanğıcda 0

işarəsiz uzun prima = 0; // svop başına minil/maksimum

uzun Tempmax = 660000; // svop başına minil/maksimum

float tmax = -100; // impostazione impossibile per la temperatura massima

float tmin = 100; // impostazione impossibile per il temperatura minima

float umax = 0; // impostazione impossibile per umidità massima

float umin = 100; // impostazione impossibile per umidità minima

String maxt; // Blynk üçün vizual görüntülər

String nanə; // Blynk üçün vizual görüntülər

String maxu; // Blynk üçün vizual görüntülər

Simli dəqiqə; // Blynk üçün vizual görüntülər

char auth = "a °°°°°°°°°°°°°° d"; // token Blynk

char ssid = "T °°°°°°°°°°°°°°°° 9"; // wifi

char pass = "O °°°°°°°°°°°°°° R"; // psw

#deftine DHTPIN 2 // pin sensore DHT

#DHTTYPE DHT22 təyin edin

DHT dht (DHTPIN, DHTTYPE);

SimpleTimer timer; // taymer

WidgetRTC rtc; // Blynk sisteminə görə

WidgetLED led1 (V15); // Led Blynk sul pin V15

BLYNK_CONNECTED () {

rtc.begin (); // avvio RTC

}

BLYNK_WRITE (V0) // Blynk -də hər dəfə sıfırlama qaydası

{

int attiva = param.asInt ();

əgər (attiva == 1) {

tmax = -100;

tmin = 100;

umax = 0;

umin = 100;

maxt = "------------";

nanə = "------------";

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, nanə);

Blynk.virtualWrite (V12, maxu);

Blynk.virtualWrite (V13, dəqiqə);

Blynk.virtualWrite (V1, conteggio);

Serial.println ("Sıfırlama");

gecikmə (200);

Blynk.virtualWrite (V0, LOW);

}

}

void sendSensor () // prosedur qaydaları

{

String currentTime = String (saat ()) + ":" + dəqiqə ();

String currentDate = String (gün ()) + "/" + ay ();

float h = dht.readHumidity ();

float t = dht.readTemperature ();

əgər (isnan (h) || isnan (t)) {

Serial.println ("DHT sensorundan oxunmadı!");

led1.on ();

qayıtmaq;

}

başqa {

led1.off ();

}

əgər (t> tmax) {

tmax = t;

maxt = String (t) + "° C (" + currentTime + "-" + currentDate + ")";

}

əgər (t <tmin) {

tmin = t;

nanə = String (t) + "° C (" + currentTime + "-" + currentDate + ")";

}

əgər (h> umax) {

umax = h;

maxu = String (h) + "% (" + currentTime + "-" + currentDate + ")";

}

əgər (h <umin) {

umin = h;

minu = String (h) + "% (" + currentTime + "-" + currentDate + ")";

}

Blynk.virtualWrite (V5, h);

Blynk.virtualWrite (V6, t);

Blynk.virtualWrite (V7, vb);

Blynk.virtualWrite (V10, maxt);

Blynk.virtualWrite (V11, nanə);

Blynk.virtualWrite (V12, maxu);

Blynk.virtualWrite (V13, dəqiqə);

}

etibarsız calcolo_media () // hər bir media qeydiyyatı proseduru

{

lettura [nume_Letture] = dht.readTemperature ();

əgər (isnan (lettura [nume_Letture])) {

led1.on ();

qayıtmaq;

}

// prosedur media dairəsi

əgər (nume_Letture> = 48) {

togli = nume_Letture-48;

tot_Letture -= (lettura [togli]);

tot_Letture += (lettura [nume_Letture]);

nume_Letture = 0; // bir sıfır və ya bir neçə dəfə

cc = 1; // identifica primo passaggio dopo 48 letture (24ore)

}

əgər (cc == 1) {

conteggio = 48; // DOPO le prime 24ore 24 yarıya bölmək üçün semper (48mezzore)

}

başqa {

// media prima dello scadere delle 24ore

tot_Letture += (lettura [nume_Letture]);

conteggio = conteggio+1;

}

media_Letture = tot_Letture/conteggio;

nume_Letture = nume_Letture+1;

Blynk.virtualWrite (V8, media_Letture);

Blynk.virtualWrite (V1, conteggio);

}

boş quraşdırma ()

{

Serial.begin (115200);

Blynk.begin (auth, ssid, pass);

dht.begin ();

timer.setInterval (10000, sendSensor); // yuxu temperaturu 5 dəqiqə

timer.setInterval (1800000, calcolo_media); // 30 dəqiqə ərzində media paylaşın

}

boşluq döngəsi ()

{

Blynk.run ();

timer.run ();

uzun adesso = millis ();

val = digitalRead (vibr_pin);

vb = vb+val;

əgər (adesso - prima> = Tempmax)

{

vb = 0;

vbinit = vb;

prima = əlavə;

}

Tövsiyə: