Përmbajtje:

Birra_Monitor: 3 hapa
Birra_Monitor: 3 hapa

Video: Birra_Monitor: 3 hapa

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

Progetto të shërbejë për një monitorim të fermentazione della birra fatta në casa tramite un semplice sensore di vibrazione (SW-420 NC). L'aggiunta del sensore di temperatura (DHT22) shërbejnë një temperaturë monitorare dhe umidità della stanza atta alla fermentazione. Kërkoni të dhëna të shpejta për të përcaktuar një pamje dhe vizualizim të tramiteve të aplikacionit Blynk, të cilat mund të përdoren vetëm në IoT.

Projekti përdoret për të monitoruar fermentimin e birrës së bërë në shtëpi duke përdorur një sensor të thjeshtë dridhjeje (SW-420 NC). shtimi i sensorit të temperaturës (DHT22) shërben për të monitoruar temperaturën dhe lagështinë e dhomës të përshtatshme për fermentim. Këto të dhëna menaxhohen nga një kartë nodemcu dhe vizualizohen përmes aplikacionit Blynk të caktuar për të zhvilluar zgjidhje IoT.

Hapi 1: Paketimi

Paketim
Paketim
Paketim
Paketim

Scheda e sensori sono alloggiate në una semplice scatola di derivazione.

Bordi dhe sensorët janë vendosur në një kuti të thjeshtë bashkimi.

Hapi 2: Sensori në punë

Sensori në punë
Sensori në punë
Sensori në punë
Sensori në punë

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

çfarë ndodh kur sensori "montohet" në flluskë, sa herë që CO2 nxirret, sensori do të regjistrojë dridhjet që do të shfaqen në aplikacionin Blynk

Hapi 3: Kodi

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

kodi për të lejuar funksionimin e tërësisë është si më poshtë që do të jetë i mjaftueshëm për të ngarkuar në kartë softuerin Arduino IDE

#përfshi Adafruit_Sensor.h

#përfshi DHT.h

#define BLYNK_PRINT Serial

#përfshi ESP8266WiFi.h;

#përfshi BlynkSimpleEsp8266.h;

#përfshijë SimpleTimer.h;

#përfshi WidgetRTC.h;

noton lettura [50]; // dimensione Media arrayper

int nume_Letture = 0; // letër e përparuar

noton tot_Letture = 0; // marma letre

float media_Letture = 0; // letra letre

int conteggio = 0; // variabile di conteggio primario

// inizio dichiarazioni variabili per media Continua

int i = 0;

int cc = 0;

int togli = 0;

// fine dichiarazioni variabili per media Continua

int val; // varrazibile 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 e gjatë e panënshkruar = 0; // i dobishëm për shkëmbim min/max

Tempmax e gjatë = 660000; // i dobishëm për shkëmbim min/max

noton tmax = -100; // impostazione e pamundur per la temperatura massima

noton tmin = 100; // impostazione e pamundur për temperaturën minimale

float umax = 0; // impostazione e pamundur për umidità massima

noton umin = 100; // impostazione e pamundur për umidità minima

Varg maxt; // stringa visualizzata su Blynk

Nenexhik me fije; // stringa visualizzata su Blynk

Stringu maxu; // stringa visualizzata su Blynk

Vargu minu; // stringa visualizzata su Blynk

char author = "a °°°(char ssid = "T °°°(// wifi

kalimi i karbonit = O °°°(// psw

#define DHTPIN 2 // pin sensore DHT

#përcaktoni DHTTYPE DHT22

DHT dht (DHTPIN, DHTTYPE);

Kohëmatësi SimpleTimer; // kohëmatësi

WidgetRTC rtc; // orologio di sistema Blynk

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

BLYNK_CONNECTED () {

rtc.filloj (); // avvio RTC

}

BLYNK_WRITE (V0) // rutinë për rivendosjen e shijes së Blynk

{

int attiva = param.asInt ();

nëse (ativa == 1) {

tmax = -100;

tmin = 100;

umax = 0;

umin = 100;

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

nenexhik = "------------";

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

Blynk.virtualWrite (V12, maxu);

Blynk.virtualWrite (V13, minu);

Blynk.virtualWrite (V1, conteggio);

Serial.println ("Resetta");

vonesë (200);

Blynk.virtualWrite (V0, LOW);

}

}

void sendSensor () // normale procedura di lettura

{

String currentTime = String (orë ()) + ":" + minutë ();

String currentDate = String (ditë ()) + "/" + muaj ();

noton h = dht.readHumidity ();

noton t = dht.readTemperatura ();

nëse (isnan (h) || isnan (t)) {

Serial.println ("Leximi i lexuar nga sensori DHT!");

led1.on ();

kthim;

}

tjeter {

led1.off ();

}

nëse (t> tmax) {

tmax = t;

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

}

nëse (t <tmin) {

tmin = t;

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

}

nëse (h> umax) {

umax = h;

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

}

nëse (h <umin) {

umin = h;

minu = String (h) + "% (" + CurrentTime + "-" + dateDate + ")";

}

Blynk.virtualWrite (V5, h);

Blynk.virtualWrite (V6, t);

Blynk.virtualWrite (V7, vb);

Blynk.virtualWrite (V10, maxt);

Blynk.virtualWrite (V11, nenexhik);

Blynk.virtualWrite (V12, maxu);

Blynk.virtualWrite (V13, minu);

}

void calcolo_media () // procedura për regjistrimin e të dhënave media

{

lettura [nume_Letture] = dht.readTemperature ();

nëse (isnan (lettura [nume_Letture])) {

led1.on ();

kthim;

}

// qarkullimi i procedurës mediatike

nëse (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 marule (24ore)

}

nëse (cc == 1) {

conteggio = 48; // DOPO le prime 24ore semprere ndarëse për 24ore (48mezzore)

}

tjeter {

// media prima dello scadere delle 24ore

tot_Letture += (lettura [nume_Letture]);

conteggio = kontegjio+1;

}

media_Letture = tot_Letture/conteggio;

nume_Letture = nume_Letture+1;

Blynk.virtualWrite (V8, media_Letture);

Blynk.virtualWrite (V1, conteggio);

}

void setup ()

{

Serial.filloj (115200);

Blynk.begin (auth, ssid, pass);

dht.filloj ();

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

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

}

lak void ()

{

Blynk.run ();

timer.run ();

adesso e gjatë = millis ();

val = digitalRead (vibr_pin);

vb = vb+val;

nëse (adesso - prima> = Tempmax)

{

vb = 0;

vbinit = vb;

prima = adesso;

}

Recommended: