Съдържание:

Birra_Monitor: 3 стъпки
Birra_Monitor: 3 стъпки

Видео: Birra_Monitor: 3 стъпки

Видео: Birra_Monitor: 3 стъпки
Видео: Китайский очень сложный 4 2024, Юли
Anonim
Birra_Monitor
Birra_Monitor

Il progetto сервира мониторинг на ферментационната дера бира фата в casa tramite un semplice sensore di vibrazione (SW-420 NC). Агрегатът на сензора за температура (DHT22) служи за наблюдение на температурата и умдита на делата на станцията, която е подложена на ферментация. 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, назначено за разработване на IoT решения.

Стъпка 1: Опаковане

Опаковка
Опаковка
Опаковка
Опаковка

Scheda e sensori sono aloggiate 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: Код

Кодът за периметър е функционален и дегустиран, както и базираната на карикатура, суда Scheda, трамиден софтуер, Arduino IDE

кодът, който позволява функционирането на цялото, е следният, който ще бъде достатъчен, за да зареди на картата софтуера Arduino IDE

#включете Adafruit_Sensor.h

#включете DHT.h

#define BLYNK_PRINT Сериен

#include ESP8266WiFi.h;

#include BlynkSimpleEsp8266.h;

#include SimpleTimer.h;

#include WidgetRTC.h;

float lettura [50]; // размери Arrayper media

int nume_Letture = 0; // прогресивно писане

float tot_Letture = 0; // сома letture

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;

// фини дихиаразни вариации на медийна континуума

int val; // променлива регистрация на вибрации

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; // Инициира вбинит 0

без подпис дълга прима = 0; // помощна програма за суап min/max

дълъг Tempmax = 660000; // помощна програма за суап min/max

поплавък tmax = -100; // impostazione impossibile per la temperature massima

поплавък tmin = 100; // impostazione impossibile per il temperature minima

поплавък umax = 0; // impostazione impossibile per umidità massima

поплавък umin = 100; // impostazione impossibile per umidità minima

Низово maxt; // stringa visualizzata su Blynk

Струна мента; // stringa visualizzata su Blynk

Струнен максимум; // stringa visualizzata su Blynk

Низово мину; // stringa visualizzata su Blynk

char auth = "a °°°°°°°°°°°°° d"; // знак Blynk

char ssid = "T °°°°°°°°°°°°° 9"; // wifi

char pass = "O °°°°°°°°°°°°°"; // psw

#дефинирайте DHTPIN 2 // DHT сензорен сензор

#дефинирайте DHTTYPE DHT22

DHT dht (DHTPIN, DHTTYPE);

Таймер SimpleTimer; // таймер

WidgetRTC rtc; // орология на системата Blynk

WidgetLED led1 (V15); // Led Blynk sul pin V15

BLYNK_CONNECTED () {

rtc.begin (); // avvio RTC

}

BLYNK_WRITE (V0) // рутина за нулиране на tasto до 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, максимум);

Blynk.virtualWrite (V13, минута);

Blynk.virtualWrite (V1, conteggio);

Serial.println ("Resetta");

забавяне (200);

Blynk.virtualWrite (V0, LOW);

}

}

void sendSensor () // нормална процедура за разрешаване

{

Низ currentTime = Низ (час ()) + ":" + минута ();

Низ 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 = String (t) + "° C (" + currentTime + "-" + currentDate + ")";

}

ако (t <tmin) {

tmin = t;

монетен двор = String (t) + "° C (" + currentTime + "-" + currentDate + ")";

}

if (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, максимум);

Blynk.virtualWrite (V13, минута);

}

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)

}

ако (cc == 1) {

conteggio = 48; // DOPO le prime 24ore разделяне semper на 24ore (48mezzore)

}

иначе {

// медия 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); // температурата на температурата е 5 минути

timer.setInterval (1800000, calcolo_media); // lettura e media ogni 30мин

}

void loop ()

{

Blynk.run ();

timer.run ();

дълго adesso = millis ();

val = digitalRead (vibr_pin);

vb = vb+val;

ако (adesso - prima> = Tempmax)

{

vb = 0;

vbinit = vb;

prima = adesso;

}

Препоръчано: