Innholdsfortegnelse:

Birra_Monitor: 3 trinn
Birra_Monitor: 3 trinn

Video: Birra_Monitor: 3 trinn

Video: Birra_Monitor: 3 trinn
Video: ЮЛЯ ФИНЕСС: Как я вышла с 8 этажа! Групповое изнасилование под мефедроном, психиатрическая больница 2024, Juli
Anonim
Birra_Monitor
Birra_Monitor

Il progetto serve a monitorare la fermentazione della birra fatta in casa tramite un semplice sensore di vibrazione (SW-420 NC). l'aggiunta del sensore di temperatura (DHT22) tjener en overvåkingstemperatur og en dimmestørrelse for alle fermenteringene. Spør en datagjengivelse for en tidsplan for visning og visuell tramitt Blynk app deputata allo sviluppo di soluzioni IoT.

Prosjektet brukes til å overvåke gjæringen av hjemmelaget øl ved hjelp av en enkel vibrasjonssensor (SW-420 NC). tillegg av temperatursensoren (DHT22) tjener til å overvåke temperaturen og fuktigheten i rommet som er egnet for gjæring. Disse dataene administreres av et nodemcu -kort og visualiseres gjennom Blynk -appen som er utnevnt til å utvikle IoT -løsninger.

Trinn 1: Emballasje

Emballasje
Emballasje
Emballasje
Emballasje

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

Brett og sensorer er plassert i en enkel koblingsboks.

Trinn 2: Sensor på jobb

Sensor på jobb
Sensor på jobb
Sensor på jobb
Sensor på jobb

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

hva skjer når sensoren er "montert" på bobleren at hver gang CO2 blir utvist, vil sensoren registrere vibrasjoner som vil bli vist på Blynk -appen

Trinn 3: Kode

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

koden for å tillate at helheten fungerer er følgende som vil være nok til å laste på kortet Arduino IDE -programvaren

#inkludere Adafruit_Sensor.h

#inkludere DHT.h

#define BLYNK_PRINT Serial

#include ESP8266WiFi.h;

#include BlynkSimpleEsp8266.h;

#include SimpleTimer.h;

#include WidgetRTC.h;

float lettura [50]; // dimensjon Arrayper media

int nume_Letture = 0; // progressivo letture

float 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; // variabel 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

usignert lang prima = 0; // bruk per bytte min/maks

lang Tempmax = 660000; // bruk per bytte min/maks

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

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

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

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

Strengemaks; // stringa visualizzata su Blynk

String mynte; // 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

#define 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) // rutine per tasto reset da Blynk

{

int attiva = param.asInt ();

hvis (attiva == 1) {

tmax = -100;

tmin = 100;

umax = 0;

umin = 100;

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

mynte = "------------";

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

Blynk.virtualWrite (V12, maxu);

Blynk.virtualWrite (V13, minu);

Blynk.virtualWrite (V1, conteggio);

Serial.println ("Resetta");

forsinkelse (200);

Blynk.virtualWrite (V0, LOW);

}

}

void sendSensor () // normale procedura di lettura

{

String currentTime = String (time ()) + ":" + minutt ();

String currentDate = String (dag ()) + "/" + måned ();

float h = dht.readHumidity ();

float t = dht.readTemperature ();

hvis (isnan (h) || isnan (t)) {

Serial.println ("Kunne ikke lese fra DHT -sensor!");

led1.on ();

komme tilbake;

}

annet {

led1.off ();

}

hvis (t> tmax) {

tmax = t;

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

}

hvis (t <tmin) {

tmin = t;

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

}

hvis (h> umax) {

umax = h;

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

}

hvis (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 () // procedura per registrazioni dati media

{

lettura [nume_Letture] = dht.readTemperature ();

if (isnan (lettura [nume_Letture])) {

led1.on ();

komme tilbake;

}

// procedura media circolare

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

}

hvis (cc == 1) {

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

}

ellers{

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

}

ugyldig oppsett ()

{

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

}

hulrom ()

{

Blynk.run ();

timer.run ();

lang adesso = millis ();

val = digitalRead (vibr_pin);

vb = vb+val;

hvis (adesso - prima> = Tempmax)

{

vb = 0;

vbinit = vb;

prima = adesso;

}

Anbefalt: