Sisällysluettelo:

Birra_Monitor: 3 vaihetta
Birra_Monitor: 3 vaihetta

Video: Birra_Monitor: 3 vaihetta

Video: Birra_Monitor: 3 vaihetta
Video: Атеросклероз — 3 лучших метода избавления от недуга! 2024, Heinäkuu
Anonim
Birra_Monitor
Birra_Monitor

Tarkoituksena on tarjota monitorare la fermentazione della birra fatta in casa tramite un semplice sensore di vibrazione (SW-420 NC). L'aggiunta del sensore di temperatura (DHT22) palvelee valvottua lämpötilaa ja umidità della stanza atta alla fermentazione. Questi data vengono gestiti da una a scheda nodemcu and visualizzati tramite Blynk app depot all sviluppo di soluzioni IoT.

Projektia käytetään kotitekoisen oluen käymisen seuraamiseen yksinkertaisella tärinäanturilla (SW-420 NC). Lämpötila -anturin (DHT22) lisäys valvoo käymiseen sopivan huoneen lämpötilaa ja kosteutta. Näitä tietoja hallinnoi nodemcu -kortti ja ne visualisoidaan Blynk -sovelluksen kautta, joka on nimetty kehittämään IoT -ratkaisuja.

Vaihe 1: Pakkaus

Pakkaus
Pakkaus
Pakkaus
Pakkaus

Järjestelmä ja aistinvarainen liittävät yhteen yksinkertaisen scatola di derivazionen.

Kortti ja anturit on sijoitettu yksinkertaiseen liitäntärasiaan.

Vaihe 2: Anturi työssä

Anturi työssä
Anturi työssä
Anturi työssä
Anturi työssä

quello che succede quando il sensore è "montato" sul gorgogliatore che ad ogni espulsione di CO2 il sensore rekisteröinti delle vibrazioni che merkno visualizzate sull'app Blynk

mitä tapahtuu, kun anturi on "asennettu" kuplittimeen, että joka kerta kun CO2 poistetaan, anturi tallentaa värähtelyjä, jotka näytetään Blynk -sovelluksessa

Vaihe 3: Koodi

il -koodia permettereä varten

koodi, joka mahdollistaa koko toiminnan, on seuraava, joka riittää lataamaan Arduino IDE -ohjelmiston kortille

#Sisällytä Adafruit_Sensor.h

#sis. DHT.h

#define BLYNK_PRINT -sarja

#sisältää ESP8266WiFi.h;

#include BlynkSimpleEsp8266.h;

#sisältää SimpleTimer.h;

#include WidgetRTC.h;

float lettura [50]; // dimensione Arrayper media

int nume_Letture = 0; // progressivo letture

float tot_Letture = 0; // somma letture

float media_Letture = 0; // median anture

int conteggio = 0; // variabile di conteggio primario

// inizio dichiarazioni variabili per media continua

int i = 0;

int cc = 0;

int togli = 0;

// hienoja dichiarazioni -muuttujia tiedotusvälineiden mukaan

int val; // muuttujan rekisteröinti 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

allekirjoittamaton pitkä prima = 0; // utile per swap min/max

pitkä Tempmax = 660000; // utile per swap min/max

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

kelluva tmin = 100; // impostazione impossibile per il temperatura minimum

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

kelluva umin = 100; // impostazione impossibile per umidità minimum

Jousimaxt; // stringa visualizzata su Blynk

String minttu; // stringa visualizzata su Blynk

Merkkijono maxu; // stringa visualizzata su Blynk

Merkkijono minu; // stringa visualizzata su Blynk

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

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

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

#define DHTPIN 2 // pin sensore DHT

#define DHTTYPE DHT22

DHT dht (DHTPIN, DHTTYPE);

SimpleTimer -ajastin; //ajastin

WidgetRTC rtc; // orologio di sistema Blynk

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

BLYNK_CONNECTED () {

rtc.begin (); // avvio RTC

}

BLYNK_WRITE (V0) // rutiini Blynkin nollaamiseksi

{

int attiva = param.asInt ();

jos (attiva == 1) {

tmax = -100;

tmin = 100;

umax = 0;

umin = 100;

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

minttu = "------------";

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

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

media_Leikka = 0;

tot_Letture = 0;

nume_Letture = 0;

conteggio = 0;

cc = 0;

Sarja.println (conteggio);

Blynk.virtualWrite (V8, media_Letture);

Blynk.virtualWrite (V10, maxt);

Blynk.virtualWrite (V11, minttu);

Blynk.virtualWrite (V12, maxu);

Blynk.virtualWrite (V13, minu);

Blynk.virtualWrite (V1, conteggio);

Serial.println ("Resetta");

viive (200);

Blynk.virtualWrite (V0, LOW);

}

}

void sendSensor () // normaali menettelytapa

{

Merkkijono currentTime = Jono (tunti ()) + ":" + minuutti ();

Merkkijono currentDate = Jono (päivä ()) + "/" + kuukausi ();

float h = dht.readHumidity ();

float t = dht.readTemperature ();

jos (isnan (h) || isnan (t)) {

Serial.println ("DHT -anturin lukeminen epäonnistui!");

led1.on ();

palata;

}

muu {

led1.off ();

}

jos (t> tmax) {

tmax = t;

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

}

jos (t <tmin) {

tmin = t;

minttu = Jono (t) + "° C (" + nykyinen aika + "-" + nykyinen päivämäärä + ")";

}

jos (h> umax) {

umax = h;

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

}

jos (h <umin) {

umin = h;

minu = Jono (h) + "% (" + currentTime + "-" + currentDate + ")";

}

Blynk.virtualWrite (V5, h);

Blynk.virtualWrite (V6, t);

Blynk.virtualWrite (V7, vb);

Blynk.virtualWrite (V10, maxt);

Blynk.virtualWrite (V11, minttu);

Blynk.virtualWrite (V12, maxu);

Blynk.virtualWrite (V13, minu);

}

void calcolo_media () // menettely rekisteröintitietovälineiden kautta

{

lettura [nume_Letture] = dht.readTemperature ();

jos (isnan (lettura [numero_luku])) {

led1.on ();

palata;

}

// procedura media circolare

jos (nume_Letture> = 48) {

togli = nume_Letture-48;

tot_Letture -= (lettura [togli]);

tot_Letture += (lettura [numero_Luku]);

nume_Letture = 0; // aseta nolla ja riparte -tutto

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

}

jos (cc == 1) {

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

}

muu{

// media prima dello scadere delle 24ore

tot_Letture += (lettura [numero_Luku]);

conteggio = conteggio+1;

}

media_Letture = tot_Letture/conteggio;

nume_Letture = nume_Letture+1;

Blynk.virtualWrite (V8, media_Letture);

Blynk.virtualWrite (V1, conteggio);

}

mitätön asennus ()

{

Sarja.alku (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 30 min

}

tyhjä silmukka ()

{

Blynk.run ();

timer.run ();

pitkä adesso = millis ();

val = digitalRead (vibr_pin);

vb = vb+val;

jos (adesso - prima> = Tempmax)

{

vb = 0;

vbinit = vb;

prima = adesso;

}

Suositeltava: