Inhoudsopgave:

Birra_Monitor: 3 stappen
Birra_Monitor: 3 stappen

Video: Birra_Monitor: 3 stappen

Video: Birra_Monitor: 3 stappen
Video: Koppelen Grand Elite 3 Connect Plus camera met de meegeleverde monitor 2024, December
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). De temperatuursensoren (DHT22) serveren een temperatuurcontrole en een standaardtemperatuur van alle fermentazione. Vraag naar de mogelijkheden om een schema te maken en te visualiseren om de Blynk-app te gebruiken voor het oplossen van IoT.

Het project wordt gebruikt om de vergisting van huisgemaakt bier te monitoren met behulp van een eenvoudige trillingssensor (SW-420 NC). de toevoeging van de temperatuursensor (DHT22) dient om de temperatuur en vochtigheid te bewaken van de ruimte die geschikt is voor fermentatie. Deze gegevens worden beheerd door een nodemcu-kaart en gevisualiseerd via de Blynk-app die is aangesteld om IoT-oplossingen te ontwikkelen.

Stap 1: Verpakking:

verpakking
verpakking
verpakking
verpakking

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

Board en sensoren zijn ondergebracht in een eenvoudige aansluitdoos.

Stap 2: Sensor aan het werk

Sensor aan het werk
Sensor aan het werk
Sensor aan het werk
Sensor aan het werk

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

wat er gebeurt als de sensor op de bubbler wordt "gemonteerd" dat elke keer dat de CO2 wordt verdreven, de sensor trillingen opneemt die op de Blynk-app worden weergegeven

Stap 3: Coderen

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

de code om de werking van het geheel mogelijk te maken is de volgende die voldoende zal zijn om de Arduino IDE-software op de kaart te laden:

#include Adafruit_Sensor.h

#include DHT.h

#define BLYNK_PRINT Serie

#include ESP8266WiFi.h;

#include BlynkSimpleEsp8266.h;

#include SimpleTimer.h;

#include WidgetRTC.h;

vlotter lettura [50]; //dimensione Arrayper-media

int num_Letture=0; // progressieve letture

zweven tot_Letture=0; //somma letture

zweven media_Letture=0; //medialezing

int conteggio=0; //variabele in conteggio primario

//inizio dichiarazoni variabili per media continua

int i=0;

int cc=0;

int togli=0;

//fijne dichiarazioni variabili per media continua

int val; //variabele registrazione vibrazione

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

int vb=0; //Inizializzo vb een 0

int vbr=0; //Inizializzo vb een 0

int vbinit=0; //Inizializzo vbinit een 0

niet-ondertekende lange prima=0; //gebruik per swap min/max

lange Tempmax=660000; //gebruik per swap min/max

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

vlotter tmin=100; // impostazione onmogelijk per il temperatura minima

zweven umax=0; // impostazione onmogelijk per umidità massima

vlotter umin = 100; // impostazione onmogelijk per umidità minima

Maximaal snaren; //stringa visualizzata su Blynk

String munt; //stringa visualizzata su Blynk

Maximale snaar; //stringa visualizzata su Blynk

String min; //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) // routine per smaak reset da Blynk

{

int attiva = param.asInt();

als (attiva==1){

tmax=-100;

tmin = 100;

umax=0;

umin = 100;

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

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

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

min = "------------";

media_Letture=0;

tot_Letture=0;

num_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, min);

Blynk.virtualWrite(V1, conteggio);

Serial.println("Resetta");

vertraging (200);

Blynk.virtualWrite (V0, LAAG);

}

}

void sendSensor() //normale procedure voor lettura

{

String currentTime = String(uur()) + ":" + minuut();

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

float h = dht.readHumidity();

float t = dht.readTemperature();

if (isnan(h) || isnan(t)) {

Serial.println ("Kan niet lezen van DHT-sensor!");

led1.on();

opbrengst;

}

anders {

led1.off();

}

als (t > tmax) {

tmax=t;

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

}

als (t < tmin) {

tmin=t;

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

}

als (h > umax) {

umax=u;

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

}

als (h < umin) {

umin=u;

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

}

void calcolo_media() //procedure per registrazioni dat media

{

lettura[nume_Letture] = dht.readTemperature();

if (isnan(lettura[nume_Letture])) {

led1.on();

opbrengst;

}

//procedure media circolare

if (nume_Letture>=48){

togli=nume_Letture-48;

tot_Letture -=(lettura[togli]);

tot_Letture +=(lettura[nume_Letture]);

num_Letture=0; //setta a zero e riparte tutto

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

}

als (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;

aantal_Letture=nume_Letture+1;

Blynk.virtualWrite (V8, media_Letture);

Blynk.virtualWrite(V1, conteggio);

}

ongeldige setup()

{

Serieel.begin(115200);

Blynk.begin(auth, ssid, pass);

dht.begin();

timer.setInterval (10000, sendSensor); // lettura temperatura umidità ogni 5 min

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

}

lege lus()

{

Blynk.run();

timer.run();

lange adesso=millis();

val = digitalRead (vibr_pin);

vb=vb+val;

if (adesso - prima >= Tempmax)

{

vb=0;

vbinit=vb;

prima=adesso;

}

Aanbevolen: