Älykkäiden kaupunkien suosion kasvaessa älykkäille ratkaisuille on aina kysyntää jokaiselle verkkotunnukselle. IoT on mahdollistanut älykkäiden kaupunkien mahdollisuuden Internet-ohjausominaisuuden kautta. Henkilö voi hallita kotiinsa tai toimistoonsa asennettuja laitteita mistä päin maailmaa tahansa vain käyttämällä älypuhelinta tai mitä tahansa Internetiin liitettyä laitetta. Älykkäässä kaupungissa on useita verkkotunnuksia, ja Smart Parking on yksi Smart Cityn suosituimmista verkkotunnuksista.
Älykäs pysäköintiala on nähnyt useita innovaatioita, kuten älykäs pysäköinninhallintajärjestelmä, älykäs portinhallinta, älykamerat, jotka voivat tunnistaa ajoneuvotyypit, ANPR (automaattinen rekisterikilven tunnistus), älykäs maksujärjestelmä, älykäs syöttöjärjestelmä ja paljon muuta. Tänään noudatetaan samanlaista lähestymistapaa ja rakennetaan älykäs pysäköintiratkaisu, joka käyttää ultraäänianturia ajoneuvon läsnäolon havaitsemiseen ja portin avaamiseen tai sulkemiseen automaattisesti. ESP8266 NodeMCU: ta käytetään tässä pääohjaimena ohjaamaan kaikkia siihen liitettyjä oheislaitteita.
ESP8266 on suosituin ohjain IoT-pohjaisten sovellusten rakentamiseen, koska siinä on sisäänrakennettu tuki Wi-Fi-yhteydelle Internet-yhteyden muodostamiseen. Aiemmin käytimme sitä rakentaaksemme monia IoT-hankkeita, kuten:
- IOT-pohjainen turvajärjestelmä
- Smart Junction Box kotiautomaatioon
- IOT-pohjainen ilman pilaantumisen seurantajärjestelmä
- Lähetä tietoja ThingSpeakille
Tarkista kaikki ESP8266-pohjaiset projektit täältä.
Tässä IoT Smart Parking -järjestelmässä lähetämme tietoja verkkopalvelimelle ajoneuvojen pysäköintitilojen saatavuuden selvittämiseksi. Tässä käytämme firebasea Iot-tietokantana pysäköintitilojen saatavuuden saamiseksi. Tätä varten meidän on löydettävä Firebase-isäntäosoite ja salainen avain valtuutusta varten. Jos tiedät jo Firebasen käytön NodeMCU: n kanssa, voit siirtyä eteenpäin, sinun on ensin opittava käyttämään Google Firebase -konsolia ESP8266 NodeMCU: n kanssa isäntäosoitteen ja salaisen avaimen saamiseksi.
Tarvittavat komponentit
- ESP8266 SolmuMCU
- Ultraäänianturi
- DC-servomoottori
- IR-anturit
- 16x2 i2c LCD-näyttö
- Neulepuserot
Piirikaavio
Tämän IoT-pohjaisen ajoneuvon pysäköintijärjestelmän kytkentäkaavio on annettu alla. Siinä on kaksi IR-anturia, kaksi servomoottoria, yksi ultraäänianturi ja yksi 16x2 LCD.
Täällä ESP8266 ohjaa koko prosessia ja lähettää myös pysäköintitilojen tiedot Google Firebase -palveluun, jotta niitä voidaan tarkkailla kaikkialta maailmasta Internetin kautta. Kahta IR-anturia käytetään sisään- ja uloskäynnillä portin havaitsemiseksi auton läsnäolosta ja avaamaan tai sulkemaan portin automaattisesti. IR-anturia käytetään havaitsemaan mikä tahansa esine lähettämällä ja vastaanottamalla IR-säteitä. Lisätietoja IR-anturista on täällä.
Kaksi servoa toimii sisäänkäynti- ja poistumisporttina ja ne pyörivät avaamaan tai sulkemaan portin. Lopuksi ultraäänianturia käytetään havaitsemaan, onko pysäköintipaikka käytettävissä tai onko se varattu, ja lähettämään tiedot ESP8266: een vastaavasti. Tarkista tämän opetusohjelman lopussa annettu video, jotta ymmärrät projektin täydellisen toiminnan.
Näin tämä täydellinen älypysäköintijärjestelmän prototyyppi näyttää:
ESP8266 NodeMCU -ohjelmointi älykkäälle pysäköintiratkaisulle
Täydellinen koodi toimivalla videolla on tämän opetusohjelman lopussa, tässä selitämme koko ohjelmaa projektin toiminnan ymmärtämiseksi.
NodeMCU: n ohjelmoimiseksi liitä vain NodeMCU tietokoneeseen mikro-USB-kaapelilla ja avaa Arduino IDE. Kirjastoja tarvitaan I2C-näyttöä ja servomoottoria varten. Nestekidenäytössä näkyy pysäköintitilojen saatavuus, ja servomoottoreita käytetään sisään- ja uloskäynnin porttien avaamiseen ja sulkemiseen. Wire.h kirjasto voidaan käyttää liittymään LCD I2C-protokollaa. ESP8266 NodeMCU: n I2C: n nastat ovat D1 (SCL) ja D2 (SDA). Tässä käytetty tietokanta on Firebase, joten tässä on mukana myös kirjasto (FirebaseArduino.h) .
#sisältää
Lisää sitten Google Firebase -palvelun saamat Firebase-tunnistetiedot. Näihin sisältyy isäntänimi, joka sisältää projektisi nimen ja salaisen avaimen. Löydät nämä arvot noudattamalla Firebasen edellistä opetusohjelmaa.
#define FIREBASE_HOST "smart-parking-7f5b6.firebaseio.com" #define FIREBASE_AUTH "suAkUQ4wXRPW7nA0zJQVsx3H2LmeBDPGmfTMBHCT"
Sisällytä Wi-Fi-kirjautumistiedot, kuten WiFi SSID ja salasana.
#define WIFI_SSID "CircuitDigest" #define WIFI_PASSWORD "circuitdigest101"
Alusta I2C LCD-näyttö laitteen osoitteella (tässä se on 0x27) ja nestetyypillä. Sisällytä myös Servo-moottorit sisään- ja uloskäynnille.
LiquidCrystal_I2C lcd (0x27, 16, 2); Servo myservo; Servo myservo1;
Aloita I2C LCD -tietokoneen I2C-tiedonsiirto.
Lanka alkaa (D2, D1);
Liitä sisään- ja uloskäynnin servomoottori NodeMCU: n D5, D6-nastoihin.
myservo.attach (D6); myservos.attach (D5);
Valitse ulostulona Ultraäänianturin liipaisintappi ja Tuloksi Echo Pin. Ultraäänianturia käytetään pysäköintipaikan saatavuuden havaitsemiseen. Jos auto on viettänyt tilan, se hehkuu, muuten se ei hehku.
pinMode (TRIG, OUTPUT); pinMode (ECHO, INPUT);
NodeMCU: n kahta tapia D0 ja D4 käytetään IR-anturin lukemiseen. IR-anturi toimii sisäänkäynnin ja poistumisen porttianturina. Tämä havaitsee auton läsnäolon.
pinMode (carExited, INPUT); pinMode (carEnter, INPUT);
Muodosta yhteys WiFi-verkkoon ja odota jonkin aikaa, kunnes se muodostaa yhteyden.
WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.print ("Yhdistetään kohteeseen"); Sarjaprintti (WIFI_SSID); while (WiFi.status ()! = WL_CONNECTED) { Sarja.tulos ("."); viive (500); }
Aloita yhteys Firebaseen isännällä ja salaisella avaimella tunnistetiedoina.
Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH);
Aloittaa I2C 16x2 LCD ja asettaa kursorin asennossa 0 : nnen rivin 0 : nnen sarakkeen.
lcd.begin (); lcd.setCursor (0, 0);
Ota etäisyys ultraäänianturista. Tätä käytetään tunnistamaan ajoneuvon läsnäolo tietyssä paikassa. Lähetä ensin 2 mikrosekunnin pulssi ja lue sitten vastaanotettu pulssi. Muunna se sitten cm: ksi. Lue lisää etäisyyden mittaamisesta ultraäänianturilla täältä.
digitalWrite (TRIG, LOW); viive mikrosekuntia (2); digitalWrite (TRIG, HIGH); viive mikrosekuntia (10); digitalWrite (TRIG, LOW); kesto = pulssi (ECHO, HIGH); etäisyys = (kesto / 2) / 29,1;
Lue digitaalisesti IR-anturin tappi sisääntulon tunnistimeksi ja tarkista, onko se korkea. Jos se on korkea, lasketaan lisäysmerkinnät ja tulostetaan se 16x2 LCD-näytölle ja myös sarjamittarille.
int carEntry = digitalRead (carEnter); if (carEntry == KORKEA) { countYes ++; Serial.print ("Auto syötetty ="); Serial.println (countYes); lcd.setCursor (0, 1); lcd.print ("Auto syötetty");
Siirrä myös servomoottorin kulmaa avataksesi portin. Vaihda kulma käyttötapauksesi mukaan.
for (pos = 140; pos> = 45; pos - = 1) { myservos.write (pos); viive (5); } viive (2000); for (pos = 45; pos <= 140; pos + = 1) { // 1 asteen askelin myservos.write (pos); viive (5); }
Ja lähetä lukema Firebaseen käyttämällä Firebase-kirjaston pushString- toimintoa.
Firebase.pushString ("/ Pysäköintitila /", fireAvailable);
Suorita samankaltaiset vaiheet kuin edellä Exit IR -anturille ja Exit-servomoottorille.
int carExit = digitalRead (carExited); if (carExit == KORKEA) { countYes--; Serial.print ("Auto poistui ="); Serial.println (countYes); lcd.setCursor (0, 1); lcd.print ("Auto poistettu"); for (pos1 = 140; pos1> = 45; pos1 - = 1) { myservo.write (pos1); viive (5); } viive (2000); for (pos1 = 45; pos1 <= 140; pos1 + = 1) { // 1 asteen askelin myservo.write (pos1); viive (5); } Firebase.pushString ("/ Pysäköintitila /", fireAvailable); lcd.clear (); }
Tarkista, onko auto tullut pysäköintialueelle ja onko se saapunut, sitten hehkuvalot, jotka antavat signaalin, että paikka on täynnä.
if (etäisyys <6) { Sarja.println ("Varattu"); digitalWrite (led, HIGH); }
Muut osoittavat, että paikka on käytettävissä.
if (etäisyys> 6) { Serial.println ("Saatavana"); digitalWrite (led, LOW); }
Laske parkkipaikan tyhjä tila kokonaisuudessaan ja tallenna se merkkijonoon tietojen lähettämiseksi firebaseen.
Tyhjä = allSpace - countYes; Käytettävissä = Merkkijono ("Käytettävissä =") + Merkkijono (Tyhjä) + Merkkijono ("/") + Merkkijono (allSpace); fireAvailable = Merkkijono ("Käytettävissä =") + Merkkijono (Tyhjä) + Merkkijono ("/") + Merkkijono (allSpace); Tulosta tiedot myös i2C LCD -näyttöön. lcd.setCursor (0, 0); lcd.print (saatavana);
Näin pysäköinnin saatavuutta voidaan seurata verkossa Firebasessa alla olevan tilannekuvan osoittamalla tavalla:
Tämä viimeistelee koko älykkään pysäköintijärjestelmän käyttämällä ESP8266 NodeMCU -moduulia ja erilaisia oheislaitteita. Voit käyttää muita antureita myös korvaamaan ultraääni- ja IR-anturit. Älykkäässä pysäköintijärjestelmässä on laaja sovellus ja siihen voidaan lisätä erilaisia tuotteita, jotta se olisi älykkäämpi. Kommentoi alla, jos sinulla on epäilyksiä tai otat yhteyttä foorumillemme saadaksesi lisää tukea.