Tartalomjegyzék:
Videó: Birra_Monitor: 3 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
A program egy monitorare la fermentazione della birra fatta-t szolgál fel a casa tramite un semplice sensore di vibrazione (SW-420 NC). l'aggiunta del sensore di temperatura (DHT22) monitorare temperatura and umidità della stanza atta alla fermentazione. Questi dati vengono gestiti da una scheda nodemcu and visualizzati tramite Blynk app deputata all sviluppo di soluzioni IoT.
A projekt a házi sör erjedésének ellenőrzésére szolgál egy egyszerű rezgésérzékelő (SW-420 NC) segítségével. a hőmérséklet -érzékelő (DHT22) hozzáadásával az erjesztésre alkalmas helyiség hőmérsékletét és páratartalmát figyelheti. Ezeket az adatokat egy nodemcu kártya kezeli, és az IoT -megoldások kifejlesztésére kijelölt Blynk alkalmazáson keresztül jeleníti meg.
1. lépés: Csomagolás
Scheda e sensori sono alloggiate in una semplice scatola di derivazione.
A tábla és az érzékelők egy egyszerű csatlakozódobozban vannak elhelyezve.
2. lépés: Érzékelő munka közben
quello che succede quando il sensore è "montato" sul gorgogliatore che ad ogni espulsione of CO2 il sensore registrerà delle vibrazioni che Israno visualizzate sull'app Blynk
mi történik, ha az érzékelőt "felhelyezik" a buborékfóliára, és hogy minden alkalommal, amikor a CO2 kiürül, az érzékelő rögzíti a rezgéseket, amelyek megjelennek a Blynk alkalmazásban
3. lépés: Kód
kód a permetteren, illesztőprogram a tutto -ban, a keverék, amely a karikatúrát tartalmazza, és a szoftver Arduino IDE szoftvere.
a kód, amely lehetővé teszi az egész működését, a következő, amely elegendő az Arduino IDE szoftver betöltéséhez a kártyára
#include Adafruit_Sensor.h
#a DHT.h
#define BLYNK_PRINT sorozat
#include ESP8266WiFi.h;
#include BlynkSimpleEsp8266.h;
#include SimpleTimer.h;
#include WidgetRTC.h;
float lettura [50]; // dimensione Arrayper media
int nume_Letture = 0; // progresszív letture
float tot_Letture = 0; // somma letture
float media_Letture = 0; // média letture
int conteggio = 0; // variabile di conteggio primario
// inizio dichiarazioni variabili per media continua
int i = 0;
int cc = 0;
int togli = 0;
// finom 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
előjel nélküli hosszú prima = 0; // utile per swap min/max
hosszú Tempmax = 660000; // utile per swap min/max
úszó tmax = -100; // impostazione impossibile per la temperatura massima
úszó tmin = 100; // impostazione impossibile per il Temperatura minimum
úszó umax = 0; // impostazione impossibile per umidità massima
úszó umin = 100; // impostazione impossibile per umidità minimum
String maxt; // stringa visualizzata su Blynk
Húr menta; // stringa visualizzata su Blynk
String maxu; // stringa visualizzata su Blynk
String minu; // stringa visualizzata su Blynk
char auth = "a °℃ ° ° ° ° °"
char ssid = "T ° ° ° ° ° °" "" 9 "; // wifi
char pass = "O ° ° ° ° ° ° °" ""; // psw
#define DHTPIN 2 // pin sensor DHT
#define DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
SimpleTimer időzítő; //időzítő
WidgetRTC rtc; // orologio di sistema Blynk
WidgetLED led1 (V15); // Led Blynk sul pin V15
BLYNK_CONNECTED () {
rtc.begin (); // avvio RTC
}
BLYNK_WRITE (V0) // rutin a Blynk visszaállításához
{
int attiva = param.asInt ();
ha (attiva == 1) {
tmax = -100;
tmin = 100;
umax = 0;
umin = 100;
maxt = "------------";
menta = "------------";
maxu = "------------";
minu = "------------";
media_Letture = 0;
tot_Letture = 0;
szám_Leírás = 0;
conteggio = 0;
cc = 0;
Soros.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");
késleltetés (200);
Blynk.virtualWrite (V0, LOW);
}
}
void sendSensor () // normale procedura di lettura
{
String currentTime = Karakterlánc (óra ()) + ":" + perc ();
String currentDate = Karakterlánc (nap ()) + "/" + hónap ();
float h = dht.readHumidity ();
float t = dht.readTemperature ();
if (isnan (h) || isnan (t)) {
Serial.println ("Nem sikerült olvasni a DHT érzékelőből!");
led1.on ();
Visszatérés;
}
más {
led1.off ();
}
if (t> tmax) {
tmax = t;
maxt = String (t) + "° C (" + currentTime + "-" + currentDate + ")";
}
ha (t <tmin) {
tmin = t;
mint = String (t) + "° C (" + currentTime + "-" + currentDate + ")";
}
if (h> umax) {
umax = h;
maxu = Karakterlánc (h) + "% (" + currentTime + "-" + currentDate + ")";
}
ha (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, menta);
Blynk.virtualWrite (V12, maxu);
Blynk.virtualWrite (V13, minu);
}
void calcolo_media () // eljárás a regisztrációs adatok adathordozóján
{
lettura [nume_Letture] = dht.readTemperature ();
if (isnan (lettura [szám_betű]))) {
led1.on ();
Visszatérés;
}
// procedura media circolare
if (nume_Letture> = 48) {
togli = nume_Letture-48;
tot_Letture -= (lettura [togli]);
tot_Letture += (lettura [szám_betű]);
szám_Leírás = 0; // setta a zero e riparte tutto
cc = 1; // identifika primo passaggio dopo 48 letture (24ore)
}
ha (cc == 1) {
conteggio = 48; // DOPO le prime 24ore divide semper per 24ore (48mezzore)
}
más{
// média prima dello scadere delle 24ore
tot_Letture += (lettura [szám_betű]);
conteggio = conteggio+1;
}
media_Letture = tot_Letture/conteggio;
szám_Leírás = szám_Leírás+1;
Blynk.virtualWrite (V8, media_Letture);
Blynk.virtualWrite (V1, conteggio);
}
üres beállítás ()
{
Sorozat.kezdet (115200);
Blynk.begin (auth, ssid, pass);
dht.begin ();
timer.setInterval (10000, sendSensor); // lettura temperatura umidità ogni 5 perc
timer.setInterval (1800000, calcolo_media); // lettura e media ogni 30min
}
üres hurok ()
{
Blynk.run ();
timer.run ();
hosszú adesso = millis ();
val = digitalRead (vibr_pin);
vb = vb+val;
ha (adesso - prima> = Tempmax)
{
vb = 0;
vbinit = vb;
prima = adesso;
}
Ajánlott:
DC - DC feszültség Lépés lekapcsoló mód Buck feszültségátalakító (LM2576/LM2596): 4 lépés
DC-DC feszültség Lépés lekapcsoló üzemmód Buck feszültségátalakító (LM2576/LM2596): A rendkívül hatékony bakkonverter készítése nehéz feladat, és még a tapasztalt mérnököknek is többféle kivitelre van szükségük, hogy a megfelelőt hozzák létre. egy DC-DC áramátalakító, amely csökkenti a feszültséget (miközben növeli
Akusztikus levitáció az Arduino Uno-val Lépésről lépésre (8 lépés): 8 lépés
Akusztikus lebegés az Arduino Uno-val Lépésről lépésre (8 lépés): ultrahangos hangátvivők L298N Dc női adapter tápegység egy egyenáramú tűvel Arduino UNOBreadboard és analóg portok a kód konvertálásához (C ++)
Élő 4G/5G HD videó streamelés DJI drónról alacsony késleltetéssel [3 lépés]: 3 lépés
Élő 4G/5G HD videó streaming a DJI Drone-tól alacsony késleltetéssel [3 lépés]: Az alábbi útmutató segít abban, hogy szinte bármilyen DJI drónról élő HD minőségű videó streameket kapjon. A FlytOS mobilalkalmazás és a FlytNow webes alkalmazás segítségével elindíthatja a videó streamingjét a drónról
Bolt - DIY vezeték nélküli töltő éjszakai óra (6 lépés): 6 lépés (képekkel)
Bolt - DIY vezeték nélküli töltés éjszakai óra (6 lépés): Az induktív töltés (más néven vezeték nélküli töltés vagy vezeték nélküli töltés) a vezeték nélküli áramátvitel egyik típusa. Elektromágneses indukciót használ a hordozható eszközök áramellátásához. A leggyakoribb alkalmazás a Qi vezeték nélküli töltő
4 lépés az akkumulátor belső ellenállásának méréséhez: 4 lépés
4 lépés az akkumulátor belső ellenállásának mérésére: Íme a 4 egyszerű lépés, amelyek segítenek mérni az akkumulátor belső ellenállását