Indholdsfortegnelse:
Video: Birra_Monitor: 3 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Il progetto servere en monitorare la fermentazione della birra fatta i casa tramite un semplice sensore di vibrazione (SW-420 NC). l'aggiunta del sensore di temperatura (DHT22) tjener en overvågningstemperatur og en omdità della stanza atta alla fermentazione. Spørgsmål, der gør det muligt for os at planlægge en visuel visning af en Blynk -app, der kan bruges til IoT -løsninger.
Projektet bruges til at overvåge gæringen af hjemmelavet øl ved hjælp af en simpel vibrationssensor (SW-420 NC). tilføjelsen af temperatursensoren (DHT22) tjener til at overvåge temperaturen og luftfugtigheden i det rum, der er egnet til gæring. Disse data administreres af et nodemcu -kort og visualiseres gennem Blynk -app, der er udpeget til at udvikle IoT -løsninger.
Trin 1: Emballage
Scheda e sensori sono alloggiate in una semplice scatola di derivazione.
Board og sensorer er anbragt i en enkel forbindelsesboks.
Trin 2: Sensor på arbejde
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
hvad sker der, når sensoren er "monteret" på bobleren, at hver gang CO2 udstødes, registrerer sensoren vibrationer, der vises på Blynk -appen
Trin 3: Kode
il codice per permettere il funzionamento del tutto è il seguente che basterà caricare sulla scheda tramide il software Arduino IDE
koden til at tillade helhedens funktion er følgende, der vil være nok til at indlæse Arduino IDE -softwaren på kortet
#omfatter Adafruit_Sensor.h
#omfatter DHT.h
#define BLYNK_PRINT Serial
#include ESP8266WiFi.h;
#include BlynkSimpleEsp8266.h;
#inkludere 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; // medieladning
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
usigneret lang prima = 0; // utile pr. swap min/max
lang Tempmax = 660000; // utile pr. swap 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
Stringmaxt; // stringa visualizzata su Blynk
String mynte; // 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"; //trådløst internet
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) // rutine efter nulstilling af Blynk
{
int attiva = param.asInt ();
hvis (attiva == 1) {
tmax = -100;
tmin = 100;
umax = 0;
umin = 100;
maxt = "------------";
mynte = "------------";
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, mynte);
Blynk.virtualWrite (V12, maxu);
Blynk.virtualWrite (V13, minu);
Blynk.virtualWrite (V1, conteggio);
Serial.println ("Resetta");
forsinkelse (200);
Blynk.virtualWrite (V0, LOW);
}
}
void sendSensor () // normale procedura di lettura
{
String currentTime = String (time ()) + ":" + minut ();
String currentDate = String (dag ()) + "/" + måned ();
float h = dht.readHumidity ();
float t = dht.readTemperature ();
hvis (isnan (h) || isnan (t)) {
Serial.println ("Kunne ikke læse fra DHT -sensor!");
led1.on ();
Vend tilbage;
}
andet {
led1.off ();
}
hvis (t> tmax) {
tmax = t;
maxt = String (t) + "° C (" + currentTime + "-" + currentDate + ")";
}
hvis (t <tmin) {
tmin = t;
mynte = String (t) + "° C (" + currentTime + "-" + currentDate + ")";
}
hvis (h> umax) {
umax = h;
maxu = String (h) + "% (" + currentTime + "-" + currentDate + ")";
}
hvis (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, mynte);
Blynk.virtualWrite (V12, maxu);
Blynk.virtualWrite (V13, minu);
}
void calcolo_media () // procedura per registrazioni dati media
{
lettura [nume_Letture] = dht.readTemperature ();
hvis (isnan (lettura [nume_Letture])) {
led1.on ();
Vend tilbage;
}
// procedura media circolare
hvis (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)
}
hvis (cc == 1) {
conteggio = 48; // DOPO le prime 24ore divider semper per 24ore (48mezzore)
}
andet{
// medier 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);
}
ugyldig opsætning ()
{
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
}
hulrum ()
{
Blynk.run ();
timer.run ();
lang adesso = millis ();
val = digitalRead (vibr_pin);
vb = vb+val;
hvis (adesso - prima> = Tempmax)
{
vb = 0;
vbinit = vb;
prima = adesso;
}
Anbefalede:
Arduino bil omvendt parkering alarmsystem - Trin for trin: 4 trin
Arduino bil omvendt parkering alarmsystem. Trin for trin: I dette projekt vil jeg designe en simpel Arduino bil omvendt parkeringssensorkreds ved hjælp af Arduino UNO og HC-SR04 ultralydssensor. Dette Arduino -baserede bilomvendt alarmsystem kan bruges til en autonom navigation, robotafstand og andre rækkevidde
Trin for trin pc -bygning: 9 trin
Trin for trin PC Building: Supplies: Hardware: MotherboardCPU & CPU -køler PSU (strømforsyningsenhed) Opbevaring (HDD/SSD) RAMGPU (ikke påkrævet) CaseTools: Skruetrækker ESD -armbånd/mathermal pasta m/applikator
Tre højttalerkredsløb -- Trin-for-trin vejledning: 3 trin
Tre højttalerkredsløb || Trin-for-trin vejledning: Højttalerkredsløb styrker lydsignalerne, der modtages fra miljøet til MIC og sender det til højttaleren, hvorfra forstærket lyd produceres. Her vil jeg vise dig tre forskellige måder at lave dette højttalerkredsløb på:
Trin-for-trin uddannelse i robotik med et sæt: 6 trin
Trin-for-trin uddannelse i robotteknologi med et kit: Efter ganske få måneder med at bygge min egen robot (se alle disse), og efter at jeg to gange havde dele mislykkedes, besluttede jeg at tage et skridt tilbage og tænke min strategi og retning. De flere måneders erfaring var til tider meget givende, og
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)