S rastućom popularnošću pametnih gradova, uvijek postoji potražnja za pametnim rješenjima za svaku domenu. IoT je omogućio mogućnost pametnih gradova zahvaljujući značajci kontrole interneta. Osoba može kontrolirati uređaje instalirane u svom domu ili uredu s bilo kojeg mjesta na svijetu samo pomoću pametnog telefona ili bilo kojeg drugog internetskog uređaja. U pametnom gradu postoji više domena, a Pametno parkiranje jedna je od popularnih domena u Pametnom gradu.
Industrija pametnog parkiranja doživjela je brojne inovacije poput pametnog sustava upravljanja parkiranjem, pametnog upravljanja vratima, pametnih fotoaparata koji mogu otkriti tipove vozila, ANPR (automatsko prepoznavanje tablice), pametnog sustava plaćanja, pametnog sustava ulaska i mnogih drugih. Danas će se slijediti sličan pristup i izgradit će se pametno rješenje za parkiranje koje će koristiti ultrazvučni senzor za otkrivanje prisutnosti vozila i pokretanje automatskog otvaranja ili zatvaranja vrata. ESP8266 NodeMCU ovdje će se koristiti kao glavni kontroler za kontrolu svih perifernih uređaja koji su na njega priključeni.
ESP8266 je najpopularniji kontroler za izradu aplikacija temeljenih na IoT-u jer ima ugrađenu podršku za Wi-Fi za povezivanje s internetom. Ranije smo ga koristili za izgradnju mnogih IoT projekata poput:
- Sigurnosni sustav zasnovan na IOT-u
- Pametna razvodna kutija za kućnu automatizaciju
- Sustav praćenja onečišćenja zraka temeljen na IOT-u
- Pošaljite podatke na ThingSpeak
Ovdje provjerite sve projekte temeljene na ESP8266.
U ovom IoT sustavu pametnog parkiranja poslat ćemo podatke web poslužitelju za traženje dostupnosti prostora za parkiranje vozila. Ovdje koristimo Firebase kao Iot bazu podataka za dobivanje podataka o dostupnosti parkirališta. Za to trebamo pronaći Firebase adresu hosta i tajni ključ za autorizaciju. Ako već znate upotrebu firebasea s NodeMCU, možete krenuti dalje, prvo biste trebali naučiti koristiti Google Firebase Console s ESP8266 NodeMCU za dobivanje adrese hosta i tajnog ključa.
Komponente potrebne
- ESP8266 NodeMCU
- Ultrazvučni senzor
- DC servo motor
- IR senzori
- 16x2 i2c LCD zaslon
- Skakači
Kružni dijagram
Dijagram spojeva za ovaj sustav parkiranja vozila zasnovan na IoT-u dan je u nastavku. Uključuje dva IR senzora, dva servo motora, jedan ultrazvučni senzor i jedan LCD 16x2.
Ovdje će ESP8266 kontrolirati cjelokupni postupak i također slati informacije o dostupnosti parkirališta Google Firebaseu kako bi ih se moglo nadzirati s bilo kojeg mjesta na svijetu putem interneta. Dva IR senzora koriste se na ulaznim i izlaznim vratima za otkrivanje prisutnosti automobila i automatsko otvaranje ili zatvaranje vrata. IR senzor koristi se za otkrivanje bilo kojeg objekta slanjem i primanjem IR zraka, ovdje saznajte više o IR senzoru.
Dva servo upravljača djeluju kao ulazna i izlazna vrata i okreću se kako bi otvorila ili zatvorila vrata. Konačno, ultrazvučni senzor koristi se za otkrivanje je li parkirno mjesto slobodno ili je zauzet te podatke šalje na ESP8266. Pogledajte videozapis naveden na kraju ovog vodiča kako biste razumjeli cjelovit rad projekta.

Ovako će izgledati ovaj kompletni prototip Smart parking sustava:

Programiranje ESP8266 NodeMCU za rješenje pametnog parkiranja
Kompletni kôd s radnim video zapisom dan je na kraju ovog vodiča, ovdje objašnjavamo kompletan program za razumijevanje rada projekta.
Za programiranje NodeMCU, jednostavno spojite NodeMCU na računalo mikro USB kabelom i otvorite Arduino IDE. Biblioteke su potrebne za I2C zaslon i servo motor. LCD će prikazati dostupnost parkirnih mjesta, a servo motori će se koristiti za otvaranje i zatvaranje ulaznih i izlaznih vrata. Wire.h Knjižnica će se koristiti za sučelje LCD u I2C protokolu. Pribadače za I2C u ESP8266 NodeMCU su D1 (SCL) i D2 (SDA). Ovdje korištena baza podataka bit će Firebase, tako da ovdje uključujemo i biblioteku (FirebaseArduino.h) za istu.
#include
Zatim uključite vjerodajnice za Firebase dobivene od Google Firebasea. To će uključivati naziv hosta koji sadrži naziv vašeg projekta i tajni ključ. Da biste pronašli ove vrijednosti, slijedite prethodni vodič za Firebase.
#define FIREBASE_HOST "smart-parking-7f5b6.firebaseio.com" #define FIREBASE_AUTH "suAkUQ4wXRPW7nA0zJQVsx3H2LmeBDPGmfTMBHCT"
Uključite Wi-Fi vjerodajnice kao što su WiFi SSID i lozinka.
#define WIFI_SSID "CircuitDigest" #define WIFI_PASSWORD "circuitdigest101"
Inicirajte I2C LCD s adresom uređaja (ovdje je 0x27) i vrstom LCD-a. Uključite i servo motore za ulazna i izlazna vrata.
LCD LiquidCrystal_I2C (0x27, 16, 2); Servo myservo; Servo myservo1;
Pokrenite I2C komunikaciju za I2C LCD.
Wire.begin (D2, D1);
Spojite ulazni i izlazni servo motor na D5, D6 klinove NodeMCU.
myservo.attach (D6); myservos.attach (D5);
Odaberite okidački pin ultrazvučnog senzora kao izlazni, a eho-pin kao ulazni. Ultrazvučni senzor služit će za otkrivanje dostupnosti parkirnog mjesta. Ako je Car zauzeo prostor, tada će svijetliti, inače neće svijetliti.
pinMode (TRIG, IZLAZ); pinMode (ECHO, INPUT);
Dvije igle D0 i D4 NodeMCU koriste se za očitavanje IR senzora. IR senzor će djelovati kao ulazni i izlazni senzor. Ovo će otkriti prisutnost automobila.
pinMode (carExited, INPUT); pinMode (carEnter, INPUT);
Spojite se na WiFi i pričekajte neko vrijeme dok se ne poveže.
WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.print ("Povezivanje s"); Serial.print (WIFI_SSID); while (WiFi.status ()! = WL_CONNECTED) { Serial.print ("."); kašnjenje (500); }
Započnite vezu s Firebaseom s hostom i tajnim ključem kao vjerodajnice.
Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH);
Počnite I2C 16x2 LCD i set položaj kursora na 0 th red 0 og stupca.
lcd.begin (); lcd.setCursor (0, 0);
Uzmite udaljenost od ultrazvučnog senzora. To će se koristiti za otkrivanje prisutnosti vozila na određenom mjestu. Prvo pošaljite impuls od 2 mikrosekunde, a zatim očitajte primljeni puls. Zatim ga pretvorite u 'cm'. Ovdje saznajte više o mjerenju udaljenosti pomoću ultrazvučnog senzora.
digitalWrite (TRIG, LOW); delayMicroseconds (2); digitalWrite (TRIG, HIGH); delayMicroseconds (10); digitalWrite (TRIG, LOW); trajanje = pulsIn (ECHO, HIGH); udaljenost = (trajanje / 2) / 29,1;
Digitalno očitajte pin IC senzora kao ulazni senzor i provjerite je li visok. Ako je velik, povećajte broj unosa i ispišite ga na LCD zaslon 16x2, a također i na serijski monitor.
int carEntry = digitalRead (carEnter); if (carEntry == HIGH) { countYes ++; Serial.print ("Car Entered ="); Serial.println (broji DA); lcd.setCursor (0,1); lcd.print ("Car Entered");
Također pomaknite kut servo motora kako biste otvorili ulaznu kapiju. Promijenite kut prema vašem slučaju upotrebe.
for (pos = 140; pos> = 45; pos - = 1) { myservos.write (pos); kašnjenje (5); } kašnjenje (2000); for (pos = 45; pos <= 140; pos + = 1) { // u koracima od 1 stupnja myservos.write (pos); kašnjenje (5); }
I pošaljite očitanje u Firebase pomoću funkcije pushString Firebase biblioteke.
Firebase.pushString ("/ Status parkiranja /", fireAvailable);
Napravite slične korake kao gore za izlazni IR senzor i izlazni servo motor.
int carExit = digitalRead (carExited); if (carExit == HIGH) { countYes--; Serial.print ("Car Exited ="); Serial.println (broji DA); lcd.setCursor (0,1); lcd.print ("Auto je izašao"); za (pos1 = 140; pos1> = 45; pos1 - = 1) { myservo.write (pos1); kašnjenje (5); } kašnjenje (2000); for (pos1 = 45; pos1 <= 140; pos1 + = 1) { // u koracima od 1 stupanj myservo.write (pos1); kašnjenje (5); } Firebase.pushString ("/ Parking Status /", fireAvailable); lcd.clear (); }
Provjerite je li automobil došao na parkirno mjesto i je li stigao, a onda žaruljica svijetli dajući signal da je mjesto popunjeno.
if (udaljenost <6) { Serial.println ("Zauzeto"); digitalWrite (led, VISOKO); }
Inače pokazuju da je mjesto dostupno.
if (udaljenost> 6) { Serial.println ("Dostupno"); digitalWrite (led, LOW); }
Izračunajte ukupan prazan prostor unutar parkirališta i spremite ga u niz za slanje podataka u firebase.
Prazno = allSpace - brojiDa; Dostupno = String ("Available =") + String (Empty) + String ("/") + String (allSpace); fireAvailable = String ("Available =") + String (Empty) + String ("/") + String (allSpace); Također ispišite podatke na i2C LCD. lcd.setCursor (0, 0); lcd.print (dostupno);


Evo kako se dostupnost parkiranja može pratiti putem interneta na Firebaseu, kao što je prikazano na donjoj snimci:

Time je završen kompletan sustav pametnog parkiranja pomoću modula ESP8266 NodeMCU i različitih perifernih uređaja. Možete koristiti i druge senzore kao zamjenu za ultrazvučni i IR senzor. Postoji široka primjena pametnog sustava parkiranja, a mogu se dodati različiti proizvodi kako bi se učinio pametnijim. Komentirajte u nastavku ako sumnjate ili kontaktirate naš forum za dodatnu podršku.

