- Būtini komponentai:
- HC-SR04 ultragarso jutiklis:
- ESP8266 „Wi-Fi“ modulis:
- Grandinės schema ir paaiškinimas:
- Kodo paaiškinimas:
- "; if (atstumas <5) {tinklalapis + =" šiukšliadėžė pilna ";} dar {tinklalapis + =" šiukšliadėžė tuščia ";} tinklalapis + ="
- Testavimas ir projekto rezultatas:
Šiame „pasidaryk pats“ mes sukursime IOT pagrįstą šiukšliadėžės / šiukšlių stebėjimo sistemą, kuri mums praneš, kad šiukšliadėžė yra tuščia ar pilna per interneto serverį, ir jūs galite sužinoti savo „šiukšliadėžės“ ar „savivartės“ būseną iš bet kurioje pasaulio vietoje internete. Tai bus labai naudinga ir ją galima įrengti šiukšliadėžėse viešose vietose, taip pat namuose.
Šiame IOT projekte ultragarso jutiklis naudojamas nustatyti, ar šiukšliadėžė užpildyta šiukšlėmis, ar ne. Čia ultragarso jutiklis yra sumontuotas šiukšliadėžės viršuje ir išmatuos šiukšlių atstumą nuo šiukšliadėžės viršaus, o mes galime nustatyti ribinę vertę pagal šiukšliadėžės dydį. Jei atstumas bus mažesnis už šią ribinę vertę, tai reiškia, kad šiukšliadėžėje yra pilna šiukšlių, ir mes tinklalapyje atspausdinsime pranešimą „Krepšelis yra pilnas“, o jei atstumas bus didesnis nei ši ribinė vertė, tada atspausdinsime pranešimas „Krepšelis tuščias“. Čia mes nustatėme 5 cm slenksčio vertę programos kode. Mes naudosime ESP8266 „Wi-Fi“ modulįuž „Arduino“ prijungimą prie interneto serverio. Čia mes panaudojome vietinį tinklo serverį, kad pademonstruotume šios šiukšlių stebėjimo sistemos veikimą.
Būtini komponentai:
- „Arduino Uno“ (galite naudoti bet kurį kitą)
- ESP8266 „Wi-Fi“ modulis
- HC-SR04 Ultragarsinis jutiklis
- 1K rezistoriai
- Bandomoji Lenta
- Jungiamieji laidai
HC-SR04 ultragarso jutiklis:
Ultragarsinis jutiklis naudojamas matuoti atstumą labai tiksliai ir stabiliai rodant. Jis gali išmatuoti atstumą nuo 2 cm iki 400 cm arba nuo 1 colio iki 13 pėdų. Jis skleidžia 40KHz dažnio ultragarso bangą ore ir, jei objektas pasitaikys, jis vėl sugrįš į jutiklį. Naudodami laiką, kurio reikia smūgiui į objektą ir grįžtant, galite apskaičiuoti atstumą.
Ultragarsinis jutiklis turi keturis kaiščius. Du yra VCC ir GND, kurie bus prijungti prie „Arduino“ 5V ir GND, o kiti du kaiščiai yra „Trig“ ir „Echo“ kaiščiai, kurie bus prijungti prie bet kokių „Arduino“ skaitmeninių kaiščių. Paleidimo kaištis atsiųs signalą, o „Echo“ kaištis bus naudojamas signalui priimti. Norėdami sugeneruoti ultragarso signalą, turėsite aukštą „Trig“ kaištį pastatyti maždaug 10 us, kuris garso greičiu išsiųs 8 ciklų garso takelį, o užmušęs objektą, jį gaus „Echo“ kaištis.
Toliau patikrinkite toliau pateiktus projektus, kad galėtumėte tinkamai suprasti ultragarso jutiklio veikimą ir išmatuoti bet kokio objekto atstumą jį naudojant:
- „Arduino“ atstumo matavimas naudojant ultragarso jutiklį
- Atstumo matavimas naudojant HC-SR04 ir AVR mikrovaldiklį
ESP8266 „Wi-Fi“ modulis:
ESP8266 yra „Wi-Fi“ modulis, kuris suteiks jūsų projektams prieigą prie „Wi-Fi“ ar interneto. Tai labai pigus prietaisas, tačiau jis jūsų projektus padarys labai galingus. Jis gali bendrauti su bet kuriuo mikrovaldikliu ir padaryti projektus belaidžiu. Ji yra IOT platformos pirmaujančių įrenginių sąraše. Jis veikia 3,3 V įtampa, o jei duosite 5 V, tada jis patirs žalą.
ESP8266 turi 8 kaiščius; VCC ir CH-PD bus prijungti prie 3.3 V, kad būtų galima įjungti „wifi“. TX ir RX kaiščiai bus atsakingi už ESP8266 ryšį su „Arduino“. „RX“ kaištis veikia esant 3,3 V įtampai, todėl turėsite padaryti įtampos daliklį, kaip mes padarėme savo projekte.
Grandinės schema ir paaiškinimas:
Pirmiausia mes sujungsime ESP8266 su „Arduino“. ESP8266 veikia su 3.3V įtampa ir jei duosite 5V iš „Arduino“, jis neveiks tinkamai ir gali sugadinti. Prijunkite VCC ir CH_PD prie 3,3 V „Arduino“ kaiščio. ESP8266 RX kaištis veikia 3.3V įtampoje ir jis nebendraus su „Arduino“, kai jį prijungsime tiesiai prie „Arduino“. Taigi, turėsime pagaminti įtampos daliklį. Trys nuosekliai sujungti 1k rezistoriai atliks darbą už mus. Prijunkite RX prie „Arduino“ kaiščio 11 per rezistorius, kaip parodyta žemiau esančiame paveikslėlyje, taip pat „Arduino“ TX prie „Arduino“ kaiščio 10.
Dabar atėjo laikas prijungti ultragarso jutiklį HC-SR04 prie „Arduino“. Ultragarso jutiklio prijungimas prie „Arduino“ yra labai paprastas. Prijunkite VCC ir ultragarso jutiklio žemę prie 5 V ir „Arduino“ žemės. Tada prijunkite ultragarso jutiklio TRIG ir ECHO kaiščius atitinkamai prie „Arduino“ 8 ir 9 kaiščių.
Kodo paaiškinimas:
Prieš įkeliant kodą, įsitikinkite, kad esate prisijungę prie ESP8266 įrenginio „Wi-Fi“. Visą kodą galite patikrinti žemiau esančiame skyriuje Kodas, kodas buvo gerai paaiškintas komentarais, toliau mes taip pat paaiškinome keletą svarbių funkcijų.
„Arduino“ pirmiausia perskaitys ultragarso jutiklį. Jis siunčia ultragarso signalą garso greičiu, kai TRIG kaištį padarysime aukštą 10 us. Signalas grįš po smūgio į objektą, o kelionės laiko trukmę išsaugosime kintamajame, pavadintame trukme . Tada apskaičiuosime objekto (mūsų atveju šiukšlių) atstumą taikydami formulę ir išsaugosime jį kintamajame, pavadintame atstumu .
„digitalWrite“ (trigPin, LOW); vėlavimasMikrosekundės (2); „digitalWrite“ (trigPin, HIGH); vėlavimasMikrosekundės (10); „digitalWrite“ (trigPin, LOW); trukmė = pulseIn (echoPin, HIGH); atstumas = trukmė * 0,034 / 2;
Norėdami spausdinti išvestį tinklalapyje žiniatinklio naršyklėje, turėsime naudoti HTML programavimą. Taigi, mes sukūrėme eilutę pavadinimu tinklalapis ir jame išsaugojome išvestį. Norėdami sužinoti, ar šiukšliadėžė tuščia, ar ne, mes pritaikėme sąlygą. Jei atstumas bus mažesnis nei 5 cm, tinklalapyje bus rodoma „Krepšelis yra pilnas“, o jei atstumas bus didesnis nei 5 cm, tinklalapyje bus rodomas pranešimas „Krepšelis tuščias“.
if (esp8266.available ()) {if (esp8266.find ("+ IPD,")) {atidėjimas (1000); int connectionId = esp8266.read () - 48; Styginių tinklalapis = "
IOT šiukšlių stebėjimo sistema
"; tinklalapis + =""; if (atstumas <5) {tinklalapis + =" šiukšliadėžė pilna ";} dar {tinklalapis + =" šiukšliadėžė tuščia ";} tinklalapis + ="
";Šis kodas išsiųs ir parodys duomenis tinklalapyje. Duomenys, kuriuos išsaugojome eilutėje pavadinimu „tinklalapis“, bus išsaugoti eilutėje pavadinimu „komanda“ . Tada ESP8266 nuskaitys simbolį po vieną iš „komandos“ ir atspausdins jį tinklalapyje.
String sendData (String komanda, const int skirtasis laikas, loginis derinimas) {String response = ""; esp8266.print (komanda); ilgas int laikas = milis (); while ((laikas + skirtasis laikas)> milis ()) {while (esp8266.available ()) {char c = esp8266.read (); atsakas + = c; }} if (derinti) {Serial.print (atsakymas); } grąžinimo atsakymas; }
Testavimas ir projekto rezultatas:
Įkėlę kodą atidarykite nuoseklųjį monitorių ir jis parodys jums IP adresą, kaip parodyta žemiau.
Įveskite šį IP adresą savo naršyklėje, jis parodys jums išvestį, kaip parodyta žemiau. Turėsite dar kartą atnaujinti puslapį, jei vėl norėsite pamatyti, ar šiukšliadėžė tuščia, ar ne.
Taigi, kaip veikia ši šiukšlių stebėjimo sistema, šį projektą galima dar labiau patobulinti, pridedant jame dar keletą funkcijų, pvz., Mes galime nustatyti dar vieną pranešimą, kai šiukšliadėžė yra pusiau užpildyta, arba mes galime suaktyvinti el. Krepšelis pilnas.