Mục lục:
Video: Birra_Monitor: 3 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
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
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
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:
Động cơ bước Điều khiển động cơ bước Không cần vi điều khiển !: 6 bước
Động cơ bước Điều khiển động cơ bước Không cần vi điều khiển !: Trong phần Hướng dẫn nhanh này, chúng tôi sẽ tạo một bộ điều khiển động cơ bước đơn giản bằng cách sử dụng động cơ bước. Dự án này không yêu cầu mạch phức tạp hoặc vi điều khiển. Vì vậy, không cần thêm ado, chúng ta hãy bắt đầu
Động cơ bước được điều khiển Động cơ bước không có vi điều khiển (V2): 9 bước (có hình ảnh)
Động cơ bước được điều khiển bằng động cơ bước Không cần vi điều khiển (V2): Trong một trong những Hướng dẫn trước đây của tôi, tôi đã chỉ cho bạn cách điều khiển động cơ bước bằng cách sử dụng động cơ bước mà không cần vi điều khiển. Đó là một dự án nhanh chóng và thú vị nhưng nó đi kèm với hai vấn đề sẽ được giải quyết trong Có thể hướng dẫn này. Vì vậy, hóm hỉnh
Đầu máy mô hình điều khiển động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
Đầu máy mô hình điều khiển động cơ bước | Động cơ bước làm bộ mã hóa quay: Trong một trong những phần Hướng dẫn trước, chúng ta đã học cách sử dụng động cơ bước làm bộ mã hóa quay. Trong dự án này, bây giờ chúng ta sẽ sử dụng bộ mã hóa quay động cơ bước đó để điều khiển đầu máy mô hình bằng vi điều khiển Arduino. Vì vậy, không có fu
Âm thanh bay bổng với Arduino Uno Từng bước (8 bước): 8 bước
Acoustic Levitation With Arduino Uno Step-by-by-by (8 bước): bộ chuyển đổi âm thanh siêu âm L298N Dc cấp nguồn cho bộ chuyển đổi âm thanh nữ với chân cắm một chiều nam Arduino UNOBreadboard Cách hoạt động: Đầu tiên, bạn tải mã lên Arduino Uno (nó là một vi điều khiển được trang bị kỹ thuật số và các cổng tương tự để chuyển đổi mã (C ++)
Động cơ bước Điều khiển động cơ bước Động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
Động cơ bước Điều khiển động cơ bước Động cơ bước | Động cơ bước như một bộ mã hóa quay: Có một vài động cơ bước nằm xung quanh và muốn làm điều gì đó? Trong Có thể hướng dẫn này, hãy sử dụng động cơ bước làm bộ mã hóa quay để điều khiển vị trí của động cơ bước khác bằng vi điều khiển Arduino. Vì vậy, không cần phải quảng cáo thêm, chúng ta hãy