Sisällysluettelo:
Video: Birra_Monitor: 3 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Tarkoituksena on tarjota monitorare la fermentazione della birra fatta in casa tramite un semplice sensore di vibrazione (SW-420 NC). L'aggiunta del sensore di temperatura (DHT22) palvelee valvottua lämpötilaa ja umidità della stanza atta alla fermentazione. Questi data vengono gestiti da una a scheda nodemcu and visualizzati tramite Blynk app depot all sviluppo di soluzioni IoT.
Projektia käytetään kotitekoisen oluen käymisen seuraamiseen yksinkertaisella tärinäanturilla (SW-420 NC). Lämpötila -anturin (DHT22) lisäys valvoo käymiseen sopivan huoneen lämpötilaa ja kosteutta. Näitä tietoja hallinnoi nodemcu -kortti ja ne visualisoidaan Blynk -sovelluksen kautta, joka on nimetty kehittämään IoT -ratkaisuja.
Vaihe 1: Pakkaus
Järjestelmä ja aistinvarainen liittävät yhteen yksinkertaisen scatola di derivazionen.
Kortti ja anturit on sijoitettu yksinkertaiseen liitäntärasiaan.
Vaihe 2: Anturi työssä
quello che succede quando il sensore è "montato" sul gorgogliatore che ad ogni espulsione di CO2 il sensore rekisteröinti delle vibrazioni che merkno visualizzate sull'app Blynk
mitä tapahtuu, kun anturi on "asennettu" kuplittimeen, että joka kerta kun CO2 poistetaan, anturi tallentaa värähtelyjä, jotka näytetään Blynk -sovelluksessa
Vaihe 3: Koodi
il -koodia permettereä varten
koodi, joka mahdollistaa koko toiminnan, on seuraava, joka riittää lataamaan Arduino IDE -ohjelmiston kortille
#Sisällytä Adafruit_Sensor.h
#sis. DHT.h
#define BLYNK_PRINT -sarja
#sisältää ESP8266WiFi.h;
#include BlynkSimpleEsp8266.h;
#sisältää SimpleTimer.h;
#include WidgetRTC.h;
float lettura [50]; // dimensione Arrayper media
int nume_Letture = 0; // progressivo letture
float tot_Letture = 0; // somma letture
float media_Letture = 0; // median anture
int conteggio = 0; // variabile di conteggio primario
// inizio dichiarazioni variabili per media continua
int i = 0;
int cc = 0;
int togli = 0;
// hienoja dichiarazioni -muuttujia tiedotusvälineiden mukaan
int val; // muuttujan rekisteröinti 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
allekirjoittamaton pitkä prima = 0; // utile per swap min/max
pitkä Tempmax = 660000; // utile per swap min/max
kelluva tmax = -100; // impostazione impossibile per la temperatura massima
kelluva tmin = 100; // impostazione impossibile per il temperatura minimum
kellua umax = 0; // impostazione impossibile per umidità massima
kelluva umin = 100; // impostazione impossibile per umidità minimum
Jousimaxt; // stringa visualizzata su Blynk
String minttu; // stringa visualizzata su Blynk
Merkkijono maxu; // stringa visualizzata su Blynk
Merkkijono minu; // stringa visualizzata su Blynk
char auth = a ° ° ° ° ° °; //; // token Blynk
char ssid = "T ° ° ° ° ° °" 9 "; // wifi
char pass = "O ° ° ° ° ° °" "; // psw
#define DHTPIN 2 // pin sensore DHT
#define DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
SimpleTimer -ajastin; //ajastin
WidgetRTC rtc; // orologio di sistema Blynk
WidgetLED led1 (V15); // Led Blynk sul pin V15
BLYNK_CONNECTED () {
rtc.begin (); // avvio RTC
}
BLYNK_WRITE (V0) // rutiini Blynkin nollaamiseksi
{
int attiva = param.asInt ();
jos (attiva == 1) {
tmax = -100;
tmin = 100;
umax = 0;
umin = 100;
maxt = "------------";
minttu = "------------";
maxu = "------------";
minu = "------------";
media_Leikka = 0;
tot_Letture = 0;
nume_Letture = 0;
conteggio = 0;
cc = 0;
Sarja.println (conteggio);
Blynk.virtualWrite (V8, media_Letture);
Blynk.virtualWrite (V10, maxt);
Blynk.virtualWrite (V11, minttu);
Blynk.virtualWrite (V12, maxu);
Blynk.virtualWrite (V13, minu);
Blynk.virtualWrite (V1, conteggio);
Serial.println ("Resetta");
viive (200);
Blynk.virtualWrite (V0, LOW);
}
}
void sendSensor () // normaali menettelytapa
{
Merkkijono currentTime = Jono (tunti ()) + ":" + minuutti ();
Merkkijono currentDate = Jono (päivä ()) + "/" + kuukausi ();
float h = dht.readHumidity ();
float t = dht.readTemperature ();
jos (isnan (h) || isnan (t)) {
Serial.println ("DHT -anturin lukeminen epäonnistui!");
led1.on ();
palata;
}
muu {
led1.off ();
}
jos (t> tmax) {
tmax = t;
maxt = Jono (t) + "° C (" + currentTime + "-" + currentDate + ")";
}
jos (t <tmin) {
tmin = t;
minttu = Jono (t) + "° C (" + nykyinen aika + "-" + nykyinen päivämäärä + ")";
}
jos (h> umax) {
umax = h;
maxu = Merkkijono (h) + "% (" + currentTime + "-" + currentDate + ")";
}
jos (h <umin) {
umin = h;
minu = Jono (h) + "% (" + currentTime + "-" + currentDate + ")";
}
Blynk.virtualWrite (V5, h);
Blynk.virtualWrite (V6, t);
Blynk.virtualWrite (V7, vb);
Blynk.virtualWrite (V10, maxt);
Blynk.virtualWrite (V11, minttu);
Blynk.virtualWrite (V12, maxu);
Blynk.virtualWrite (V13, minu);
}
void calcolo_media () // menettely rekisteröintitietovälineiden kautta
{
lettura [nume_Letture] = dht.readTemperature ();
jos (isnan (lettura [numero_luku])) {
led1.on ();
palata;
}
// procedura media circolare
jos (nume_Letture> = 48) {
togli = nume_Letture-48;
tot_Letture -= (lettura [togli]);
tot_Letture += (lettura [numero_Luku]);
nume_Letture = 0; // aseta nolla ja riparte -tutto
cc = 1; // identifika primo passaggio dopo 48 letture (24ore)
}
jos (cc == 1) {
conteggio = 48; // DOPO le prime 24ore divide semper per 24ore (48mezzore)
}
muu{
// media prima dello scadere delle 24ore
tot_Letture += (lettura [numero_Luku]);
conteggio = conteggio+1;
}
media_Letture = tot_Letture/conteggio;
nume_Letture = nume_Letture+1;
Blynk.virtualWrite (V8, media_Letture);
Blynk.virtualWrite (V1, conteggio);
}
mitätön asennus ()
{
Sarja.alku (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 30 min
}
tyhjä silmukka ()
{
Blynk.run ();
timer.run ();
pitkä adesso = millis ();
val = digitalRead (vibr_pin);
vb = vb+val;
jos (adesso - prima> = Tempmax)
{
vb = 0;
vbinit = vb;
prima = adesso;
}
Suositeltava:
DIY Raspberry Pi Downloadbox: 4 vaihetta
DIY Raspberry Pi Downloadbox: Löydätkö usein itsesi lataamasta suuria tiedostoja, kuten elokuvia, torrentteja, kursseja, TV -sarjoja jne., Niin tulet oikeaan paikkaan. Tässä Instructable -ohjelmassa muuttaisimme Raspberry Pi zero -laitteemme latauskoneeksi. Joka voi ladata minkä tahansa
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): 8 vaihetta
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): ultraäänikaiuttimet L298N DC-naarasadapterin virtalähde urospuolisella dc-nastalla ja analogiset portit koodin muuntamiseksi (C ++)
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: 3 vaihetta
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: Seuraava opas auttaa sinua saamaan live-HD-videovirtoja lähes mistä tahansa DJI-dronesta. FlytOS -mobiilisovelluksen ja FlytNow -verkkosovelluksen avulla voit aloittaa videon suoratoiston droonilta
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
4 vaihetta akun sisäisen vastuksen mittaamiseksi: 4 vaihetta
4 vaihetta akun sisäisen vastuksen mittaamiseksi: Tässä on 4 yksinkertaista vaihetta, joiden avulla voit mitata taikinan sisäisen vastuksen