Isi kandungan:

Birra_Monitor: 3 Langkah
Birra_Monitor: 3 Langkah

Video: Birra_Monitor: 3 Langkah

Video: Birra_Monitor: 3 Langkah
Video: ВСЯ НОЧЬ С ПОЛТЕРГЕЙСТОМ В ЖИЛОМ ДОМЕ, я заснял жуткую активность. 2024, November
Anonim
Birra_Pemantau
Birra_Pemantau

Il progetto melayani monitorare la fermentazione della birra fatta di casa tramite un semplice sensore di vibrazione (SW-420 NC). l'aggiunta del sensore di temperatura (DHT22) melayani temperatur monitor dan umidità della stanza atta alla fermentazione. Questi dati vengono gestiti da una scheda nodemcu e visualizzati tramite Blynk app deputata allo sviluppo di soluzioni IoT.

Projek ini digunakan untuk memantau fermentasi bir buatan sendiri menggunakan sensor getaran sederhana (SW-420 NC). penambahan sensor suhu (DHT22) berfungsi untuk memantau suhu dan kelembapan bilik yang sesuai untuk penapaian. Data ini diuruskan dengan kad nodemcu dan divisualisasikan melalui aplikasi Blynk yang dilantik untuk mengembangkan penyelesaian IoT.

Langkah 1: Pembungkusan

Pembungkusan
Pembungkusan
Pembungkusan
Pembungkusan

Scheda e sensori sono alloggiate dalam una semplice scatola di derivazione.

Papan dan sensor diletakkan di dalam kotak simpang sederhana.

Langkah 2: Sensor di Tempat Kerja

Sensor di Tempat Kerja
Sensor di Tempat Kerja
Sensor di Tempat Kerja
Sensor di Tempat Kerja

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

apa yang berlaku apabila sensor "dipasang" pada gelembung yang setiap kali CO2 dikeluarkan sensor akan merakam getaran yang akan dipaparkan di aplikasi Blynk

Langkah 3: Kod

il codice per permettere il funzionamento del tutto è il seguente che basterà caricare sulla scheda tramide il perisian Arduino IDE

kod untuk membolehkan fungsi keseluruhan adalah berikut yang cukup untuk memuatkan pada kad perisian Arduino IDE

#sertakan Adafruit_Sensor.h

#masuk DHT.h

#tentukan seri BLYNK_PRINT

#sertakan ESP8266WiFi.h;

#sertakan BlynkSimpleEsp8266.h;

#masuk SimpleTimer.h;

#masuk WidgetRTC.h;

apungan lettura [50]; // dimensione Arrayper media

int nume_Letture = 0; // progressivo letture

float tot_Letture = 0; // somma letture

media terapung_Letture = 0; // letture media

int conteggio = 0; // pemboleh ubah di conteggio primario

// inizio dichiarazioni variabili per media berterusan

int i = 0;

int cc = 0;

int togli = 0;

// variabel dichiarazioni halus per media berterusan

int val; // pemboleh ubah 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

prima panjang yang tidak ditandatangani = 0; // penggunaan setiap pertukaran min / maks

Tempmax panjang = 660000; // penggunaan setiap pertukaran min / maks

apungan tmax = -100; // impostazione mustahil per la temperatura massima

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

apungan umax = 0; // impostazione mustahil per umidità massima

apungan umin = 100; // impostazione mustahil per umidità minima

Maxt rentetan; // stringa visualizzata su Blynk

String mint; // stringa visualizzata su Blynk

String maxu; // stringa visualizzata su Blynk

String minu; // stringa visualizzata su Blynk

char auth = "a °------------------"

char ssid = T °---------------------- // wifi

kar lulus = O °| // psw

#tentukan DHTPIN 2 // pin sensore DHT

#tentukan DHTTYPE DHT22

DHT dht (DHTPIN, DHTTYPE);

Pemasa SimpleTimer; // pemasa

WidgetRTC rtc; // orologio di sistema Blynk

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

BLYNK_CONNECTED () {

rtc.begin (); // avvio RTC

}

BLYNK_WRITE (V0) // rutin setiap tetapan semula da Blynk

{

int attiva = param.asInt ();

jika (attiva == 1) {

tmax = -100;

tmin = 100;

umax = 0;

umin = 100;

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

pudina = "------------";

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, pudina);

Blynk.virtualWrite (V12, maksu);

Blynk.virtualWrite (V13, minu);

Blynk.virtualWrite (V1, conteggio);

Serial.println ("Resetta");

kelewatan (200);

Blynk.virtualWrite (V0, RENDAH);

}

}

batal sendSensor () // normale Procedura di lettura

{

String currentTime = Rentetan (jam ()) + ":" + minit ();

String currentDate = Rentetan (hari ()) + "/" + bulan ();

apungan h = dht.readHumidity ();

terapung t = dht.readTemperature ();

jika (isnan (h) || isnan (t)) {

Serial.println ("Gagal membaca dari sensor DHT!");

led1.on ();

kembali;

}

lain {

led1.off ();

}

jika (t> tmax) {

tmax = t;

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

}

jika (t <tmin) {

tmin = t;

pudina = Rentetan (t) + "° C (" + currentTime + "-" + currentDate + ")";

}

jika (h> umax) {

umax = h;

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

}

jika (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, pudina);

Blynk.virtualWrite (V12, maksu);

Blynk.virtualWrite (V13, minu);

}

batal calcolo_media () // prosedur per media registrazioni dati

{

lettura [nume_Letture] = dht.readTemperature ();

jika (isnan (lettura [nume_Letture])) {

led1.on ();

kembali;

}

// edaran prosedur prosedur

jika (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)

}

jika (cc == 1) {

conteggio = 48; // DOPO le prime 24ore bahagikan semper setiap 24ore (48mezzore)

}

lain {

// 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);

}

persediaan tidak sah ()

{

Serial.begin (115200);

Blynk.begin (auth, ssid, pass);

dht.begin ();

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

timer.setInterval (1800000, calcolo_media); // lettura e media ogni 30min

}

gelung kosong ()

{

Blynk.run ();

pemasa.run ();

adesso panjang = milis ();

val = digitalRead (vibr_pin);

vb = vb + val;

jika (adesso - prima> = Tempmax)

{

vb = 0;

vbinit = vb;

prima = adesso;

}

Disyorkan: