Indholdsfortegnelse:

Birra_Monitor: 3 trin
Birra_Monitor: 3 trin

Video: Birra_Monitor: 3 trin

Video: Birra_Monitor: 3 trin
Video: Сводные таблицы Excel с нуля до профи за полчаса + Дэшборды! | 1-ое Видео курса "Сводные Таблицы" 2024, Juli
Anonim
Birra_Monitor
Birra_Monitor

Il progetto servere en monitorare la fermentazione della birra fatta i casa tramite un semplice sensore di vibrazione (SW-420 NC). l'aggiunta del sensore di temperatura (DHT22) tjener en overvågningstemperatur og en omdità della stanza atta alla fermentazione. Spørgsmål, der gør det muligt for os at planlægge en visuel visning af en Blynk -app, der kan bruges til IoT -løsninger.

Projektet bruges til at overvåge gæringen af hjemmelavet øl ved hjælp af en simpel vibrationssensor (SW-420 NC). tilføjelsen af temperatursensoren (DHT22) tjener til at overvåge temperaturen og luftfugtigheden i det rum, der er egnet til gæring. Disse data administreres af et nodemcu -kort og visualiseres gennem Blynk -app, der er udpeget til at udvikle IoT -løsninger.

Trin 1: Emballage

Emballage
Emballage
Emballage
Emballage

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

Board og sensorer er anbragt i en enkel forbindelsesboks.

Trin 2: Sensor på arbejde

Sensor på arbejde
Sensor på arbejde
Sensor på arbejde
Sensor på arbejde

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

hvad sker der, når sensoren er "monteret" på bobleren, at hver gang CO2 udstødes, registrerer sensoren vibrationer, der vises på Blynk -appen

Trin 3: Kode

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

koden til at tillade helhedens funktion er følgende, der vil være nok til at indlæse Arduino IDE -softwaren på kortet

#omfatter Adafruit_Sensor.h

#omfatter DHT.h

#define BLYNK_PRINT Serial

#include ESP8266WiFi.h;

#include BlynkSimpleEsp8266.h;

#inkludere 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; // medieladning

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

usigneret lang prima = 0; // utile pr. swap min/max

lang Tempmax = 660000; // utile pr. swap min/max

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

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

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

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

Stringmaxt; // 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"; //trådløst internet

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 efter nulstilling af 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, mynte);

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 ()) + ":" + minut ();

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

float h = dht.readHumidity ();

float t = dht.readTemperature ();

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

Serial.println ("Kunne ikke læse fra DHT -sensor!");

led1.on ();

Vend tilbage;

}

andet {

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

Blynk.virtualWrite (V12, maxu);

Blynk.virtualWrite (V13, minu);

}

void calcolo_media () // procedura per registrazioni dati media

{

lettura [nume_Letture] = dht.readTemperature ();

hvis (isnan (lettura [nume_Letture])) {

led1.on ();

Vend tilbage;

}

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

}

andet{

// medier 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 opsætning ()

{

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

}

hulrum ()

{

Blynk.run ();

timer.run ();

lang adesso = millis ();

val = digitalRead (vibr_pin);

vb = vb+val;

hvis (adesso - prima> = Tempmax)

{

vb = 0;

vbinit = vb;

prima = adesso;

}

Anbefalede: