Turinys:

Birra_Monitor: 3 žingsniai
Birra_Monitor: 3 žingsniai

Video: Birra_Monitor: 3 žingsniai

Video: Birra_Monitor: 3 žingsniai
Video: 💘3 шага, чтобы ЗАСТАВИТЬ мужчину СОСКУЧИТЬСЯ 2024, Lapkritis
Anonim
Birra_Monitor
Birra_Monitor

Programa tarnaus monitorare la fermentazione della birra fatta in casa tramite un semplice sensore di vibrazione (SW-420 NC). L'aggiunta del sensore di temperatura (DHT22) tarnauja kaip monitorare temperatura ir umidità della stanza atta alla fermentazione. „Questi data vengono gestiti da una a scheda nodemcu“ir „visualizzati tramite“„Blynk“programos pavaduotojai, turintys IoT sprendimų.

Projektas naudojamas naminio alaus fermentacijai stebėti naudojant paprastą vibracijos jutiklį (SW-420 NC). papildytas temperatūros jutiklis (DHT22) skirtas fermentacijai tinkamos patalpos temperatūrai ir drėgmei stebėti. Šiuos duomenis tvarko „nodemcu“kortelė ir jie vizualizuojami naudojant „Blynk“programą, skirtą kurti daiktų interneto sprendimus.

1 žingsnis: pakavimas

Pakuotė
Pakuotė
Pakuotė
Pakuotė

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

Plokštė ir jutikliai yra paprastoje jungčių dėžutėje.

2 žingsnis: jutiklis darbe

Jutiklis darbe
Jutiklis darbe
Jutiklis darbe
Jutiklis darbe

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

kas atsitinka, kai jutiklis yra „sumontuotas“ant burbulo, kad kiekvieną kartą, kai išmetamas CO2, jutiklis įrašys vibracijas, kurios bus rodomos „Blynk“programoje

3 žingsnis: kodas

kodą, skirtą permetėjui, iliustraciją, skirtą mokymui, ir sekti, kad pamatytumėte karikatūras, kurios bus skirtos tramvajaus programinei įrangai „Arduino IDE“

kodas, leidžiantis veikti visumai, yra toks, kurio pakaks įkelti į kortelę „Arduino IDE“programinę įrangą

#include Adafruit_Sensor.h

#įtraukti DHT.h

#define BLYNK_PRINT Serialas

#įtraukti ESP8266WiFi.h;

#include BlynkSimpleEsp8266.h;

#įtraukti SimpleTimer.h;

#include WidgetRTC.h;

float lettura [50]; // dimensijos masyvo laikmena

int nume_Letture = 0; // progresyvus letture

plūdė tot_Letture = 0; // somma letture

float media_Letture = 0; // media letture

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

nepasirašyta ilga prima = 0; // utile per swap min/max

ilgas Tempmax = 660000; // utile per swap min/max

plūdė tmax = -100; // impostazione impossibile per la temperatura massima

plūdė tmin = 100; // impostazione impossibile per il temperatura minimum

plūdė umax = 0; // impostazione impossibile per umidità massima

plūdė umin = 100; // impostazione impossibile per umidità minimum

Styginių makstas; // stringa visualizzata su Blynk

Styginių mėtų; // stringa visualizzata su Blynk

Stygų maxu; // stringa visualizzata su Blynk

Styginė minu; // stringa visualizzata su Blynk

char auth = "a ° ° ° ° ° °" //

char ssid = "T ° ° ° ° ° °" "9"; //bevielis internetas

anglies leidimas = "O ° ° ° ° ° °" ""; // psw

#define DHTPIN 2 // PIN sensorius DHT

#define DHTTYPE DHT22

DHT dht (DHTPIN, DHTTYPE);

„SimpleTimer“laikmatis; // laikmatis

ValdiklisRTC rtc; // orologio di sistema Blynk

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

BLYNK_CONNECTED () {

rtc.begin (); // avvio RTC

}

BLYNK_WRITE (V0) // rutina, skirta iš naujo nustatyti „Blynk“

{

int attiva = param.asInt ();

jei (attiva == 1) {

tmax = -100;

tmin = 100;

umax = 0;

umin = 100;

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

mėtos = "------------";

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, mėtų);

Blynk.virtualWrite (V12, maxu);

Blynk.virtualWrite (V13, minu);

Blynk.virtualWrite (V1, conteggio);

Serial.println („Atstatymas“);

vėlavimas (200);

Blynk.virtualWrite (V0, LOW);

}

}

void sendSensor () // normale procedura di lettura

{

Styga currentTime = Styga (valanda ()) + ":" + minutė ();

String currentDate = Eilutė (diena ()) + "/" + mėnuo ();

plūdė h = dht.readHumidity ();

plūdė t = dht.readTemperature ();

jei (isnan (h) || isnan (t)) {

Serial.println ("Nepavyko nuskaityti iš DHT jutiklio!");

led1.on ();

grįžti;

}

Kitas {

led1.off ();

}

if (t> tmax) {

tmax = t;

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

}

jei (t <tmin) {

tmin = t;

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

}

jei (h> umax) {

umax = h;

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

}

jei (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, mėtų);

Blynk.virtualWrite (V12, maxu);

Blynk.virtualWrite (V13, minu);

}

void calcolo_media () // procedura per registrazioni data media

{

lettura [nume_Letture] = dht.readTemperature ();

if (isnan (lettura [nume_Letture])) {

led1.on ();

grįžti;

}

// procedura media circolare

if (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; // identifika primo passaggio dopo 48 letture (24ore)

}

jei (cc == 1) {

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

}

Kitas{

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

}

negaliojanti sąranka ()

{

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

}

tuštumos kilpa ()

{

Blynk.run ();

timer.run ();

ilgas adesso = milis ();

val = digitalRead (vibr_pin);

vb = vb+val;

jei (adesso - prima> = Tempmax)

{

vb = 0;

vbinit = vb;

prima = adesso;

}

Rekomenduojamas: