- Nepieciešamās sastāvdaļas
- Ķēdes shēma
- ESP8266 NodeMCU programmēšana viedai autostāvvietas risinājumam
Pieaugot viedo pilsētu popularitātei, vienmēr ir pieprasījums pēc viediem risinājumiem katram domēnam. IoT ir iespējojis viedo pilsētu iespēju, izmantojot interneta vadības funkciju. Persona var kontrolēt mājās vai birojā instalētās ierīces no jebkuras vietas pasaulē, vienkārši izmantojot viedtālruni vai jebkuru ar internetu savienotu ierīci. Viedajā pilsētā ir vairāki domēni, un viedā autostāvvieta ir viens no populārajiem domēniem viedajā pilsētā.
Viedās autostāvvietas industrija ir pieredzējusi vairākus jauninājumus, piemēram, viedo autostāvvietu vadības sistēmu, viedo vārtu vadību, viedās kameras, kas var noteikt transportlīdzekļu tipus, ANPR (automātiskā numura zīmes atpazīšana), viedo maksājumu sistēmu, viedo ievadīšanas sistēmu un daudz ko citu. Šodien tiks izmantota līdzīga pieeja un tiks izveidots vieds autostāvvietas risinājums, kas izmantos ultraskaņas sensoru, lai noteiktu transportlīdzekļa klātbūtni un aktivizētu vārtu automātisku atvēršanos vai aizvēršanu. ESP8266 NodeMCU šeit tiks izmantots kā galvenais kontrolieris, lai kontrolētu visas tam pievienotās perifērijas ierīces.
ESP8266 ir vispopulārākais kontrolieris IoT balstītu lietojumprogrammu veidošanai, jo tajā ir iebūvēts atbalsts Wi-Fi savienojumam ar internetu. Iepriekš mēs to izmantojām, lai izveidotu daudzus IoT projektus, piemēram:
- IOT balstīta drošības sistēma
- Viedā sadales kārba mājas automatizācijai
- IOT bāzes gaisa piesārņojuma uzraudzības sistēma
- Nosūtiet datus uz ThingSpeak
Šeit pārbaudiet visu ESP8266 balstīto projektu.
Šajā IoT viedajā autostāvvietu sistēmā mēs nosūtīsim datus tīmekļa serverim, lai noskaidrotu vietu pieejamību transportlīdzekļu novietošanai. Šeit mēs izmantojam firebase kā Iot datu bāzi, lai iegūtu datus par autostāvvietas pieejamību. Lai to izdarītu, mums jāatrod Firebase resursdatora adrese un slepenā atslēga autorizācijai. Ja jūs jau zināt, kā izmantot Firebase ar NodeMCU, tad varat pāriet uz priekšu, citādi vispirms vajadzētu iemācīties izmantot Google Firebase Console ar ESP8266 NodeMCU, lai iegūtu resursdatora adresi un slepeno atslēgu.
Nepieciešamās sastāvdaļas
- ESP8266 NodeMCU
- Ultraskaņas sensors
- Līdzstrāvas servomotors
- IR sensori
- 16x2 i2c LCD displejs
- Džemperi
Ķēdes shēma
Šīs IoT balstītās transportlīdzekļu novietošanas sistēmas shēma ir dota zemāk. Tas ietver divus IR sensorus, divus servomotorus, vienu ultraskaņas sensoru un vienu 16x2 LCD.
Šeit ESP8266 kontrolēs visu procesu un arī nosūtīs informāciju par stāvvietu pieejamību Google Firebase, lai to varētu uzraudzīt no jebkuras vietas pasaulē, izmantojot internetu. Divi IR sensori tiek izmantoti pie ieejas un izejas vārtiem, lai noteiktu automašīnas klātbūtni un automātiski atvērtu vai aizvērtu vārtus. IR sensoru izmanto jebkura objekta noteikšanai, nosūtot un saņemot infrasarkanos starus. Uzziniet vairāk par IR sensoru šeit.
Divi servo darbosies kā ieejas un izejas vārti, un tie rotē, lai atvērtu vai aizvērtu vārtus. Visbeidzot, tiek izmantots ultraskaņas sensors, lai noteiktu, vai stāvvieta ir pieejama vai aizņemta, un attiecīgi nosūta datus uz ESP8266. Pārbaudiet video, kas sniegts šīs apmācības beigās, lai izprastu projekta pilnīgu darbību.
Šādi izskatīsies šis pilnīgais viedās autostāvvietas sistēmas prototips:
ESP8266 NodeMCU programmēšana viedai autostāvvietas risinājumam
Šīs apmācības beigās ir norādīts pilnīgs kods ar darba video, šeit mēs izskaidrojam visu programmu, lai saprastu projekta darbību.
Lai programmētu NodeMCU, vienkārši pievienojiet NodeMCU datoram ar mikro USB kabeli un atveriet Arduino IDE. Bibliotēkas ir nepieciešamas I2C displejam un servomotoram. LCD displejā būs redzama autostāvvietu pieejamība, un Servo motori tiks izmantoti, lai atvērtu un aizvērtu ieejas un izejas vārtus. Wire.h bibliotēka tiks izmantots, lai saskarnes LCD ar i2c protokolā. ESP8266 NodeMCU I2C tapas ir D1 (SCL) un D2 (SDA). Šeit izmantotā datu bāze būs Firebase, tāpēc šeit ir iekļauta arī bibliotēka (FirebaseArduino.h) .
# iekļaut
Pēc tam iekļaujiet Firebase akreditācijas datus, kas iegūti no Google Firebase. Tie ietvers resursdatora nosaukumu, kas satur jūsu projekta nosaukumu un slepeno atslēgu. Lai atrastu šīs vērtības, izpildiet iepriekšējo Firebase apmācību.
#define FIREBASE_HOST "smart-parking-7f5b6.firebaseio.com" #define FIREBASE_AUTH "suAkUQ4wXRPW7nA0zJQVsx3H2LmeBDPGmfTMBHCT"
Iekļaujiet tādus Wi-Fi akreditācijas datus kā WiFi SSID un Parole.
#define WIFI_SSID "CircuitDigest" #define WIFI_PASSWORD "circuitdigest101"
Inicializējiet I2C LCD ar ierīces adresi (šeit tas ir 0x27) un LCD veidu. Iekļaušanai un izejas vārtiem iekļaujiet arī servomotorus.
LiquidCrystal_I2C lcd (0x27, 16, 2); Servo myservo; Servo myservo1;
Sāciet I2C LCD sakarus ar I2C.
Stieple. Sākas (D2, D1);
Pievienojiet servo motoru Ieeja un Izeja pie NodeMCU D5, D6 tapām.
myservo.attach (D6); myservos.attach (D5);
Izvēlieties Ultraskaņas sensora sprūda tapu kā Izeja un Atbalss tapa kā Ieeju. Ultraskaņas sensors tiks izmantots, lai noteiktu autostāvvietas pieejamību. Ja automašīna ir ieņēmusi vietu, tā spīdēs, jo citādi tā nespīdēs.
pinMode (TRIG, OUTPUT); pinMode (ECHO, INPUT);
Infrasarkanā sensora nolasīšanai izmanto NodeMCU divas tapas D0 un D4. IR sensors darbosies kā ieejas un izejas vārtu sensors. Tas noteiks automašīnas klātbūtni.
pinMode (carExited, INPUT); pinMode (carEnter, INPUT);
Izveidojiet savienojumu ar WiFi un pagaidiet kādu laiku, līdz tas tiek izveidots.
WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.print ("Savienojums ar"); Serial.print (WIFI_SSID); while (WiFi.status ()! = WL_CONNECTED) { Sērijas sērija. kavēšanās (500); }
Sāciet savienojumu ar Firebase ar resursdatoru un slepeno atslēgu kā akreditācijas datus.
Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH);
Sākt I2C 16x2 LCD un noteikt kursora pozīciju pēc 0 th rinda 0 th kolonnu.
lcd.begin (); lcd.setCursor (0, 0);
Veikt attālumu no ultraskaņas sensora. To izmantos, lai noteiktu transportlīdzekļa klātbūtni konkrētajā vietā. Vispirms nosūtiet 2 mikrosekundes impulsu un pēc tam nolasiet saņemto impulsu. Pēc tam konvertējiet to uz cm. Uzziniet vairāk par attāluma mērīšanu, izmantojot ultraskaņas sensoru šeit.
digitalWrite (TRIG, LOW); kavēšanāsMikrosekundes (2); digitalWrite (TRIG, HIGH); kavēšanāsMikrosekundes (10); digitalWrite (TRIG, LOW); ilgums = pulseIn (ECHO, HIGH); attālums = (ilgums / 2) / 29,1;
Digitāli nolasiet IR sensora tapu kā ieejas sensoru un pārbaudiet, vai tas ir augsts. Ja tas ir augsts, pieauguma ierakstu skaits tiek skaitīts un izdrukāts 16x2 LCD displejā, kā arī seriālajā monitorā.
int carEntry = digitalRead (carEnter); if (carEntry == AUGSTS) { countYes ++; Serial.print ("Ievadītā automašīna ="); Serial.println (countYes); lcd.setCursor (0, 1); lcd.print ("Ievadīta automašīna");
Pārvietojiet arī servomotora leņķi, lai atvērtu ieejas vārtus. Mainiet leņķi atbilstoši savam lietošanas gadījumam.
par (pos = 140; pos> = 45; pos - = 1) { myservos.write (pos); kavēšanās (5); } kavēšanās (2000); for (pos = 45; pos <= 140; pos + = 1) { // 1 grāda pakāpēs myservos.write (pos); kavēšanās (5); }
Nosūtiet lasījumu uz Firebase, izmantojot Firebase bibliotēkas pushString funkciju.
Firebase.pushString ("/ Parking Status /", fireAvailable);
Veiciet līdzīgas darbības kā iepriekš Exit IR sensor un Exit servomotoram.
int carExit = digitalRead (carExited); ja (carExit == AUGSTS) { countYes--; Serial.print ("Iziet no automašīnas ="); Serial.println (countYes); lcd.setCursor (0, 1); lcd.print ("Iziet no automašīnas"); par (pos1 = 140; pos1> = 45; pos1 - = 1) { myservo.write (pos1); kavēšanās (5); } kavēšanās (2000); for (pos1 = 45; pos1 <= 140; pos1 + = 1) { // 1 grāda pakāpēs myservo.write (pos1); kavēšanās (5); } Firebase.pushString ("/ Parking Status /", fireAvailable); lcd.clear (); }
Pārbaudiet, vai automašīna ir ieradusies autostāvvietā un vai tā ir ieradusies, tad mirdzot, dodot signālu, ka vieta ir pilna.
ja (attālums <6) { Serial.println ("Aizņemts"); digitalWrite (vadīts, AUGSTS); }
Cits liecina, ka vieta ir pieejama.
if (attālums> 6) { Serial.println ("Pieejams"); digitalWrite (vadīts, LOW); }
Aprēķiniet kopējo tukšo vietu autostāvvietā un saglabājiet to virknē, lai datus nosūtītu uz Firebase.
Empty = allSpace - countYes; Pieejams = virkne ("Pieejams =") + virkne (tukša) + virkne ("/") + virkne (allSpace); fireAvailable = virkne ("Pieejams =") + virkne (tukša) + virkne ("/") + virkne (allSpace); Izdrukājiet datus arī i2C LCD. lcd.setCursor (0, 0); lcd.print (pieejams);
Autebraucamo vietu pieejamību tiešsaistē var izsekot Firebase, kā parādīts zemāk esošajā momentuzņēmumā:
Tādējādi tiek pabeigta visa viedās autostāvvietas sistēma, izmantojot ESP8266 NodeMCU moduli un dažādas perifērijas ierīces. Ultraskaņas un IR sensoru nomaiņai var izmantot arī citus sensorus. Viedās autostāvvietas sistēmai ir plašs pielietojums, un, lai padarītu to viedāku, var pievienot dažādus produktus. Komentējiet zemāk, ja jums ir kādas šaubas vai sazinieties ar mūsu forumu, lai saņemtu lielāku atbalstu.