Talaan ng mga Nilalaman:

Birra_Monitor: 3 Mga Hakbang
Birra_Monitor: 3 Mga Hakbang

Video: Birra_Monitor: 3 Mga Hakbang

Video: Birra_Monitor: 3 Mga Hakbang
Video: Ep 9.1: Six Signs Your Child May Have Autism (Part 2 / 2) | Teacher Kaye Talks 2024, Hulyo
Anonim
Birra_Monitor
Birra_Monitor

Naghahatid ako ng isang monitorare la fermentazione della birra fatta sa casa tramite un semplice sensore di vibrazione (SW-420 NC). l'aggiunta del sensore di temperatura (DHT22) maghatid ng isang monitorare temperatura at umutang ng della stanza atta alla fermentazione. Mag-isip ng dati mong pagkilos sa isang iskedyul ng pag-ibig upang ma-visualize ang tramite ng Blynk app na mailalagay sa loob ng IoT.

Ginagamit ang proyekto upang subaybayan ang pagbuburo ng homemade beer gamit ang isang simpleng sensor ng panginginig (SW-420 NC). ang pagdaragdag ng sensor ng temperatura (DHT22) ay nagsisilbi upang subaybayan ang temperatura at halumigmig ng silid na angkop para sa pagbuburo. Ang data na ito ay pinamamahalaan ng isang nodemcu card at isinalarawan sa pamamagitan ng Blynk app na hinirang upang paunlarin ang mga solusyon sa IoT.

Hakbang 1: Pagbalot

Pagbalot
Pagbalot
Pagbalot
Pagbalot

Mag-iskedyul ng sensori sono alloggiate sa isang semplice scatola di derivazione.

Ang mga board at sensor ay nakalagay sa isang simpleng kahon ng kantong.

Hakbang 2: Sensor sa Trabaho

Sensor sa Trabaho
Sensor sa Trabaho
Sensor sa Trabaho
Sensor sa Trabaho

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

ano ang mangyayari kapag ang sensor ay "naka-mount" sa bubbler na sa tuwing pinatalsik ang CO2 ang sensor ay magtatala ng mga panginginig na ipapakita sa Blynk app

Hakbang 3: Code

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

ang code upang payagan ang paggana ng kabuuan ay ang sumusunod na magiging sapat upang mai-load sa card ang Arduino IDE software

# isama ang Adafruit_Sensor.h

# isama ang DHT.h

# tukuyin ang BLYNK_PRINT Serial

# isama ang ESP8266WiFi.h;

# isama ang BlynkSimpleEsp8266.h;

# isama ang SimpleTimer.h;

# isama ang WidgetRTC.h;

float lettura [50]; // dimensione Arrayper media

int nume_Letture = 0; // Progressivo letture

float tot_Letture = 0; // somma letture

float media_Letture = 0; // media letture

int conteggio = 0; // variabile di conteggio primario

// inizio dichiarazioni variabili bawat media Continua

int i = 0;

int cc = 0;

int togli = 0;

// fine dichiarazioni variabili per media Continua

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; // Inizializzo vbinit a 0

unsigned mahabang prima = 0; // utile per swap min / max

mahabang Tempmax = 660000; // utile per swap 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; // 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 °<<<<<<♥♥♥♥♥♥♥♥ 9”; // wifi

char pass = O °♥♥♥♥♥♥♥♥♥♥ // psw

# tukuyin ang DHTPIN 2 // pin sensore DHT

# tukuyin ang DHTTYPE DHT22

DHT dht (DHTPIN, DHTTYPE);

SimpleTimer timer; // timer

WidgetRTC rtc; // orologio di sistema Blynk

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

BLYNK_CONNected () {

rtc.begin (); // avvio RTC

}

BLYNK_WRITE (V0) // routine bawat tasto reset da Blynk

{

int attiva = param.asInt ();

kung (attiva == 1) {

tmax = -100;

tmin = 100;

umax = 0;

umin = 100;

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

mint = "------------";

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

Blynk.virtualWrite (V12, maxu);

Blynk.virtualWrite (V13, minu);

Blynk.virtualWrite (V1, conteggio);

Serial.println ("Resetta");

pagkaantala (200);

Blynk.virtualWrite (V0, LOW);

}

}

void sendSensor () // normale prosedurura let letura

{

String currentTime = String (oras ()) + ":" + minuto ();

String currentDate = String (araw ()) + "/" + buwan ();

float h = dht.readHumidity ();

float t = dht.readTemperature ();

kung (isnan (h) || isnan (t)) {

Serial.println ("Nabigong basahin mula sa sensor ng DHT!");

led1.on ();

bumalik;

}

iba pa {

led1.off ();

}

kung (t> tmax) {

tmax = t;

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

}

kung (t <tmin) {

tmin = t;

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

}

kung (h> umax) {

umax = h;

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

}

kung (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, mint);

Blynk.virtualWrite (V12, maxu);

Blynk.virtualWrite (V13, minu);

}

void calcolo_media () // prosedurura bawat registrazioni dati media

{

lettura [nume_Letture] = dht.readTemperature ();

kung (isnan (lettura [nume_Letture])) {

led1.on ();

bumalik;

}

// prosedurura media circolare

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

}

kung (cc == 1) {

conteggio = 48; // DOPO le prime 24ore split semper per 24ore (48mezzore)

}

iba pa {

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

}

walang bisa ang pag-setup ()

{

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

}

walang bisa loop ()

{

Blynk.run ();

timer.run ();

mahabang adesso = millis ();

val = digitalRead (vibr_pin);

vb = vb + val;

kung (adesso - prima> = Tempmax)

{

vb = 0;

vbinit = vb;

prima = adesso;

}

Inirerekumendang: