Mundarija:

Birra_Monitor: 3 qadam
Birra_Monitor: 3 qadam

Video: Birra_Monitor: 3 qadam

Video: Birra_Monitor: 3 qadam
Video: Тебе нужен Mac mini 2024, Noyabr
Anonim
Birra_Monitor
Birra_Monitor

Vibrazion (SW-420 NC) tramit va semplice sensorli kanallarda (fermentlar-della birra fatta) monitör xizmat qiladi. Harorat sensori (DHT22) haroratni nazorat qilish uchun xizmat qiladi. Blynk ilovasi uchun IoT -ning har bir vazifasi bir vaqtning o'zida amalga oshiriladi.

Loyiha oddiy tebranish sensori (SW-420 NC) yordamida uy qurilishi pivosining fermentatsiyasini kuzatish uchun ishlatiladi. harorat sensori (DHT22) qo'shilishi fermentatsiyaga yaroqli xonaning harorati va namligini kuzatishga xizmat qiladi. Bu ma'lumotlar nodemcu kartasi orqali boshqariladi va IoT echimlarini ishlab chiqish uchun tayinlangan Blynk dasturi orqali ko'rsatiladi.

1 -qadam: qadoqlash

Qadoqlash
Qadoqlash
Qadoqlash
Qadoqlash

Shaxsiy sensori alloggiate bir xil bo'laklarga bo'linadi.

Kengash va datchiklar oddiy ulanish qutisiga joylashtirilgan.

2 -qadam: Sensor ish joyida

Sensor ish joyida
Sensor ish joyida
Sensor ish joyida
Sensor ish joyida

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

Sensor puflagichga "o'rnatilganda" nima bo'ladi, har safar CO2 chiqarilganda sensor Blynk ilovasida ko'rsatiladigan tebranishlarni qayd qiladi.

3 -qadam: kod

dasturiy ta'minot Arduino IDE dasturini ishga tushirish uchun dasturlarni ishga tushiring.

butunning ishlashiga ruxsat beruvchi kod - bu Arduino IDE dasturini kartaga yuklash uchun etarli bo'ladi.

#Adafruit_Sensor.h qo'shing

#DHT.h ni qo'shing

#blynk_print seriyasini aniqlang

#ESP8266WiFi.h ni qo'shing;

#blynkSimpleEsp8266.h qo'shing;

#To'liq SimpleTimer.h;

#WidgetRTC.h ni qo'shing;

float lettura [50]; // o'lchovli ommaviy axborot vositalari

int nume_Letture = 0; // progressiv lettura

float tot_Letture = 0; // somma letur

float media_Letture = 0; // ommaviy axborot vositalari ijrosi

int conteggio = 0; // variabile di conteggio primario

// har bir ommaviy axborot vositasi uchun turli xil variantlar

int i = 0;

int cc = 0;

int togli = 0;

// har bir ommaviy axborot vositasi uchun juda yaxshi

int val; // o'zgaruvchan registrazione vibrazione

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

int vb = 0; // Inizializzo va boshqalar

int vbr = 0; // Inizializzo va boshqalar

int vbinit = 0; // Inizializzo vbinit a 0

belgisiz uzun prima = 0; // almashtirish uchun utile min/max

uzoq Tempmax = 660000; // almashtirish uchun utile min/max

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

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

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

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

String maxt; // Blynk vizualizatsiyasi

String yalpiz; // Blynk vizualizatsiyasi

String maxu; // Blynk vizualizatsiyasi

String minu; // Blynk vizualizatsiyasi

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

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

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

#DHTPIN 2 ni belgilang // pin sensore DHT

#DHTTYPE DHT22 ni aniqlang

DHT dht (DHTPIN, DHTTYPE);

SimpleTimer taymeri; // taymer

WidgetRTC rtc; // Blynk tizimi

VidjetLED LED1 (V15); // Led Blynk pin V15

BLYNK_CONNECTED () {

rtc.begin (); // avvio RTC

}

BLYNK_WRITE (V0) // Blynk uchun har bir ta'mni tiklash tartibi

{

int attiva = param.asInt ();

agar (attiva == 1) {

tmax = -100;

tmin = 100;

umax = 0;

umin = 100;

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

yalpiz = "------------";

maxu = "------------";

minu = "------------";

media_Letture = 0;

tot_Letture = 0;

nume_Letture = 0;

kontegjio = 0;

cc = 0;

Serial.println (conteggio);

Blynk.virtualWrite (V8, media_Letture);

Blynk.virtualWrite (V10, maxt);

Blynk.virtualWrite (V11, yalpiz);

Blynk.virtualWrite (V12, maxu);

Blynk.virtualWrite (V13, minu);

Blynk.virtualWrite (V1, kontegjio);

Serial.println ("Resetta");

kechikish (200);

Blynk.virtualWrite (V0, LOW);

}

}

void sendSensor () // oddiy protsedura

{

String currentTime = String (soat ()) + ":" + daqiqa ();

String currentDate = String (kun ()) + "/" + oy ();

float h = dht.readHumidity ();

float t = dht.readTemperature ();

agar (isnan (h) || isnan (t)) {

Serial.println ("DHT sensoridan o'qib bo'lmadi!");

led1.on ();

qaytish;

}

boshqa {

led1.off ();

}

agar (t> tmax) {

tmax = t;

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

}

agar (t <tmin) {

tmin = t;

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

}

agar (h> umax) {

umax = h;

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

}

agar (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, yalpiz);

Blynk.virtualWrite (V12, maxu);

Blynk.virtualWrite (V13, minu);

}

void calcolo_media () // registratsiya ma'lumotlari uchun protsedura

{

lettura [nume_Letture] = dht.readTemperature ();

agar (isnan (lettura [nume_Letture])) {

led1.on ();

qaytish;

}

// media circulare protsedurasi

agar (nume_Letture> = 48) {

togli = nume_Letture-48;

tot_Letture -= (lettura [togli]);

tot_Letture += (lettura [nume_Letture]);

nume_Letture = 0; // nol va nolga teng

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

}

agar (cc == 1) {

kontegjio = 48; // DOPO le prime 24ore semerni har 24 ta (48mazzore) ga ajratish.

}

boshqa {

// ommaviy axborot vositalarining boshlanishi, bu 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, kontegjio);

}

bo'sh o'rnatish ()

{

Serial.begin (115200);

Blynk.begin (auth, ssid, pass);

dht.begin ();

timer.setInterval (10000, sendSensor); // lettura temperatura umidida ogni 5 min

timer.setInterval (1800000, calcolo_media); // ommaviy axborot vositalari 30 daqiqa

}

bo'sh halqa ()

{

Blynk.run ();

taymer.run ();

uzoq manzil = millis ();

val = digitalRead (vibr_pin);

vb = vb+val;

agar (adesso - prima> = Tempmax)

{

vb = 0;

vbinit = vb;

prima = qo'shimcha;

}

Tavsiya: