Πίνακας περιεχομένων:

Birra_Monitor: 3 Βήματα
Birra_Monitor: 3 Βήματα

Βίντεο: Birra_Monitor: 3 Βήματα

Βίντεο: Birra_Monitor: 3 Βήματα
Βίντεο: GEELY MONJARO СОСТОЯНИЕ ЧЕРЕЗ 7000км ПРОБЕГА / КАЧЕСТВО КИТАЙСКОЙ СБОРКИ И ОСНОВНЫЕ МОМЕНТЫ ИЗНОСА 2024, Νοέμβριος
Anonim
Birra_Monitor
Birra_Monitor

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;

}

Συνιστάται: