Mundarija:
Video: Birra_Monitor: 3 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Vibrazion (SW-420 NC) tramit va semplice sensorli kanallarda (fermentlar-della birra fatta) monitör xizmat qiladi. Harorat sensori (DHT22) haroratni nazorat qilish uchun xizmat qiladi. Blynk ilovasi uchun IoT -ning har bir vazifasi bir vaqtning o'zida amalga oshiriladi.
Loyiha oddiy tebranish sensori (SW-420 NC) yordamida uy qurilishi pivosining fermentatsiyasini kuzatish uchun ishlatiladi. harorat sensori (DHT22) qo'shilishi fermentatsiyaga yaroqli xonaning harorati va namligini kuzatishga xizmat qiladi. Bu ma'lumotlar nodemcu kartasi orqali boshqariladi va IoT echimlarini ishlab chiqish uchun tayinlangan Blynk dasturi orqali ko'rsatiladi.
1 -qadam: qadoqlash
Shaxsiy sensori alloggiate bir xil bo'laklarga bo'linadi.
Kengash va datchiklar oddiy ulanish qutisiga joylashtirilgan.
2 -qadam: Sensor ish joyida
quello che succede quando il sensore è "montato" sul gorgogliatore va CO2 il sensore registrerà delle vibrazioni che verranno visualizzate sull'app Blynk
Sensor puflagichga "o'rnatilganda" nima bo'ladi, har safar CO2 chiqarilganda sensor Blynk ilovasida ko'rsatiladigan tebranishlarni qayd qiladi.
3 -qadam: kod
dasturiy ta'minot Arduino IDE dasturini ishga tushirish uchun dasturlarni ishga tushiring.
butunning ishlashiga ruxsat beruvchi kod - bu Arduino IDE dasturini kartaga yuklash uchun etarli bo'ladi.
#Adafruit_Sensor.h qo'shing
#DHT.h ni qo'shing
#blynk_print seriyasini aniqlang
#ESP8266WiFi.h ni qo'shing;
#blynkSimpleEsp8266.h qo'shing;
#To'liq SimpleTimer.h;
#WidgetRTC.h ni qo'shing;
float lettura [50]; // o'lchovli ommaviy axborot vositalari
int nume_Letture = 0; // progressiv lettura
float tot_Letture = 0; // somma letur
float media_Letture = 0; // ommaviy axborot vositalari ijrosi
int conteggio = 0; // variabile di conteggio primario
// har bir ommaviy axborot vositasi uchun turli xil variantlar
int i = 0;
int cc = 0;
int togli = 0;
// har bir ommaviy axborot vositasi uchun juda yaxshi
int val; // o'zgaruvchan registrazione vibrazione
int vibr_pin = 5; // Piedino x Sensore di Vibrazione D1
int vb = 0; // Inizializzo va boshqalar
int vbr = 0; // Inizializzo va boshqalar
int vbinit = 0; // Inizializzo vbinit a 0
belgisiz uzun prima = 0; // almashtirish uchun utile min/max
uzoq Tempmax = 660000; // almashtirish uchun utile min/max
float tmax = -100; // impostazione impossibile per la temperatura massima
suzuvchi tmin = 100; // impostazione impossibile per il temperatura minima
float umax = 0; // impostazione impossibile per umidità massima
suzuvchi umin = 100; // impostazione impossibile per umidità minima
String maxt; // Blynk vizualizatsiyasi
String yalpiz; // Blynk vizualizatsiyasi
String maxu; // Blynk vizualizatsiyasi
String minu; // Blynk vizualizatsiyasi
char auth = "a °°°°°°°°°°°°°° d"; // token Blynk
char ssid = "T °°°°°°°°°°°°°°°° 9"; //Wifi
char pass = "O °°°°°°°°°°°°°° R"; // psw
#DHTPIN 2 ni belgilang // pin sensore DHT
#DHTTYPE DHT22 ni aniqlang
DHT dht (DHTPIN, DHTTYPE);
SimpleTimer taymeri; // taymer
WidgetRTC rtc; // Blynk tizimi
VidjetLED LED1 (V15); // Led Blynk pin V15
BLYNK_CONNECTED () {
rtc.begin (); // avvio RTC
}
BLYNK_WRITE (V0) // Blynk uchun har bir ta'mni tiklash tartibi
{
int attiva = param.asInt ();
agar (attiva == 1) {
tmax = -100;
tmin = 100;
umax = 0;
umin = 100;
maxt = "------------";
yalpiz = "------------";
maxu = "------------";
minu = "------------";
media_Letture = 0;
tot_Letture = 0;
nume_Letture = 0;
kontegjio = 0;
cc = 0;
Serial.println (conteggio);
Blynk.virtualWrite (V8, media_Letture);
Blynk.virtualWrite (V10, maxt);
Blynk.virtualWrite (V11, yalpiz);
Blynk.virtualWrite (V12, maxu);
Blynk.virtualWrite (V13, minu);
Blynk.virtualWrite (V1, kontegjio);
Serial.println ("Resetta");
kechikish (200);
Blynk.virtualWrite (V0, LOW);
}
}
void sendSensor () // oddiy protsedura
{
String currentTime = String (soat ()) + ":" + daqiqa ();
String currentDate = String (kun ()) + "/" + oy ();
float h = dht.readHumidity ();
float t = dht.readTemperature ();
agar (isnan (h) || isnan (t)) {
Serial.println ("DHT sensoridan o'qib bo'lmadi!");
led1.on ();
qaytish;
}
boshqa {
led1.off ();
}
agar (t> tmax) {
tmax = t;
maxt = String (t) + "° C (" + currentTime + "-" + currentDate + ")";
}
agar (t <tmin) {
tmin = t;
yalpiz = String (t) + "° C (" + currentTime + "-" + currentDate + ")";
}
agar (h> umax) {
umax = h;
maxu = String (h) + "% (" + currentTime + "-" + currentDate + ")";
}
agar (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, yalpiz);
Blynk.virtualWrite (V12, maxu);
Blynk.virtualWrite (V13, minu);
}
void calcolo_media () // registratsiya ma'lumotlari uchun protsedura
{
lettura [nume_Letture] = dht.readTemperature ();
agar (isnan (lettura [nume_Letture])) {
led1.on ();
qaytish;
}
// media circulare protsedurasi
agar (nume_Letture> = 48) {
togli = nume_Letture-48;
tot_Letture -= (lettura [togli]);
tot_Letture += (lettura [nume_Letture]);
nume_Letture = 0; // nol va nolga teng
cc = 1; // identifikator primo passaggio dopo 48 letture (24ore)
}
agar (cc == 1) {
kontegjio = 48; // DOPO le prime 24ore semerni har 24 ta (48mazzore) ga ajratish.
}
boshqa {
// ommaviy axborot vositalarining boshlanishi, bu 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, kontegjio);
}
bo'sh o'rnatish ()
{
Serial.begin (115200);
Blynk.begin (auth, ssid, pass);
dht.begin ();
timer.setInterval (10000, sendSensor); // lettura temperatura umidida ogni 5 min
timer.setInterval (1800000, calcolo_media); // ommaviy axborot vositalari 30 daqiqa
}
bo'sh halqa ()
{
Blynk.run ();
taymer.run ();
uzoq manzil = millis ();
val = digitalRead (vibr_pin);
vb = vb+val;
agar (adesso - prima> = Tempmax)
{
vb = 0;
vbinit = vb;
prima = qo'shimcha;
}
Tavsiya:
To'g'ridan-to'g'ri raqamli sintez (DDS) chipli MIDI tomonidan boshqariladigan qadam dvigateli: 3 qadam
To'g'ridan-to'g'ri raqamli sintez (DDS) chipli MIDI tomonidan boshqariladigan qadamli dvigatel: Siz hech qachon mini-loyihaga aylanishingiz kerak degan yomon fikrga keldingizmi? Xo'sh, men AD9833 to'g'ridan -to'g'ri raqamli sintez (DDS) moduli yordamida musiqa yaratishga qaratilgan Arduino Due uchun chizgan eskiz bilan o'ynab yurardim … va bir paytlar men o'yladim
Arduino uchun qadam tezligini boshqarish menyusi: 6 qadam
Arduino uchun qadam tezligini boshqarish menyusi: Bu SpeedStepper kutubxonasi qadam dvigatelining tezligini nazorat qilish uchun AccelStepper kutubxonasining qayta yozilishi. SpeedStepper kutubxonasi sizga belgilangan dvigatel tezligini o'zgartirishga imkon beradi, so'ngra xuddi shu algoritm yordamida yangi belgilangan tezlikka tezlashadi/sekinlashadi
Qanday qilib qadam taymerini yasash mumkin?: 3 qadam (rasmlar bilan)
Qanday qilib qadam taymerini yasash mumkin ?: Men ko'plab sport turlarida yaxshi qatnashardim: yurish, yugurish, velosiped haydash, badminton o'ynash va hokazo. Men tez orada sayohat qilishni yaxshi ko'raman. Xo'sh, qorin qornimga qarang …… Xo'sh, baribir, men mashg'ulotlarni qaytadan boshlashga qaror qildim. Qanday uskunani tayyorlashim kerak?
Arduino UNO bilan qadam motor: 3 qadam
Arduino UNO bilan qadam dvigateli: Bosqichli motorlar - bu alohida bosqichlarda harakatlanadigan shahar motorlari. Ularda "fazalar" deb nomlangan guruhlarga bo'lingan bir nechta rulon bor. Har bir fazani ketma -ket quvvatlantirganda, dvigatel birma -bir aylanadi, zinapoyali dvigatellar juda foydali
Kompyuteringizni qadam dvigateli bilan boshqaring!: 9 qadam (rasmlar bilan)
Kompyuteringizni qadam dvigateli bilan boshqaring!: Oldingi ko'rsatmalarimdan birida men sizga step motorini aylanuvchi kodlovchi sifatida qanday ishlatishni ko'rsatdim. Bu yo'riqnomada keling, undan kompyuterni boshqarish uchun qanday foydalanish kerakligini bilib olaylik. Shunday qilib, ko'p vaqt sarflamasdan, boshlaylik