Съдържание:
Видео: Birra_Monitor: 3 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
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;
}
Препоръчано:
Първи стъпки с безжични сензори за температура и вибрации на дълги разстояния: 7 стъпки
Първи стъпки с безжични сензори за температура и вибрации на дълги разстояния: Понякога вибрациите са причина за сериозни проблеми в много приложения. От валове и лагери на машината до работа на твърдия диск, вибрациите причиняват повреда на машината, ранна подмяна, ниска производителност и нанасят сериозен удар върху точността. Мониторинг
Първи стъпки с STM32f767zi Cube IDE и качване на персонализирана скица: 3 стъпки
Първи стъпки с STM32f767zi Cube IDE и качване на персонализирана скица: КУПЕТЕ (щракнете върху теста, за да закупите/посетете уеб страницата) STM32F767ZISUPPORTED SOFTWARE · STM32CUBE IDE · KEIL MDK ARM µVISION · EWARM IAR EMBEDDED WORKBENCH използва се за програмиране на STM микроконтролери
Как да направите 4G LTE двойна BiQuade антена Лесни стъпки: 3 стъпки
Как да направя 4G LTE двойна BiQuade антена лесни стъпки: През повечето време, с което се сблъсквах, нямам добра сила на сигнала за ежедневните ми работи. Така. Търся и опитвам различни видове антени, но не работи. След загубено време намерих антена, която се надявам да направя и изпробвам, защото тя не градивен принцип
Дизайн на играта с бързо движение в 5 стъпки: 5 стъпки
Дизайн на игра с Flick в 5 стъпки: Flick е наистина прост начин да направите игра, особено нещо като пъзел, визуален роман или приключенска игра
Система за предупреждение за паркиране на автомобил Arduino - Стъпки по стъпка: 4 стъпки
Система за предупреждение за паркиране на автомобил Arduino | Стъпки по стъпка: В този проект ще проектирам обикновена верига за сензори за паркиране на автомобил Arduino, използвайки Arduino UNO и HC-SR04 ултразвуков сензор. Тази базирана на Arduino система за предупреждение за автомобил за заден ход може да се използва за автономна навигация, измерване на роботи и други обхвати