Sadržaj:
Video: Birra_Monitor: 3 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Progetto će poslužiti monitorrare la fermentazione della birra fatta u casa tramite un semplice sensore di vibrazione (SW-420 NC). L'aggiunta del sensore di temperature (DHT22) služi za praćenje temperature i umidità della stanza atta alla fermentazione. Questi dati vengono gestiti da una scheda nodemcu e visualizzati tramite Blynk app deputata allo sviluppo di soluzioni IoT.
Projekt se koristi za praćenje fermentacije domaćeg piva pomoću jednostavnog senzora vibracija (SW-420 NC). dodatak temperaturnog osjetnika (DHT22) služi za praćenje temperature i vlažnosti prostorije pogodne za fermentaciju. Ovim podacima upravlja nodemcu kartica i vizualizira ih aplikacija Blynk imenovana za razvoj IoT rješenja.
Korak 1: Pakiranje
Scheda e sensori sono aloggiate in una semplice scatola di derivazione.
Ploča i senzori smješteni su u jednostavnu razvodnu kutiju.
Korak 2: Senzor na poslu
quello che succede quando il sensore è "montato" sul gorgogliatore che ad ogni espulsione di CO2 il sensore registrarà delle vibrazioni che verranno vizualizirati sull'app Blynk
što se događa kada je senzor "montiran" na mjehurić da svaki put kada se CO2 izbaci senzor će zabilježiti vibracije koje će biti prikazane u aplikaciji Blynk
Korak 3: Kodirajte
il kodeks permettere il funzionamento del tutto è il seguente che basterà caricare sulla scheda tramide il software Arduino IDE
kôd koji omogućuje funkcioniranje cjeline je sljedeći koji će biti dovoljan za učitavanje na karticu Arduino IDE softvera
#uključite Adafruit_Sensor.h
#uključuje DHT.h
#define BLYNK_PRINT Serijski
#include ESP8266WiFi.h;
#include BlynkSimpleEsp8266.h;
#include SimpleTimer.h;
#include WidgetRTC.h;
float lettura [50]; // dimenzija Arrayper media
int nume_Letture = 0; // progressivo letture
float tot_Letture = 0; // somma letture
float media_Letture = 0; // medijska književnost
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
bez potpisa duga prima = 0; // korisno po zamjeni min/maks
dugi Tempmax = 660000; // korisno po zamjeni min/maks
plovak tmax = -100; // impostazione impossibile per la temperature massima
plovak tmin = 100; // impostazione impossibile per il temperature minima
float umax = 0; // impostazione impossibile per umidità massima
plovak umin = 100; // impostazione impossibile per umidità minima
Niz znakova; // stringa visualizzata su Blynk
Nana žica; // stringa visualizzata su Blynk
String maxu; // stringa visualizzata su Blynk
Gudački minu; // stringa visualizzata su Blynk
char auth = "a °°°°°°°°°°°°° d"; // token Blynk
char ssid = "T °°°°°°°°°°°°° 9"; // wifi
char pass = "O °°°°°°°°°°°° R"; // psw
#define DHTPIN 2 // pin senzor DHT
#define DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
Mjerač vremena SimpleTimer; // mjerač vremena
WidgetRTC rtc; // orologio di sistema Blynk
WidgetLED led1 (V15); // Led Blynk sul pin V15
BLYNK_CONNECTED () {
rtc.begin (); // avvio RTC
}
BLYNK_WRITE (V0) // rutina po tasto reset da Blynk
{
int attiva = param.asInt ();
ako (attiva == 1) {
tmax = -100;
tmin = 100;
umax = 0;
umin = 100;
maxt = "------------";
kovnica = "------------";
maxu = "------------";
minu = "------------";
media_Letture = 0;
tot_Letture = 0;
nume_Letture = 0;
conteggio = 0;
cc = 0;
Serijski.println (conteggio);
Blynk.virtualWrite (V8, media_Letture);
Blynk.virtualWrite (V10, maxt);
Blynk.virtualWrite (V11, metvica);
Blynk.virtualWrite (V12, najviše);
Blynk.virtualWrite (V13, minuta);
Blynk.virtualWrite (V1, kontekst);
Serial.println ("Resetta");
kašnjenje (200);
Blynk.virtualWrite (V0, LOW);
}
}
void sendSensor () // normalan postupak di lettura
{
Niz currentTime = String (sat ()) + ":" + minuta ();
Niz currentDate = String (dan ()) + "/" + mjesec ();
float h = dht.readHumidity ();
float t = dht.readTemperature ();
if (isnan (h) || isnan (t)) {
Serial.println ("Očitavanje nije uspjelo s DHT senzora!");
led1.on ();
povratak;
}
drugo {
led1.off ();
}
ako (t> tmax) {
tmax = t;
maxt = String (t) + "° C (" + currentTime + "-" + currentDate + ")";
}
ako (t <tmin) {
tmin = t;
mint = String (t) + "° C (" + currentTime + "-" + currentDate + ")";
}
if (h> umax) {
umax = h;
maxu = String (h) + "% (" + currentTime + "-" + currentDate + ")";
}
if (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, metvica);
Blynk.virtualWrite (V12, najviše);
Blynk.virtualWrite (V13, minuta);
}
void calcolo_media () // procedure per registrazioni dati media
{
lettura [nume_Letture] = dht.readTemperature ();
if (isnan (lettura [nume_Letture])) {
led1.on ();
povratak;
}
// 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; // identifica primo passaggio dopo 48 letture (24ore)
}
ako (cc == 1) {
conteggio = 48; // DOPO le prime 24ore split semper per 24ore (48mezzore)
}
drugo{
// medijska 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, kontekst);
}
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 ();
long adesso = millis ();
val = digitalRead (vibr_pin);
vb = vb+val;
if (adesso - prima> = Tempmax)
{
vb = 0;
vbinit = vb;
prima = adesso;
}
Preporučeni:
Dizajn igre brzim pokretom u 5 koraka: 5 koraka
Dizajn igre u Flick -u u 5 koraka: Flick je zaista jednostavan način stvaranja igre, osobito nečega poput zagonetke, vizualnog romana ili avanturističke igre
Broj koraka: 17 koraka
الكشف عن عن أنواع المحاليل: محمدآل سعودالكشف عن المحاليل رابط الفديو
Prepoznavanje lica na Raspberry Pi 4B u 3 koraka: 3 koraka
Prepoznavanje lica na Raspberry Pi 4B u 3 koraka: U ovom Instructableu ćemo izvršiti detekciju lica na Raspberry Pi 4 sa Shunya O/S pomoću knjižnice Shunyaface. Shunyaface je biblioteka za prepoznavanje/otkrivanje lica. Cilj projekta je postići najbržu brzinu otkrivanja i prepoznavanja s
Kako napraviti brojač koraka?: 3 koraka (sa slikama)
Kako napraviti brojač koraka?: Nekada sam se dobro snašao u mnogim sportovima: hodanje, trčanje, vožnja bicikla, igranje badmintona itd. Volim jahanje da bih brzo putovao. Pa, pogledaj moj trbušni trbuh … Pa, u svakom slučaju, odlučujem ponovno početi vježbati. Koju opremu trebam pripremiti?
Aduino UNO Broj koraka: 5 koraka
Aduino UNO 를 이용한 도망 치는 &&&& && l g g g g g g g g g g g g g g g 4 g 4 4 4 4 프로젝트 프로젝트 프로젝트 프로젝트 프로젝트 프로젝트 프로젝트 프로젝트 일자 일자 일자: 2017.01.06. ~ 2017.01.11.- 역할 분담 SW 엔지니어: 김 예은, 임동영 HW 엔지니어: 김지훈 디자이너: 이재민 레코더: 홍 다예 ------------------------ --------------------------------------------------