Taula de continguts:
Vídeo: Birra_Monitor: 3 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
El projecte serve a monitorare la fermentazione della birra fatta in casa tramite un simple sensore di vibrazione (SW-420 NC). l'aggiunta del sensor di temperatura (DHT22) serve a monitorare temperature and umidità della stanza atta alla fermentazione. Aquests dati es gestiten des d'una targeta nodemcu i visualitzats mitjançant Blynk app deputata allo sviluppo di soluzioni IoT.
El projecte s’utilitza per controlar la fermentació de cervesa casolana mitjançant un senzill sensor de vibracions (SW-420 NC). l’addició del sensor de temperatura (DHT22) serveix per controlar la temperatura i la humitat de l’habitació adequada per a la fermentació. Aquestes dades es gestionen mitjançant una targeta nodemcu i es visualitzen a través de l’aplicació Blynk designada per desenvolupar solucions IoT.
Pas 1: Embalatge
Scheda e sensori sono alloggiate in a simple scatola di derivazione.
La placa i els sensors s’allotgen en una caixa de connexions senzilla.
Pas 2: sensor a la feina
quello che succede quando il sensore è "montato" sul gorgogliatore che ad ogni espulsione di CO2 il sensore registrerà delle vibrazioni que verranno visualized sull'app Blynk
què passa quan el sensor està "muntat" a la bombolla que cada vegada que s'expulsa el CO2 el sensor registra les vibracions que es mostraran a l'aplicació Blynk
Pas 3: Codi
el codi per permetre el funcionament del tot i el següent que es carregarà a la targeta tramide il software Arduino IDE
el codi per permetre el funcionament del conjunt és el següent que serà suficient per carregar a la targeta el programari Arduino IDE
#include Adafruit_Sensor.h
#include DHT.h
#defineix BLYNK_PRINT de sèrie
#include ESP8266WiFi.h;
#include BlynkSimpleEsp8266.h;
#include SimpleTimer.h;
#include WidgetRTC.h;
float lettura [50]; // dimensione Arrayper media
int nume_Letture = 0; // progressive letture
float tot_Letture = 0; // somma letture
float media_Letture = 0; // lletura mediàtica
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; // 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
prima sense signar llarg = 0; // útil per permuta mín. / màx
llarg Tempmax = 660000; // útil per permuta mín. / màx
float tmax = -100; // impostazione impossible per la temperatura màxima
float tmin = 100; // impostazione impossibile per la temperatura mínima
float umax = 0; // impostazione impossibile per umidità màxima
float umin = 100; // impostazione impossibile per umidità mínima
Maxt de cadena; // stringa visualizzata su Blynk
Menta de corda; // stringa visualizzata su Blynk
Cadena maxu; // stringa visualizzata su Blynk
Cadena 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);
Temporitzador SimpleTimer; // temporitzador
WidgetRTC rtc; // orologio di sistema Blynk
WidgetLED led1 (V15); // Led Blynk sul pin V15
BLYNK_CONNECTED () {
rtc.begin (); // avvio RTC
}
BLYNK_WRITE (V0) // rutina per tast restablert per Blynk
{
int attiva = param.asInt ();
if (attiva == 1) {
tmax = -100;
tmin = 100;
umax = 0;
umin = 100;
maxt = "------------";
mint = "------------";
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, menta);
Blynk.virtualWrite (V12, maxu);
Blynk.virtualWrite (V13, minu);
Blynk.virtualWrite (V1, conteggio);
Serial.println ("Resetta");
retard (200);
Blynk.virtualWrite (V0, BAIX);
}
}
void sendSensor () // norma procedura di lettura
{
Cadena currentTime = Cadena (hora ()) + ":" + minut ();
String currentDate = String (day ()) + "/" + month ();
flotador h = dht.readHumidity ();
flotador t = dht.readTemperature ();
if (isnan (h) || isnan (t)) {
Serial.println ("No s'ha pogut llegir del sensor DHT!");
led1.on ();
tornar;
}
més {
led1.off ();
}
if (t> tmax) {
tmax = t;
maxt = String (t) + "° C (" + CurrentTime + "-" + currentDate + ")";
}
si (t <tmin) {
tmin = t;
mint = String (t) + "° C (" + CurrentTime + "-" + currentDate + ")";
}
if (h> umax) {
umax = h;
maxu = String (h) + "% (" + CurrentTime + "-" + CurrentDate + ")";
}
if (h <umin) {
umin = h;
minu = String (h) + "% (" + TimeTime + "-" + CurrentDate + ")";
}
Blynk.virtualWrite (V5, h);
Blynk.virtualWrite (V6, t);
Blynk.virtualWrite (V7, vb);
Blynk.virtualWrite (V10, maxt);
Blynk.virtualWrite (V11, menta);
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 ();
tornar;
}
// procedura media circolare
if (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)
}
if (cc == 1) {
conteggio = 48; // DOPO le prime 24ore divideix sempre per 24ore (48mezzore)
}
més {
// 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);
}
configuració nul·la ()
{
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
}
bucle buit ()
{
Blynk.run ();
temporitzador.run ();
llarg adesso = millis ();
val = digitalRead (vibr_pin);
vb = vb + val;
if (adesso - prima> = Tempmax)
{
vb = 0;
vbinit = vb;
prima = adesso;
}
Recomanat:
Disseny de jocs en Flick en 5 passos: 5 passos
Disseny de jocs en Flick en 5 passos: Flick és una manera molt senzilla de fer un joc, sobretot com un trencaclosques, una novel·la visual o un joc d’aventures
Detecció de cares a Raspberry Pi 4B en 3 passos: 3 passos
Detecció de cares a Raspberry Pi 4B en 3 passos: en aquest manual, farem la detecció de cares a Raspberry Pi 4 amb Shunya O / S mitjançant la biblioteca Shunyaface. Shunyaface és una biblioteca de reconeixement / detecció de cares. El projecte té com a objectiu aconseguir una velocitat de detecció i reconeixement més ràpida amb
Com fer un comptador de passos ?: 3 passos (amb imatges)
Com fer un comptador de passos ?: Jo solia tenir un bon rendiment en molts esports: caminar, córrer, anar en bicicleta, jugar a bàdminton, etc. M’encanta viatjar poc després. Bé, mireu el meu ventre corpulent … Bé, de totes maneres, decideixo tornar a començar a fer exercici. Quin equip he de preparar?
Mirall de vanitat de bricolatge en passos senzills (amb llums de tira LED): 4 passos
Mirall de vanitat de bricolatge en passos senzills (amb llums de tires LED): en aquest post vaig crear un mirall de vanitat de bricolatge amb l'ajut de les tires LED. És molt genial i també heu de provar-les
Arduino Halloween Edition: pantalla emergent de zombis (passos amb imatges): 6 passos
Arduino Halloween Edition: pantalla emergent de zombis (passos amb imatges): voleu espantar els vostres amics i fer soroll a Halloween? O simplement voleu fer una bona broma? Aquesta pantalla emergent de Zombies ho pot fer! En aquest instructiu us ensenyaré a fer zombis fàcilment amb Arduino. L'HC-SR0