- المكونات مطلوبة
- رابط API للحصول على بيانات Corona Live Data
- مخطط الرسم البياني
- برمجة ESP32 لـ Covid19 Tracker
- اختبار معقم اليدين الأوتوماتيكي باستخدام Covid19 Tracker
فيروس كورونا (كوفيد 19) يعيث فسادا في العالم. تقريبا كل دولة تعاني من فيروس كورونا. أعلنت منظمة الصحة العالمية بالفعل أنه مرض وبائي والعديد من المدن في حالة إغلاق ، ولا يمكن للناس الخروج من منازلهم ، وقد فقد الآلاف حياتهم. تقدم العديد من مواقع الويب تحديثات مباشرة لحالات فيروس كورونا مثل Microsoft's Tracker و Esri's Covid19 Tracker وما إلى ذلك.
في هذا المشروع ، سنقوم ببناء موزع معقم أوتوماتيكي لليدين مزود بشاشة LCD تُظهر أيضًا العدد الحي لحالات فيروس كورونا. سيستخدم هذا المشروع ESP32 ، ومستشعر الموجات فوق الصوتية ، ووحدة LCD 16 × 2 ، ومضخة المياه ، ومعقم اليدين. نحن نستخدم Esri's API Explorer للحصول على البيانات الحية للأشخاص المصابين بفيروس Covid19. يستخدم مستشعر الموجات فوق الصوتية للتحقق من وجود اليدين أسفل مخرج جهاز التعقيم. سيحسب باستمرار المسافة بين مخرج المطهر ونفسه ويخبر المرساب الكهروستاتيكي بتشغيل المضخة كلما كانت المسافة أقل من 15 سم لدفع المطهر للخارج.
يتم استخدام ESP32 كوحدة تحكم رئيسية ، وهي وحدة Wi-Fi يمكنها الاتصال بالإنترنت بسهولة. استخدمناه سابقًا لبناء العديد من المشاريع القائمة على إنترنت الأشياء باستخدام ESP32.
المكونات مطلوبة
- وحدة تطوير ESP32
- أجهزة الاستشعار بالموجات فوق الصوتية
- 16 * 2 شاشة ال سي دي
- وحدة الترحيل
- مضخة غاطسة ميني DC
- معقم اليدين
رابط API للحصول على بيانات Corona Live Data
هنا نحتاج إلى الحصول على البيانات من الإنترنت ثم إرسالها إلى ESP32 لعرضها على شاشة LCD مقاس 16 × 2. لذلك ، يتم استدعاء طلب الحصول على HTTP لقراءة ملف JSON من الإنترنت. نحن هنا نستخدم واجهة برمجة التطبيقات التي يوفرها مركز نظم المعلومات الجغرافية لأمراض فيروس كورونا. يمكنك بسهولة تجميع عنوان URL الصحيح للاستعلام للحصول على إجمالي الحالات المؤكدة والمستعادة للهند ويمكنك أيضًا تغيير البلد / المنطقة إذا كنت تريد استخدام هذا لبلد مختلف.
انقر الآن على "جرب الآن" أو الصق عنوان URL للاستعلام في متصفح جديد ، سيبدو ناتج هذا الاستعلام كما يلي:
{"objectIdFieldName": "OBJECTID" ، "uniqueIdField": {"name": "OBJECTID" ، "isSystemMaintained": true} ، "globalIdFieldName": "" ، "geometryType": "esriGeometryPoint" ، "spatialReference": {" wkid ": 4326،" latestWkid ": 4326}،" الحقول ":،" features ":}
بعد الحصول على بيانات JSON ، أنشئ الآن الكود لقراءة بيانات JSON وصياغتها وفقًا لاحتياجاتنا. لذلك ، انتقل إلى ArduinoJson Assistant والصق بيانات JSON في قسم الإدخال.
الآن قم بالتمرير لأسفل إلى برنامج التحليل وانسخ قسم التعليمات البرمجية المفيد لك. لقد قمت بنسخ المتغيرات أدناه حيث كنت بحاجة فقط للحالات المؤكدة والمستعادة في الهند.
مخطط الرسم البياني
مخطط الرسم البياني الكامل لهذا Covid19 المقتفي ويد التلقائي المطهر موزع آلة يرد أدناه
يتم توصيل مضخة المياه بـ ESP32 من خلال وحدة ترحيل. يتم توصيل دبابيس Vcc و GND الخاصة بالمرحل بمسامير Vin و GND الخاصة بـ ESP32 بينما يتم توصيل دبوس الإدخال الخاص بالمرحل بالدبوس D19 الخاص بـ ESP32. ترتبط دبابيس Trig و Echo لمستشعر الموجات فوق الصوتية بدبابيس D5 و D18 في Arduino.
ويرد في الجدول أدناه التوصيلات الكاملة.
شاشة LCD | ESP32 |
VSS | GND |
VDD | 5 فولت |
صوت | مقياس فرق الجهد |
RS | D22 |
RW | GND |
ه | د 4 |
د 4 | D15 |
د 5 | D13 |
د 6 | D26 |
د 7 | D21 |
أ | 5 فولت |
ك | GND |
أجهزة الاستشعار بالموجات فوق الصوتية | ESP32 |
Vcc | فين |
GND | GND |
علم حساب المثلثات | د 5 |
صدى صوت | D18 |
سيبدو جهاز موزع معقم اليدين بمستشعر الحركة بهذا الشكل
برمجة ESP32 لـ Covid19 Tracker
يمكن العثور على الكود الكامل لـ Auto Hand Sanitizer و CORONA19 Tracker في نهاية الصفحة. هنا يتم شرح أجزاء مهمة من البرنامج.
ابدأ الكود بتضمين جميع ملفات المكتبة المطلوبة. تُستخدم مكتبة HTTPClient للحصول على البيانات من خادم HTTP. تُستخدم مكتبة ArduinoJson لصياغة مصفوفات البيانات. هنا تُستخدم مكتبة ArduinoJson لتصفية الحالات المؤكدة والمستردة من مصفوفة البيانات التي نحصل عليها من الخادم. تُستخدم مكتبة LiquidCrystal لوحدة عرض LCD.
#تضمن
للحصول على البيانات من الخادم ، يجب على NodeMCU ESP32 الاتصال بالإنترنت. لذلك ، أدخل Wi-Fi SSID وكلمة المرور في الأسطر أدناه.
const char * ssid = "Galaxy-M20" ؛ const char * pass = "ac312124" ؛
بعد ذلك ، حدد المسامير حيث قمت بتوصيل وحدة LCD ومستشعر الموجات فوق الصوتية ووحدة الترحيل.
const int rs = 22 ، en = 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 ؛ مضخة 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=false&outFirmRions=C ، تعافى "؛
الآن داخل إعداد الفراغ () ، حدد دبوس Trig و Echo لمستشعر Ultrasonic كدبابيس إدخال ودبوس Relay كمخرج.
pinMode (trigPin ، الإخراج) ؛ pinMode (echoPin ، INPUT) ؛ pinMode (مضخة ، الإخراج) ؛
لمعرفة المزيد حول كيفية عمل مستشعر الموجات فوق الصوتية ، تحقق من تفاعله مع Arduino حيث أوضحنا وظيفة دبوس TRIG و ECHO بالإضافة إلى كيفية استخدامه لحساب المسافة بين أي كائن. تحقق أيضًا من المشاريع الأخرى القائمة على الموجات فوق الصوتية.
بعد ذلك ، تحقق مما إذا كان ESP متصلاً بشبكة Wi-Fi ، وإلا فسينتظر اتصال ESP عن طريق طباعة "….." على الشاشة التسلسلية.
WiFi.begin (ssid ، تمرير) ؛ while (WiFi.status ()! = WL_CONNECTED) {delay (500) ؛ Serial.print (".") ؛ // طباعة… حتى عدم الاتصال} Serial.println ("WiFi متصل") ؛
داخل وظيفة void ultra () ، سنحسب باستمرار المسافة باستخدام مستشعر الموجات فوق الصوتية وإذا كانت المسافة أقل من أو تساوي 15 سم ، فسيتم تشغيل المضخة لمدة ثانيتين لدفع المطهر للخارج عبر الأنبوب. غافلاً عندما يضع شخص ما يديه أسفل أنبوب المخرج ، ستنخفض المسافة وستؤدي إلى تشغيل المضخة.
void ultra () {digitalWrite (trigPin، LOW) ؛ تأخير ميكروثانية (2) ؛ digitalWrite (trigPin ، عالية) ؛ تأخير ميكروثانية (10) ؛ digitalWrite (trigPin ، LOW) ؛ المدة = pulseIn (echoPin ، HIGH) ؛ المسافة = المدة * 0.0340 / 2 ؛ Serial.println ("مسافة") ؛ Serial.println (مسافة) ؛ إذا (المسافة <= 15) {Serial.print ("مضخة الافتتاح") ؛ digitalWrite (مضخة ، عالية) ؛ تأخير (2000) ؛ digitalWrite (مضخة ، منخفضة) ؛ ESP.restart () ، }}
الآن داخل وظيفة الحلقة الفارغة () ، تحقق مما إذا كان ملف JSON قد تم استلامه بواسطة ESP32 عن طريق قراءته وطباعة بيانات JSON على الشاشة التسلسلية باستخدام الأسطر التالية
int httpCode = https.GET () ، if (httpCode> 0) {// تحقق من الكود المرتجع String payload = https.getString () ؛
بعد ذلك ، استخدم برنامج الصياغة الذي تم إنشاؤه من ArduinoJson Assistant. سيعطينا برنامج الصياغة هذا إجمالي الحالات المؤكدة والمستعادة في الهند.
حقول JsonArray = doc ؛ JsonObject features_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. يتم تقديم فيديو ورمز عمل كامل في نهاية الصفحة.