Obsah:

Birra_Monitor: 3 kroky
Birra_Monitor: 3 kroky

Video: Birra_Monitor: 3 kroky

Video: Birra_Monitor: 3 kroky
Video: Мне стыдно 3. Шоу постыдных историй. В гостях Бека Easy, Асхат Ибитанов и Биржан Кабылбаев 2024, Červenec
Anonim
Birra_Monitor
Birra_Monitor

Projekce slouží k monitorování fermentovaných kvasinek v domácím prostředí a při výrobě vibrací (SW-420 NC). Aggiunta del sensore di temperatura (DHT22) slouží k monitorování teploty a umocnění delta stanza atta alla fermentazione. Hledání dat vengono gestiti da una scheda nodemcu e visualizzati tramite Blynk app deputata allo sviluppo di soluzioni IoT.

Projekt slouží k monitorování kvašení domácího piva pomocí jednoduchého snímače vibrací (SW-420 NC). přidání teplotního čidla (DHT22) slouží ke sledování teploty a vlhkosti místnosti vhodné pro kvašení. Tato data jsou spravována kartou nodemcu a vizualizována prostřednictvím aplikace Blynk určené k vývoji řešení IoT.

Krok 1: Balení

Obal
Obal
Obal
Obal

Schengenské a sono sono alloggiate in una semplice scatola di derivazione.

Deska a senzory jsou umístěny v jednoduché spojovací krabici.

Krok 2: Senzor při práci

Senzor při práci
Senzor při práci
Senzor při práci
Senzor při práci

quello che succede quando il sensore è "montato" sul gorgogliatore che ad ogni espulsione di CO2 il sensore registererà delle vibrazioni che verranno visualizzate sull'app Blynk

co se stane, když je senzor „namontován“na bubbler, že pokaždé, když je vyloučen CO2, senzor zaznamená vibrace, které se zobrazí v aplikaci Blynk

Krok 3: Kód

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

kód umožňující fungování celku je následující, který bude stačit k načtení softwaru Arduino IDE na kartu

#include Adafruit_Sensor.h

#include DHT.h

#define BLYNK_PRINT Sériové číslo

#include ESP8266WiFi.h;

#include BlynkSimpleEsp8266.h;

#include SimpleTimer.h;

#include WidgetRTC.h;

float lettura [50]; // dimenze Arrayper média

int nume_Letture = 0; // progresivní letture

float tot_Letture = 0; // somma letture

float media_Letture = 0; // mediální poučení

int conteggio = 0; // variabilní di conteggio primario

// variabilita inizio dichiarazioni na média

int i = 0;

int cc = 0;

int togli = 0;

// jemné dichiarazioni variabili per media continua

int val; // variabilní 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

unsigned long prima = 0; // utilita na swap min/max

dlouhá Tempmax = 660000; // utilita na swap min/max

float tmax = -100; // impostazione nemožné na la temperatura massima

float tmin = 100; // impostazione nemožné na minima temperatury

float umax = 0; // impostazione nemožné za umidità massima

float umin = 100; // impostazione nemožné za minima umidità

Řetězec maxt; // stringa visualizzata su Blynk

Slaná máta; // stringa visualizzata su Blynk

Řetězec maxu; // stringa visualizzata su Blynk

Řetězec 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 sensore DHT

#define DHTTYPE DHT22

DHT dht (DHTPIN, DHTTYPE);

Časovač SimpleTimer; // časovač

WidgetRTC rtc; // orologio di sistema Blynk

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

BLYNK_CONNECTED () {

rtc.begin (); // avvio RTC

}

BLYNK_WRITE (V0) // rutina pro resetování tlačítka da Blynk

{

int attiva = param.asInt ();

if (attiva == 1) {

tmax = -100;

tmin = 100;

umax = 0;

umin = 100;

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

mint = "------------";

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, mincovna);

Blynk.virtualWrite (V12, maxu);

Blynk.virtualWrite (V13, minu);

Blynk.virtualWrite (V1, conteggio);

Serial.println („Resetta“);

zpoždění (200);

Blynk.virtualWrite (V0, LOW);

}

}

void sendSensor () // normální procedura lettura

{

Řetězec currentTime = String (hodina ()) + ":" + minuta ();

Řetězec currentDate = Řetězec (den ()) + "/" + měsíc ();

float h = dht.readHumidity ();

float t = dht.readTemperature ();

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

Serial.println („Čtení ze snímače DHT se nezdařilo!“);

led1.on ();

vrátit se;

}

jinak {

led1.off ();

}

if (t> tmax) {

tmax = t;

maxt = Řetězec (t) + "° C (" + aktuální čas + "-" + aktuální datum + ")";

}

if (t <tmin) {

tmin = t;

mint = String (t) + "° C (" + currentTime + "-" + currentDate + ")";

}

if (h> umax) {

umax = h;

maxu = Řetězec (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, mincovna);

Blynk.virtualWrite (V12, maxu);

Blynk.virtualWrite (V13, minu);

}

neplatné calcolo_media () // postup pro registraci dati médií

{

lettura [nume_Letture] = dht.readTemperature ();

if (isnan (lettura [nume_Letture])) {

led1.on ();

vrátit se;

}

// procedura media circolare

if (nume_Letture> = 48) {

togli = nume_Letture-48;

tot_Letture -= (lettura [togli]);

tot_Letture += (lettura [nume_Letture]);

nume_Letture = 0; // nastavit nulové e riparte tutto

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

}

if (cc == 1) {

conteggio = 48; // DOPO le prime 24ore dělí semper na 24ore (48mezzore)

}

jiný{

// primární výběr médií více než 24 dní

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

}

neplatné nastavení ()

{

Serial.begin (115200);

Blynk.begin (auth, ssid, pass);

dht.begin ();

timer.setInterval (10 000, sendSensor); // lettura temperatura umidità ogni 5 min

timer.setInterval (1800000, calcolo_media); // lettura e media ogni 30min

}

prázdná smyčka ()

{

Blynk.run ();

timer.run ();

long adesso = millis ();

val = digitalRead (vibr_pin);

vb = vb+val;

if (adesso - prima> = Tempmax)

{

vb = 0;

vbinit = vb;

prima = adesso;

}

Doporučuje: