- Súčasti sú povinné
- Schéma zapojenia
- Programovanie ESP8266 NodeMCU pre riešenie inteligentného parkovania
S rastúcou popularitou inteligentných miest vždy existuje dopyt po inteligentných riešeniach pre každú doménu. IoT umožnil možnosť inteligentných miest prostredníctvom funkcie ovládania cez internet. Osoba môže ovládať zariadenia nainštalované v jeho domácnosti alebo kancelárii odkiaľkoľvek na svete pomocou inteligentného telefónu alebo ľubovoľného zariadenia pripojeného k internetu. V inteligentnom meste existuje viac domén a inteligentné parkovanie je jednou z populárnych domén v inteligentnom meste.
Odvetvie inteligentného parkovania zaznamenalo množstvo noviniek, ako napríklad inteligentný parkovací systém, inteligentné riadenie brány, inteligentné kamery, ktoré dokážu detekovať typy vozidiel, ANPR (automatické rozpoznávanie ŠPZ), inteligentný platobný systém, inteligentný vstupný systém a mnoho ďalších. Dnes sa bude postupovať podobne a bude vyvinuté inteligentné riešenie parkovania, ktoré bude pomocou ultrazvukového senzora zisťovať prítomnosť vozidla a automaticky spúšťať alebo zatvárať bránu. ESP8266 NodeMCU sa tu použije ako hlavný ovládač na ovládanie všetkých pripojených periférií.
ESP8266 je najobľúbenejší radič na vytváranie aplikácií založených na IoT, pretože má zabudovanú podporu Wi-Fi na pripojenie k internetu. Predtým sme ho použili na vytvorenie mnohých projektov IoT, ako napríklad:
- Bezpečnostný systém založený na IOT
- Inteligentná spojovacia skrinka pre domácu automatizáciu
- Systém monitorovania znečistenia ovzdušia založený na IOT
- Pošlite údaje na server ThingSpeak
Skontrolujte tu celý projekt založený na ESP8266.
V tomto inteligentnom parkovacom systéme IoT pošleme údaje na webový server, aby sme zistili dostupnosť miesta na parkovanie vozidiel. Tu používame firebase ako databázu Iot na získanie údajov o dostupnosti parkovania. Na tento účel musíme nájsť adresu hostiteľa Firebase a tajný kľúč na autorizáciu. Ak už viete, ako používať firebase s NodeMCU, môžete ísť vpred, inak by ste sa mali najskôr naučiť používať konzolu Google Firebase Console s ESP8266 NodeMCU na získanie adresy hostiteľa a tajného kľúča.
Súčasti sú povinné
- ESP8266 NodeMCU
- Ultrazvukový senzor
- DC servomotor
- IR senzory
- 16x2 i2c LCD displej
- Skokani
Schéma zapojenia
Schéma zapojenia tohto parkovacieho systému pre vozidlá založené na IoT je uvedená nižšie. Zahŕňa dva infračervené senzory, dva servomotory, jeden ultrazvukový senzor a jeden 16x2 LCD.
ESP8266 tu bude riadiť celý proces a tiež odosiela informácie o dostupnosti parkovania do služby Google Firebase, aby ich bolo možné monitorovať odkiaľkoľvek na svete cez internet. Na vstupnej a výstupnej bráne sa používajú dva infračervené senzory na zisťovanie prítomnosti automobilu a automatické otváranie alebo zatváranie brány. IR senzor sa používa na detekciu ľubovoľného objektu odosielaním a prijímaním infračervených lúčov, ďalšie informácie o infračervenom senzore nájdete tu.
Dve serva budú slúžiť ako vstupná a výstupná brána a ich otáčaním sa brána otvára alebo zatvára. Nakoniec sa použije ultrazvukový senzor na zistenie, či je parkovací slot k dispozícii alebo obsadený, a podľa toho pošle údaje na ESP8266. Skontrolujte video uvedené na konci tohto tutoriálu, aby ste pochopili úplné fungovanie projektu.
Takto bude vyzerať tento kompletný inteligentný parkovací systém Prototype:
Programovanie ESP8266 NodeMCU pre riešenie inteligentného parkovania
Kompletný kód s pracovným videom je uvedený na konci tohto tutoriálu. Tu vysvetľujeme kompletný program, aby sme pochopili fungovanie projektu.
Na programovanie NodeMCU stačí NodeMCU pripojiť k počítaču pomocou kábla Micro USB a otvoriť Arduino IDE. Knižnice sú potrebné pre displej I2C a servomotor. Na LCD displeji sa zobrazí dostupnosť parkovacích miest a servomotory sa použijú na otváranie a zatváranie vstupných a výstupných brán. Wire.h knižnica bude použitý k prepojeniu LCD v protokole i2c. Kolíky pre I2C v ESP8266 NodeMCU sú D1 (SCL) a D2 (SDA). Databáza, ktorá sa tu použije, bude Firebase, takže tu tiež zahrňujeme knižnicu (FirebaseArduino.h) .
#include
Potom zahrňte poverenia platformy Firebase získané zo služby Google Firebase. Budú obsahovať názov hostiteľa obsahujúci názov vášho projektu a tajný kľúč. Tieto hodnoty nájdete podľa predchádzajúceho tutoriálu na Firebase.
#define FIREBASE_HOST "smart-parking-7f5b6.firebaseio.com" #define FIREBASE_AUTH "suAkUQ4wXRPW7nA0zJQVsx3H2LmeBDPGmfTMBHCT"
Zahrňte poverenia Wi-Fi, ako sú WiFi SSID a heslo.
#define WIFI_SSID "CircuitDigest" #define WIFI_PASSWORD "circuitdigest101"
Inicializujte I2C LCD s adresou zariadenia (tu je 0x27) a typom LCD. Zahrňte tiež servomotory pre vstupnú a výstupnú bránu.
LiquidCrystal_I2C lcd (0x27, 16, 2); Servo myservo; Servo myservo1;
Spustite komunikáciu I2C pre I2C LCD.
Wire.begin (D2, D1);
Pripojte vstupný a výstupný servomotor k pinom D5, D6 na NodeMCU.
myservo.attach (D6); myservos.attach (D5);
Vyberte Spúšťací kolík ultrazvukového snímača ako Výstup a Echo Pin ako Vstup. Ultrazvukový senzor sa použije na zistenie dostupnosti parkovacieho miesta. Ak auto obsadilo priestor, bude svietiť inak, nebude svietiť.
pinMode (TRIG, VÝSTUP); pinMode (ECHO, INPUT);
Dva kolíky D0 a D4 NodeMCU sa používajú na snímanie údajov IR senzora. IR senzor bude fungovať ako senzor vstupnej a výstupnej brány. Toto zistí prítomnosť vozidla.
pinMode (carExited, INPUT); pinMode (carEnter, INPUT);
Pripojte sa k WiFi a chvíľu počkajte, kým sa nepripojí.
WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.print („pripája sa k“); Serial.print (WIFI_SSID); while (WiFi.status ()! = WL_CONNECTED) { Serial.print ("."); oneskorenie (500); }
Ako poverenia začnite spojenie s Firebase s hostiteľom a tajným kľúčom.
Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH);
Začať i2c 16x2 LCD a nastaviť pozíciu kurzora pri 0 ° C tý riadok 0 teho stĺpca.
lcd.begin (); lcd.setCursor (0, 0);
Vezmite vzdialenosť od ultrazvukového snímača. To sa použije na zistenie prítomnosti vozidla v konkrétnom mieste. Najskôr pošlite 2 mikrosekundový impulz a potom prečítajte prijatý impulz. Potom ho preveďte na „cm“. Viac informácií o meraní vzdialenosti pomocou ultrazvukového snímača sa dozviete tu.
digitalWrite (TRIG, LOW); delayMicroseconds (2); digitalWrite (TRIG, HIGH); delayMicroseconds (10); digitalWrite (TRIG, LOW); trvanie = pulseIn (ECHO, HIGH); vzdialenosť = (trvanie / 2) / 29,1;
Digitálne prečítajte kolík infračerveného senzora ako vstupný senzor a skontrolujte, či je vysoký. Ak je vysoká, zvýšte počet zadaných údajov a vytlačte ju na 16 x 2 LCD displej a tiež na sériový monitor.
int carEntry = digitalRead (carEnter); if (carEntry == HIGH) { countAno ++; Serial.print ("Auto zadané ="); Serial.println (countYes); lcd.setCursor (0, 1); lcd.print ("Auto vstúpilo");
Posuňte tiež uhol servomotora a otvorte vstupnú bránu. Zmeňte uhol podľa prípadu použitia.
for (pos = 140; pos> = 45; pos - = 1) { myservos.write (pos); oneskorenie (5); } oneskorenie (2000); for (pos = 45; pos <= 140; pos + = 1) { // v krokoch po 1 stupni myservos.write (pos); oneskorenie (5); }
A odošlite čítanie na firebase pomocou funkcie pushString knižnice Firebase.
Firebase.pushString ("/ Stav parkovania /", fireAvailable);
Urobte podobné kroky ako je uvedené vyššie pre Exit IR senzor a Exit servomotor.
int carExit = digitalRead (carExited); if (carExit == HIGH) { countAno--; Serial.print ("Auto vystúpilo ="); Serial.println (countYes); lcd.setCursor (0, 1); lcd.print („Vystúpené auto“); pre (pos1 = 140; pos1> = 45; pos1 - = 1) { myservo.write (pos1); oneskorenie (5); } oneskorenie (2000); for (pos1 = 45; pos1 <= 140; pos1 + = 1) { // v krokoch po 1 stupni myservo.write (pos1); oneskorenie (5); } Firebase.pushString ("/ Stav parkovania /", fireAvailable); lcd.clear (); }
Skontrolujte, či auto narazilo na parkovacie miesto a či dorazilo, potom svieti žiarovka, ktorá dáva signál, že je miesto plné.
if (vzdialenosť <6) { Serial.println ("Obsadené"); digitalWrite (led, HIGH); }
Inak ukážte, že miesto je k dispozícii.
if (vzdialenosť> 6) { Serial.println ("Dostupné"); digitalWrite (led, LOW); }
Vypočítajte celkové prázdne miesto na parkovisku a uložte ho do reťazca na odoslanie údajov do firebase.
Empty = allSpace - countYes; Dostupné = String ("Dostupné =") + String (Prázdne) + String ("/") + String (allSpace); fireAvailable = String ("Dostupné =") + String (Prázdne) + String ("/") + String (allSpace); Dáta si tiež vytlačte na LCD i2C. lcd.setCursor (0, 0); lcd.print (k dispozícii);
Takto je možné sledovať dostupnosť parkovania online na Firebase, ako je znázornené na snímke nižšie:
Týmto je dokončený kompletný inteligentný parkovací systém využívajúci modul NodeMCU ESP8266 a rôzne periférie. Iné snímače môžete použiť aj ako náhradu ultrazvukového a infračerveného snímača. Inteligentný parkovací systém existuje rozsiahle použitie a môžu byť pridané rôzne produkty, aby bol inteligentnejší. Ak máte akékoľvek pochybnosti, komentujte nižšie alebo sa obráťte na naše fórum, kde získate ďalšiu podporu.