Tartalomjegyzék:

Birra_Monitor: 3 lépés
Birra_Monitor: 3 lépés

Videó: Birra_Monitor: 3 lépés

Videó: Birra_Monitor: 3 lépés
Videó: Сериал "Пепел" - 3 и 4 серии 2024, Július
Anonim
Birra_Monitor
Birra_Monitor

A program egy monitorare la fermentazione della birra fatta-t szolgál fel a casa tramite un semplice sensore di vibrazione (SW-420 NC). l'aggiunta del sensore di temperatura (DHT22) monitorare temperatura and umidità della stanza atta alla fermentazione. Questi dati vengono gestiti da una scheda nodemcu and visualizzati tramite Blynk app deputata all sviluppo di soluzioni IoT.

A projekt a házi sör erjedésének ellenőrzésére szolgál egy egyszerű rezgésérzékelő (SW-420 NC) segítségével. a hőmérséklet -érzékelő (DHT22) hozzáadásával az erjesztésre alkalmas helyiség hőmérsékletét és páratartalmát figyelheti. Ezeket az adatokat egy nodemcu kártya kezeli, és az IoT -megoldások kifejlesztésére kijelölt Blynk alkalmazáson keresztül jeleníti meg.

1. lépés: Csomagolás

Csomagolás
Csomagolás
Csomagolás
Csomagolás

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

A tábla és az érzékelők egy egyszerű csatlakozódobozban vannak elhelyezve.

2. lépés: Érzékelő munka közben

Érzékelő munka közben
Érzékelő munka közben
Érzékelő munka közben
Érzékelő munka közben

quello che succede quando il sensore è "montato" sul gorgogliatore che ad ogni espulsione of CO2 il sensore registrerà delle vibrazioni che Israno visualizzate sull'app Blynk

mi történik, ha az érzékelőt "felhelyezik" a buborékfóliára, és hogy minden alkalommal, amikor a CO2 kiürül, az érzékelő rögzíti a rezgéseket, amelyek megjelennek a Blynk alkalmazásban

3. lépés: Kód

kód a permetteren, illesztőprogram a tutto -ban, a keverék, amely a karikatúrát tartalmazza, és a szoftver Arduino IDE szoftvere.

a kód, amely lehetővé teszi az egész működését, a következő, amely elegendő az Arduino IDE szoftver betöltéséhez a kártyára

#include Adafruit_Sensor.h

#a DHT.h

#define BLYNK_PRINT sorozat

#include ESP8266WiFi.h;

#include BlynkSimpleEsp8266.h;

#include SimpleTimer.h;

#include WidgetRTC.h;

float lettura [50]; // dimensione Arrayper media

int nume_Letture = 0; // progresszív letture

float tot_Letture = 0; // somma letture

float media_Letture = 0; // média letture

int conteggio = 0; // variabile di conteggio primario

// inizio dichiarazioni variabili per media continua

int i = 0;

int cc = 0;

int togli = 0;

// finom 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

előjel nélküli hosszú prima = 0; // utile per swap min/max

hosszú Tempmax = 660000; // utile per swap min/max

úszó tmax = -100; // impostazione impossibile per la temperatura massima

úszó tmin = 100; // impostazione impossibile per il Temperatura minimum

úszó umax = 0; // impostazione impossibile per umidità massima

úszó umin = 100; // impostazione impossibile per umidità minimum

String maxt; // stringa visualizzata su Blynk

Húr menta; // 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

#define DHTPIN 2 // pin sensor DHT

#define DHTTYPE DHT22

DHT dht (DHTPIN, DHTTYPE);

SimpleTimer időzítő; //időzítő

WidgetRTC rtc; // orologio di sistema Blynk

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

BLYNK_CONNECTED () {

rtc.begin (); // avvio RTC

}

BLYNK_WRITE (V0) // rutin a Blynk visszaállításához

{

int attiva = param.asInt ();

ha (attiva == 1) {

tmax = -100;

tmin = 100;

umax = 0;

umin = 100;

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

menta = "------------";

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

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

media_Letture = 0;

tot_Letture = 0;

szám_Leírás = 0;

conteggio = 0;

cc = 0;

Soros.println (conteggio);

Blynk.virtualWrite (V8, media_Letture);

Blynk.virtualWrite (V10, maxt);

Blynk.virtualWrite (V11, menta);

Blynk.virtualWrite (V12, maxu);

Blynk.virtualWrite (V13, minu);

Blynk.virtualWrite (V1, conteggio);

Serial.println ("Resetta");

késleltetés (200);

Blynk.virtualWrite (V0, LOW);

}

}

void sendSensor () // normale procedura di lettura

{

String currentTime = Karakterlánc (óra ()) + ":" + perc ();

String currentDate = Karakterlánc (nap ()) + "/" + hónap ();

float h = dht.readHumidity ();

float t = dht.readTemperature ();

if (isnan (h) || isnan (t)) {

Serial.println ("Nem sikerült olvasni a DHT érzékelőből!");

led1.on ();

Visszatérés;

}

más {

led1.off ();

}

if (t> tmax) {

tmax = t;

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

}

ha (t <tmin) {

tmin = t;

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

}

if (h> umax) {

umax = h;

maxu = Karakterlánc (h) + "% (" + currentTime + "-" + currentDate + ")";

}

ha (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, menta);

Blynk.virtualWrite (V12, maxu);

Blynk.virtualWrite (V13, minu);

}

void calcolo_media () // eljárás a regisztrációs adatok adathordozóján

{

lettura [nume_Letture] = dht.readTemperature ();

if (isnan (lettura [szám_betű]))) {

led1.on ();

Visszatérés;

}

// procedura media circolare

if (nume_Letture> = 48) {

togli = nume_Letture-48;

tot_Letture -= (lettura [togli]);

tot_Letture += (lettura [szám_betű]);

szám_Leírás = 0; // setta a zero e riparte tutto

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

}

ha (cc == 1) {

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

}

más{

// média prima dello scadere delle 24ore

tot_Letture += (lettura [szám_betű]);

conteggio = conteggio+1;

}

media_Letture = tot_Letture/conteggio;

szám_Leírás = szám_Leírás+1;

Blynk.virtualWrite (V8, media_Letture);

Blynk.virtualWrite (V1, conteggio);

}

üres beállítás ()

{

Sorozat.kezdet (115200);

Blynk.begin (auth, ssid, pass);

dht.begin ();

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

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

}

üres hurok ()

{

Blynk.run ();

timer.run ();

hosszú adesso = millis ();

val = digitalRead (vibr_pin);

vb = vb+val;

ha (adesso - prima> = Tempmax)

{

vb = 0;

vbinit = vb;

prima = adesso;

}

Ajánlott: