دليل ESP32 43/55 - محطة الطقس على الإنترنت IoT | مجموعة تعلم ESP32 من SunFounder

دليل ESP32 43/55 - محطة الطقس على الإنترنت IoT | مجموعة تعلم ESP32 من SunFounder

في هذا الدرس، سنبني محطة طقس متصلة بالإنترنت باستخدام جهاز ESP32 ولوحة الكاميرا الخاصة به من شركة SunFounder. يتيح هذا المشروع لجهاز ESP32 استرداد بيانات الطقس في الوقت الفعلي، بما في ذلك درجة الحرارة والرطوبة، وعرضها على شاشة LCD. لا تعرض هذه التطبيق فقط قدرات جهاز ESP32 ولكن توضح أيضًا كيفية استرداد البيانات وتحليلها من واجهة برمجة التطبيقات الخارجية.

مع تقدمنا في البرنامج التعليمي، سنقوم بتوصيل المكونات، وضبط الكود، والتأكد من أن كل شيء يعمل بشكل سلس معًا. ستكون النتيجة النهائية محطة طقس كاملة الوظائف تقوم بتحديث قراءاتها كل 10 ثوانٍ، مما يوفر عرضًا واضحًا وموجزًا لظروف الطقس الحالية (في الفيديو عند 00:30).

شرح الأجهزة

تشمل المكونات الرئيسية المستخدمة في هذا المشروع متحكم ESP32 الدقيق، وعرض LCD، والأسلاك اللازمة. يتميز ESP32 بوجود Wi-Fi وBluetooth مدمجين، مما يتيح له الاتصال بالإنترنت واسترجاع البيانات. سيعرض شاشة LCD معلومات الطقس الحالية، بما في ذلك درجة الحرارة والرطوبة.

الشاشة LCD التي نستخدمها هي شاشة عرض بحجم 16x2 حرف، مما يعني أنها يمكن أن تعرض سطرين يحتوي كل منهما على 16 حرفًا. وهذا سيكون كافيًا لمخرجات معلومات الطقس لدينا. سيتواصل ESP32 مع الشاشة LCD عبر I2C، مما يبسط التوصيلات باستخدام سطرين للبيانات فقط.

تفاصيل ورقة البيانات

الصانعإسبريسيف
رقم الجزءESP32-WROOM-32
جهد المنطق/المدخلات والمخرجات٣.٣ فولت
جهد الإمداد٣.٠-٣.٦ ف
التيار الخارجي (لكل قناة)12 مللي أمبير كحد أقصى
التيار الذروي (لكل قناة)٤٠ مللي أمبير
إرشادات تردد PWM1 كيلو هرتز
عتبات منطق الإدخال0.3 فولت (منخفض)، 0.7 فولت (مرتفع)
انخفاض الجهد / Rدي إس (أون)السعة0.5 فولت
الحدود الحرارية-40 إلى 85 درجة مئوية
حزمةQFN48
ملاحظات / أنواعيتضمن عدة أنواع لتطبيقات مختلفة

  • تأكد من أن وحدة ESP32 مزودة بجهد ثابت قدره 3.3 فولت.
  • استخدم قاعدة مشتركة لجميع المكونات لتفادي مشكلات الاتصال.
  • تحقق من عنوان I2C لشاشة LCD باستخدام جهاز مسح I2C.
  • راقب حالة اتصال Wi-Fi لتجنب الانفصالات أثناء استرجاع البيانات.
  • تعامل مع أخطاء تحليل JSON لضمان القوة في استرجاع البيانات.

تعليمات الأسلاك

esp32-43-weather_station-wiring

لربط المكونات، ابدأ بتوصيل شاشة LCD إلى ESP32. ستستخدم شاشة LCD واجهة I2C، لذا قم بتوصيل دبوس SDA الخاص بشاشة LCD إلى GPIO21 على ESP32 ودبوس SCL إلى GPIO22. تأكد من توصيل دبابيس الطاقة والأرض لشاشة LCD إلى دبابيس 5 فولت و GND على ESP32، على التوالي.

بعد ذلك، تأكد من أن جهاز ESP32 مزود بالطاقة بشكل صحيح باستخدام البطارية الليثيوم المرفقة أو عبر اتصال USB. توفر البطارية قابلية النقل، بينما يكون اتصال USB مفيدًا للبرمجة وتصحيح الأخطاء. أخيرًا، تحقق من أن جميع الاتصالات مؤمنة لتجنب أي مشاكل في الأسلاك المفككة التي قد تعطل الوظائف.

أمثلة الشيفرة والإرشادات

في مرحلة الإعداد لبرنامجنا، نقوم بتهيئة الاتصال التسلسلي والاتصال بشبكة الواي فاي باستخدام SSID وكلمة المرور المقدمة. يتعامل الجزء التالي من الشيفرة مع اتصال الواي فاي:

WiFi.begin(ssid, password);
while(WiFi.status() != WL_CONNECTED) {
  delay(500);
  Serial.print(".");
}
Serial.println("Connected to WiFi network with IP Address: ");
Serial.println(WiFi.localIP());

يضمن هذا الرمز أن يتصل ESP32 بشبكة Wi-Fi المحددة قبل المتابعة مع أي جلب للبيانات. إذا فشل الاتصال، فسوف يحاول الاتصال مجددًا بشكل مستمر.

بعد ذلك، نحتاج إلى إرسال طلب GET عبر HTTP لاسترجاع بيانات الطقس. يتم ذلك باستخدام مقتطف الشيفرة التالي:

String serverPath = "http://api.openweathermap.org/data/2.5/weather?q=" + city + "," + countryCode + "&units=metric" + "&APPID=" + openWeatherMapApiKey;
jsonBuffer = httpGETRequest(serverPath.c_str());

هنا، نقوم بإنشاء عنوان URL لطلب API، والذي يتضمن المدينة، رمز الدولة، ومفتاح API الخاص بنا.httpGETRequestثم يتم استدعاء الدالة لجلب بيانات الطقس.

أخيرًا، نقوم بتحليل استجابة JSON وعرض البيانات ذات الصلة على شاشة LCD:

lcd.clear(); 
lcd.setCursor(0, 0); 
lcd.print(time);
lcd.print(" ");        
lcd.print(myObject["weather"][0]["main"]);             
lcd.setCursor(0, 1);
lcd.print("T:");    
lcd.print(myObject["main"]["temp"]); 
lcd.print("\xDF");  // "°" char
lcd.print("C ");    
lcd.print("H:");    
lcd.print(myObject["main"]["humidity"]);  
lcd.print("%");

هذا الجزء من الشيفرة يقوم بتحديث شاشة LCD بالوقت الحالي، حالة الطقس، درجة الحرارة، والرطوبة. يقوم بمسح العرض السابق ويضع المؤشر في المواقع المناسبة لكل سطر.

عرض / ماذا تتوقع

بمجرد الانتهاء من التوصيل والبرمجة بنجاح، ستتصل محطة الطقس الخاصة بك بشبكة الواي فاي وستبدأ في جلب بيانات الطقس كل 10 ثوانٍ. ستظهر لك درجة الحرارة الحالية، والرطوبة، وظروف الطقس على شاشة LCD. إذا فشل ESP32 في الاتصال بشبكة الواي فاي، سيظهر رسالة خطأ على الشاشة التسلسلية.

كن حذرًا من حدود استدعاء واجهة برمجة التطبيقات لتجنب حظر الخدمة من OpenWeatherMap. إذا واجهت أي مشكلات في استرجاع البيانات، تحقق من مفتاح واجهة برمجة التطبيقات الخاصة بك وتأكد من تحديد المدينة ورمز الدولة بشكل صحيح (في الفيديو الساعة 15:45).

طوابع زمنية للفيديو

  • 00:00 بدء
  • :00 مقدمة عن المشروع
  • 5:04 حساب OpenWeather
  • 6:11 التوصيلات
  • 8:05 شرح كود الأردوينو
  • :13 جيسون العناصر في الكود
  • ٢٠:٢٣ تحديد لوحة ESP32 ومنفذ COM في Arduino IDE
  • عرض محطة الطقس على LCD1602 الساعة 22:05
  • ٢٣:٤٥ عرض محطة الطقس على LCD2004

الصور

esp32-43-weather_station-main
esp32-43-weather_station-main
esp32-43-weather_station-wiring
esp32-43-weather_station-wiring
844-ESP32 Tutorial 43/55- Arduino code for IoT Internet Weather Station
اللغة: C++
تم النسخ!

ملفات📁

لا توجد ملفات متاحة.