Оглавление:

Birra_Monitor: 3 шага
Birra_Monitor: 3 шага

Видео: Birra_Monitor: 3 шага

Видео: Birra_Monitor: 3 шага
Видео: Ярослава Дегтярёва. "Кукушка" - Слепые прослушивания - Голос Дети - Сезон 3 2024, Ноябрь
Anonim
Birra_Monitor
Birra_Monitor

Разработан для того, чтобы подавать мониторинг ферментации делла бирра фатта в простом сенсорном вибрационе (SW-420 NC). l'aggiunta del sensore di temperatura (DHT22) служит для контроля температуры и umidità della stanza atta alla fermentazione. Эти данные используются для узлов и визуализируют маршруты приложения Blynk, связанные с подключенными решениями IoT.

В проекте используется для контроля брожения домашнего пива с помощью простого датчика вибрации (SW-420 NC). Дополнительный датчик температуры (DHT22) служит для контроля температуры и влажности в помещении, пригодном для ферментации. Эти данные управляются картой nodemcu и визуализируются через приложение Blynk, предназначенное для разработки решений IoT.

Шаг 1: упаковка

Упаковка
Упаковка
Упаковка
Упаковка

Scheda e sensori sono alloggiate in una semplice scatola di производная.

Плата и датчики размещены в простой распределительной коробке.

Шаг 2: датчик в действии

Датчик в работе
Датчик в работе
Датчик в работе
Датчик в работе

quello che successde 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: Код

Код, позволяющий разрешить все функции всего этого, следует, что вы используете программное обеспечение Arduino IDE.

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

#include Adafruit_Sensor.h

#include DHT.h

#define BLYNK_PRINT Serial

#include ESP8266WiFi.h;

#include BlynkSimpleEsp8266.h;

#include SimpleTimer.h;

#include WidgetRTC.h;

флоат-леттура [50]; // размерность Arrayper media

int nume_Letture = 0; // progressivo letture

float tot_Letture = 0; // somma letture

float media_Letture = 0; // СМИ

int contextggio = 0; // variabile di contextio primario

// inizio dichiarazioni variabili для континуума среды

int я = 0;

int cc = 0;

int togli = 0;

// fine dichiarazioni variabili per media континуум

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; // полезность на своп мин. / макс.

long Tempmax = 660000; // полезность на своп мин. / макс.

float tmax = -100; // Impostazione Impossibile per la temperatura massima

float tmin = 100; // невозможность установки при минимальных температурах

поплавок umax = 0; // Impostazione Impossibile per umidità massima

поплавок umin = 100; // импостазион невозможен при минимальном значении

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»; // токен Blynk

char ssid = "Т °°°°°°°°°°°° 9"; //вай фай

char pass = «O °°°°°°°°°°° R»; // psw

#define DHTPIN 2 // контактный датчик DHT

#define DHTTYPE DHT22

DHT dht (DHTPIN, DHTTYPE);

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

WidgetRTC rtc; // orologio di sistema Blynk

WidgetLED led1 (V15); // Светодиод Blynk sul pin V15

BLYNK_CONNECTED () {

rtc.begin (); // avvio RTC

}

BLYNK_WRITE (V0) // подпрограмма для сброса настроек на Blynk

{

int attiva = param.asInt ();

if (attiva == 1) {

tmax = -100;

tmin = 100;

umax = 0;

umin = 100;

maxt = "------------";

мята = "------------";

maxu = "------------";

minu = "------------";

media_Letture = 0;

tot_Letture = 0;

nume_Letture = 0;

contextgio = 0;

cc = 0;

Serial.println (контекст);

Blynk.virtualWrite (V8, media_Letture);

Blynk.virtualWrite (V10, maxt);

Blynk.virtualWrite (V11, мята);

Blynk.virtualWrite (V12, maxu);

Blynk.virtualWrite (V13, minu);

Blynk.virtualWrite (V1, context);

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 + ")";

}

if (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, мята);

Blynk.virtualWrite (V12, maxu);

Blynk.virtualWrite (V13, minu);

}

void calcolo_media () // процедура для регистрации данных носителя

{

lettura [nume_Letture] = dht.readTemperature ();

if (isnan (lettura [nume_Letture])) {

led1.on ();

возвращение;

}

// procdura media circolare

if (nume_Letture> = 48) {

togli = nume_Letture-48;

tot_Letture - = (lettura [togli]);

tot_Letture + = (lettura [nume_Letture]);

nume_Letture = 0; // установить ноль и принять все

cc = 1; // Identifica primo passaggio dopo 48 letture (24ore)

}

if (cc == 1) {

contextgio = 48; // DOPO le prime 24ore делит число на 24ore (48 месяцев)

}

еще{

// media prima dello scadere delle 24ore

tot_Letture + = (lettura [nume_Letture]);

contextggio = contextgio + 1;

}

media_Letture = Tot_Letture / context;

nume_Letture = числовой_Letture + 1;

Blynk.virtualWrite (V8, media_Letture);

Blynk.virtualWrite (V1, context);

}

установка void ()

{

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 30 мин.

}

пустой цикл ()

{

Blynk.run ();

timer.run ();

long adesso = millis ();

val = digitalRead (vibr_pin);

vb = vb + val;

если (adesso - prima> = Tempmax)

{

vb = 0;

vbinit = vb;

prima = adesso;

}

Рекомендуемые: