- Kinakailangan ang Mga Bahagi
- Diagram ng Circuit
- Programming ESP8266 NodeMCU para sa Smart Parking Solution
Sa lumalaking katanyagan ng mga Smart Cities, palaging may isang pangangailangan para sa mga matalinong solusyon para sa bawat domain. Pinagana ng IoT ang posibilidad ng mga Smart Cities na kasama ito sa tampok na kontrol sa internet. Maaaring makontrol ng isang tao ang mga aparato na naka-install sa kanyang bahay o tanggapan mula sa kahit saan sa mundo sa pamamagitan lamang ng paggamit ng isang smartphone o anumang mga aparato na nakakonekta sa internet. Mayroong maraming mga domain sa isang matalinong lungsod at ang Smart Parking ay isa sa tanyag na domain sa Smart City.
Ang industriya ng Smart Parking ay nakakita ng isang bilang ng mga makabagong ideya tulad ng Smart Parking Management System, Smart Gate Control, Smart Cameras na makakakita ng mga uri ng sasakyan, ANPR (Awtomatikong Pagkilala sa Plate ng Plate), Smart Payment System, Smart Entry System at marami pa. Ngayon susundan na katulad na diskarte ay susundan at isang matalinong solusyon sa paradahan ay itatayo na gagamit ng isang ultrasonic sensor upang makita ang pagkakaroon ng sasakyan at ma-trigger ang gate upang awtomatikong buksan o isara. Ang ESP8266 NodeMCU ay gagamitin dito bilang pangunahing tagapamahala upang makontrol ang lahat ng mga peripheral na nakakabit dito.
Ang ESP8266 ay ang pinakatanyag na tagakontrol upang bumuo ng mga application na batay sa IoT dahil mayroon itong built-in na suporta para sa Wi-Fi upang kumonekta sa internet. Ginamit namin ito dati na bumuo ng maraming mga proyekto ng IoT tulad ng:
- Nakabatay sa IOT Security System
- Smart Junction Box para sa Home Automation
- IOT na nakabatay sa Air Pollution Monitoring System
- Magpadala ng data sa ThingSpeak
Suriin dito ang lahat ng batay sa Project na batay sa ESP8266.
Sa IoT Smart Parking System na ito, magpapadala kami ng data sa webserver para sa pagtingin sa pagkakaroon ng puwang para sa paradahan ng sasakyan. Narito ginagamit namin ang firebase bilang Iot database upang makuha ang data ng pagkakaroon ng paradahan. Para dito kailangan naming hanapin ang address ng host ng Firebase at ang lihim na susi para sa pahintulot. Kung alam mo na ang paggamit ng firebase sa NodeMCU pagkatapos ay maaari kang magpatuloy sa iba pa dapat mo munang malaman na gamitin ang Google Firebase Console sa ESP8266 NodeMCU upang makuha ang address ng host at lihim na susi.
Kinakailangan ang Mga Bahagi
- ESP8266 NodeMCU
- Ultrasonic Sensor
- DC Servo Motor
- Mga IR Sensor
- 16x2 i2c LCD Display
- Mga jumper
Diagram ng Circuit
Ang diagram ng circuit para sa sistemang paradahan ng sasakyan na batay sa IoT ay ibinibigay sa ibaba. Nagsasangkot ito ng dalawang IR sensor, dalawang servo motors, isang ultrasonic sensor at isang 16x2 LCD.
Dito makokontrol ng ESP8266 ang kumpletong proseso at magpapadala din ng impormasyon sa pagkakaroon ng paradahan sa Google Firebase upang masubaybayan ito mula sa kahit saan sa buong mundo sa internet. Ginagamit ang dalawang IR sensor sa pagpasok at exit gate upang makita ang pagkakaroon ng kotse at awtomatikong buksan o isara ang gate. Ginagamit ang IR Sensor upang makita ang anumang bagay sa pamamagitan ng pagpapadala at pagtanggap ng mga IR ray, matuto nang higit pa tungkol sa IR sensor dito.
Dalawang servos ang kikilos bilang pasukan ng exit at exit at paikutin nila upang buksan o isara ang gate. Sa wakas ang isang ultrasonic sensor ay ginagamit upang makita kung ang puwang ng paradahan ay magagamit o abala at ipadala ang data sa naaayon. Suriin ang video na ibinigay sa pagtatapos ng tutorial na ito upang maunawaan ang kumpletong pagtatrabaho ng proyekto.
Ito ang magiging hitsura ng kumpletong Smart parking system na Prototype na ito:
Programming ESP8266 NodeMCU para sa Smart Parking Solution
Ang kumpletong code na may isang gumaganang video ay ibinibigay sa pagtatapos ng tutorial na ito, narito ipinapaliwanag namin ang kumpletong programa upang maunawaan ang pagtatrabaho ng proyekto.
Para sa pagprograma ng NodeMCU, i-plug lamang ang NodeMCU sa Computer gamit ang isang Micro USB Cable at buksan ang Arduino IDE. Kinakailangan ang mga aklatan para sa I2C Display at Servo Motor. Ipapakita ng LCD ang pagkakaroon ng Parking Spaces at gagamitin ang mga Servo motor upang buksan at isara ang Entry at Exit na mga pintuan. Ang library ng Wire.h ay gagamitin upang i-interface ang LCD sa i2c protocol. Ang Pins para sa I2C sa ESP8266 NodeMCU ay D1 (SCL) at D2 (SDA). Ang database dito na ginamit ay magiging Firebase kaya narito kasama rin namin ang library (FirebaseArduino.h) para sa pareho.
# isama
Pagkatapos isama ang mga kredensyal ng firebase na nakuha mula sa Google Firebase. Isasama rito ang pangalan ng Host na naglalaman ng iyong pangalan ng proyekto at isang lihim na susi. Upang hanapin ang mga halagang ito sundin ang nakaraang tutorial sa Firebase.
#define FIREBASE_HOST "smart-parking-7f5b6.firebaseio.com" #define FIREBASE_AUTH "suAkUQ4wXRPW7nA0zJQVsx3H2LmeBDPGmfTMBHCT"
Isama ang Mga Kredensyal sa Wi-Fi tulad ng WiFi SSID at Password.
#define WIFI_SSID "CircuitDigest" #define WIFI_PASSWORD "circuitdigest101"
Inisyal ang I2C LCD na may address ng aparato (Narito ang 0x27) at uri ng LCD. Isama din ang Servo Motors para sa pasukan ng exit at exit.
LiquidCrystal_I2C lcd (0x27, 16, 2); Servo MyServo; Servo myservo1;
Simulan ang I2C na komunikasyon para sa I2C LCD.
Wire.begin (D2, D1);
Ikonekta ang Entry at Exit Servo Motor sa D5, D6 Pins ng NodeMCU.
myservo.attach (D6); myservos.attach (D5);
Piliin ang Trigger Pin ng Ultrasonic sensor bilang Output at Echo Pin bilang Input. Gagamitin ang sensor ng ultrasonic upang makita ang kakayahang magamit ng paradahan. Kung ang Car ay sumakop sa puwang pagkatapos ito ay mamula sa iba pa hindi ito mamula-mula.
pinMode (TRIG, OUTPUT); pinMode (ECHO, INPUT);
Ang dalawang pin na D0 at D4 ng NodeMCU ay ginagamit upang kunin ang pagbabasa ng IR sensor. Ang IR sensor ay kikilos bilang Entry at Exit gate sensor. Madidiskubre nito ang pagkakaroon ng kotse.
pinMode (carExited, INPUT); pinMode (carEnter, INPUT);
Kumonekta sa WiFi at maghintay ng ilang oras hanggang sa makakonekta ito.
WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.print ("Kumokonekta sa"); Serial.print (WIFI_SSID); habang (WiFi.status ()! = WL_CONNected) { Serial.print ("."); pagkaantala (500); }
Simulan ang koneksyon sa Firebase sa Host at Lihim na Susi bilang mga kredensyal.
Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH);
Simulan ang i2c 16x2 LCD at itakda ang posisyon ng cursor sa 0th row 0 th na haligi.
lcd.begin (); lcd.setCursor (0, 0);
Dalhin ang Distansya mula sa sensor ng Ultrasonic. Ito ay gagamitin upang makita ang pagkakaroon ng sasakyan sa partikular na lugar. Ipadala muna ang 2 microsecond pulse at pagkatapos basahin ang natanggap na pulso. Pagkatapos ay i-convert ito sa 'cm'. Matuto nang higit pa tungkol sa pagsukat ng distansya gamit ang ultrasonic sensor dito.
digitalWrite (TRIG, LOW); delayMicroseconds (2); digitalWrite (TRIG, MATAAS); delayMicroseconds (10); digitalWrite (TRIG, LOW); tagal = pulseIn (ECHO, TAAS); distansya = (tagal / 2) / 29.1;
Digital na basahin ang IR sensor pin bilang entry sensor at suriin kung ito ay mataas. Kung ito ay mataas pagkatapos ay dagdagan ang bilang ng entry at i-print ito sa 16x2 LCD display at din sa serial monitor.
int carEntry = digitalRead (carEnter); kung (carEntry == MATAAS) { countYes ++; Serial.print ("Pinasok ang Kotse ="); Serial.println (countYes); lcd.setCursor (0, 1); lcd.print ("Pumasok sa Kotse");
Ilipat din ang anggulo ng servo motor upang buksan ang gate ng pasukan. Baguhin ang anggulo ayon sa iyong kaso sa paggamit.
para sa (pos = 140; pos> = 45; pos - = 1) { myservos.write (pos); antala (5); } pagkaantala (2000); para sa (pos = 45; pos <= 140; pos + = 1) { // sa mga hakbang ng 1 degree myservos.write (pos); antala (5); }
At ipadala ang pagbabasa sa firebase sa pamamagitan ng paggamit ng pushString function ng Firebase library.
Firebase.pushString ("/ Katayuan sa Paradahan /", sunog Magagamit);
Gumawa ng mga katulad na hakbang tulad ng nasa itaas para sa Exit IR sensor at Exit servo motor.
int carExit = digitalRead (carExited); kung (carExit == MATAAS) { countYes--; Serial.print ("Car Exited ="); Serial.println (countYes); lcd.setCursor (0, 1); lcd.print ("Car Exited"); para sa (pos1 = 140; pos1> = 45; pos1 - = 1) { myservo.write (pos1); antala (5); } pagkaantala (2000); para sa (pos1 = 45; pos1 <= 140; pos1 + = 1) { // sa mga hakbang na 1 degree myservo.write (pos1); antala (5); } Firebase.pushString ("/ Katayuan sa Paradahan /", sunog Magagamit); lcd.clear (); }
Suriin kung ang kotse ay dumating sa lugar ng paradahan at kung ito ay dumating pagkatapos ng glow na humantong na nagbibigay ng senyas na ang lugar ay puno na.
kung (distansya <6) { Serial.println ("Sakupin"); digitalWrite (led, HIGH); }
Iba pa ipakita na ang puwesto ay magagamit.
kung (distansya> 6) { Serial.println ("Magagamit"); digitalWrite (led, LOW); }
Kalkulahin ang kabuuang walang laman na puwang sa loob ng paradahan at i-save ito sa string upang maipadala ang data sa firebase.
Walang laman = allSpace - countYes; Magagamit = String ("Magagamit =") + String (Empty) + String ("/") + String (allSpace); fireAvailable = String ("Magagamit =") + String (Empty) + String ("/") + String (allSpace); I-print din ang data sa i2C LCD. lcd.setCursor (0, 0); lcd.print (Magagamit);
Ganito masusubaybayan ang pagkakaroon ng paradahan sa online sa Firebase tulad ng ipinakita sa snapshot sa ibaba:
Tinatapos nito ang kumpletong sistema ng matalinong paradahan gamit ang ESP8266 NodeMCU Module at iba't ibang mga peripheral. Maaari mong gamitin ang iba pang mga sensor din sa kapalit ng Ultrasonic at IR sensor. Mayroong malawak na aplikasyon ng Smart Parking System at maaaring idagdag ang iba't ibang mga produkto upang gawin itong mas matalino. Magkomento sa ibaba kung mayroon kang anumang pag-aalinlangan o maabot ang aming forum para sa higit pang suporta.