Table des matières:
Vidéo: Birra_Monitor : 3 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
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) sert un monitorare temperature e umidità della sanza atta alla fermentazione. Questi dati vengono gestiti da una scheda nodemcu e visualizzati tramite Blynk app deputata allo sviluppo di soluzioni IoT.
Le projet est utilisé pour surveiller la fermentation de la bière maison à l'aide d'un simple capteur de vibration (SW-420 NC). l'ajout du capteur de température (DHT22) sert à surveiller la température et l'humidité de la pièce propice à la fermentation. Ces données sont gérées par une carte nodemcu et visualisées via l'application Blynk désignée pour développer des solutions IoT.
Étape 1: Emballage
Scheda e sensori sono alloggiate in una semplice scatola di derivazione.
La carte et les capteurs sont logés dans une simple boîte de jonction.
Étape 2: Capteur au travail
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
que se passe-t-il lorsque le capteur est "monté" sur le barboteur qu'à chaque fois que le CO2 est expulsé le capteur enregistrera des vibrations qui seront affichées sur l'application Blynk
Étape 3: Coder
il codice per permettere il funzionamento del tutto è il seguente che basterà caricare sulla scheda tramide il software Arduino IDE
le code pour permettre le fonctionnement de l'ensemble est le suivant qui suffira pour charger sur la carte le logiciel Arduino IDE
#include Adafruit_Sensor.h
#include DHT.h
#define BLYNK_PRINT Série
#include ESP8266WiFi.h;
#include BlynkSimpleEsp8266.h;
#include SimpleTimer.h;
#include WidgetRTC.h;
flotteur lettur[50]; //dimensione Arrayper media
int nume_Letture=0; //lettre progressiste
float tot_Letture=0; //somme leçon
float media_Letture=0; //lettre médiatique
int conteggio=0; //variabile di conteggio primario
//inizio dichiarazioni variabili per media continua
entier i=0;
int cc=0;
int togli=0;
//fine dichiarazioni variabili per media continua
valeur int; //variabile registrazione vibrazione
int vibr_pin=5; //Piedino x Sensore di Vibrazione D1
entier vb=0; //Inizializzo vb a 0
entier vbr=0; //Inizializzo vb a 0
int vbinit=0; //Inizializzo vbinit a 0
non signé long prima=0; //utile par échange min/max
long Tempmax=660000; //utile par échange min/max
flottant tmax=-100; //impostazione impossible per la temperatura massima
flottant tmin=100; //impostazione impossible per il temperatura minima
flotteur umax=0; //impostazione impossible per umidità massima
flottant umin=100; //impostazione impossible per umidità minima
Chaîne maxt; //chaîne de visualisation sur Blynk
Menthe à cordes; //chaîne de visualisation sur Blynk
Chaîne maxu; //chaîne de visualisation sur Blynk
Chaîne moins; //chaîne de visualisation sur Blynk
char auth = "a°°°°°°°°°°°°°d";//token Blynk
char ssid = "T°°°°°°°°°°°°°°9"; //Wifi
car pass = "O°°°°°°°°°°°°R"; //psw
#define DHTPIN 2 //pin sensore DHT
#définir DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
minuteur SimpleTimer; //minuteur
WidgetRTC rtc; //orologio di sistema Blynk
WidgetLED led1(V15); //Led Blynk sul broche V15
BLYNK_CONNECTÉ () {
rtc.begin(); //avvio RTC
}
BLYNK_WRITE(V0) //routine par goût réinitialiser da Blynk
{
int attiva = param.asInt();
si (attiva==1){
tmax=-100;
tmin=100;
umax=0;
um = 100;
maxt= "------------";
menthe= "------------";
maxu= "------------";
minu= "------------";
media_Letture=0;
tot_Letture=0;
nombre_Letture = 0;
contege = 0;
cc=0;
Serial.println(conteggio);
Blynk.virtualWrite(V8, media_Letture);
Blynk.virtualWrite(V10, maxt);
Blynk.virtualWrite(V11, menthe);
Blynk.virtualWrite(V12, maxu);
Blynk.virtualWrite(V13, moins);
Blynk.virtualWrite(V1, conteggio);
Serial.println("Reset");
retard (200);
Blynk.virtualWrite(V0, LOW);
}
}
void sendSensor() //procédure normale de lettrage
{
String currentTime = String(hour()) + ":" + minute();
String currentDate = String(day()) + "/" + month();
float h = dht.readHumidity();
float t = dht.readTemperature();
si (isnan(h) || isnan(t)) {
Serial.println("Impossible de lire à partir du capteur DHT !");
led1.on();
revenir;
}
autre {
led1.off();
}
si (t > tmax) {
tmax=t;
maxt= Chaîne(t) + "°C (" + CurrentTime + "-" +currentDate+ ")";
}
si (t < tmin) {
tmin=t;
mint= String(t) + "°C (" + currentTime + "-" +currentDate+ ")";
}
si (h > umax) {
umax=h;
maxu= String(h) + "% (" + currentTime + "-" +currentDate+ ")";
}
si (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, menthe);
Blynk.virtualWrite(V12, maxu);
Blynk.virtualWrite(V13, moins);
}
void calcolo_media() //procedura per registrazioni dati media
{
lettura[nume_Letture] = dht.readTemperature();
if (isnan(lettura[nume_Letture])) {
led1.on();
revenir;
}
//procedura media circolare
if (nume_Letture>=48){
togli=nume_Letture-48;
tot_Letture -=(lettre[togli]);
tot_Letture +=(lettura[nume_Letture]);
nume_Letture=0; //setta a zero e riparte tutto
cc=1; //identifica primo passaggio dopo 48 letture (24ore)
}
si (cc==1) {
contege=48; //DOPO le premier 24ore divise semper par 24ore (48mezzore)
}
autre{
//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);
}
void setup()
{
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
}
boucle vide()
{
Blynk.run();
timer.run();
long adesso=millis();
val = digitalRead (vibr_pin);
vb=vb+val;
si (adesso - prima >= Tempmax)
{
vb=0;
vbinit=vb;
prima=adesso;
}
Conseillé:
Comment fabriquer une antenne double biquade 4G LTE en quelques étapes faciles : 3 étapes
Comment créer une antenne double biquade 4G LTE Étapes faciles : La plupart du temps, je n'ai pas une bonne force de signal pour mes travaux quotidiens. Donc. Je recherche et essaye différents types d'antenne mais ne fonctionne pas. Après une perte de temps, j'ai trouvé une antenne que j'espère fabriquer et tester, car ce n'est pas un principe de construction
Game Design dans Flick en 5 étapes : 5 étapes
Game Design dans Flick en 5 étapes : Flick est un moyen très simple de créer un jeu, en particulier quelque chose comme un puzzle, un roman visuel ou un jeu d'aventure
Système d'alerte de stationnement en marche arrière Arduino - Étapes par étape : 4 étapes
Système d'alerte de stationnement en marche arrière Arduino | Étapes par étape : dans ce projet, je vais concevoir un circuit de capteur de stationnement inversé pour voiture Arduino simple à l'aide d'un capteur à ultrasons Arduino UNO et HC-SR04. Ce système d'alerte de marche arrière basé sur Arduino peut être utilisé pour une navigation autonome, une télémétrie de robot et d'autres r
Détection de visage sur Raspberry Pi 4B en 3 étapes : 3 étapes
Détection de visage sur Raspberry Pi 4B en 3 étapes : dans ce Instructable, nous allons effectuer une détection de visage sur Raspberry Pi 4 avec Shunya O/S en utilisant la bibliothèque Shunyaface. Shunyaface est une bibliothèque de reconnaissance/détection de visage. Le projet vise à atteindre la vitesse de détection et de reconnaissance la plus rapide avec
Miroir de vanité de bricolage en étapes faciles (à l'aide de bandes lumineuses à LED): 4 étapes
Miroir de vanité DIY en étapes faciles (à l'aide de bandes lumineuses à LED) : Dans cet article, j'ai fabriqué un miroir de vanité DIY à l'aide des bandes LED. C'est vraiment cool et vous devez les essayer aussi