فهرست مطالب:

Birra_Monitor: 3 مرحله
Birra_Monitor: 3 مرحله

تصویری: Birra_Monitor: 3 مرحله

تصویری: Birra_Monitor: 3 مرحله
تصویری: Omens Above | Critical Role | Campaign 3, Episode 19 2024, نوامبر
Anonim
Birra_Monitor
Birra_Monitor

Il progetto در حال انجام خدمات monitorare la fermentazione della birra fatta در casa tramite un semplice sensore di vibrazione (SW-420 NC). l'aggiunta del sensore di temperatura (DHT22) از یک درجه حرارت ناگهانی و 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.

این پروژه برای نظارت بر تخمیر آبجو خانگی با استفاده از سنسور ارتعاش ساده (SW-420 NC) استفاده می شود. اضافه کردن سنسور دما (DHT22) برای نظارت بر دما و رطوبت اتاق مناسب برای تخمیر عمل می کند. این داده ها توسط یک کارت nodemcu مدیریت می شوند و از طریق برنامه Blynk که برای توسعه راه حل های اینترنت اشیا تعیین شده است ، تجسم می شوند.

مرحله 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

هنگامی که سنسور روی حباب سوار می شود چه اتفاقی می افتد که هر بار که CO2 خارج می شود سنسور ارتعاشاتی را که در برنامه Blynk نمایش داده می شود ثبت می کند

مرحله 3: کد

il codice per permettere il funzionamento del tutto è il seguente che basterà caricare sulla scheda tramide il software Arduino IDE

کد اجازه می دهد تا عملکرد کل زیر باشد که برای بارگیری نرم افزار Arduino IDE روی کارت کافی خواهد بود

#شامل Adafruit_Sensor.h

#شامل DHT.h

#تعریف BLYNK_PRINT سریال

#شامل ESP8266WiFi.h ؛

#شامل BlynkSimpleEsp8266.h؛

#شامل SimpleTimer.h ؛

#شامل WidgetRTC.h؛

شناور لتورا [50]؛ // dimensione رسانه Arrayper

int nume_Letture = 0؛ // progressivo letture

شناور tot_Letture = 0؛ // کاهو سما

float media_Letture = 0؛ // کرایه رسانه ای

int conteggio = 0؛ // variabile di conteggio primario

// inizio dichiarazioni variabili per media Continua

int i = 0 ؛

int cc = 0؛

int togli = 0؛

// خوب dichiarazioni variabili در رسانه مداوم

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

prima long unsigned = 0؛ // مفید در هر مبادله حداقل/حداکثر

طولانی Tempmax = 660000 ؛ // مفید در هر مبادله حداقل/حداکثر

float tmax = -100؛ // impostazione impossibile per la temperatura massima

float tmin = 100؛ // impostazione impossibile per il temperatura minima

float umax = 0؛ // impostazione غیر ممکن در هر umidità massima

شناور امین = 100 ؛ // impostazione غیر ممکن در هر umidità حداقل

متن رشته ای ؛ // stringa visualizzata su Blynk

نعناع رشته ای ؛ // stringa visualizzata su Blynk

رشته maxu ؛ // stringa visualizzata su Blynk

رشته minu ؛ // stringa visualizzata su Blynk

char author = "a °°°(char ssid = "T °°°(" //وای فای

char pass = O °°°(// psw

#تعریف DHTPIN 2 // پین حسگر DHT

#DHTTYPE DHT22 را تعریف کنید

DHT dht (DHTPIN ، DHTTYPE) ؛

تایمر SimpleTimer ؛ // تایمر

WidgetRTC rtc؛ // orologio di sistema Blynk

ابزارک LED led1 (V15) ؛ // Led Blynk sul pin V15

BLYNK_CONNECTED () {

rtc.begin ()؛ // avvio RTC

}

BLYNK_WRITE (V0) // روال معمول برای بازنشانی tasto da Blynk

{

int attiva = param.asInt ()؛

if (attiva == 1) {

tmax = -100 ؛

tmin = 100 ؛

umax = 0؛

امین = 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 ()؛

if (isnan (h) || isnan (t)) {

Serial.println ("از سنسور DHT خوانده نشد!") ؛

led1.on ()؛

برگشت؛

}

دیگری {

led1.off ()؛

}

if (t> tmax) {

tmax = t ؛

maxt = رشته (t) + "° C (" + currentTime + "-" + currentDate + ")" ؛

}

if (t <tmin) {

tmin = t ؛

mint = رشته (t) + "° C (" + currentTime + "-" + currentDate + ")" ؛

}

if (h> umax) {

umax = h؛

maxu = رشته (h) + "٪ (" + currentTime + "-" + currentDate + ")" ؛

}

if (h <umin) {

umin = h؛

minu = رشته (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 ()؛

if (isnan (lettura [nume_Letture])) {

led1.on ()؛

برگشت؛

}

// 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)

}

if (cc == 1) {

conteggio = 48 ؛ // DOPO le prime 24ore semper divide at 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 (author، 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 ؛

if (adesso - prima> = Tempmax)

{

vb = 0 ؛

vbinit = vb؛

prima = adesso؛

}

توصیه شده: