INHOUDSOPGAWE:

Birra_Monitor: 3 stappe
Birra_Monitor: 3 stappe

Video: Birra_Monitor: 3 stappe

Video: Birra_Monitor: 3 stappe
Video: ДЕЛАЙ 3 ПРИЁМА КАЖДЫЙ ДЕНЬ С УТРА И ВОТ ЧТО БУДЕТ... 2024, November
Anonim
Birra_Monitor
Birra_Monitor

Die program bedien 'n monitor met la fermentazione della birra fatta in casa tramite un semplice sensore di vibrazione (SW-420 NC). Die temperatuur van die sensor (DHT22) dien vir 'n monitor temperatuur. U kan hierdie funksie vir een of meer tydskema's en visuele weergawes van die Blynk -app in u IoT -formaat aflaai.

Die projek word gebruik om die fermentasie van tuisgemaakte bier te monitor met behulp van 'n eenvoudige vibrasiesensor (SW-420 NC). die toevoeging van die temperatuursensor (DHT22) dien om die temperatuur en humiditeit van die kamer wat geskik is vir fermentasie te monitor. Hierdie data word bestuur deur 'n nodemcu -kaart en gevisualiseer deur die Blynk -app wat aangestel is om IoT -oplossings te ontwikkel.

Stap 1: Verpakking

Verpakking
Verpakking
Verpakking
Verpakking

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

Bord en sensors word in 'n eenvoudige aansluitkas gehuisves.

Stap 2: Sensor by die werk

Sensor by die werk
Sensor by die werk
Sensor by die werk
Sensor by die werk

quello che succede quando il sensore è "montato" sul gorgogliatore che ad andni espulsione di CO2 il sensore registrerà delle vibrazioni che verranno visualizzate sull'app Blynk

wat gebeur as die sensor op die borrel gemonteer word, dat die sensor elke keer as die CO2 uitgestoot word, vibrasies opneem wat op die Blynk -app vertoon sal word

Stap 3: Kodeer

die kode vir permanente funksies van die tutto è il seguente che basterà caricare sulla scheda tramide il software Arduino IDE

die kode om die funksionering van die geheel moontlik te maak, is die volgende om die Arduino IDE -sagteware op die kaart te laai

#sluit Adafruit_Sensor.h in

#sluit DHT.h in

#define BLYNK_PRINT reeks

#sluit ESP8266WiFi.h in;

#sluit BlynkSimpleEsp8266.h in;

#sluit SimpleTimer.h in;

#sluit WidgetRTC.h in;

float lettura [50]; // dimensione Arrayper media

int nume_Letture = 0; // progressivo letture

float tot_Letture = 0; // somma blaarslaai

float media_Letture = 0; // mediaverhuring

int conteggio = 0; // variabile di conteggio primario

// inizio dichiarazioni variabili per media continua

int i = 0;

int cc = 0;

int togli = 0;

// fyn dichiarazioni variabili per media continua

int val; // veranderlike registrazione vibrazione

int vibr_pin = 5; // Piedino x Sensore di Vibrazione D1

int vb = 0; // Inisializzo vb a 0

int vbr = 0; // Inisializzo vb a 0

int vbinit = 0; // Inisializzo vbinit a 0

ongetekende lang prima = 0; // gebruik per ruil min/maks

lang Tempmax = 660000; // gebruik per ruil min/maks

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

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

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

float umin = 100; // impostazione impossibile per umidità minima

Stringmaksel; // stringa visualizzata su Blynk

Stringmunt; // stringa visualizzata su Blynk

String maxu; // stringa visualizzata su Blynk

String minu; // stringa visualizzata su Blynk

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

char ssid = "T °°°°°°°°°°°°°°אָו 9"; // wifi

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

#define DHTPIN 2 // pin sensore DHT

#definieer 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) // roetine vir herstel deur Blynk

{

int attiva = param.asInt ();

as (attiva == 1) {

tmax = -100;

tmin = 100;

umax = 0;

umin = 100;

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

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

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

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

media_Leture = 0;

tot_Leture = 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");

vertraging (200);

Blynk.virtualWrite (V0, LOW);

}

}

void sendSensor () // normale prosedura di lettura

{

String currentTime = String (hour ()) + ":" + minute ();

String currentDate = String (dag ()) + "/" + maand ();

float h = dht.readHumidity ();

float t = dht.readTemperature ();

as (isnan (h) || isnan (t)) {

Serial.println ("Kan nie lees van DHT -sensor nie!");

led1.on ();

terugkeer;

}

anders {

led1.off ();

}

as (t> tmax) {

tmax = t;

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

}

as (t <tmin) {

tmin = t;

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

}

as (h> umax) {

umax = h;

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

}

as (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 () // procedure for registrazioni dati media

{

lettura [nume_Letture] = dht.readTemperature ();

as (isnan (lettura [nume_Letture])) {

led1.on ();

terugkeer;

}

// prosedure media circolare

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

}

as (cc == 1) {

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

}

anders {

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

}

leemte opstelling ()

{

Serial.begin (115200);

Blynk.begin (auth, ssid, pass);

dht.begin ();

timer.setInterval (10000, sendSensor); // lettura temperatuur gedurende 5 minute

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

}

leemte lus ()

{

Blynk.run ();

timer.run ();

lang adesso = millis ();

val = digitalRead (vibr_pin);

vb = vb+val;

as (adesso - prima> = Tempmax)

{

vb = 0;

vbinit = vb;

prima = adesso;

}

Aanbeveel: