- Potrebne komponente:
- Ultrazvočni senzor HC-SR04:
- ESP8266 Wi-Fi modul:
- Shema vezja in razlaga:
- Razlaga kode:
- "; if (distance <5) {webpage + =" Koš je poln ";} else {webpage + =" Koš je prazen ";} spletna stran + ="
- Testiranje in izvedba projekta:
V tem DIY bomo izdelali IOT sistem za spremljanje smetnjakov / smeti, ki nam bo sporočil, ali je koš za smeti prazen ali poln prek spletnega strežnika in ali lahko stanje svojega "Koša za smeti" ali "Smetišča" poznate iz kjer koli na svetu prek interneta. To bo zelo koristno in ga lahko namestite v koše za smeti tako na javnih mestih kot doma.
V tem projektu IOT se ultrazvočni senzor uporablja za zaznavanje, ali je koš za smeti napolnjen s smeti ali ne. Tu je ultrazvočni senzor nameščen na vrhu koša za smeti in bo meril razdaljo smeti od vrha koša za smeti, mi pa lahko nastavimo mejno vrednost glede na velikost koša za smeti. Če bo razdalja manjša od te mejne vrednosti, pomeni, da je koš za smeti poln smeti in bomo na spletno stran natisnili sporočilo »Košarica je polna« in če bo razdalja večja od te mejne vrednosti, bomo natisnili sporočilo »Košarica je prazna«. Tu smo v programski kodi nastavili vrednost praga 5 cm. Uporabili bomo modul Wi-Fi ESP8266za povezavo Arduina s spletnim strežnikom. Tu smo uporabili lokalni spletni strežnik, da predstavimo delovanje tega sistema za spremljanje smeti.
Potrebne komponente:
- Arduino Uno (lahko uporabite katero koli drugo)
- ESP8266 Wi-Fi modul
- HC-SR04 Ultrazvočni senzor
- 1K upori
- Breadboard
- Priključne žice
Ultrazvočni senzor HC-SR04:
Ultrazvočni senzor se uporablja za merjenje razdalje z visoko natančnostjo in stabilnimi odčitki. Izmeri lahko razdaljo od 2 cm do 400 cm ali od 1 palca do 13 čevljev. V zraku oddaja ultrazvočni val s frekvenco 40KHz in če bo predmet prišel na pot, se bo odbil nazaj do senzorja. Če izrabite razdaljo tako, da uporabite čas, ki je potreben za udarjanje predmeta in vrnitev nazaj.
Ultrazvočni senzor ima štiri nožice. Dva sta VCC in GND, ki bosta priključena na 5V in GND Arduina, druga dva zatiča pa sta Trig in Echo zatiča, ki bosta priključena na kateri koli digitalni zatič Arduino. Trig pin bo poslal signal, Echo pin pa bo uporabljen za sprejem signala. Če želite ustvariti ultrazvočni signal, boste morali Trig zatič postaviti visoko za približno 10us, kar bo poslalo 8-ciklični zvočni izbruh s hitrostjo zvoka in po udarcu v objekt ga bo prejel Echo pin.
Nadalje preverite spodnje projekte, da boste pravilno razumeli delovanje ultrazvočnega senzorja in izmerili razdaljo katerega koli predmeta, ki ga uporablja:
- Merjenje razdalje na osnovi arduina z uporabo ultrazvočnega senzorja
- Merjenje razdalje s pomočjo mikrokrmilnika HC-SR04 in AVR
ESP8266 Wi-Fi modul:
ESP8266 je modul Wi-Fi, ki bo vašim projektom omogočil dostop do Wi-Fi ali interneta. Je zelo poceni naprava, vendar bodo vaši projekti zelo zmogljivi. Lahko komunicira s katerim koli mikrokrmilnikom in omogoči brezžično povezavo projektov. Nahaja se na seznamu najbolj vodilnih naprav na platformi IOT. Deluje na 3.3V in če mu boste dali 5V, bo poškodovan.
ESP8266 ima 8 nožic; VCC in CH-PD bosta priključena na 3.3V, da omogočite wifi. Zatiči TX in RX bodo odgovorni za komunikacijo ESP8266 z Arduinom. Zatič RX deluje na 3.3V, zato boste zanj morali izdelati delilnik napetosti, kot smo ga naredili v našem projektu.
Shema vezja in razlaga:
Najprej bomo ESP8266 povezali z Arduinom. ESP8266 deluje na 3,3 V in če mu boste od Arduina dali 5 V, potem ne bo deloval pravilno in lahko bo poškodovan. Priključite VCC in CH_PD na 3,3V zatič Arduino. Zatič RX ESP8266 deluje na 3.3V in ne bo komuniciral z Arduinom, ko ga bomo povezali neposredno z Arduinom. Torej, zanj bomo morali narediti delilnik napetosti. Trije zaporedno povezani upori 1k bodo opravili delo namesto nas. RX povežite z zatičem 11 Arduina prek uporov, kot je prikazano na spodnji sliki, in tudi TX Arduina z zatičem 10 Arduina.
Zdaj je čas, da ultrazvočni senzor HC-SR04 povežete z Arduinom. Povezave ultrazvočnega senzorja z Arduinom so zelo preproste. VCC in ozemljitev ultrazvočnega senzorja priključite na 5 V in ozemljitev Arduina. Nato priključite zatič TRIG in ECHO ultrazvočnega senzorja na zatič 8 in 9 na Arduinu.
Razlaga kode:
Pred nalaganjem kode se prepričajte, da ste povezani v Wi-Fi naprave ESP8266. Celotno kodo lahko preverite v spodnjem odseku kode, koda je bila dobro pojasnjena s komentarji, poleg tega smo spodaj razložili tudi nekatere pomembne funkcije.
Arduino bo najprej prebral ultrazvočni senzor. Pošiljal bo ultrazvočni signal s hitrostjo zvoka, ko bomo TRIG-pin postavili visoko za 10us. Volja povratek signala po udarcu v objekt in bomo shranjevanje trajanja časovno potovanje v spremenljivko z imenom trajanja . Nato bomo z uporabo formule izračunali razdaljo predmeta (v našem primeru smeti) in jo shranili v spremenljivko z imenom distance .
digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); trajanje = pulseIn (echoPin, HIGH); razdalja = trajanje * 0,034 / 2;
Za tiskanje izpisa na spletni strani v spletnem brskalniku bomo morali uporabiti programiranje HTML. Tako smo ustvarili niz z imenom spletna stran in v njem shranili izhodne podatke. Da bi ugotovili, ali je koš za smeti prazen ali ne, smo tam uporabili pogoj. Če bo razdalja manjša od 5 cm, bo na spletni strani prikazano »Košarica je polna«, če bo razdalja večja od 5 cm, pa bo na spletni strani prikazano sporočilo »Košarica je prazna«.
if (esp8266.available ()) {if (esp8266.find ("+ IPD,")) {delay (1000); int connectionId = esp8266.read () - 48; Niz spletne strani = "
IOT Sistem za spremljanje smeti
"; spletna stran + =""; if (distance <5) {webpage + =" Koš je poln ";} else {webpage + =" Koš je prazen ";} spletna stran + ="
";Naslednja koda bo podatke poslala in prikazala na spletni strani. Podatki, ki smo jih shranili v niz z imenom 'spletna stran', bodo shranjeni v niz z imenom 'ukaz' . ESP8266 bo nato iz 'ukaza' enega za drugim prebral znak in ga natisnil na spletno stran.
Niz sendData (ukaz niza, const int timeout, logična odpravljanje napak) {String response = ""; esp8266.print (ukaz); dolg int čas = milis (); while ((time + timeout)> milis ()) {while (esp8266.available ()) {char c = esp8266.read (); odziv + = c; }} if (odpravljanje napak) {Serial.print (odgovor); } povratni odgovor; }
Testiranje in izvedba projekta:
Po nalaganju kode odprite Serial Monitor in prikazal se bo naslov IP, kot je prikazano spodaj.
Vnesite ta naslov IP v brskalnik, prikazal bo izhod, kot je prikazano spodaj. Če želite znova videti, da je koš za smeti prazen ali ne, boste morali stran znova osvežiti.
Torej, kako deluje ta sistem za spremljanje smeti, lahko ta projekt še izboljšamo, tako da vanj dodamo še nekaj funkcij, na primer, da lahko nastavimo še eno sporočilo, ko je koš za smeti napolnjen, ali sprožimo e-pošto / SMS, da uporabnika opozorimo, ko smeti Košara je polna.