- Componente necesare:
- Senzor cu ultrasunete HC-SR04:
- Modul Wi-Fi ESP8266:
- Schema și explicația circuitului:
- Explicatie cod:
- "; if (distanță <5) {webpage + =" Coșul de gunoi este plin ";} else {webpage + =" Coșul de gunoi este gol ";} pagina web + ="
- Testarea și rezultatul proiectului:
În acest DIY, vom face un sistem de monitorizare a gunoiului / gunoiului bazat pe IOT, care ne va spune că dacă coșul de gunoi este gol sau plin prin intermediul serverului de internet și puteți cunoaște starea „Coșului de gunoi” sau „Coșurilor de gunoi” din oriunde în lume prin Internet. Va fi foarte util și poate fi instalat în Coșurile de gunoi atât în locuri publice, cât și acasă.
În acest proiect IOT, un senzor cu ultrasunete este utilizat pentru a detecta dacă coșul de gunoi este umplut sau nu cu gunoi. Aici senzorul cu ultrasunete este instalat în partea superioară a coșului de gunoi și va măsura distanța gunoiului de la partea de sus a coșului de gunoi și putem seta o valoare prag în funcție de dimensiunea coșului de gunoi. Dacă distanța va fi mai mică decât această valoare prag, înseamnă că coșul de gunoi este plin de gunoi și vom imprima mesajul „Coșul este plin” pe pagina web și dacă distanța va fi mai mare decât această valoare prag, atunci vom imprima mesajul „Coșul este gol”. Aici am setat valoarea Threshold de 5cm în codul programului. Vom folosi modulul ESP8266 Wi-Fipentru conectarea Arduino la serverul web. Aici am folosit serverul web local pentru a demonstra funcționarea acestui sistem de monitorizare a gunoiului.
Componente necesare:
- Arduino Uno (puteți utiliza orice altul)
- Modul Wi-Fi ESP8266
- HC-SR04 Senzor cu ultrasunete
- Rezistențe 1K
- Breadboard
- Conectarea firelor
Senzor cu ultrasunete HC-SR04:
Senzorul cu ultrasunete este utilizat pentru a măsura distanța cu precizie ridicată și citiri stabile. Poate măsura distanța de la 2cm la 400cm sau de la 1 inch la 13 picioare. Emite o undă cu ultrasunete la frecvența de 40KHz în aer și, dacă obiectul îi va ieși în cale, va reveni la senzor. Folosind timpul necesar pentru a lovi obiectul și a reveni, puteți calcula distanța.
Senzorul cu ultrasunete are patru pini. Doi sunt VCC și GND care vor fi conectați la 5V și GND al Arduino, în timp ce ceilalți doi pini sunt pinii Trig și Echo care vor fi conectați la orice pini digitali ai Arduino. Pinul trigonal va trimite semnalul, iar pinul Echo va fi utilizat pentru a primi semnalul. Pentru a genera un semnal cu ultrasunete, va trebui să faceți pinul Trig înalt timp de aproximativ 10us, care va trimite o explozie sonică de 8 cicluri la viteza sunetului și după ce a lovit obiectul, acesta va fi primit de pinul Echo.
Verificați în continuare proiectele de mai jos pentru a înțelege corect funcționarea senzorului ultrasonic și pentru a măsura distanța oricărui obiect care îl folosește:
- Măsurarea distanței pe bază de Arduino utilizând senzor cu ultrasunete
- Măsurarea distanței utilizând microcontrolerul HC-SR04 și AVR
Modul Wi-Fi ESP8266:
ESP8266 este un modul Wi-Fi care va oferi proiectelor dvs. acces la Wi-Fi sau internet. Este un dispozitiv foarte ieftin, dar vă va face proiectele foarte puternice. Poate comunica cu orice microcontroler și poate face proiectele fără fir. Se află în lista celor mai importante dispozitive din platforma IOT. Funcționează pe 3,3V și dacă îi veți da 5V, atunci va avea daune.
ESP8266 are 8 pini; VCC și CH-PD vor fi conectate la 3.3V pentru a activa conexiunea wifi. Pinii TX și RX vor fi responsabili pentru comunicarea ESP8266 cu Arduino. Pinul RX funcționează pe 3,3V, deci va trebui să faceți un divizor de tensiune pentru acesta, așa cum am făcut în proiectul nostru.
Schema și explicația circuitului:
În primul rând vom conecta ESP8266 cu Arduino. ESP8266 funcționează pe 3,3V și dacă îi veți da 5V de pe Arduino, atunci nu va funcționa corect și ar putea deteriora. Conectați VCC și CH_PD la pinul de 3,3 V al Arduino. Pinul RX al ESP8266 funcționează pe 3,3V și nu va comunica cu Arduino când îl vom conecta direct la Arduino. Deci, va trebui să facem un divizor de tensiune pentru acesta. Trei rezistențe 1k conectate în serie vor face treaba pentru noi. Conectați RX la pinul 11 al Arduino prin intermediul rezistențelor așa cum se arată în figura de mai jos și, de asemenea, TX-ul Arduino la pinul 10 al Arduino.
Acum este timpul să conectați senzorul cu ultrasunete HC-SR04 la Arduino. Conexiunile senzorului cu ultrasunete cu Arduino sunt foarte simple. Conectați VCC și pământul senzorului cu ultrasunete la 5V și pământul Arduino. Apoi conectați pinul TRIG și ECHO al senzorului ultrasonic la pinul 8 și respectiv 9 al Arduino.
Explicatie cod:
Înainte de a încărca codul, asigurați-vă că sunteți conectat la Wi-Fi-ul dispozitivului ESP8266. Puteți verifica codul complet în secțiunea Cod de mai jos, codul a fost bine explicat de comentarii, mai departe am explicat și câteva funcții importante de mai jos.
Arduino va citi mai întâi senzorul cu ultrasunete. Acesta va trimite un semnal cu ultrasunete la viteza sunetului atunci când vom face pinul TRIG înalt pentru 10us. Semnalul va reveni după lovirea obiectului și vom stoca durata timpului de călătorie în variabila numită durată . Apoi vom calcula distanța obiectului (gunoi în cazul nostru) aplicând o formulă și o vom stoca în variabila numită distanță .
digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); durata = pulseIn (echoPin, HIGH); distanta = durata * 0,034 / 2;
Pentru imprimarea rezultatului pe pagina web în browserul web, va trebui să folosim programare HTML. Deci, am creat un șir numit pagină web și am stocat rezultatul în ea. Pentru a spune dacă coșul de gunoi este gol sau nu, am aplicat o condiție acolo. Dacă distanța va fi mai mică de 5cm, atunci va apărea „Coșul este plin” pe pagina web și dacă distanța va fi mai mare de 5cm, atunci va afișa mesajul „Coșul este gol” pe pagina web.
if (esp8266.available ()) {if (esp8266.find ("+ IPD,")) {delay (1000); int connectionId = esp8266.read () - 48; String page web = "
IOT Sistem de monitorizare a gunoiului
"; pagina web + =""; if (distanță <5) {webpage + =" Coșul de gunoi este plin ";} else {webpage + =" Coșul de gunoi este gol ";} pagina web + ="
";Următorul cod va trimite și afișa datele pe pagina web. Datele stocate în șirul numit „pagină web” vor fi salvate în șirul numit „comandă” . ESP8266 va citi apoi caracterul unul câte unul din „comandă” și îl va imprima pe pagina web.
String sendData (comanda String, const int timeout, depanare booleană) {String response = ""; esp8266.print (comandă); long int time = milis (); while ((time + timeout)> millis ()) {while (esp8266.available ()) {char c = esp8266.read (); răspuns + = c; }} if (depanare) {Serial.print (răspuns); } răspuns de returnare; }
Testarea și rezultatul proiectului:
După încărcarea codului, deschideți Serial Monitor și vă va afișa o adresă IP așa cum se arată mai jos.
Tastați această adresă IP în browserul dvs., aceasta vă va arăta ieșirea așa cum se arată mai jos. Va trebui să reîmprospătați pagina din nou dacă doriți să vedeți din nou că coșul de gunoi este gol sau nu.
Deci, așa cum funcționează acest sistem de monitorizare a gunoiului, acest proiect poate fi îmbunătățit în continuare prin adăugarea mai multor caracteristici în el, cum ar fi că putem seta încă un mesaj când coșul de gunoi este pe jumătate umplut sau putem declanșa un e-mail / SMS pentru a avertiza utilizatorul când Coșul de gunoi Coșul este plin.