- ส่วนประกอบที่จำเป็น
- ลิงก์ API สำหรับรับ Corona Live Data
- แผนภูมิวงจรรวม
- การเขียนโปรแกรม ESP32 สำหรับ Covid19 Tracker
- การทดสอบเจลทำความสะอาดมืออัตโนมัติด้วย Covid19 Tracker
ไวรัสโคโรนา (Covid19) กำลังสร้างความหายนะให้กับโลก เกือบทุกประเทศเป็นโรคไวรัสโคโรนา WHO ประกาศแล้วว่าเป็นโรคระบาดและหลายเมืองอยู่ภายใต้สถานการณ์ปิดกั้นผู้คนไม่สามารถก้าวออกจากบ้านได้และหลายพันคนต้องเสียชีวิต เว็บไซต์จำนวนมากให้บริการอัปเดตสดของกรณี coronavirus เช่นตัวติดตามของ Microsoft, Covid19 Tracker ของ Esri เป็นต้น
ในโครงการนี้เราจะสร้างเครื่องจ่ายเจลทำความสะอาดมืออัตโนมัติพร้อมจอ LCD ซึ่งแสดงจำนวนผู้ติดเชื้อ Coronavirus โครงการนี้จะใช้ ESP32, Ultrasonic Sensor, โมดูล LCD 16x2, ปั๊มน้ำและเจลทำความสะอาดมือ เรากำลังใช้ API Explorer ของ Esri เพื่อรับข้อมูลสดของผู้ติดเชื้อ Covid19 เซ็นเซอร์อัลตราโซนิกใช้เพื่อตรวจสอบว่ามีมืออยู่ใต้เต้าเสียบของเครื่องฆ่าเชื้อ มันจะคำนวณระยะห่างระหว่างช่องจ่ายน้ำยาฆ่าเชื้อกับตัวมันเองอย่างต่อเนื่องและบอกให้ ESP เปิดปั๊มเมื่อใดก็ตามที่ระยะห่างน้อยกว่า 15 ซม. เพื่อดันน้ำยาฆ่าเชื้อออก
ESP32 ใช้เป็นตัวควบคุมหลักเป็นโมดูล Wi-Fi ที่สามารถเชื่อมต่ออินเทอร์เน็ตได้อย่างง่ายดาย ก่อนหน้านี้เราใช้มันเพื่อสร้างโครงการที่ใช้ IoT มากมายโดยใช้ ESP32
ส่วนประกอบที่จำเป็น
- โมดูล ESP32 Dev
- อัลตราโซนิกเซนเซอร์
- 16 * 2 จอแสดงผล LCD
- โมดูลรีเลย์
- ปั๊มจุ่มมินิ DC
- เจลล้างมือ
ลิงก์ API สำหรับรับ Corona Live Data
ที่นี่เราจำเป็นต้องรับข้อมูลจากอินเทอร์เน็ตจากนั้นส่งไปยัง ESP32 เพื่อแสดงบน LCD 16x2 ด้วยเหตุนี้คำขอรับ HTTP จึงถูกเรียกให้อ่านไฟล์ JSON จากอินเทอร์เน็ต เรากำลังใช้ API ที่จัดทำโดย Coronavirus Disease GIS Hub คุณสามารถรวบรวม URL การสืบค้นที่ถูกต้องเพื่อรับกรณีที่ได้รับการยืนยันและกู้คืนทั้งหมดสำหรับอินเดียและยังสามารถเปลี่ยนประเทศ / ภูมิภาคได้หากคุณต้องการใช้สิ่งนี้สำหรับประเทศอื่น
ตอนนี้คลิกที่“ ลองเลย” หรือวาง URL การสืบค้นลงในเบราว์เซอร์ใหม่ผลลัพธ์ของแบบสอบถามนั้นจะมีลักษณะดังนี้
{"objectIdFieldName": "OBJECTID", "uniqueIdField": {"name": "OBJECTID", "isSystemMaintained": true}, "globalIdFieldName": "", "geometryType": "esriGeometryPoint", "spatialReference": {" wkid ": 4326," latestWkid ": 4326}," fields ":," features ":}
หลังจากได้รับข้อมูล JSON แล้วตอนนี้สร้างโค้ดเพื่ออ่านข้อมูล JSON และวลีตามความต้องการของเรา จากนั้นไปที่ ArduinoJson Assistant และวางข้อมูล JSON ในส่วนอินพุต
ตอนนี้เลื่อนลงไปที่โปรแกรมแยกวิเคราะห์และคัดลอกส่วนรหัสที่มีประโยชน์สำหรับคุณ ฉันคัดลอกตัวแปรด้านล่างเนื่องจากฉันต้องการเฉพาะกรณีที่ได้รับการยืนยันและกู้คืนในอินเดีย
แผนภูมิวงจรรวม
แผนภาพวงจรที่สมบูรณ์สำหรับเครื่องจ่ายน้ำยาฆ่าเชื้อ Covid19 Tracker & เครื่องจ่ายน้ำยาล้างมืออัตโนมัติมีดังต่อไปนี้
ปั๊มน้ำเชื่อมต่อกับ ESP32 ผ่านโมดูลรีเลย์ หมุด Vcc และ GND ของรีเลย์เชื่อมต่อกับหมุด Vin และ GND ของ ESP32 ในขณะที่ขาอินพุตของรีเลย์เชื่อมต่อกับขา D19 ของ ESP32 ทริกและพิน Echo ของเซ็นเซอร์อัลตราโซนิกเชื่อมต่อกับ D5 และ D18 Pins ของ Arduino
การเชื่อมต่อที่สมบูรณ์จะได้รับในตารางด้านล่าง
LCD | ESP32 |
VSS | GND |
VDD | 5V |
VO | โพเทนชิออมิเตอร์ |
อาร์เอส | D22 |
RW | GND |
จ | D4 |
D4 | D15 |
D5 | D13 |
D6 | D26 |
D7 | D21 |
ก | 5V |
เค | GND |
อัลตราโซนิกเซนเซอร์ | ESP32 |
Vcc | Vin |
GND | GND |
หนุน | D5 |
ECHO | D18 |
ฮาร์ดแวร์ของเครื่องจ่ายเจลทำความสะอาดมือแบบ Motion Sensorจะมีลักษณะดังนี้
การเขียนโปรแกรม ESP32 สำหรับ Covid19 Tracker
รหัสที่สมบูรณ์ของAuto Hand Sanitizer และ CORONA19 Trackerอยู่ที่ท้ายหน้า นี่คือส่วนที่สำคัญของโปรแกรมจะอธิบาย
เริ่มโค้ดโดยรวมไฟล์ไลบรารีที่จำเป็นทั้งหมด HTTPClient ไลบรารีใช้เพื่อรับข้อมูลจากเซิร์ฟเวอร์ HTTP ไลบรารี ArduinoJson ใช้เพื่อวลีอาร์เรย์ข้อมูล ที่นี่ไลบรารี ArduinoJson ใช้เพื่อกรองกรณีที่ได้รับการยืนยันและกู้คืนจากอาร์เรย์ข้อมูลที่เราได้รับจากเซิร์ฟเวอร์ ไลบรารี LiquidCrystal ใช้สำหรับโมดูลการแสดงผล LCD
# รวม
ในการรับข้อมูลจากเซิร์ฟเวอร์ NodeMCU ESP32 ต้องเชื่อมต่อกับอินเทอร์เน็ต สำหรับสิ่งนั้นให้ป้อน SSID และรหัสผ่าน Wi-Fi ของคุณในบรรทัดด้านล่าง
const ถ่าน * ssid = "Galaxy-M20"; const ถ่าน * ผ่าน = "ac312124";
หลังจากนั้นกำหนดพินที่คุณเชื่อมต่อโมดูล LCD เซ็นเซอร์อัลตราโซนิกและโมดูลรีเลย์
const int rs = 22, th = 4, d4 = 15, d5 = 13, d6 = 26, d7 = 21; LiquidCrystal lcd (rs, en, d4, d5, d6, d7); const int trigPin = 5; const int echoPin = 18; const int ปั๊ม = 19;
ตอนนี้เราเข้าสู่ลิงค์ API ที่สร้างขึ้นก่อนหน้านี้ เมื่อใช้ลิงก์นี้เราจะได้รับเคสที่ได้รับการยืนยันทั้งหมดและเคสที่ได้รับการกู้คืนในอินเดีย คุณสามารถเปลี่ยนชื่อประเทศใน URL ตามที่คุณต้องการ
constchar * url = "https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/ncov_cases/FeatureServer/1/query?f=json&where=(Country_Region=%27India%27)&returnGeometry=falseCountryFirields, หายแล้ว ";
ตอนนี้อยู่ในการ ตั้งค่าโมฆะ () กำหนดพิน Trig และ Echo ของเซ็นเซอร์อัลตราโซนิกเป็นขาอินพุตและขารีเลย์เป็นเอาต์พุต
pinMode (trigPin, เอาท์พุท); pinMode (echoPin, INPUT); pinMode (ปั๊มเอาท์พุท);
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการทำงานของเซ็นเซอร์อัลตราโซนิกให้ตรวจสอบการเชื่อมต่อกับ Arduino ซึ่งเราได้อธิบายการทำงานของขา TRIG และ ECHO พร้อมกับวิธีใช้ในการคำนวณระยะห่างระหว่างวัตถุใด ๆ ตรวจสอบโครงการที่ใช้อัลตราโซนิกอื่น ๆ
หลังจากนั้นให้ตรวจสอบว่า ESP เชื่อมต่อกับ Wi-Fi หรือไม่หากไม่เป็นเช่นนั้นจะรอให้ ESP เชื่อมต่อโดยพิมพ์“ ….. ” บนมอนิเตอร์แบบอนุกรม
WiFi.begin (ssid, ผ่าน); ในขณะที่ (WiFi.status ()! = WL_CONNECTED) {ล่าช้า (500); Serial.print ("."); // พิมพ์… ถึงไม่เชื่อมต่อ} Serial.println ("WiFi connected");
ภายในฟังก์ชัน void ultra () เราจะคำนวณระยะทางอย่างต่อเนื่องโดยใช้เซ็นเซอร์อัลตราโซนิกและหากระยะทางน้อยกว่าหรือเท่ากับ 15 ซม. ก็จะเปิดปั๊มเป็นเวลา 2 วินาทีเพื่อดันน้ำยาฆ่าเชื้อออกไปข้างนอกผ่านท่อ อย่างลืมตัวเมื่อมีคนวางมือไว้ใต้ท่อทางออกระยะทางจะลดลงและจะกระตุ้นให้ปั๊มเปิด
เป็นโมฆะ ultra () {digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, สูง); delayMicroseconds (10); digitalWrite (trigPin, LOW); ระยะเวลา = pulseIn (echoPin, HIGH); ระยะทาง = ระยะเวลา * 0.0340 / 2; Serial.println ("ระยะทาง"); Serial.println (ระยะทาง); ถ้า (ระยะ <= 15) {Serial.print ("ปั๊มเปิด"); digitalWrite (ปั๊มสูง); ล่าช้า (2000); digitalWrite (ปั๊ม LOW); ESP.restart (); }}
ตอนนี้อยู่ในฟังก์ชัน void loop () ให้ตรวจสอบว่าไฟล์ JSON ได้รับจาก ESP32 หรือไม่โดยการอ่านและพิมพ์ข้อมูล JSON บนจอภาพอนุกรมโดยใช้บรรทัดต่อไปนี้
int httpCode = https.GET (); ถ้า (httpCode> 0) {// ตรวจสอบรหัสที่ส่งคืน String payload = https.getString ();
หลังจากนั้นใช้โปรแกรมวลีที่สร้างขึ้นจากArduinoJson Assistant โปรแกรมวลีนี้จะช่วยให้เรามีกรณีที่ได้รับการยืนยันและกู้คืนทั้งหมดในอินเดีย
ฟิลด์ JsonArray = doc; คุณสมบัติ JsonObject_0_attributes = doc; long features_0_attributes_Last_Update = features_0_attributes; int features_0_attributes_Confirmed = features_0_attributes; // int features_0_attributes_Deaths = features_0_attributes; int features_0_attributes_Recovered = features_0_attributes;
การทดสอบเจลทำความสะอาดมืออัตโนมัติด้วย Covid19 Tracker
ในที่สุดเครื่องจ่ายเจลทำความสะอาดมือแบบใช้แบตเตอรี่ของเราก็พร้อมที่จะทดสอบแล้ว เพียงเชื่อมต่อฮาร์ดแวร์ตามแผนภาพวงจรและอัปโหลดโปรแกรมไปยัง ESP32 ในการเริ่มต้นคุณจะเห็นข้อความ“ Covid19 Tracker” &“ Hand Sanitizer” บนจอ LCD จากนั้นไม่กี่วินาทีจะแสดงกรณีที่ได้รับการยืนยันและกรณีที่กู้คืนแล้วใน หน้าจอ LCD ดังแสดงด้านล่าง
ในทำนองเดียวกันคุณสามารถรับข้อมูลนี้สำหรับประเทศใดก็ได้โดยทำการเปลี่ยนแปลงบางอย่างในลิงก์ API วิดีโอการทำงานที่สมบูรณ์และรหัสจะได้รับในตอนท้ายของหน้า