Мазмуну:

Birra_Monitor: 3 кадам
Birra_Monitor: 3 кадам

Video: Birra_Monitor: 3 кадам

Video: Birra_Monitor: 3 кадам
Video: Инструкция для нового пульта управления 2024, Ноябрь
Anonim
Birra_Monitor
Birra_Monitor

Il progetto бир көзөмөлдөө кызматын аткарат, бул жерде семирүү сезгичтери сезилет (SW-420 NC). Температуранын температурасы (DHT22) температураны тейлейт. Тапшырмаларды аткарууда дагы, биз дагы веб -сайтыбыздын трамитин Blynk колдонмосунун IoT программасын толуктап алдык.

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

1 -кадам: Таңгактоо

Таңгактоо
Таңгактоо
Таңгактоо
Таңгактоо

Scheda e sensori sono alloggiate in unp semplice scatola di derivazione.

Такта жана сенсорлор жөнөкөй туташуу кутусуна жайгаштырылган.

2 -кадам: Иштеги сенсор

Сенсор жумушта
Сенсор жумушта
Сенсор жумушта
Сенсор жумушта

quello che succede quando il sensore "montato" 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 кошуу;

#include BlynkSimpleEsp8266.h;

#include SimpleTimer.h;

#include WidgetRTC.h;

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

int nume_Letture = 0; // прогрессивдүү леттура

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

float media_Letture = 0; // медиа летурасы

int conteggio = 0; // variabile di conteggio primario

// медиа континентине жараша өзгөрөт

int i = 0;

int cc = 0;

int togli = 0;

// медиа континентине ылайыктуу өзгөрүүлөр

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; // Колдонуу 0

белгисиз узун прима = 0; // алмашуу күнүнө utile min/max

узун Tempmax = 660000; // алмашуу күнүнө utile min/max

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; // Блинкти көрүү

Кыл жалбыз; // Блинкти көрүү

String maxu; // Блинкти көрүү

String minu; // Блинкти көрүү

char auth = "a °°°°°°°°°°°°°° d"; // токен Blynk

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

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

#аныктоо DHTPIN 2 // pin sensore DHT

#аныктоо DHTTYPE DHT22

DHT dht (DHTPIN, DHTTYPE);

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

WidgetRTC rtc; // системасы Blynk

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

BLYNK_CONNECTED () {

rtc.begin (); // avvio RTC

}

BLYNK_WRITE (V0) // Blynkти калыбына келтирүү тартиби

{

int attiva = param.asInt ();

if (attiva == 1) {

tmax = -100;

tmin = 100;

umax = 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, мүнөт);

Blynk.virtualWrite (V1, conteggio);

Serial.println ("Resetta");

кечигүү (200);

Blynk.virtualWrite (V0, LOW);

}

}

жараксыз sendSensor () // ченемдик процедуралар

{

String currentTime = Стринг (саат ()) + ":" + мүнөт ();

String currentDate = String (күн ()) + "/" + ай ();

float h = dht.readHumidity ();

float t = dht.readTemperature ();

if (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 + ")";

}

if (h> umax) {

umax = h;

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

}

if (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 24ore күнүнө семперди бөлөт (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);

}

жараксыз орнотуу ()

{

Serial.begin (115200);

Blynk.begin (auth, ssid, pass);

dht.begin ();

timer.setInterval (10000, sendSensor); // lettura temperatura 5 мүн

timer.setInterval (1800000, calcolo_media); // жалган маалымат каражаттары 30 мүн

}

боштук цикл ()

{

Blynk.run ();

timer.run ();

long adesso = millis ();

val = digitalRead (vibr_pin);

vb = vb+val;

эгер (adesso - prima> = Tempmax)

{

vb = 0;

vbinit = vb;

prima = adesso;

}

Сунушталууда: