- المكونات المطلوبة:
- مستشعر درجة الحرارة LM35:
- توصيل LM35 بـ NodeMCU:
- شرح الكود:
- كود HTML لعرض درجة الحرارة على صفحة الويب:
- العمل:
في السابق للوصول إلى بداية مع NodeMCU تعليمي، رأينا ما هو NodeMCU و كيف يمكننا برمجة باستخدام اردوينو IDE . كما تعلم ، يحتوي NodeMCU على شريحة Wi-Fi في الداخل ، لذلك يمكنه أيضًا الاتصال بالإنترنت. من المفيد جدًا إنشاء مشاريع إنترنت الأشياء. لقد استخدمنا سابقًا ThingSpeak مع Arduino لصنع مقياس حرارة IoT ، ولكن هنا سننشئ صفحة الويب الخاصة بنا لعرض درجة الحرارة.
في هذا البرنامج التعليمي سوف نستكشف المزيد عن MCU المثيرة للاهتمام ونغوص ببطء في عالم إنترنت الأشياء من خلال توصيل NodeMCU بالإنترنت. هنا سوف نستخدم هذه الوحدة للحصول على درجة حرارة الغرفة على متصفح الويب ، أي سنقوم بإنشاء خادم ويب لعرض درجة الحرارة باستخدام LM35 كمستشعر لدرجة الحرارة.
المكونات المطلوبة:
- NodeMCU - ESP12
- مستشعر درجة الحرارة LM35
- اللوح
- موصلات ذكر وأنثى
مستشعر درجة الحرارة LM35:
LM35 هو مستشعر درجة حرارة خطي تناظري. إخراجها يتناسب مع درجة الحرارة (بالدرجة المئوية). نطاق درجة حرارة التشغيل من -55 درجة مئوية إلى 150 درجة مئوية. الجهد الناتج يختلف حسب 10mV ردا على كل س ارتفاع C أو تقع في درجة الحرارة. يمكن تشغيله من مصدر 5V وكذلك 3.3 V ويكون تيار الاستعداد أقل من 60uA.
لاحظ أن LM35 متاح في 3 مجموعات مختلفة وهي LM35A و LM35C و LM35D. يكمن الاختلاف الرئيسي في نطاق قياسات درجات الحرارة. تم تصميم سلسلة LM35D لقياس من 0 إلى 100 درجة مئوية ، حيث تم تصميم سلسلة LM35A لقياس نطاق أوسع من -55 إلى 155 درجة مئوية. تم تصميم سلسلة LM35C للقياس من -40 إلى 110 درجة مئوية.
لقد استخدمنا بالفعل LM35 مع العديد من أجهزة التحكم الدقيقة الأخرى لقياس درجة الحرارة:
- ميزان حرارة رقمي باستخدام متحكم LM35 و 8051
- قياس درجة الحرارة باستخدام متحكم LM35 و AVR
- ميزان حرارة رقمي باستخدام مستشعر درجة الحرارة Arduino و LM35
- قياس درجة حرارة الغرفة باستخدام Raspberry Pi
توصيل LM35 بـ NodeMCU:
مخطط الدائرة لتوصيل LM35 مع NodeMCU موضح أدناه:
LM35 هو مستشعر تناظري لذا يتعين علينا تحويل هذا الإخراج التناظري إلى رقمي. لهذا نستخدم ADC pin الخاص بـ NodeMCU والذي تم تعريفه على أنه A0. سنقوم بتوصيل خرج LM35 بـ A0.
لدينا 3.3 فولت كجهد خرج على دبابيس NodeMCU. لذلك ، سنستخدم 3.3 فولت مثل Vcc لـ LM35.
شرح الكود:
يتم تقديم الكود الكامل مع فيديو توضيحي في نهاية المقالة. نحن هنا نوضح أجزاء قليلة من الكود. لقد أوضحنا بالفعل تحميل الكود إلى MCU باستخدام Arduino IDE.
أولاً ، يتعين علينا تضمين مكتبة ESP8266wifi للوصول إلى وظائف Wi-Fi..
#تضمن
ثم أدخل اسم الواي فاي وكلمة المرور في SSID و كلمة المرور المجال. أيضًا تهيئة المتغيرات وبدء الخادم على المنفذ 80 بمعدل الباود 115200.
const char * ssid = "*********" ؛ // كلمة مرور ssid const char * = "***********" ؛ // تعويم كلمة المرور الخاصة بك temp_celsius = 0 ؛ تعويم temp_fahrenheit = 0 ؛ خادم WiFiServer (80) ؛ إعداد باطل () { Serial.begin (115200) ؛
يتم إنشاء اتصال Wi-Fi عن طريق استدعاء هذه الوظائف.
Serial.println () ، Serial.println () ، Serial.print ("الاتصال بـ") ؛ Serial.println (ssid) ؛ WiFi.begin (SSID ، كلمة المرور) ؛
يمكن أن يستغرق الاتصال بضع ثوانٍ لتأسيسه ، لذا استمر في إظهار "…" حتى لا يتم إنشاء الاتصال. ثم سيستمر النظام في الانتظار والتحقق من اتصال العميل…
while (WiFi.status ()! = WL_CONNECTED) { delay (500) ؛ Serial.print (".") ؛ } Serial.println ("") ؛ Serial.println ("WiFi متصل") ؛ server.begin () ، Serial.println ("بدأ الخادم") ؛ Serial.println (WiFi.localIP ()) ؛ }
في قسم الحلقة ، اقرأ قيم المستشعر وقم بتحويلها إلى درجة مئوية وفهرنهايت واعرض هذه القيم على الشاشة التسلسلية.
حلقة باطلة () { temp_celsius = (analogRead (A0) * 330.0) / 1023.0 ؛ // لتحويل القيم التناظرية إلى درجة مئوية ، لدينا 3.3 فولت على لوحتنا ونعلم أن جهد الخرج LM35 يختلف بمقدار 10 مللي فولت لكل درجة ارتفاع / هبوط مئوية. لذلك ، (A0 * 3300/10 ) / 1023 = درجة مئوية temp_fahrenheit = مئوية * 1.8 + 32.0 ؛ Serial.print ("درجة الحرارة =") ؛ Serial.print (temp_celsius) ؛ Serial.print ("مئوية") ؛
كود HTML لعرض درجة الحرارة على صفحة الويب:
نحن نعرض درجة الحرارة على إحدى صفحات الويب بحيث يمكن الوصول إليها من أي مكان في العالم عبر الإنترنت. كود HTML بسيط للغاية ؛ علينا فقط استخدام وظيفة client.println لتكرار كل سطر من كود HTML ، حتى يتمكن المتصفح من تنفيذه.
يعرض هذا الجزء كود HTML لإنشاء صفحة ويب تعرض قيمة درجة الحرارة.
عميل WiFiClient = server.available () ؛ client.println ("HTTP / 1.1 200 OK") ؛ client.println ("نوع المحتوى: نص / html") ؛ client.println ("اتصال: إغلاق") ؛ // سيتم إغلاق الاتصال بعد إكمال استجابة client.println ("Refresh: 10") ؛ // تحديث الصفحة بعد 10 ثوانٍ client.println () ؛ client.println ("") ؛ client.println ("") ؛ client.print ("
مقياس حرارة رقمى
") ؛ client.print ("درجة الحرارة (* C) = ") ؛ client.println (temp_celsius) ؛ client.print ("
درجة الحرارة (F) = ") ؛ client.println (temp_fahrenheit) ؛ client.print ("
") ؛ client.println (" ") ؛ تأخير (5000) ؛ }العمل:
بعد تحميل الكود باستخدام Arduino IDE ، افتح الشاشة التسلسلية واضغط على زر إعادة الضبط في NodeMCU.
الآن ، يمكنك رؤية اللوحة متصلة بشبكة Wi-Fi التي حددتها في الرمز الخاص بك وأيضًا حصلت على IP. انسخ عنوان IP هذا والصقه في أي متصفح ويب. تأكد من اتصال نظامك الذي تقوم بتشغيل متصفح الويب عليه بنفس الشبكة.
مقياس الحرارة الرقمي جاهز وسيتم تحديث درجة الحرارة تلقائيًا في متصفح الويب بعد كل 10 ثوانٍ.
لجعل صفحة الويب هذه قابلة للوصول من الإنترنت ، تحتاج فقط إلى تعيين Port Forwarding في جهاز التوجيه / المودم. تحقق من الكود الكامل والفيديو أدناه.
تحقق أيضًا من:
- محطة الطقس Raspberry Pi: مراقبة الرطوبة ودرجة الحرارة والضغط عبر الإنترنت
- مراقبة درجة الحرارة والرطوبة الحية عبر الإنترنت باستخدام Arduino و ThingSpeak