Sommario:
Video: Birra_Monitor: 3 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
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) serve a monitorare temperatura e umidità della stanza atta alla fermentazione. Questi dati vengono gestiti da una scheda nodemcu e visualizzati tramite Blynk app deputata allo sviluppo di soluzioni IoT.
Il progetto è utilizzato per monitorare la fermentazione della birra fatta in casa utilizzando un semplice sensore di vibrazione (SW-420 NC). l'aggiunta del sensore di temperatura (DHT22) serve per monitorare la temperatura e l'umidità del locale adatto alla fermentazione. Questi dati vengono gestiti da una scheda nodemcu e visualizzati tramite l'app Blynk incaricata di sviluppare soluzioni IoT.
Passaggio 1: imballaggio
Scheda e sensori sono alloggiate in una semplice scatola di derivazione.
Scheda e sensori sono alloggiati in una semplice scatola di giunzione.
Passaggio 2: sensore al lavoro
quello che succede quando il sensore è "montato" sul gorgogliatore che ad ogni espulsione di CO2 il sensore registrerà delle vibrazioni che verranno sull'app Blynk
cosa succede quando il sensore è "montato" sul gorgogliatore che ogni volta che viene espulsa la CO2 il sensore registrerà delle vibrazioni che verranno visualizzate sull'app Blynk
Passaggio 3: codice
il codice per consentire il funzionamento del tutto è il seguente che basterà caricare sulla scheda tramide il software Arduino IDE
il codice per permettere il funzionamento del tutto è il seguente che basterà per caricare sulla scheda il software Arduino IDE
#include Adafruit_Sensor.h
#include DHT.h
#define BLYNK_PRINT seriale
#include ESP8266WiFi.h;
#include BlynkSimpleEsp8266.h;
#include SimpleTimer.h;
#include WidgetRTC.h;
galleggiante lettura[50]; //dimensione Arrayper media
int numero_Lettura=0; //lettura progressiva
float tot_Letture=0; //somma letture
float media_Letture=0; //lettura mediatica
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
valore int; //variabile 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
unsigned long prima=0; //utile per swap min/max
Tempmax lungo=660000; //utile per swap min/max
float tmax=-100; //impostazione impossibile per la temperatura massima
float tmin=100; //impostazione impossibile per la temperatura minima
float umax=0; //impostazione impossibile per umidità massima
galleggiante umin=100; //impostazione impossibile per umidità minima
Massimo stringa; //stringa su Blynk
menta stringa; //stringa su Blynk
Stringa massima; //stringa su Blynk
Stringa min; //stringa 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);
Timer semplice; //Timer
WidgetRTC rtc; //orologio di sistema Blynk
LED widget led1(V15); //Led Blynk sul pin V15
BLYNK_CONNECTED () {
rtc.begin(); //avvio RTC
}
BLYNK_WRITE(V0) //routine per tasto reset da Blynk
{
int attiva = param.asInt();
se (attiva==1){
tmax=-100;
min=100;
umax=0;
umin=100;
maxt= "------------";
mint= "------------";
maxu= "------------";
minu= "------------";
media_Lettura=0;
tot_Lettura=0;
numero_Lettura = 0;
conteggio = 0;
cc=0;
Serial.println(conteggio);
Blynk.virtualWrite(V8, media_Letture);
Blynk.virtualWrite(V10, maxt);
Blynk.virtualWrite(V11, nuovo);
Blynk.virtualWrite(V12, maxu);
Blynk.virtualWrite(V13, minu);
Blynk.virtualWrite(V1, conteggio);
Serial.println("Resetta");
ritardo(200);
Blynk.virtualWrite(V0, LOW);
}
}
void sendSensor() //normale procedura di lettura
{
String currentTime = String(hour()) + ":" + minute();
String data corrente = String(giorno()) + "/" + mese();
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Impossibile leggere dal sensore DHT!");
led1.on();
Restituzione;
}
altro {
led1.off();
}
se (t > tmax) {
tmax=t;
maxt= String(t) + "°C (" + CurrentTime + "-" +currentDate+ ")";
}
se (t < tmin) {
min=t;
mint= String(t) + "°C (" + CurrentTime + "-" +currentDate+ ")";
}
se (h > umax) {
umax=h;
maxu= String(h) + "% (" + currentTime + "-" +currentDate+ ")";
}
if (h < umin) {
umino=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, nuovo);
Blynk.virtualWrite(V12, maxu);
Blynk.virtualWrite(V13, minu);
}
void calcolo_media() //procedura per registrazione dati media
{
lettura[nume_Letture] = dht.readTemperature();
if (isnan(lettura[nume_Letture])) {
led1.on();
Restituzione;
}
//procedura media circolare
if (nume_Lettura>=48){
togli=nume_Letture-48;
tot_Letture -=(lettura[togli]);
tot_Letture +=(lettura[nume_Letture]);
numero_Lettura=0; //setta a zero e riparte tutto
cc=1; //identifica primo passaggio dopo 48 letture (24ore)
}
se (cc==1) {
conteggio=48; //DOPO le prime 24ore divide sempre per 24ore (48mezzore)
}
altro{
//media prima dello scadere delle 24ore
tot_Letture +=(lettura[nume_Letture]);
conteggio=conteggio+1;
}
media_Letture=tot_Letture/conteggio;
num_Letture=nume_Letture+1;
Blynk.virtualWrite(V8, media_Letture);
Blynk.virtualWrite(V1, conteggio);
}
configurazione nulla()
{
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
}
ciclo vuoto()
{
Blynk.run();
timer.run();
lungo adesso=millis();
val = digitalRead (vibr_pin);
vb=vb+val;
if (adesso - prima >= Tempmax)
{
vb=0;
vbinit=vb;
prima=adesso;
}
Consigliato:
Come realizzare un'antenna doppia biQuade 4G LTE Semplici passaggi: 3 passaggi
Come realizzare un'antenna doppia biQuade 4G LTE Semplici passaggi: La maggior parte delle volte che ho affrontato, non ho una buona potenza del segnale per i miei lavori quotidiani. Così. Cerco e provo diversi tipi di antenna ma non funziona. Dopo aver perso tempo ho trovato un'antenna che spero di realizzare e testare, perché è principio costruttivo non
Rilevamento del volto su Raspberry Pi 4B in 3 passaggi: 3 passaggi
Rilevamento del volto su Raspberry Pi 4B in 3 passaggi: In questo Instructable eseguiremo il rilevamento del volto su Raspberry Pi 4 con Shunya O/S utilizzando la libreria Shunyaface. Shunyaface è una libreria di riconoscimento/rilevamento facciale. Il progetto mira a raggiungere la massima velocità di rilevamento e riconoscimento con
Specchio per il trucco fai-da-te in semplici passaggi (usando le strisce luminose a LED): 4 passaggi
Specchio per il trucco fai-da-te in semplici passaggi (usando le strisce luminose a LED): in questo post, ho realizzato uno specchio per il trucco fai-da-te con l'aiuto delle strisce LED. Sono davvero fantastici e devi provarli anche tu
Gioca a Doom sul tuo iPod in 5 semplici passaggi!: 5 passaggi
Gioca a Doom sul tuo iPod in 5 semplici passaggi!: una guida passo passo su come eseguire il dual-boot di Rockbox sul tuo iPod per giocare a Doom e a dozzine di altri giochi. È qualcosa di veramente facile da fare, ma molte persone rimangono stupite quando mi vedono giocare a doom sul mio iPod e si confondono con le istruzioni
Come installare plugin in WordPress in 3 passaggi: 3 passaggi
Come installare plugin in WordPress in 3 passaggi: In questo tutorial ti mostrerò i passaggi essenziali per installare il plugin wordpress sul tuo sito web. Fondamentalmente puoi installare i plugin in due modi diversi. Il primo metodo è tramite ftp o tramite cpanel. Ma non lo elencherò perché è davvero completo