INHOUDSOPGAWE:
Video: Birra_Monitor: 3 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
Die program bedien 'n monitor met la fermentazione della birra fatta in casa tramite un semplice sensore di vibrazione (SW-420 NC). Die temperatuur van die sensor (DHT22) dien vir 'n monitor temperatuur. U kan hierdie funksie vir een of meer tydskema's en visuele weergawes van die Blynk -app in u IoT -formaat aflaai.
Die projek word gebruik om die fermentasie van tuisgemaakte bier te monitor met behulp van 'n eenvoudige vibrasiesensor (SW-420 NC). die toevoeging van die temperatuursensor (DHT22) dien om die temperatuur en humiditeit van die kamer wat geskik is vir fermentasie te monitor. Hierdie data word bestuur deur 'n nodemcu -kaart en gevisualiseer deur die Blynk -app wat aangestel is om IoT -oplossings te ontwikkel.
Stap 1: Verpakking
Skryf e sensori sono alloggiate in una semplice scatola di derivazione.
Bord en sensors word in 'n eenvoudige aansluitkas gehuisves.
Stap 2: Sensor by die werk
quello che succede quando il sensore è "montato" sul gorgogliatore che ad andni espulsione di CO2 il sensore registrerà delle vibrazioni che verranno visualizzate sull'app Blynk
wat gebeur as die sensor op die borrel gemonteer word, dat die sensor elke keer as die CO2 uitgestoot word, vibrasies opneem wat op die Blynk -app vertoon sal word
Stap 3: Kodeer
die kode vir permanente funksies van die tutto è il seguente che basterà caricare sulla scheda tramide il software Arduino IDE
die kode om die funksionering van die geheel moontlik te maak, is die volgende om die Arduino IDE -sagteware op die kaart te laai
#sluit Adafruit_Sensor.h in
#sluit DHT.h in
#define BLYNK_PRINT reeks
#sluit ESP8266WiFi.h in;
#sluit BlynkSimpleEsp8266.h in;
#sluit SimpleTimer.h in;
#sluit WidgetRTC.h in;
float lettura [50]; // dimensione Arrayper media
int nume_Letture = 0; // progressivo letture
float tot_Letture = 0; // somma blaarslaai
float media_Letture = 0; // mediaverhuring
int conteggio = 0; // variabile di conteggio primario
// inizio dichiarazioni variabili per media continua
int i = 0;
int cc = 0;
int togli = 0;
// fyn dichiarazioni variabili per media continua
int val; // veranderlike registrazione vibrazione
int vibr_pin = 5; // Piedino x Sensore di Vibrazione D1
int vb = 0; // Inisializzo vb a 0
int vbr = 0; // Inisializzo vb a 0
int vbinit = 0; // Inisializzo vbinit a 0
ongetekende lang prima = 0; // gebruik per ruil min/maks
lang Tempmax = 660000; // gebruik per ruil min/maks
float tmax = -100; // impostazione impossibile per la temperatura massima
dryf tmin = 100; // impostazione impossibile per il temperatura minima
float umax = 0; // impostazione impossibile per umidità massima
float umin = 100; // impostazione impossibile per umidità minima
Stringmaksel; // stringa visualizzata su Blynk
Stringmunt; // stringa visualizzata su Blynk
String maxu; // stringa visualizzata su Blynk
String 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
#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) // roetine vir herstel deur Blynk
{
int attiva = param.asInt ();
as (attiva == 1) {
tmax = -100;
tmin = 100;
umax = 0;
umin = 100;
maxt = "------------";
mint = "------------";
maxu = "------------";
minu = "------------";
media_Leture = 0;
tot_Leture = 0;
nume_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, minu);
Blynk.virtualWrite (V1, conteggio);
Serial.println ("Resetta");
vertraging (200);
Blynk.virtualWrite (V0, LOW);
}
}
void sendSensor () // normale prosedura di lettura
{
String currentTime = String (hour ()) + ":" + minute ();
String currentDate = String (dag ()) + "/" + maand ();
float h = dht.readHumidity ();
float t = dht.readTemperature ();
as (isnan (h) || isnan (t)) {
Serial.println ("Kan nie lees van DHT -sensor nie!");
led1.on ();
terugkeer;
}
anders {
led1.off ();
}
as (t> tmax) {
tmax = t;
maxt = String (t) + "° C (" + currentTime + "-" + currentDate + ")";
}
as (t <tmin) {
tmin = t;
mint = String (t) + "° C (" + currentTime + "-" + currentDate + ")";
}
as (h> umax) {
umax = h;
maxu = String (h) + "% (" + currentTime + "-" + currentDate + ")";
}
as (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, mint);
Blynk.virtualWrite (V12, maxu);
Blynk.virtualWrite (V13, minu);
}
void calcolo_media () // procedure for registrazioni dati media
{
lettura [nume_Letture] = dht.readTemperature ();
as (isnan (lettura [nume_Letture])) {
led1.on ();
terugkeer;
}
// prosedure media circolare
as (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)
}
as (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;
nume_Letture = nume_Letture+1;
Blynk.virtualWrite (V8, media_Letture);
Blynk.virtualWrite (V1, conteggio);
}
leemte opstelling ()
{
Serial.begin (115200);
Blynk.begin (auth, ssid, pass);
dht.begin ();
timer.setInterval (10000, sendSensor); // lettura temperatuur gedurende 5 minute
timer.setInterval (1800000, calcolo_media); // lettura e media ogni 30min
}
leemte lus ()
{
Blynk.run ();
timer.run ();
lang adesso = millis ();
val = digitalRead (vibr_pin);
vb = vb+val;
as (adesso - prima> = Tempmax)
{
vb = 0;
vbinit = vb;
prima = adesso;
}
Aanbeveel:
Spelontwerp in vyf stappe: 5 stappe
Spelontwerp in fliek in 5 stappe: Flick is 'n baie eenvoudige manier om 'n speletjie te maak, veral iets soos 'n legkaart, visuele roman of avontuurlike spel
Gesigsopsporing op Raspberry Pi 4B in 3 stappe: 3 stappe
Gesigsopsporing op Raspberry Pi 4B in 3 stappe: in hierdie instruksies gaan ons gesigsopsporing uitvoer op Raspberry Pi 4 met Shunya O/S met behulp van die Shunyaface-biblioteek. Shunyaface is 'n biblioteek vir gesigherkenning/opsporing. Die projek het ten doel om die vinnigste opsporing en herkenningssnelheid te bereik met
DIY Vanity Mirror in eenvoudige stappe (met LED -strookligte): 4 stappe
DIY Vanity Mirror in eenvoudige stappe (met behulp van LED Strip Lights): In hierdie pos het ek 'n DIY Vanity Mirror gemaak met behulp van die LED strips. Dit is regtig cool, en u moet dit ook probeer
Arduino Halloween Edition - Zombies pop -out skerm (stappe met foto's): 6 stappe
Arduino Halloween Edition - Zombies pop -out skerm (stappe met foto's): wil u u vriende skrik en 'n skreeu geraas maak tydens Halloween? Of wil u net 'n goeie grap maak? Hierdie pop-up skerm van Zombies kan dit doen! In hierdie instruksies sal ek u leer hoe u maklik Zombies kan spring deur Arduino te gebruik. Die HC-SR0
Speel Doom op u iPod in 5 maklike stappe !: 5 stappe
Speel Doom op u iPod in 5 maklike stappe !: 'n Stap-vir-stap gids oor hoe u Rockbox op u iPod kan dubbellaai om Doom en tientalle ander speletjies te speel. Dit is iets baie maklik om te doen, maar baie mense staan nog steeds verbaas as hulle sien hoe ek op my iPod doom speel en deurmekaar raak met die instruksies