Innehållsförteckning:
Video: Birra_Monitor: 3 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
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) tjäna en övervakningstemperatur och en omidità della stanza atta alla fermentazione. Frågor om hur du gör en viss tidpunkt för visning och visning av en trådlös Blynk -app som kan användas för IoT -lösningar.
Projektet används för att övervaka jäsning av hemlagat öl med en enkel vibrationssensor (SW-420 NC). tillägget av temperaturgivaren (DHT22) tjänar till att övervaka temperaturen och luftfuktigheten i rummet som är lämpligt för jäsning. Dessa data hanteras av ett nodemcu -kort och visualiseras via Blynk -appen som har utsetts för att utveckla IoT -lösningar.
Steg 1: Förpackning
Scheda e sensori sono alloggiate in una semplice scatola di derivazione.
Kort och sensorer finns i en enkel kopplingsdosa.
Steg 2: Sensor på jobbet
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
vad händer när sensorn är "monterad" på bubblaren att varje gång CO2 släpps ut registrerar sensorn vibrationer som kommer att visas på Blynk -appen
Steg 3: Kod
il codice per permettere il funzionamento del tutto è il seguente che basterà caricare sulla scheda tramide il programvara Arduino IDE
koden för att möjliggöra helhetens funktion är följande som räcker för att ladda kortet Arduino IDE -programvaran
#inkludera Adafruit_Sensor.h
#inkludera DHT.h
#define BLYNK_PRINT Serial
#inkludera ESP8266WiFi.h;
#inkludera BlynkSimpleEsp8266.h;
#inkludera 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; // medielåtning
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; // variabel 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
osignerad lång prima = 0; // nytta per byte min/max
lång Tempmax = 660000; // nytta per byte min/max
float tmax = -100; // impostazione impossibile per la temperatura massima
float tmin = 100; // impostazione impossibile per il temperatura minima
float umax = 0; // impostazione impossibile per umidità massima
float umin = 100; // impostazione impossibile per umidità minima
Strängmaxt; // stringa visualizzata su Blynk
Strängmynta; // stringa visualizzata su Blynk
Sträng maxu; // stringa visualizzata su Blynk
Strängminu; // 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);
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) // rutin efter återställning av 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, mint);
Blynk.virtualWrite (V12, maxu);
Blynk.virtualWrite (V13, minu);
Blynk.virtualWrite (V1, conteggio);
Serial.println ("Resetta");
fördröjning (200);
Blynk.virtualWrite (V0, LÅG);
}
}
void sendSensor () // normal procedura di lettura
{
String currentTime = String (hour ()) + ":" + minute ();
String currentDate = String (day ()) + "/" + month ();
float h = dht.readHumidity ();
float t = dht.readTemperature ();
om (isnan (h) || isnan (t)) {
Serial.println ("Det gick inte att läsa från DHT -sensorn!");
led1.on ();
lämna tillbaka;
}
annat {
led1.off ();
}
om (t> tmax) {
tmax = t;
maxt = String (t) + "° C (" + currentTime + "-" + currentDate + ")";
}
om (t <tmin) {
tmin = t;
mint = String (t) + "° C (" + currentTime + "-" + currentDate + ")";
}
om (h> umax) {
umax = h;
maxu = String (h) + "% (" + currentTime + "-" + currentDate + ")";
}
om (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 () // procedura per registrazioni dati media
{
lettura [nume_Letture] = dht.readTemperature ();
if (isnan (lettura [nume_Letture])) {
led1.on ();
lämna tillbaka;
}
// 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; // identifiera primo passaggio dopo 48 letture (24ore)
}
om (cc == 1) {
conteggio = 48; // DOPO le prime 24ore dela semper per 24ore (48mezzore)
}
annan{
// 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
}
void loop ()
{
Blynk.run ();
timer.run ();
lång adesso = millis ();
val = digitalRead (vibr_pin);
vb = vb+val;
if (adesso - prima> = Tempmax)
{
vb = 0;
vbinit = vb;
prima = adesso;
}
Rekommenderad:
Arduino Car Reverse Parking Alert System - Steg för steg: 4 steg
Arduino Car Reverse Parking Alert System | Steg för steg: I det här projektet kommer jag att utforma en enkel Arduino Car Reverse Parking Sensor Circuit med Arduino UNO och HC-SR04 Ultrasonic Sensor. Detta Arduino -baserade bilomvändningsvarningssystem kan användas för autonom navigering, robotavstånd och andra
Steg för steg PC -byggnad: 9 steg
Steg för steg PC -byggnad: Tillbehör: Hårdvara: ModerkortCPU & CPU -kylarePSU (strömförsörjningsenhet) Lagring (HDD/SSD) RAMGPU (krävs inte) CaseTools: Skruvmejsel ESD -armband/mathermisk pasta med applikator
Tre högtalarkretsar -- Steg-för-steg handledning: 3 steg
Tre högtalarkretsar || Steg-för-steg-handledning: Högtalarkretsen förstärker ljudsignalerna som tas emot från miljön till MIC och skickar den till högtalaren varifrån förstärkt ljud produceras. Här visar jag dig tre olika sätt att göra denna högtalarkrets med:
Steg-för-steg-utbildning i robotik med ett kit: 6 steg
Steg-för-steg-utbildning i robotik med ett kit: Efter ganska många månader av att bygga min egen robot (se alla dessa), och efter att två gånger ha misslyckats med delar, bestämde jag mig för att ta ett steg tillbaka och tänka om min strategi och riktning. De flera månaders erfarenhet var ibland mycket givande och
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)