![تطبيق Weather Web باستخدام Esp8266: 7 خطوات تطبيق Weather Web باستخدام Esp8266: 7 خطوات](https://i.howwhatproduce.com/images/011/image-31060-j.webp)
جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-23 12:53
![تطبيق ويب الطقس باستخدام Esp8266 تطبيق ويب الطقس باستخدام Esp8266](https://i.howwhatproduce.com/images/011/image-31060-1-j.webp)
SHT 31 عبارة عن مستشعرات درجة الحرارة والرطوبة من إنتاج شركة Sensirion. يوفر SHT31 مستوى عاليًا من الدقة حول ± 2٪ RH. تتراوح رطوبتها ما بين 0 إلى 100٪ ومدى درجة الحرارة بين -40 إلى 125 درجة مئوية. إنه أكثر موثوقية وسرعة مع 8 ثوانٍ من وقت استجابة المستشعر. تتضمن وظائفه معالجة الإشارات المحسنة وتوافق I2C. لديها طرق مختلفة للعمليات مما يجعلها موفرة للطاقة.
في هذا البرنامج التعليمي ، قمنا بتوصيل SHT 31 مع لوحة Adafruit Huzzah. لقراءة قيم درجة الحرارة والرطوبة ، استخدمنا درع ESP8266 I2C. هذا المحول يجعل جميع المسامير في متناول المستخدم ويوفر بيئة I2C سهلة الاستخدام.
الخطوة 1: الأجهزة المطلوبة
![الأجهزة مطلوبة الأجهزة مطلوبة](https://i.howwhatproduce.com/images/011/image-31060-2-j.webp)
![الأجهزة مطلوبة الأجهزة مطلوبة](https://i.howwhatproduce.com/images/011/image-31060-3-j.webp)
![الأجهزة مطلوبة الأجهزة مطلوبة](https://i.howwhatproduce.com/images/011/image-31060-4-j.webp)
الأجهزة المستخدمة لإكمال هذه المهمة:
1. SHT31
2. Adafruit Huzzah ESP8266
3. محول ESP8266 I2C
4. كابل I2C
الخطوة 2: توصيلات الأجهزة
![اتصالات الأجهزة اتصالات الأجهزة](https://i.howwhatproduce.com/images/011/image-31060-5-j.webp)
![اتصالات الأجهزة اتصالات الأجهزة](https://i.howwhatproduce.com/images/011/image-31060-6-j.webp)
تتضمن هذه الخطوة دليل توصيل الأجهزة. يشرح هذا القسم بشكل أساسي توصيلات الأسلاك المطلوبة بين المستشعر و ESP8266. الاتصالات هي على النحو التالي.
- يعمل SHT31 فوق I2C. توضح الصورة أعلاه العلاقة بين وحدة ESP8266 و SHT31. نحن نستخدم كبل I2C لذلك إما أنه يمكننا استخدام 4 أسلاك توصيل F إلى F.
- يتم استخدام سلك واحد لـ Vcc ، والسلك الثاني لـ GND واثنين آخرين لـ SDA و SCL على التوالي.
- وفقًا لمحول I2C ، يتم استخدام pin2 والدبوس 14 من لوحة ESP8266 كـ SDA و SCL على التوالي
الخطوة 3: رمز جدولة المهام
في هذا البرنامج التعليمي ، نقوم بإجراء ثلاث عمليات
- اقرأ البيانات من SHT11 باستخدام بروتوكول I2C
- قم باستضافة خادم الويب وانشر قراءة المستشعر على صفحة الويب
- انشر قراءات المستشعر في ThingSpeak API
لتحقيق ذلك نحن نستخدم مكتبة TaskScheduler. لقد قمنا بجدولة ثلاث مهام مختلفة تشير إلى ثلاث عمليات تحكم مختلفة. هكذا يتم فعل هذا
- المهمة 1 لقراءة قيمة المستشعر تعمل هذه المهمة لمدة ثانية واحدة حتى تصل إلى 10 ثوانٍ.
- عندما تصل Task1 إلى مهلتها ، يتم تمكين المهمة 2 وتعطيل Task1.
- نقوم بالاتصال بـ AP في رد الاتصال هذا ، يتم أخذ متغيرين منطقيين لرعاية التبديل بين STA و AP
- في المهمة 2 ، نستضيف خادم ويب على 192.168.1.4. تعمل هذه المهمة كل 5 ثوانٍ حتى تصل إلى مهلتها وهي 50 ثانية
- عندما تصل المهمة 2 إلى مهلة انتهاء المهلة ، يتم تمكين المهمة 3 وتعطيل Task2.
- نقوم بالاتصال بـ STA (IP المحلي) في رد الاتصال هذا
- في المهمة 3 ، ننشر قراءة المستشعر إلى واجهة ThingSpeak API السحابية
- يتم تشغيل المهمة 3 كل خمس ثوان حتى تصل إلى مهلتها ، أي 50 ثانية
- عندما تصل Task3 إلى مهلتها ، يتم تمكين المهمة 1 مرة أخرى ويتم تعطيل Task3.
- عندما لا يتم استدعاء أي رد أو أن الجهاز في وضع الخمول ، فإنه ينتقل إلى Light Sleep وبالتالي توفير الطاقة.
مجدول ts
// المهام لـ i2c ، استضافة خادم الويب والنشر على Thingspeak
مهمة tI2C (1 * TASK_SECOND ، TASK_FOREVER ، & taskI2CCallback ، & ts ، false ، NULL ، & taskI2CDisable) ؛ Task tAP (5 * TASK_SECOND ، TASK_FOREVER ، & taskAPCallback ، & ts ، false ، NULL ، & taskAPDisable) ؛ مهمة tWiFi (5 * TASK_SECOND ، TASK_FOREVER ، & TaskWiFiCallback ، & ts ، false ، NULL ، & TaskWiFiDisable) ؛ // مهلة المهام tI2C.setTimeout (10 * TASK_SECOND) ؛ tAP.setTimeout (50 * TASK_SECOND) ، tWiFi.setTimeout (50 * TASK_SECOND) ، // تمكين مهمة I2C tI2C.enable () ؛
الخطوة 4: كود لقراءة قيم درجة الحرارة والرطوبة
نحن نستخدم مكتبة Wire.h لقراءة قيم درجة الحرارة والرطوبة. تسهل هذه المكتبة اتصال i2c بين المستشعر والجهاز الرئيسي. 0x44 هو عنوان I2C لـ SHT31.
يعمل SHT31 في وضع مختلف للعمليات. يمكنك الرجوع إلى ورقة البيانات لذلك.
نحن نستخدم 0x2C و 0x06 كـ MSB و LSB على التوالي لعملية طلقة واحدة.
// I2C مهمة رد الاتصال باطلة مهمة I2CCallback ()
{Serial.println ("taskI2CStarted") ؛ جذر int غير موقع [6] ؛ // بدء الإرسال من 0x44 ؛ Wire.beginTransmission (العنوان) ؛ // من أجل إرسال طلقة واحدة مع قابلية عالية للتكرار ، نستخدم 0x2C (MSB) و 0x06 (LSB) Wire.write (0x2C) ؛ Wire.write (0x06) ؛ // نهاية الإرسال Wire.endTransmission () ؛ // طلب البايت من 0x44 Wire.beginTransmission (Addr) ؛ Wire.endTransmission () ؛ Wire.request From (Addr، 6) ؛ إذا كانت (Wire.available () == 6) {// data [0] والبيانات [1] تحتوي على 16 بت من درجة الحرارة. الجذر [0] = Wire.read () ، الجذر [1] = Wire.read () ، // البيانات [2] تحتوي على 8 بت من جذر CRC [2] = Wire.read () ؛ // البيانات [3] والبيانات [4] تحتوي على 16 بتًا من جذر الرطوبة [3] = Wire.read ()؛ الجذر [4] = Wire.read () ؛ // البيانات [5] تتكون من 8 بت جذر CRC [5] = Wire.read () ؛ } int temp = (root [0] * 256) + root [1] ؛ // تحول MSB بمقدار 8 بتات إضافة LSB float cTemp = -45.0 + (175.0 * temp / 65535.0) ؛ تعويم fTemp = (cTemp * 1.8) + 32.0 ؛ // انقل MSB بمقدار 8 بتات وأضف LSB مقسمًا عليها بدقة كاملة و * 100 للنسبة المئوية للرطوبة الطافية = (100.0 * ((root [3] * 256.0) + root [4])) / 65535.0 ؛
tempC = cTemp ؛
tempF = fTemp ؛ رطوبة = رطوبة؛ Serial.print ("درجة الحرارة في C: / t")؛ Serial.println (سلسلة (cTemp، 1)) ؛ Serial.print ("درجة الحرارة في F: / t")؛ Serial.println (سلسلة (fTemp، 1)) ؛ Serial.print ("الرطوبة: / t")؛ Serial.println (سلسلة (الرطوبة ، 1)) ؛ }
الخطوة 5: رمز استضافة خادم ويب
![رمز لاستضافة خادم ويب رمز لاستضافة خادم ويب](https://i.howwhatproduce.com/images/011/image-31060-7-j.webp)
![رمز لاستضافة خادم ويب رمز لاستضافة خادم ويب](https://i.howwhatproduce.com/images/011/image-31060-8-j.webp)
لقد استضفنا خادم ويب من أجهزتنا على عنوان IP ثابت.
- تُستخدم مكتبة ESP8266WebServer لاستضافة خادم الويب
- نحتاج أولاً إلى الإعلان عن عنوان IP والبوابة وقناع الشبكة الفرعية لإنشاء عنوان IP الثابت الخاص بنا
- أعلن الآن عن SSID وكلمة المرور لنقطة الوصول الخاصة بك.
- الاتصال بنقطة الوصول من أي جهاز STA
- استضافة الخادم على المنفذ 80 وهو منفذ افتراضي لبروتوكول اتصال الإنترنت ، بروتوكول نقل النص التشعبي (HTTP)
- أدخل 192.168.1.4 على متصفح الويب الخاص بك لصفحة الويب التمهيدية و 192.168.1.4/Value لصفحة الويب الخاصة بقراءة المستشعر
// ثابت IP لـ AP
IPAddress ap_local_IP (192 ، 168 ، 1 ، 4) ؛
IPAddress ap_gateway (192 ، 168 ، 1 ، 254) ؛
IPAddress ap_subnet (255 ، 255 ، 255 ، 0) ؛ // ssid و AP لشبكة WiFi المحلية في وضع STA
const char WiFissid = "*********" ؛
const char WiFipass = "*********" ؛
// ssid وتمريره لـ AP
const char APssid = "********" ؛
تجاوز الحرف الثابت = "********" ؛
خادم ESP8266WebServer (80) ؛
الإعداد باطل{
server.on ("/"، onHandleDataRoot)؛
server.on ("/ القيمة"، onHandleDataFeed)؛
server.onNotFound (onHandleNotFound) ،
}
TaskAPCallback باطلة {
Serial.println ("بدأ TaskAP") ؛
server.handleClient () ،
}
void onHandleDataRoot () {server.send (200، "text / html"، PAGE1) ؛ }
باطل onHandleDataFeed () {
server.send (200، "text / html"، PAGE2) ؛ }
باطل onHandleNotFound () {
رسالة السلسلة = "الملف غير موجود / n / n" ؛
الرسالة + = "URI:" ؛
message + = server.uri () ؛
message + = "\ n الطريقة:" ؛
message + = (server.method () == HTTP_GET)؟ "GET": "POST" ؛
message + = "\ n الوسائط:" ؛
message + = server.args () ؛
الرسالة + = "\ n" ؛
server.send (404، "نص / عادي" ، رسالة) ؛}
إعادة الاتصال باطل APWiFi () {
WiFi.mode (WIFI_AP_STA) ؛
تأخير (100) ؛
WiFi.disconnect () ؛
الحالة المنطقية = WiFi.softAPConfig (ap_local_IP، ap_gateway، ap_subnet) ؛
إذا (الحالة == صحيح) {
Serial.print ("Setting soft-AP …")؛
boolean ap = WiFi.softAP (APssid ، APpass) ؛
إذا (أب == صحيح) {
Serial.print ("متصل بـ: / t") ؛
// IPAddress myIP = WiFi.softAPIP () ؛
Serial.println (WiFi.softAPIP ()) ؛
}
server.begin () ،
}
}
الخطوة 6: رمز إرسال البيانات إلى الشيء الحديث
![رمز لترحيل البيانات إلى الشيء يتحدث رمز لترحيل البيانات إلى الشيء يتحدث](https://i.howwhatproduce.com/images/011/image-31060-9-j.webp)
![رمز لترحيل البيانات إلى الشيء يتحدث رمز لترحيل البيانات إلى الشيء يتحدث](https://i.howwhatproduce.com/images/011/image-31060-10-j.webp)
![رمز لترحيل البيانات إلى الشيء يتحدث رمز لترحيل البيانات إلى الشيء يتحدث](https://i.howwhatproduce.com/images/011/image-31060-11-j.webp)
![رمز لترحيل البيانات إلى الشيء يتحدث رمز لترحيل البيانات إلى الشيء يتحدث](https://i.howwhatproduce.com/images/011/image-31060-12-j.webp)
نحن هنا ننشر قراءات المستشعر على Thing Speak. الخطوات التالية مطلوبة لإكمال هذه المهمة-
- إنشاء حسابك في شيء يتكلم
- قم بإنشاء قنوات وحقول لتخزين بيانات المستشعر
- يمكننا الحصول على البيانات ونشرها من ESP إلى thingSpeak والعكس بالعكس باستخدام طلبات GET و POST إلى واجهة برمجة التطبيقات.
- يمكننا نشر بياناتنا على ThingSpeak على النحو التالي
مهمة باطلةWiFiCallback () {
WiFiClient wifi العميل ؛ if (wifiClient.connect (hostId، 80)) {String postStr = apiKey؛ postStr + = "& field1 ="؛ postStr + = سلسلة (رطبة) ؛ postStr + = "& field2 ="؛ postStr + = String (tempC) ؛ postStr + = "& field3 =" ؛ postStr + = String (tempF) ؛ postStr + = "\ r / n / r / n"؛ wifiClient.print ("POST / تحديث HTTP / 1.1 / n") ؛ wifiClient.print ("المضيف: api.thingspeak.com / n") ؛ wifiClient.print ("اتصال: إغلاق / n") ؛ wifiClient.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n") ؛ wifiClient.print ("نوع المحتوى: application / x-www-form-urlencoded / n") ؛ wifiClient.print ("طول المحتوى:") ؛ wifiClient.print (postStr.length ()) ، wifiClient.print ("\ n / n") ؛ wifiClient.print (postStr) ؛ } wifiClient.stop () ، }
الخطوة 7: الكود العام
الكود العام متاح في مستودع جيثب الخاص بي
الاعتمادات:
- Arduino JSON: ArduinoJson
- ESP826WebServer
- جدول المهام
- SHT 31
- مسح I2C
- HIH6130 تعليمي تعليمي
- سلك اردوينو
- NCD.io
موصى به:
التحكم في ESP8266 باستخدام تطبيق Telegram: 7 خطوات
![التحكم في ESP8266 باستخدام تطبيق Telegram: 7 خطوات التحكم في ESP8266 باستخدام تطبيق Telegram: 7 خطوات](https://i.howwhatproduce.com/images/001/image-727-38-j.webp)
التحكم في ESP8266 باستخدام تطبيق Telegram: مرحبًا ، ما الأمر يا رفاق! Akarsh هنا من CETech هل تساءلت يومًا عن الدردشة مع أجهزتك عبر تطبيق مراسلة؟ يبدو غريبًا ، صحيح. لكننا اليوم سنفعل شيئًا مشابهًا لذلك. لا تقلق ، فأنت لست بحاجة إلى شراء هواتف محمولة
تطبيق THINGSPEAK TEMPERATURE AND HUMIDITY APP باستخدام ESP8266: 9 خطوات
![تطبيق THINGSPEAK TEMPERATURE AND HUMIDITY APP باستخدام ESP8266: 9 خطوات تطبيق THINGSPEAK TEMPERATURE AND HUMIDITY APP باستخدام ESP8266: 9 خطوات](https://i.howwhatproduce.com/images/010/image-28263-j.webp)
تطبيق THINGSPEAK TEMPERATURE AND HUMIDITY APP باستخدام ESP8266: أثناء العبث بالأشياء الإلكترونية الخاصة بي ، خطرت لي هذه الفكرة لإنشاء تطبيق طقس قائم على الويب. يستخدم تطبيق الويب هذا مستشعر SHT31 للحصول على بيانات درجة الحرارة والرطوبة في الوقت الفعلي. لقد نشرنا مشروعنا على وحدة ESP8266 WiFi. متصل أو غير متصل
مراقبة درجة الحرارة والرطوبة عن بُعد باستخدام تطبيق ESP8266 وتطبيق Blynk: 15 خطوة
![مراقبة درجة الحرارة والرطوبة عن بُعد باستخدام تطبيق ESP8266 وتطبيق Blynk: 15 خطوة مراقبة درجة الحرارة والرطوبة عن بُعد باستخدام تطبيق ESP8266 وتطبيق Blynk: 15 خطوة](https://i.howwhatproduce.com/images/004/image-9927-j.webp)
مراقبة درجة الحرارة والرطوبة عن بُعد باستخدام تطبيق ESP8266 وتطبيق Blynk: كان أول مشروع لي باستخدام شريحة ESP8266. لقد قمت للتو ببناء دفيئة جديدة بالقرب من منزلي وكان من المثير للاهتمام بالنسبة لي ما الذي يحدث هناك خلال اليوم؟ أعني كيف تتغير درجة الحرارة والرطوبة؟ هل الدفيئة جيدة التهوية؟ لذلك قررت
روبوت يتم التحكم فيه عبر Wi-Fi باستخدام تطبيق Wemos D1 ESP8266 و Arduino IDE و Blynk: 11 خطوة (بالصور)
![روبوت يتم التحكم فيه عبر Wi-Fi باستخدام تطبيق Wemos D1 ESP8266 و Arduino IDE و Blynk: 11 خطوة (بالصور) روبوت يتم التحكم فيه عبر Wi-Fi باستخدام تطبيق Wemos D1 ESP8266 و Arduino IDE و Blynk: 11 خطوة (بالصور)](https://i.howwhatproduce.com/images/004/image-11224-2-j.webp)
روبوت يتم التحكم فيه عبر Wi-Fi باستخدام تطبيق Wemos D1 ESP8266 و Arduino IDE و Blynk: في هذا البرنامج التعليمي ، سأوضح لك كيفية إنشاء خزان آلي يتم التحكم فيه عن طريق Wi-Fi ويتم التحكم فيه من هاتف ذكي باستخدام تطبيق Blynk. في هذا المشروع ، تم استخدام لوحة ESP8266 Wemos D1 ، ولكن يمكن أيضًا استخدام نماذج الألواح الأخرى (NodeMCU ، Firebeetle ، إلخ) ، و
كيفية التحكم في Wemos D1 Mini / Nodemcu باستخدام تطبيق Blynk (IOT) (esp8266): 6 خطوات
![كيفية التحكم في Wemos D1 Mini / Nodemcu باستخدام تطبيق Blynk (IOT) (esp8266): 6 خطوات كيفية التحكم في Wemos D1 Mini / Nodemcu باستخدام تطبيق Blynk (IOT) (esp8266): 6 خطوات](https://i.howwhatproduce.com/images/001/image-1518-79-j.webp)
كيفية التحكم في Wemos D1 Mini / Nodemcu باستخدام تطبيق Blynk (IOT) (esp8266): مرحبًا يا أصدقاء ، في هذا الدليل ، سأوضح لك كيفية التحكم في wemos D1 mini أو (nodemcu) باستخدام تطبيق blynk. إنه دليل مطلق للمبتدئين. للحصول على البرنامج التعليمي التفصيلي يجب أن تشاهد الفيديو لا تنسى أن تحب ، تشارك & amp؛ اشترك في قناتي