Cuprins:
- Pasul 1: Prezentare generală a circuitului
- Pasul 2: Prezentare generală a sistemului software
- Pasul 3: Prezentare generală a software-ului
- Pasul 4: Calibrarea senzorului
- Pasul 5: Convenția de numire a subiectelor MQTT
- Pasul 6: Configurare OpenHAB
- Pasul 7: Testarea designului
- Pasul 8: Concluzie
- Pasul 9: Referințe utilizate
Video: Senzor de temperatură și umiditate IoT WiFi. Partea: 8 IoT, Home Automation: 9 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:46
Preambul
Acest articol documentează rezistența practică și dezvoltarea ulterioară a unui Instructable anterior: „Pimping” primul dispozitiv WiFi IoT. Partea 4: IoT, Home Automation, care include toate funcționalitățile software necesare pentru a permite desfășurarea cu succes într-un mediu casnic intern.
Introducere
Așa cum s-a menționat mai sus, acest Instructable descrie reunirea unui exemplu IoT anterior cu un design de sistem fiabil care să permită gestionarea cu succes a cazurilor de utilizare practică, cum ar fi; Pierderea catastrofală de energie, eșecul brokerului MQTT, eșecul WiFi N / W, reconfigurarea senzorului de la distanță, strategia de raportare configurabilă pentru a reduce traficul de rețea și calibrarea senzorului personalizat.
Un total de 6 dispozitive oprite au fost create (a se vedea imaginea 1 de mai sus) și distribuite în jurul casei mele pentru a forma prima mea rețea de senzori IoT.
Instructable vede, de asemenea, o revizuire a convenției de denumire MQTT, așa cum este utilizată în seria inițială IoT Home Automation, dând loc unei structuri mai echilibrate și practice care să permită depanarea mai simplă a traficului IoT într-un mediu cu dispozitive multi IoT.
Ceea ce urmează sunt detalii complete de proiectare ale senzorului IoT, inclusiv; construcție, cod sursă, strategie de testare și configurații OpenHAB.
De ce piese am nevoie?
- 1 reducere ESP8266-01,
- 2 off 1uF condensatori electrolitici,
- 3 rezistențe de 10K,
- 1 rezistor 330R,
- 1 off 3mm dia. LED,
- 1 off LD1117-33v, 3v3 LDO VReg. (Farnell aici),
- 1 off senzor de temperatură / umiditate DHT22,
- 1 off Dual 4way 0.1 "Conector,
- 1 off CAMDENBOSS RX2008 / S-5 Carcasă din plastic, cutie pentru vase, ABS, 38 mm, 23 mm (Farnell aici),
- 1 off conector de alimentare DC, mufă, 1 A, 2 mm, montare pe panou (Farnell aici),
- 1 off TO-220 Radiator 24,4 ° C / W (Farnell aici),
- Diverse tuburi termocontractabile (galben, Ebay aici),
- Cablu panglică IDC de diferite lungimi,
- Compus pentru radiator,
- Veroboard,
- Dispozitiv de programare ESP8266-01. Vezi aici; Construcție practică a circuitului cu placă de bandă, pasul 9 în continuare.
De ce software am nevoie?
- Arduino IDE 1.6.9
- Arduino IDE configurat pentru a programa ESP8266-01. Vezi aici; Configurarea IDE Arduino pentru a programa ESP8266-01
De ce instrumente am nevoie?
- Ciocan de lipit,
- Burghiu și diverse biți,
- Dosare,
- Ferăstrău,
- Viciu robust,
- Pistol cu aer cald,
- DMM.
De ce abilități am nevoie?
- O înțelegere minimă a electronicii,
- Cunoașterea Arduino și a IDE-ului său,
- Abilități de fabricare Rudimentare (lipire, tăiere, tăiere, găurire etc.),
- Un pic de răbdare,
- O oarecare înțelegere a rețelei dvs. de domiciliu.
Subiecte acoperite
- Prezentare generală a circuitului
- Prezentare generală a sistemului software
- Prezentare generală a software-ului
- Calibrarea senzorului
- Convenția de denumire a subiectelor MQTT
- Configurare OpenHAB
- Testarea proiectării
- Concluzie
- Referințe utilizate
Link-uri de serie
La partea 7: Controlul luminilor de studiu (refăcut). Partea 7: IoT, Home Automation
La partea 9: IoT Mains Controller. Partea 9: IoT, Home Automation
Pasul 1: Prezentare generală a circuitului
Imaginea 1 de mai sus prezintă designul complet al circuitului pentru senzorul IoT.
În centrul dispozitivului IoT se află ESP8266-01, care este conectat la un senzor de temperatură / umiditate DHT22 printr-un rezistor de 10K la GPIO2. Un 5v extern este furnizat cu o sursă de comutare și este alimentat dispozitivului printr-o priză de montare pe panou DC de 2 mm și este reglat local cu un regulator de tensiune LD1117-33v, 3v3 LDO montat pe un radiator extern cu un șurub și panou BZP M3.
Designul include un led roșu de 3 mm conectat la GPIO0 care este utilizat pentru a oferi indicații locale despre starea dispozitivului IoT în timpul pornirii sau a oricărei condiții de eroare ulterioare. Poate fi, de asemenea, utilizat pentru a identifica dispozitivul prin activarea manuală prin intermediul interfeței openHAB.
Designul complet se potrivește perfect într-o cutie de vase ABS așa cum se arată mai sus în imaginea 2 și a fost prevăzut special pentru a se asigura că senzorul este cât mai departe posibil de regulator pentru a preveni polarizarea din cauza efectelor de încălzire locală (imaginea 7 de mai sus).
Placa de circuite este o singură bucată de veroboard, tăiată în formă și făcută pentru a se potrivi în incintă (imaginea 3 de mai sus). Această placă este fixată în poziție cu un șurub de nailon în formă de M3 și două piulițe care se potrivește cu partea inferioară a senzorului, permițându-i astfel să stea pe o suprafață plană.
Imaginile 4… 6 prezintă diferite stări de construcție.
Pasul 2: Prezentare generală a sistemului software
Acest dispozitiv de detectare a temperaturii și umidității IoT conține șase componente software cheie, așa cum se arată în imaginea 1 de mai sus.
SPIFFS
Acesta este sistemul SPI Flash Filing de la bord și este utilizat pentru a păstra următoarele informații (a se vedea imaginea 2 de mai sus);
- Pictograme și „Pagina principală de configurare a senzorului” html: servit de dispozitivul IoT atunci când acesta nu se poate conecta la rețeaua WiFi IoT (de obicei din cauza informațiilor incorecte de securitate) și oferă utilizatorului un mijloc de configurare de la distanță a senzorului fără a fi nevoie pentru a reprograma sau încărca conținut SPIFFS nou.
- Informații de securitate: Deține informațiile utilizate la pornirea dispozitivului IoT pentru a vă conecta la rețeaua WiFi IoT și la brokerul MQTT. Informațiile trimise prin „Pagina principală a configurării senzorului” sunt scrise în acest fișier („secvals.txt”).
- Informații de calibrare: Informațiile conținute în acest fișier („calvals.txt”) sunt utilizate pentru calibrarea senzorului de temperatură / umiditate de la bord, dacă este necesar. Constantele de calibrare pot fi scrise numai pe dispozitivul IoT prin comenzi MQTT de la un broker MQTT.
Notă: Pentru a configura inițial dispozitivul, consultați aici detalii complete despre modul de utilizare a SPIFFS cu IDE-ul Arduino.
Server mDNS
Această funcționalitate este invocată atunci când dispozitivul IoT nu a reușit să se conecteze la rețeaua WiFi ca stație WiFi și, în schimb, a devenit un punct de acces WiFi ceva asemănător cu un router WiFi intern. În cazul unui astfel de router, vă veți conecta în mod obișnuit introducând adresa IP a ceva de genul 192.168.1.1 (tipărită de obicei pe o etichetă atașată la casetă) direct în bara URL a browserului, după care veți primi o pagină de autentificare pentru a intra numele de utilizator și parola pentru a vă permite să configurați dispozitivul.
Pentru ESP8266 în modul AP (modul Punct de acces) dispozitivul implicit este adresa IP 192.168.4.1, cu toate acestea, cu serverul mDNS care rulează, trebuie să introduceți numai numele prietenos uman „SENSORSVR.local” în bara URL a browserului. „Pagina principală de configurare a senzorului”.
Client MQTT
Clientul MQTT oferă toate funcționalitățile necesare pentru; conectați-vă la rețeaua dvs. IoT broker MQTT, abonați-vă la subiectele la alegere și publicați sarcini utile la un subiect dat. Pe scurt, prevede funcționalitatea de bază IoT.
Server Web
După cum sa menționat mai sus, dacă dispozitivul IoT nu se poate conecta la rețeaua WiFi al cărui SSID, P / W etc. este definit în fișierul cu informații de securitate deținut în SPIFFS, dispozitivul va deveni un punct de acces. Odată conectat la rețeaua WiFi furnizată de Access Point, prezența unui server web HTTP vă permite să vă conectați direct la dispozitiv și să modificați configurația acestuia prin utilizarea unui browser Web HTTP, scopul fiind de a servi „Acasă configurare senzor” Pagina web a paginii, care este, de asemenea, păstrată în SPIFFS.
Stație WiFi
Această funcționalitate oferă dispozitivului IoT capacitatea de a se conecta la o rețea WiFi internă utilizând parametrii din fișierul Informații de securitate, fără aceasta dispozitivul dvs. IoT nu va putea să se aboneze / să publice la MQTT Broker
Punct de acces WiFi
Capacitatea de a deveni un punct de acces WiFi este un mijloc prin care dispozitivul IoT vă permite să vă conectați la acesta și să efectuați modificări de configurare printr-o stație WiFi și un browser (cum ar fi Safari pe Apple iPad).
Acest punct de acces difuzează un SSID = "SENSOR" + ultimele 6 cifre ale adresei MAC a dispozitivului IoT. Parola pentru această rețea închisă este numită imaginațional „PAROLĂ”
Pasul 3: Prezentare generală a software-ului
Preambul Pentru a compila cu succes acest cod sursă, veți avea nevoie de următoarele biblioteci suplimentare;
PubSubClient.h
- De: Nick O'Leary
- Scop: Permite dispozitivului să publice sau să se aboneze la subiecte MQTT cu un anumit Broker
- De la:
DHT.h
- De: Adafruit
- Scop: Biblioteca pentru senzor de temperatură / umiditate DHT
- De la:
Prezentare generală a codului
Software-ul folosește mașina de stat așa cum se arată în imaginea 1 de mai sus (o copie completă a sursei de mai jos). Există 5 stări principale ca mai jos;
-
INIT
Această stare de inițializare este prima stare introdusă după pornire
-
NOCONFIG
Această stare este introdusă dacă după pornire este detectat un fișier secvals.txt nevalid sau lipsă
-
PENDENT NW
Această stare este tranzitorie, a intrat în timp ce nu există o conexiune de rețea WiFi
-
MQTT PENDENT
Această stare este tranzitorie, introdusă după ce s-a făcut o conexiune de rețea WiFi și, deși nu există nicio conexiune la un broker MQTT din acea rețea
-
ACTIV
Aceasta este starea operațională normală introdusă după stabilirea atât a unei conexiuni de rețea WiFi, cât și a unei conexiuni MQTT Broker. În această stare, funcționalitatea de temperatură și umiditate a senzorului este publicată către Brokerul MQTT
Evenimentele care controlează tranzițiile între stări sunt descrise în imaginea 1 de mai sus. Tranzițiile între state sunt, de asemenea, guvernate de următorii parametri SecVals;
- Prima adresă IP a brokerului MQTT. În formă zecimală punctată AAA. BBB. CCC. DDD
- Al doilea port de broker MQTT. În formă de număr întreg.
- A treia conexiune broker MQTT încearcă să se facă înainte de a trece de la modul STA la modul AP. În formă de număr întreg.
- Al 4-lea rețea WiFi SSID. În text liber.
- A 5-a parolă de rețea WiFi. În text liber.
Așa cum s-a menționat mai sus, dacă dispozitivul IoT nu se poate conecta ca stație WiFi la rețeaua WiFi care are SSID și P / W este definit în secvals.txt deținut în SPIFFS, dispozitivul IoT va deveni un punct de acces. Odată conectat la acest punct de acces, acesta va afișa „Pagina principală a configurării senzorului”, așa cum se arată mai sus în imaginea 2 (introducând fie „SENSORSVR.local”, fie 192.168.4.1 în bara de adrese URL a browserului dvs.). Această pagină de start permite reconfigurarea senzorului printr-un browser
Acces la distanță în timp ce se află în starea ACTIVĂ
Odată conectat la Brokerul MQTT, este de asemenea posibil să recalibrați și să reconfigurați dispozitivul prin intermediul publicațiilor tematice MQTT. Fișierul calvals.txt are acces R / W și secvals.txt are acces doar la scriere expus.
Depanare utilizator
În timpul secvenței de boot, ledul dispozitivului IoT oferă următorul feedback de depanare
- 1 Bliț scurt: Nu există fișier de configurare localizat în SPIFFS (secvals.txt)
- 2 Blițuri scurte: dispozitivul IoT încearcă să se conecteze la rețeaua WiFi
- Iluminare continuă: dispozitivul IoT încearcă să se conecteze la MQTT Broker
- Off: Dispozitivul este activ
- Notă 1: „Pagina principală de configurare a senzorului” nu folosește prize securizate și, prin urmare, se bazează pe securitatea rețelei.
- Notă 2: Pentru a programa fiecare dispozitiv IoT, șirul MQTT va necesita editare înainte de descărcare. Acest lucru se datorează faptului că numărul senzorului a fost încorporat în șirul de subiecte MQTT. adică „WFD / THSen / 100 / HumdStatus / 1” pentru cele 6 dispozitive ale mele sunt numerotate respectiv 1 … 6.
Pasul 4: Calibrarea senzorului
Când dispozitivul IoT se pornește, ca parte a secvenței de boot, un fișier numit „cavals.txt” este citit din SPIFFS. Conținutul acestui fișier sunt constante de calibrare, așa cum este indicat mai sus în imaginea 1. Aceste constante de calibrare sunt utilizate pentru a regla citirile dobândite de la senzor pentru a le alinia cu un dispozitiv de referință. Există o altă valoare care definește o strategie de raportare pentru dispozitiv și este descrisă mai jos împreună cu procedura urmată pentru calibrarea senzorilor.
Strategie de raportare Acest parametru determină modul în care senzorul de la distanță raportează orice modificări parametrice ambientale locale. Dacă este selectată o valoare 0, senzorul de la distanță va publica orice modificare pe care o va vedea în valorile de temperatură sau umiditate de fiecare dată când senzorul este citit (aproximativ la fiecare 10 secunde). Orice altă valoare va întârzia publicarea unei modificări cu 1 … 60 de minute. Modificarea acestui parametru permite optimizarea traficului de rețea MQTT.
Calibrarea temperaturii
Pentru a calibra senzorii, aceștia au fost plasați în apropiere fizică strânsă unul cu celălalt, așa cum se arată mai sus în imaginea 2. De-a lungul lor, am plasat un DMM cu un termocuplu calibrat atașat (Fluke 87 V) și apoi am monitorizat ieșirile de la fiecare dispozitiv prin temperatura OpenHAB pagina tendințelor pe parcursul unei zile pentru a obține o schimbare bună a temperaturii. Am observat atât offset-ul static ("C" ridicat la zero), cât și rata de schimbare a fiecărui dispozitiv (câștig sau panta graficului "M") în raport cu valoarea valorii provenite de la termocuplul calibrat. Am calculat apoi relația simplă y = mx + c (am găsit că era suficient de liniară pentru a fi o aproximare apropiată a unui grafic liniar) și am programat orice corecții necesare în constantele de calibrare prin MQTTSpy.
Dispozitivele au fost apoi monitorizate încă 24 de ore pentru a se asigura că calibrarea a avut succes. O indicație a urmelor de temperatură de pe pagina de tendință a temperaturii OpenHAB erau aproape una peste alta.
Desigur, dacă sunteți interesat doar de o aproximare la temperatură, puteți lăsa toate valorile de calibrare ca implicite.
Calibrarea umidității
Deoarece nu am mijloace pentru a înregistra cu precizie sau chiar pentru a controla umiditatea ambientală locală, pentru a calibra senzorii, am folosit o abordare similară cu cea de mai sus, plasând toate dispozitivele în apropiere fizică strânsă (imaginea 2) și monitorizând pur și simplu ieșirea lor prin OpenHAB Umiditatea tinde pagina. Am ales apoi dispozitivul nr. 1 ca referință de calibrare și am calibrat toate dispozitivele în raport cu acesta.
Pasul 5: Convenția de numire a subiectelor MQTT
După multe încercări și erori, m-am stabilit asupra convenției de numire a subiectului prezentată în imaginea 1 de mai sus.
Anume, „AccessMethod / DeviceType / WhichDevice / Action / SubDevice”
Nu este perfect, dar permite aplicarea de filtre utile pentru a vedea toate ieșirile senzorilor pentru o anumită valoare parametrică, permițând astfel o comparație ușoară, ca în imaginea 2 de mai sus cu MQTTSpy. De asemenea, acceptă grupări logice de funcționalitate extensibile în mod rezonabil într-un anumit dispozitiv IoT.
În implementarea acestor subiecte în software, am folosit șiruri de subiecte codate cu coduri de identificare numerice fixe, încorporate pentru fiecare dispozitiv, spre deosebire de generarea dinamică a subiectelor în timpul rulării, astfel încât să economisesc RAM și să mențin performanța ridicată.
Notă: Dacă nu sunteți sigur cum să utilizați MQTTSpy, consultați aici „Configurarea unui broker MQTT. Partea 2: IoT, Home Automation '
Pasul 6: Configurare OpenHAB
Am modificat configurația OpenHAB dată în Instructable-ul meu anterior (aici) și am adăugat în intrări individuale pentru;
- Garaj,
- Hall,
- Sufragerie,
- Bucătărie
- Dormitor pentru oaspeti
- Dormitor matrimonial
În harta site-ului, a se vedea imaginea 1 de mai sus.
Pentru fiecare dintre aceste intrări am adăugat sitemapuri individuale expunând valorile ambientale locale (a se vedea imaginea 2 de mai sus);
- Temperatura
- Umiditate
- Index de caldura
Am inclus și un comutator pentru a controla ledul local montat în senzor.
Imaginile 3… 5 prezintă urme individuale live pe o perioadă de 24 de ore pentru temperatură, umiditate și RSSI (Indicarea puterii semnalului recepționat, practic o măsură a cât de bine poate vedea senzorul rețeaua WiFi).
Imaginea 6 oferă un exemplu de tendință de umiditate pe termen lung pe parcursul unei săptămâni.
Notă 1: Dacă nu sunteți sigur cum să utilizați OpenHAB, consultați aici „Configurarea și configurarea OpenHAB. Partea 6: IoT, Home Automation '
Notă 2: O copie a sitemap-ului modificat, a fișierelor cu reguli și articole, pictograme etc. este prezentată mai jos.
Pasul 7: Testarea designului
În cea mai mare parte am testat dispozitivul IoT prin conexiunea MQTT cu MQTT Spy, monitorizând ieșirea ledului și depanând traficul pe interfața serială. Acest lucru mi-a permis să exercit toate subiectele abonate disponibile și să verific răspunsurile publicate. Deși acest lucru a fost realizat manual și a devenit uneori puțin obositor, a permis o acoperire de 100%.
Cu toate acestea, mașina de stat principală sa dovedit a fi puțin dificilă de testat, deoarece se bazează pe prezența sau absența unei rețele WiFi, accesul la care necesită seturi de parametri specifici. Pur și simplu nu era practic să folosiți rețeaua de domiciliu pentru acest lucru.
Pentru a rezolva această problemă, mi-am creat propriul set de rețele fictive folosind ESP8266-01 configurat ca puncte de acces (foto 1) cu SSID-uri „DummyNet1” și respectiv „DummyNet2”. Utilizarea circuitului din imaginea 2 de deasupra ledului a indicat dacă un dispozitiv IoT s-a conectat la acesta. În timp ce aceasta nu a fost o soluție de testare perfectă (de exemplu, fiecare dintre aceste rețele WiFi fictive nu conținea un server MQTT) a fost posibilă testarea completă a mașinii de stare.
Am inclus mai jos o copie a codului sursă.
Pasul 8: Concluzie
General
Software-ul din dispozitivele IoT a funcționat în mod fiabil de mai multe luni, recuperându-se după întreruperile de curent ale gospodăriei (cauzate în principal de mine). În general, acestea sunt dispozitive destul de robuste care oferă date consistente și exacte.
Îmbunătățiri
În dezvoltarea rutinelor software pentru citirea și scrierea la SPIFFS am scris cod care, din spate, ar putea fi puțin mai avansat decât intenționasem, folosind pointeri void, reformare și pointeri către pointeri. Deși este foarte flexibil și face treaba bine, data viitoare aș putea folosi JSON într-un mod similar cu ConfigFile.ino pentru a-l menține puțin mai simplu.
-
Arduino GIT HUB Core
https://github.com/esp8266/Arduino
-
Sursa ConfigFile.ino
https://github.com/esp8266/Arduino/tree/master/libraries/esp8266/examples/ConfigFile
Lista de dorințe
Intenționasem să folosesc un client mDNS pentru a mă conecta la Broker, dar biblioteca era prea slabă. Acesta este motivul pentru care este necesar să specificați adresa IP a brokerului MQTT, spre deosebire de „MQTTSVR.local”. În cazul în care biblioteca mDNS va deveni mai stabilă în viitor, voi adăuga această capacitate dispozitivului.
Ar fi fost frumos să existe un mijloc atât de monitorizare cu precizie, cât și de control al umidității ambientale pentru a calibra senzorii. Cu toate acestea, a spus că metoda de calibrare aleasă oferă citiri relative bune și pare rezonabil de exactă, în conformitate cu specificațiile din foaia de date DHT22.
În cele din urmă, având în vedere complexitatea software-ului, am găsit testarea completă a codului după ce o schimbare majoră a devenit consumatoare de timp. Aș putea lua în considerare testarea automată la o dată ulterioară.
Pasul 9: Referințe utilizate
Am folosit următoarele surse pentru a pune acest Instructable împreună;
PubSubClient.h
- De: Nick O'Leary
- De la:
DHT.h
- De: Adafruit
- De la:
Foaie de date DHT22
Recomandat:
BLE ușor de putere foarte mică în Arduino Partea 2 - Monitor de temperatură / umiditate - Rev. 3: 7 pași
BLE ușor de putere foarte mică în Arduino Partea 2 - Monitor de temperatură / umiditate - Rev. 3: Actualizare: 23 noiembrie 2020 - Prima înlocuire a 2 baterii AAA începând cu 15 ianuarie 2019, adică 22 de luni pentru 2xAAA alcaline Actualizare: 7 aprilie 2019 - Rev. 3 din lp_BLE_TempHumidity, adaugă graficele de dată / oră, utilizând pfodApp V3.0.362 + și limitarea automată a
Automatizarea unei sere cu LoRa! (Partea 1) -- Senzori (temperatură, umiditate, umiditate a solului): 5 pași
Automatizarea unei sere cu LoRa! (Partea 1) || Senzori (temperatură, umiditate, umiditate a solului): În acest proiect vă voi arăta cum am automatizat o seră. Asta înseamnă că vă voi arăta cum am construit sera și cum am conectat electronica de putere și automatizare. De asemenea, vă voi arăta cum să programați o placă Arduino care utilizează L
Senzor de temperatură și umiditate alimentat cu energie solară Arduino Ca senzor Oregon de 433 MHz: 6 pași
Senzor de temperatură și umiditate alimentat cu energie solară Arduino, ca senzor Oregon de 433 MHz: acesta este construirea unui senzor de temperatură și umiditate alimentat cu energie solară. Senzorul emulează un senzor Oregon de 433 MHz și este vizibil în gateway-ul Telldus Net. Senzor de mișcare a energiei solare " din Ebay. Asigurați-vă că scrie 3.7v aluat
Punct de acces (AP) NodeMCU ESP8266 pentru server web cu senzor de temperatură DT11 și temperatură și umiditate de imprimare în browser: 5 pași
Punct de acces (AP) ESP8266 NodeMCU pentru server web cu senzor de temperatură DT11 și temperatură și umiditate de imprimare în browser: Bună băieți în majoritatea proiectelor folosim ESP8266 și în majoritatea proiectelor folosim ESP8266 ca server web, astfel încât datele să poată fi accesate pe orice dispozitiv prin Wi-Fi accesând Webserver-ul găzduit de ESP8266, dar singura problemă este că avem nevoie de un router funcțional pentru
Monitor de umiditate fără fir (ESP8266 + senzor de umiditate): 5 pași
Monitor de umiditate fără fir (ESP8266 + senzor de umiditate): Cumpăr pătrunjel în oală, iar cea mai mare parte a zilei, solul era uscat. Deci, decid să fac acest proiect, despre detectarea umezelii solului în oală cu pătrunjel, pentru a verifica, când am nevoie să turn sol cu apă. Cred că acest senzor (senzor capacitiv de umiditate v1.2) este bun pentru că