Πίνακας περιεχομένων:
Βίντεο: Birra_Monitor: 3 Βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:35
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) σερβίρει μια παρακολούθηση της θερμοκρασίας και της θερμοκρασίας και της στροφής. Questi dati vengono gestiti da una scheda nodemcu και visualizzati tramite Blynk app deputata allo sviluppo di soluzioni IoT.
Το έργο χρησιμοποιείται για την παρακολούθηση της ζύμωσης της σπιτικής μπύρας χρησιμοποιώντας έναν απλό αισθητήρα δόνησης (SW-420 NC). η προσθήκη του αισθητήρα θερμοκρασίας (DHT22) χρησιμεύει για την παρακολούθηση της θερμοκρασίας και της υγρασίας του δωματίου κατάλληλου για ζύμωση. Αυτά τα δεδομένα διαχειρίζονται από μια κάρτα nodemcu και οπτικοποιούνται μέσω της εφαρμογής Blynk που έχει οριστεί για την ανάπτυξη λύσεων IoT.
Βήμα 1: Συσκευασία
Scheda e sensori sono alloggiate in una semplice scatola di derivazione.
Ο πίνακας και οι αισθητήρες βρίσκονται σε ένα απλό κουτί διακλάδωσης.
Βήμα 2: Αισθητήρας στην εργασία
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
τι συμβαίνει όταν ο αισθητήρας είναι "τοποθετημένος" στο bubbler ότι κάθε φορά που αποβάλλεται το CO2 ο αισθητήρας θα καταγράφει κραδασμούς που θα εμφανίζονται στην εφαρμογή Blynk
Βήμα 3: Κωδικός
il codice per pertetere il funzionamento del tutto è il seguente che basterà caricare sulla scheda tramide il software Arduino IDE
ο κώδικας που επιτρέπει τη λειτουργία του συνόλου είναι ο ακόλουθος που θα είναι αρκετός για να φορτώσει στην κάρτα το λογισμικό Arduino IDE
#include Adafruit_Sensor.h
#συμπεριλάβετε DHT.h
#define Σειριακό BLYNK_PRINT
#include ESP8266WiFi.h;
#include BlynkSimpleEsp8266.h;
#include SimpleTimer.h;
#include WidgetRTC.h;
float lettura [50]? // dimensione Μέσα Arrayper
int nume_Letture = 0; // progressivo letrure
float tot_Letture = 0; // somma letture
float media_Letture = 0; // media letture
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? // 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
ανυπόγραφο μακρύ πρίμα = 0; // utile ανά ανταλλαγή min/max
μακρύ Tempmax = 660000; // utile ανά ανταλλαγή 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 αδύνατο ανά umidità ελάχιστα
String maxt; // stringa visualizzata su Blynk
Χορδές μέντα? // stringa visualizzata su Blynk
String maxu? // stringa visualizzata su Blynk
String minu? // stringa visualizzata su Blynk
char auth = "a ° ° ° ° ° d" """
char ssid = "T ° ° ° ° ° ° 9" 9 "; // wifi
char pass = O °°°(// psw
#define DHTPIN 2 // pin sensore DHT
#define DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
Χρονοδιακόπτης SimpleTimer. //μετρών την ώραν
WidgetRTC rtc; // orologio di sistema Blynk
WidgetLED led1 (V15)? // Led Blynk sul pin V15
BLYNK_CONNECTED () {
rtc.begin (); // avvio RTC
}
BLYNK_WRITE (V0) // ρουτίνα ανά επαναφορά γεύσης στο Blynk
{
int attiva = param.asInt ();
αν (attiva == 1) {
tmax = -100;
tmin = 100;
umax = 0;
umin = 100?
maxt = "------------";
μέντα = "------------";
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, μέντα);
Blynk.virtualWrite (V12, maxu);
Blynk.virtualWrite (V13, minu);
Blynk.virtualWrite (V1, conteggio);
Serial.println ("Resetta");
καθυστέρηση (200)?
Blynk.virtualWrite (V0, LOW);
}
}
void sendSensor () // normale procedura di lettura
{
String currentTime = String (ώρα ()) + ":" + λεπτό ();
Συμβολοσειρά currentDate = Συμβολοσειρά (ημέρα ()) + "/" + μήνας ();
float h = dht.readHumidity ();
float t = dht.readTemperature ();
αν (ισνάν (η) || ισνάν (τ)) {
Serial.println ("Δεν ήταν δυνατή η ανάγνωση από τον αισθητήρα DHT!");
led1.on ();
ΕΠΙΣΤΡΟΦΗ;
}
αλλιώς {
led1.off ();
}
αν (t> tmax) {
tmax = t;
maxt = String (t) + "° C (" + currentTime + "-" + currentDate + ")";
}
αν (t <tmin) {
tmin = t;
μέντα = String (t) + "° C (" + currentTime + "-" + currentDate + ")";
}
αν (h> umax) {
umax = h;
maxu = String (h) + "% (" + currentTime + "-" + currentDate + ")";
}
αν (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, μέντα);
Blynk.virtualWrite (V12, maxu);
Blynk.virtualWrite (V13, minu);
}
void calcolo_media () // διαδικασία ανά καταχωρημένο αρχείο μέσων
{
lettura [nume_Letture] = dht.readTemperature ();
εάν (isnan (lettura [nume_Letture])) {
led1.on ();
ΕΠΙΣΤΡΟΦΗ;
}
// διαδικτυακό κύκλωμα μέσων ενημέρωσης
αν (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)
}
αν (cc == 1) {
conteggio = 48; // DOPO le prime 24ore split sempre per 24ore (48mezzore)
}
αλλού{
// 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 λεπτά
timer.setInterval (1800000, calcolo_media); // lettura e media ogni 30min
}
κενός βρόχος ()
{
Blynk.run ();
timer.run ();
long adesso = millis ();
val = digitalRead (vibr_pin);
vb = vb+val;
αν (adesso - prima> = Tempmax)
{
vb = 0;
vbinit = vb;
prima = adesso;
}
Συνιστάται:
Πώς να φτιάξετε 4G LTE Double BiQuade Antenna Εύκολα Βήματα: 3 Βήματα
Πώς να κάνετε εύκολα 4G LTE διπλή κεραία BiQuade Antenna: Τις περισσότερες φορές αντιμετώπισα, δεν έχω καλή ισχύ σήματος στις καθημερινές μου εργασίες. Ετσι. Searchάχνω και δοκιμάζω διάφορους τύπους κεραίας αλλά δεν δουλεύω. Μετά από σπατάλη χρόνου βρήκα μια κεραία που ελπίζω να φτιάξω και να δοκιμάσω, γιατί δεν είναι η βασική αρχή
Σχεδιασμός παιχνιδιών στο Flick σε 5 βήματα: 5 βήματα
Σχεδιασμός παιχνιδιών στο Flick σε 5 βήματα: Το Flick είναι ένας πραγματικά απλός τρόπος δημιουργίας ενός παιχνιδιού, ειδικά κάτι σαν παζλ, οπτικό μυθιστόρημα ή παιχνίδι περιπέτειας
Σύστημα ειδοποίησης αντίστροφης στάθμευσης αυτοκινήτου Arduino - Βήματα βήμα προς βήμα: 4 βήματα
Σύστημα ειδοποίησης αντίστροφης στάθμευσης αυτοκινήτου Arduino | Βήματα βήμα προς βήμα: Σε αυτό το έργο, θα σχεδιάσω ένα απλό κύκλωμα αισθητήρα στάθμευσης αντίστροφης στάθμευσης αυτοκινήτου Arduino χρησιμοποιώντας Arduino UNO και υπερηχητικό αισθητήρα HC-SR04. Αυτό το σύστημα ειδοποίησης αυτοκινήτου με βάση το Arduino μπορεί να χρησιμοποιηθεί για αυτόνομη πλοήγηση, κλίμακα ρομπότ και άλλα εύρη
Ανίχνευση προσώπου στο Raspberry Pi 4B σε 3 βήματα: 3 βήματα
Ανίχνευση προσώπου στο Raspberry Pi 4B σε 3 βήματα: Σε αυτό το Instructable πρόκειται να πραγματοποιήσουμε ανίχνευση προσώπου στο Raspberry Pi 4 με το Shunya O/S χρησιμοποιώντας τη βιβλιοθήκη Shunyaface. Το Shunyaface είναι μια βιβλιοθήκη αναγνώρισης/ανίχνευσης προσώπου. Το έργο στοχεύει στην επίτευξη της ταχύτερης ταχύτητας ανίχνευσης και αναγνώρισης με
DIY Vanity Mirror σε εύκολα βήματα (χρησιμοποιώντας φώτα λωρίδας LED): 4 βήματα
DIY Vanity Mirror σε εύκολα βήματα (χρησιμοποιώντας φώτα λωρίδας LED): Σε αυτήν την ανάρτηση, έφτιαξα ένα DIY Vanity Mirror με τη βοήθεια των λωρίδων LED. Είναι πραγματικά υπέροχο και πρέπει να τα δοκιμάσετε επίσης