Агуулгын хүснэгт:

Birra_Monitor: 3 алхам
Birra_Monitor: 3 алхам

Видео: Birra_Monitor: 3 алхам

Видео: Birra_Monitor: 3 алхам
Видео: 1. Коран для детей. Сура аль-Фатиха, для заучивания наизусть. 2024, Арванхоёрдугаар сар
Anonim
Birra_Monitor
Birra_Monitor

Ил прогетто нь вибразион (SW-420 Сүлжээний Холболт) дахь трамит, семальт мэдрэгчийн хяналтанд байдаг. l'aggiunta del sensore di temperatura (DHT22) нь температурын хяналт, найдвартай байдлыг хангах үйлчилгээтэй. Questo dati vengono gestiti da una scheda nodemcu e visualizzati tramite Blynk app deputat allo sviluppo di soluzioni IoT.

Энэхүү төслийг энгийн чичиргээ мэдрэгч (SW-420 NC) ашиглан гар хийцийн шар айраг исгэж байгааг хянахад ашигладаг. Температур мэдрэгч (DHT22) -ийг нэмж оруулах нь исгэх тохиромжтой өрөөний температур, чийгшлийг хянах үүрэгтэй. Энэхүү өгөгдлийг nodemcu картаар удирддаг бөгөөд IoT шийдлийг боловсруулахад зориулагдсан Blynk програмаар дамжуулан харуулдаг.

Алхам 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: Код

codice per permettere il funzionamento del tutto, програм хангамж Arduino IDE

Arduino IDE програмыг картанд ачаалахад хангалттай код нь бүхэлдээ ажиллах боломжийг олгодог.

#Adafruit_Sensor -ийг оруулна уу.h

#DHT.h оруулах

BLYNK_PRINT цувралыг #тодорхойлох

#оруулах ESP8266WiFi.h;

#оруулах BlynkSimpleEsp8266.h;

#энгийнTimer.h оруулах;

#WidgetRTC.h оруулах;

float lettura [50]; // dimensione Arrayper медиа

int nume_Letture = 0; // progressivo Letture

float tot_Letture = 0; // сомма леттур

float media_Letture = 0; // хэвлэл мэдээллийн хэрэгсэл

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 гэх мэт 0

int vbr = 0; // Inizializzo гэх мэт 0

int vbinit = 0; // Inizializzo vbinit a 0

гарын үсэг зураагүй урт прима = 0; // своп тутамд ашиглагдах мин/хамгийн их

урт Tempmax = 660000; // своп тутамд ашиглагдах мин/макс

хөвөх tmax = -100; // impostazione impossibile per la temperatura massima

хөвөх tmin = 100; // impostazione impossibile per il temperatura minima

хөвөх umax = 0; // impostazione impossibile per umidità massima

хөвөх umin = 100; // impostazione impossibile per umidità minima

String maxt; // String visualizzata Blynk

String гаа; // String visualizzata Blynk

String maxu; // String visualizzata Blynk

String minu; // Блинкийн дүрсийг харна уу

char auth = "a °°°°°°°°°°°°°° d"; // жетон Блинк

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

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

#тодорхойлох DHTPIN 2 // pin sensore DHT

#тодорхойлох DHTTYPE DHT22

DHT dht (DHTPIN, DHTTYPE);

SimpleTimer таймер; // таймер

WidgetRTC rtc; // систем Блинк

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

BLYNK_CONNECTED () {

rtc.begin (); // avvio RTC

}

BLYNK_WRITE (V0) // амт бүрийг дахин тохируулах горим Blynk

{

int attiva = param.asInt ();

хэрэв (attiva == 1) {

tmax = -100;

tmin = 100;

umax = 0;

умин = 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, мину);

Blynk.virtualWrite (V1, conteggio);

Serial.println ("Resetta");

саатал (200);

Blynk.virtualWrite (V0, LOW);

}

}

void sendSensor () // normale prosedura di lettura

{

String currentTime = String (цаг ()) + ":" + минут ();

String currentDate = String (өдөр ()) + "/" + сар ();

float h = dht.readHumidity ();

float t = dht.readTemperature ();

хэрэв (isnan (h) || isnan (t)) {

Serial.println ("DHT мэдрэгчээс уншиж чадсангүй!");

led1.on ();

буцах;

}

өөр {

led1.off ();

}

хэрэв (t> tmax) {

tmax = t;

maxt = String (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 = String (h) + "% (" + currentTime + "-" + currentDate + ")";

}

Blynk.virtualWrite (V5, h);

Blynk.virtualWrite (V6, t);

Blynk.virtualWrite (V7, vb);

Blynk.virtualWrite (V10, maxt);

Blynk.virtualWrite (V11, гаа);

Blynk.virtualWrite (V12, maxu);

Blynk.virtualWrite (V13, мину);

}

хүчин төгөлдөр бус calcolo_media () // бүртгэлийн мэдээллийн хэрэгслээр хийх журам

{

lettura [nume_Letture] = dht.readTemperature ();

if (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; // тэг ба хоёр талт

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

}

хэрэв (cc == 1) {

conteggio = 48; // DOPO le prime 24ore нь семорыг 24ор тутамд хувааж авдаг (48mezzore)

}

өөр {

// медиа прима делло 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);

}

хүчингүй тохиргоо ()

{

Цуваа.begin (115200);

Blynk.begin (auth, ssid, pass);

dht.begin ();

timer.setInterval (10000, sendSensor); // lettura temperatura umidità ogni 5 мин

timer.setInterval (1800000, calcolo_media); // хэвлэл мэдээллийн хэрэгсэл 30 минут

}

хоосон давталт ()

{

Blynk.run ();

timer.run ();

урт adesso = millis ();

val = digitalRead (vibr_pin);

vb = vb+val;

хэрэв (adesso - prima> = Tempmax)

{

vb = 0;

vbinit = vb;

prima = adesso;

}

Зөвлөмж болгож буй: