- المكونات مطلوبة
- وحدة قارئ EM18 RFID
- MLX90614 ميزان حرارة بالأشعة تحت الحمراء
- مخطط الرسم البياني
- شرح الكود
- تخزين بيانات الاستشعار في ورقة Excel من Arduino Controller
منذ اندلاع Covid-19 ، يتم استخدام موازين الحرارة بالأشعة تحت الحمراء كأداة فحص لفحص الأشخاص في المطارات ومحطات السكك الحديدية والمؤسسات المزدحمة الأخرى. تُستخدم هذه الفحوصات لتحديد المرضى المحتملين لـ Covid-19. جعلت الحكومة من الضروري فحص كل شخص قبل دخول المكتب أو المدرسة أو أي مكان مزدحم آخر.
لذلك في هذا البرنامج التعليمي ، سنقوم ببناء نظام مراقبة درجة الحرارة اللاتلامسي المستند إلى RFID باستخدام مستشعر درجة الحرارة بدون تلامس مع Arduino. عندما يقوم الموظفون بمسح بطاقة RFID ، فسوف يقيس درجة حرارة الجسم للموظفين باستخدام مقياس حرارة يعمل بالأشعة تحت الحمراء غير متصل ويسجل اسم ودرجة حرارة ذلك الموظف مباشرة في ورقة Excel. سنستخدم Arduino Nano و MLX90614 و EM18 RFID Reader ومستشعر الموجات فوق الصوتية لبناء هذا المشروع. يستخدم جهاز الاستشعار بالموجات فوق الصوتية لحساب المسافة بين مقياس الحرارة والشخص. سيقيس مقياس الحرارة درجة الحرارة فقط عندما تكون المسافة أقل من 25 سم. إنه شيء يشبه نظام الحضور المستند إلى RFID ، والذي يسجل أيضًا درجة حرارة الجسم لكل شخص.
المكونات مطلوبة
- اردوينو نانو
- وحدة EM-18 RFID
- MLX90614 مستشعر درجة حرارة تلامس
- أجهزة الاستشعار بالموجات فوق الصوتية
- اللوح
- أسلاك توصيل
وحدة قارئ EM18 RFID
أحد قارئات RFID المستخدمة على نطاق واسع لقراءة علامات 125 كيلو هرتز هو قارئ EM-18 RFID. تتميز وحدة قارئ RFID منخفضة التكلفة هذه باستهلاك منخفض للطاقة ، وعامل شكل منخفض ، وسهلة الاستخدام. يمكن أن توفر وحدة القارئ EM-18 الإخراج من خلال واجهتي اتصال مثل RS232 و WEIGAND26.
يتميز قارئ EM18 RFID بجهاز إرسال واستقبال يرسل إشارة راديو. عندما تأتي علامة RFID في نطاق إشارة جهاز الإرسال ، تصل هذه الإشارة إلى جهاز الإرسال والاستقبال الموجود داخل البطاقة. تستمد العلامة الطاقة من مجال المغناطيس الكهربائي الذي تولده وحدة القارئ. يقوم جهاز الإرسال والاستقبال بعد ذلك بتحويل إشارة الراديو إلى شكل طاقة قابل للاستخدام. عند الحصول على الطاقة ، يقوم جهاز الإرسال والاستقبال بنقل جميع المعلومات ، مثل معرف محدد ، في شكل إشارة RF إلى وحدة RFID. ثم يتم إرسال هذه البيانات إلى وحدة التحكم الدقيقة باستخدام اتصال UART.
لمعرفة المزيد حول RFID والعلامات ، تحقق من مشاريعنا السابقة القائمة على RFID.
MLX90614 ميزان حرارة بالأشعة تحت الحمراء
قبل أن نبدأ في البرنامج التعليمي ، من المهم معرفة كيفية عمل مستشعر MLX90614. هناك العديد من مستشعرات درجة الحرارة المتوفرة في السوق ، وقد استخدمنا مستشعر DHT11 و LM35 على نطاق واسع للعديد من التطبيقات حيث يجب قياس الرطوبة الجوية أو درجة الحرارة.
استخدمنا هذا المستشعر سابقًا في مسدس حراري يعمل بالأشعة تحت الحمراء يمكنه استشعار درجة حرارة جسم معين (ليس محيطًا) دون الاتصال المباشر بالكائن. نحن هنا نستخدم نفس المستشعر مرة أخرى لحساب درجة حرارة جسم ما. يعد MLX90614 أحد هذه المستشعرات التي تستخدم طاقة الأشعة تحت الحمراء للكشف عن درجة حرارة الجسم. لمعرفة المزيد حول دائرة مستشعر الأشعة تحت الحمراء والأشعة تحت الحمراء ، اتبع الرابط.
يتم تصنيع مستشعر MLX90614 بواسطة نظام Melexis Microelectronics المتكامل ، ويحتوي على جهازين مدمجين فيه ، أحدهما هو كاشف الحرارة بالأشعة تحت الحمراء (وحدة الاستشعار) والآخر هو جهاز DSP لتكييف الإشارة (وحدة حسابية). إنه يعمل على أساس قانون Stefan-Boltzmann الذي ينص على أن جميع الأجسام تنبعث منها طاقة الأشعة تحت الحمراء وأن شدة هذه الطاقة ستكون متناسبة طرديًا مع درجة حرارة ذلك الجسم. تقيس وحدة الاستشعار في المستشعر مقدار طاقة الأشعة تحت الحمراء المنبعثة من كائن مستهدف وتقوم الوحدة الحسابية بتحويلها إلى قيمة درجة حرارة باستخدام ADC مدمج 17 بت وتخرج البيانات من خلال اتصال I2C بروتوكول. يقيس المستشعر درجة حرارة الجسم ودرجة الحرارة المحيطة لمعايرة قيمة درجة حرارة الجسم. ميزات مستشعر MLX90614 مذكورة أدناه ، لمزيد من التفاصيل راجع ورقة بيانات MLX90614.
مخطط الرسم البياني
يرد أدناه مخطط الدائرة لمستشعر درجة الحرارة غير المتصل المستند إلى RFID باستخدام Arduino:
كما هو موضح في الرسم البياني للدائرة ، فإن التوصيلات بسيطة جدًا نظرًا لأننا استخدمناها كوحدات نمطية ، ويمكننا بناؤها مباشرة على لوح التجارب. يضيء مصباح LED المتصل بدبوس BUZ في وحدة قارئ EM18 عندما يقوم شخص ما بمسح العلامة. ترسل وحدة RFID البيانات إلى وحدة التحكم في المسلسل ؛ ومن ثم يتم توصيل دبوس جهاز الإرسال الخاص بوحدة RFID بدبوس جهاز الاستقبال في Arduino. تم تصنيف التوصيلات في الجدول أدناه:
اردوينو نانو |
وحدة EM18 RFID |
5 فولت |
Vcc |
GND |
GND |
5 فولت |
SEL |
آر إكس |
TX |
اردوينو نانو |
MLX90614 |
5 فولت |
Vcc |
GND |
GND |
A5 |
SCL |
A4 |
SDA |
اردوينو نانو |
جهاز استشعار بالموجات فوق الصوتية (HCSR-04) |
5 فولت |
Vcc |
GND |
GND |
د 5 |
علم حساب المثلثات |
د 6 |
صدى صوت |
شرح الكود
يتعين علينا كتابة كود Arduino يمكنه قراءة البيانات من المستشعر بالموجات فوق الصوتية ، MLX90614 ، وحدة قارئ EM18 RFID ، وإرسال اسم ودرجة حرارة الشخص إلى ورقة Excel. لهذا الرمز ، عليك تنزيل مكتبات Wire و MLX90614. بعد تنزيل المكتبات ، قم بإضافتها إلى Arduino IDE.
يتم تقديم الكود الكامل لمراقبة درجة حرارة الجسم بدون تلامس في نهاية الصفحة. هنا سيتم شرح نفس البرنامج في قصاصات صغيرة.
كالعادة ، ابدأ الكود بتضمين جميع المكتبات المطلوبة. هنا تُستخدم مكتبة Wire للتواصل باستخدام بروتوكول I2C وتستخدم مكتبة Adafruit_MLX90614.h لقراءة بيانات مستشعر MLX90614.
#تضمن
ثم نحدد دبابيس جهاز الاستشعار بالموجات فوق الصوتية التي قمنا بالاتصال بها
const int trigPin = 5 ؛ const int echoPin = 6 ؛
بعد ذلك ، حدد المتغيرات لتخزين وحدة RFID ، ومستشعر الموجات فوق الصوتية ، وبيانات مستشعر MLX90614.
مدة طويلة؛ مسافة كثافة العمليات سلسلة RfidReading ؛ تعويم TempReading ؛
داخل وظيفة الإعداد الفارغ () ، نقوم بتهيئة الشاشة التسلسلية لتصحيح الأخطاء ومستشعر درجة الحرارة MLX90614. أيضًا ، قم بتعيين دبابيس Trig و Echo كدبابيس إخراج وإدخال.
إعداد باطل () {Serial.begin (9600) ؛ // تهيئة الاتصال التسلسلي باستخدام pinMode للمراقب التسلسلي (trigPin ، OUTPUT) ؛ pinMode (echoPin ، INPUT) ؛ mlx.begin () ، Initialize_streamer () ، }
داخل وظيفة الحلقة الفارغة () ، احسب المسافة بين الشخص والمستشعر وإذا كانت المسافة أقل من أو تساوي 25 سم ، فاتصل بوظيفة القارئ () لمسح العلامة.
حلقة فارغة () {digitalWrite (trigPin، LOW) ؛ تأخير ميكروثانية (2) ؛ digitalWrite (trigPin ، عالية) ؛ تأخير ميكروثانية (10) ؛ digitalWrite (trigPin ، LOW) ؛ المدة = pulseIn (echoPin ، HIGH) ؛ المسافة = المدة * 0.0340 / 2 ؛ إذا كانت (مسافة <= 25) {قارئ () ؛ }
يتم استخدام وظيفة قارئ الفراغ () لقراءة بطاقة علامة RFID. بمجرد إحضار البطاقة بالقرب من وحدة القارئ ، تقوم وحدة القارئ بقراءة البيانات التسلسلية وتخزينها في متغير الإدخال.
قارئ باطل () {if (Serial.available ()) {count = 0؛ while (Serial.available () && count <12) {input = Serial.read () ؛ العد ++ ؛ تأخير (5) ؛
في السطور التالية ، قارن بيانات البطاقة الممسوحة ضوئيًا بمعرف العلامة المحدد مسبقًا. إذا تطابق معرف العلامة مع البطاقة الممسوحة ضوئيًا ، فقم بقراءة درجة حرارة الشخص وأرسل درجة الحرارة واسم الشخص إلى ورقة Excel.
إذا (المدخلات == علامة) العلم = 1 ؛ علم آخر = 0 ؛ العد ++ ؛ RfidReading = "Ashish" ؛ }} إذا (العلم == 1) {temp_read () ؛ Write_streamer () ، }
داخل وظيفة temp_read () ، اقرأ بيانات مستشعر MLX90614 بالدرجة المئوية وقم بتخزينها في متغير "TempReading" .
temp_read () باطل {TempReading = mlx.readObjectTempC () ؛}
بمجرد أن تصبح الأجهزة والبرامج جاهزة ، فقد حان الوقت لتحميل البرنامج على لوحة Arduino Nano. بمجرد تحميل البرنامج الخاص بك ، يبدأ جهاز الاستشعار بالموجات فوق الصوتية في حساب المسافة. عندما تكون المسافة المحسوبة أقل من 40 سم ، فإنها تقرأ درجة الحرارة والبطاقة.
تخزين بيانات الاستشعار في ورقة Excel من Arduino Controller
الآن لإرسال البيانات إلى ورقة Excel ، سنستخدم PLX-DAQ. إنه برنامج Excel Plug-in يساعدك على كتابة القيم من Arduino إلى ورقة Excel مباشرة على الكمبيوتر المحمول أو الكمبيوتر الشخصي. استخدم الرابط لتنزيل الملف. بعد التنزيل ، استخرج الملف وانقر على ملف exe. لتثبيته. سيقوم بإنشاء مجلد باسم PLS-DAQ على سطح المكتب الخاص بك.
افتح الآن ملف "جدول بيانات PLX-DAQ" من مجلد سطح المكتب. إذا تم تعطيل وحدات الماكرو في Excel الخاص بك ، فسترى كتلة أمان كما هو موضح في الصورة أدناه:
انقر فوق خيارات-> تمكين المحتوى -> إنهاء -> موافق لتمكين وحدات الماكرو. بعد ذلك ستظهر لك الشاشة التالية:
حدد الآن معدل الباود كـ "9600" والمنفذ الذي يتصل به Arduino الخاص بك ، ثم انقر فوق "اتصال" لبدء تدفق البيانات. يجب أن تبدأ قيمك في التسجيل كما هو موضح في الصورة أدناه.
هذه هي الطريقة التي يمكنك من خلالها إنشاء جهاز فحص درجة الحرارة اللاتلامسية وتخزين البيانات في ورقة Excel.
يتم تقديم فيديو عملي وكود كامل في نهاية الصفحة.