Mục lục:

Birra_Monitor: 3 bước
Birra_Monitor: 3 bước

Video: Birra_Monitor: 3 bước

Video: Birra_Monitor: 3 bước
Video: Đổ xi măng vào bỏ chai bia, lốp xe cũ, bất ngờ với món đồ hữu ích chất hơn nước cất #shorts 2024, Tháng mười một
Anonim
Birra_Monitor
Birra_Monitor

Il progetto phục vụ monitorare la fermentazione della birra fatta trong casa tramite un semplice sensore di vibrazione (SW-420 NC). l'aggiunta del sensore di temperatura (DHT22) phục vụ monitorare temperatura e umidità della stanza atta alla fermentazione. Câu hỏi dati vengono gestiti da una lịch trình gật gù e visualizzati tramite ứng dụng Blynk deputata allo sviluppo di soluzioni IoT.

Dự án được sử dụng để theo dõi quá trình lên men bia tự chế bằng cảm biến rung đơn giản (SW-420 NC). việc bổ sung cảm biến nhiệt độ (DHT22) phục vụ cho việc theo dõi nhiệt độ và độ ẩm của phòng thích hợp cho quá trình lên men. Dữ liệu này được quản lý bằng thẻ gật gù và được hiển thị trực quan thông qua ứng dụng Blynk được chỉ định để phát triển các giải pháp IoT.

Bước 1: Đóng gói

Bao bì
Bao bì
Bao bì
Bao bì

Scheda e sensori sono alloggiate trong una semplice scola di dẫn xuất.

Bo mạch và cảm biến được đặt trong một hộp nối đơn giản.

Bước 2: Cảm biến tại nơi làm việc

Cảm biến tại nơi làm việc
Cảm biến tại nơi làm việc
Cảm biến tại nơi làm việc
Cảm biến tại nơi làm việc

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

điều gì sẽ xảy ra khi cảm biến được "gắn" trên bình bọt khí mà mỗi khi CO2 thoát ra, cảm biến sẽ ghi lại các rung động sẽ hiển thị trên ứng dụng Blynk

Bước 3: Mã

il codice per permettere il funzionamento del tutto è il seguente che basterà caricare sulla Scheda tramide il Phần mềm Arduino IDE

mã để cho phép toàn bộ hoạt động như sau sẽ đủ để tải vào thẻ phần mềm Arduino IDE

#include Adafruit_Sensor.h

#include DHT.h

#define BLYNK_PRINT Sê-ri

#include ESP8266WiFi.h;

#include BlynkSimpleEsp8266.h;

#include SimpleTimer.h;

#include WidgetRTC.h;

float lettura [50]; // phương tiện Arrayper kích thước

int number_Letture = 0; // processivo letture

float tot_Letture = 0; // somma letture

float media_Letture = 0; // chữ ghi phương tiện

int Conteggio = 0; // variabile di Conteggio primario

// inizio dichiarazioni variabili per media Continua

int i = 0;

int cc = 0;

int togli = 0;

// dichiarazioni variabili tốt trên mỗi phương tiện liên tục

int val; // variabile registerrazione 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; // vô ích mỗi lần hoán đổi tối thiểu / tối đa

dài Tempmax = 660000; // vô ích mỗi lần hoán đổi tối thiểu / tối đa

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

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

float umax = 0; // impostazione impossibile per umidità massima

float umin = 100; // impostazione impossibile per umidità minima

Chuỗi maxt; // stringa visualizzata su Blynk

Bạc hà dây; // stringa visualizzata su Blynk

Chuỗi maxu; // stringa visualizzata su Blynk

Chuỗi minu; // stringa visualizzata su Blynk

char auth = a °osystem ° C ° C …

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

char vượt qua = "O ° ° ° CỘNG HÒA RỘNG RỒI"; // psw

#define DHTPIN 2 // pin sensore DHT

#define DHTTYPE DHT22

DHT dht (DHTPIN, DHTTYPE);

Bộ đếm thời gian SimpleTimer; // bộ đếm thời gian

WidgetRTC rtc; // orologio di sistema Blynk

WidgetLED led1 (V15); // Led Blynk sul chân V15

BLYNK_CONNECTED () {

rtc.begin (); // avvio RTC

}

BLYNK_WRITE (V0) // thiết lập lại quy trình mỗi ngày một ngon miệng trên da Blynk

{

int attiva = param.asInt ();

nếu (attiva == 1) {

tmax = -100;

tmin = 100;

umax = 0;

umin = 100;

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

bạc hà = "------------";

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

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

media_Letture = 0;

tot_Letture = 0;

number_Letture = 0;

Conteggio = 0;

cc = 0;

Serial.println (Conteggio);

Blynk.virtualWrite (V8, media_Letture);

Blynk.virtualWrite (V10, maxt);

Blynk.virtualWrite (V11, bạc hà);

Blynk.virtualWrite (V12, maxu);

Blynk.virtualWrite (V13, minu);

Blynk.virtualWrite (V1, Conteggio);

Serial.println ("Resetta");

chậm trễ (200);

Blynk.virtualWrite (V0, LOW);

}

}

void sendSensor () // normale procedureura di lettura

{

String currentTime = String (giờ ()) + ":" + phút ();

String currentDate = String (day ()) + "/" + month ();

float h = dht.readHumidity ();

float t = dht.readTempe Heat ();

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

Serial.println ("Không thể đọc từ cảm biến DHT!");

led1.on ();

trở lại;

}

khác {

led1.off ();

}

nếu (t> tmax) {

tmax = t;

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

}

nếu (t <tmin) {

tmin = t;

bạc hà = String (t) + "° C (" + currentTime + "-" + currentDate + ")";

}

nếu (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, bạc hà);

Blynk.virtualWrite (V12, maxu);

Blynk.virtualWrite (V13, minu);

}

void calcolo_media () // procedureura per registerrazioni dati media

{

lettura [number_Letture] = dht.readTempeosystem ();

if (isnan (lettura [num_Letture])) {

led1.on ();

trở lại;

}

// thủ tục media circleolare

if (number_Letture> = 48) {

togli = number_Letture-48;

tot_Letture - = (lettura [togli]);

tot_Letture + = (lettura [số_Letture]);

number_Letture = 0; // setta a zero e riparte tutto

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

}

if (cc == 1) {

Conteggio = 48; // DOPO le prime 24ore chia semper cho 24ore (48mezzore)

}

khác{

// media prima dello scadere delle 24ore

tot_Letture + = (lettura [số_Letture]);

Conteggio = Conteggio + 1;

}

media_Letture = tot_Letture / Conteggio;

number_Letture = number_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); // lettura temperatura umidità ogni 5 phút

timer.setInterval (1800000, calcolo_media); // lettura e media ogni 30 phút

}

void loop ()

{

Blynk.run ();

timer.run ();

long adesso = millis ();

val = digitalRead (vibr_pin);

vb = vb + val;

if (adesso - prima> = Tempmax)

{

vb = 0;

vbinit = vb;

prima = adesso;

}

Đề xuất: