كود البحث

دليل ESP32 48/55 - مراقبة درجة الحرارة عن بُعد وتحكم في LED عبر MQTT | مجموعة إنترنت الأشياء ESP32 من SunFounder

دليل ESP32 48/55 - مراقبة درجة الحرارة عن بُعد وتحكم في LED عبر MQTT | مجموعة إنترنت الأشياء ESP32 من SunFounder

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

يستفيد هذا المشروع من بروتوكول MQTT للتواصل الفعال بين ESP32 وخدمة Adafruit IO. يعتبر MQTT خفيف الوزن ومناسب لتطبيقات إنترنت الأشياء، مما يسمح لنا بنشر بيانات المستشعر بسهولة والاشتراك في الأوامر الخاصة بتحكم LED. لمزيد من التوضيح حول الكود والتوصيلات، تأكد من مشاهدة الفيديو المصاحب لهذا الدليل (في الفيديو عند 00:00).

شرح الأجهزة

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

حساس DHT11 مسؤول عن قياس درجة الحرارة والرطوبة. يقوم بإخراج إشارات رقمية يمكن قراءتها بواسطة ESP32. تعمل مصباح LED كمؤشر ويمكن التحكم بها عن بُعد لإظهار فعالية بروتوكول MQTT في إدارة الأجهزة عبر الإنترنت.

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

الصانع أدافروت
رقم الجزء دي إتش تي 11
جهد المنطق/المدخلات والمخرجات ٣.٣ فولت
جهد الإمداد 3.3 فولت
تيار الخرج (لكل قناة) 20 مللي أمبير
التيار الذروي (لكل قناة) 50 مللي أمبير
إرشادات تردد PWM N/A
عتبات منطق الإدخال 0.3 فولت (منخفض)، 0.7 فولت (مرتفع)
انخفاض الجهد / ردي إس (أون)/ تشبع N/A
الحدود الحرارية 0 إلى 50 درجة مئوية
حزمة 3-دبوس
ملاحظات / متغيرات استخدم DHT22 للحصول على دقة أعلى.

  • تأكد من التوصيل الصحيح لتجنب الأضرار.
  • استخدم مقاومة بقيمة 220 أوم مع LED لتحديد التيار.
  • استخدم مقاومات السحب لأعلى لمنفذ بيانات DHT11 إذا لزم الأمر.
  • تحقق من بيانات اعتماد Wi-Fi لعدم حساسية حالة الأحرف.
  • راقب الناتج التسلسلي لاكتشاف مشاكل الاتصال.
  • اجعل موضوعات MQTT فريدة لتجنب النزاعات.
  • اختبر قراءات المستشعرات للتأكد من صحتها.
  • كن حذرًا من وقت استجابة DHT11؛ قد يستغرق الأمر بعض الوقت لاستقرار القراءات.

LED= التحكم في LED;temperatureنشر بيانات درجة الحرارة;humidityنشر بيانات الرطوبة.

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

لتوصيل المكونات، ابدأ بتوصيل مستشعر DHT11. قم بتوصيل السلك الأيسر من DHT11 إلى سكة الطاقة 3.3 فولت على لوحة الدوائر باستخدام سلك أحمر. يجب توصيل السلك الأوسط من DHT11 بالعلبة 13 على ESP32 باستخدام سلك أصفر. أخيرًا، قم بتوصيل السلك الأيمن من DHT11 بسكة الأرض باستخدام سلك أزرق.

بعد ذلك، بالنسبة لمصباح LED، قم بتوصيل القاعدة (الساق الأطول) بالسن 15 من ESP32 عبر مقاومة 220 أوم. قم بتوصيل القطب السالب (الساق الأقصر) مباشرة إلى سكة الأرض في لوحة الدائرة. تأكد من أن جميع الاتصالات آمنة وتحقق مرة أخرى من أي أسلاك غير مشدودة.

إعداد لوحة المعلومات

  1. زيارةأدا فروت آيو، ثم انقر علىابدأ مجاناًلإنشاء حساب مجاني.

    ../../_images/sp230516_102503.png
  2. املأ النموذج لإنشاء حساب.

    ../../_images/sp230516_102629.png
  3. بعد إنشاء حساب Adafruit، ستحتاج إلى إعادة فتح Adafruit io. انقر علىلوحات المعلومات، ثم انقر علىلوحة معلومات جديدة.

    ../../_images/sp230516_103347.png
  4. أنشئ إصداراًلوحة تحكم جديدة.

    ../../_images/sp230516_103744.png
  5. أدخل المُنشَأ حديثًالوحة المعلوماتوإنشاء كتلة جديدة.

    ../../_images/sp230516_104234.png
  6. إنشاء 1تبديلبلوك.

    ../../_images/sp230516_105727.png
  7. بعد ذلك، ستحتاج إلى إنشاء تغذية جديدة هنا. سيتم استخدام هذا المفتاح للتحكم في الـ LED، وسنسمي هذه التغذية "LED".

    ../../_images/sp230516_105641.png
  8. تحقق من الـإل إي ديقم بالتغذية، ثم انتقل إلى الخطوة التالية.

    ../../_images/sp230516_105925.png
  9. أكمل إعدادات الكتلة (بشكل رئيسي عنوان الكتلة، نص التشغيل، ونص الإيقاف)، ثم انقر على إنشاء كتلةزر في أسفل اليمين لإنهاء.

    ../../_images/sp230516_110124.png
  10. نحن بحاجة أيضًا إلى إنشاء اثنينكتل النصوصالتالي. ستستخدم لعرض درجة الحرارة والرطوبة. لذا، أنشئ تدفقين مسمييندرجة الحرارةورطوبة.

    ../../_images/sp230516_110657.png
  11. بعد الإنشاء، يجب أن يبدو لوحة التحكم الخاصة بك شيئًا مثل هذا:

    ../../_images/sp230516_111134.png
  12. يمكنك ضبط التصميم عن طريق استخدام الـتعديل التخطيطخيار في لوحة التحكم.

    ../../_images/sp230516_111240.png
  13. انقر علىمفتاح واجهة برمجة التطبيقات، وسترى اسم المستخدم الخاص بك ومفتاح APIسجل هذه المعلومات لأنك ستحتاج إليها في الشيفرة الخاصة بك.

    ../../_images/sp230516_111641.png

أمثلة على الشيفرة وإرشادات التطبيق

يبدأ الكود بإدراج المكتبات الضرورية، وإعداد بيانات اعتماد الواي فاي، وتحديد معلمات MQTT. تشمل المعرفات الرئيسية مثلAIO_USERNAMEوAIO_KEYتُستخدم للمصادقة مع خدمة Adafruit IO.

#define AIO_USERNAME "YourUsername"
#define AIO_KEY "YourKey"

تحدد هذه الأسطر اسم مستخدم Adafruit IO و المفتاح الخاص بك، وهما ضروريان للاتصال بوسيط MQTT. تأكد من أن هذه القيم دقيقة لإنشاء اتصال ناجح.

فيsetup()يتم تهيئة اتصال الواي فاي، ويتم إعداد عميل MQTT مع شهادة الجذر CA للتواصل الآمن.

WiFi.begin(WLAN_SSID, WLAN_PASS);
client.setCACert(adafruitio_root_ca);

يربط هذا الكود ESP32 بشبكة Wi-Fi المحددة ويقوم بضبط CA الجذر للاتصالات الآمنة عبر MQTT. إن التعامل الجيد مع هذه الاتصالات أمر بالغ الأهمية لضمان موثوقية نقل البيانات.

أخيرًا، الـloop()تدير الدالة اتصال MQTT وتنشر قراءات درجة الحرارة والرطوبة على فترات منتظمة.

mqtt.processPackets(5000);

تتيح هذه السطر لـ ESP32 معالجة الرسائل الواردة للمواضيع المشترك فيها، مما يضمن أن يظل الجهاز مستجيبًا للأوامر المرسلة من واجهة الويب.

للحصول على الكود الكامل، يرجى الرجوع إلى البرنامج الكامل المحمل أسفل المقالة.

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

عند الإعداد الناجح، يجب أن ترى تحديثات حية لدرجة الحرارة والرطوبة على لوحة التحكم الخاصة بك في Adafruit IO. يمكنك أيضًا تشغيل وإيقاف LED من خلال واجهة الويب. إذا لم يستجب LED كما هو متوقع، تحقق من الأسلاك الخاصة بك وتأكد من أن أسماء مواضيع MQTT تتطابق مع تلك المحددة في الكود.

كن على علم بأن بعض أخطاء اتصال MQTT قد تحدث بسبب انتهاء صلاحية الشهادات. تأكد من أن لديك أحدث شهادة CA الجذرية في كودك لتجنب هذه المشكلات (في الفيديو في 15:30).

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

  • 00:00 ابدأ
  • ١:٥٠ مقدمة عن المشروع
  • 3:16 ما هو MQTT
  • إعداد Adafruit IO :36
  • 11:13 الأسلاك
  • كود أردوينو مشروح 13:38
  • 22:03 اختيار لوحة ESP32 ومنفذ COM
  • 23:44 عرض المشروع
  • 27:05 تحديث لوحة المعلومات
849-ESP32 Tutorial 48/55- Arduino code for Remote Temperature Monitoring and LED control MQTT
اللغة: C++
/*
 * مكتبة Adafruit MQTT لوحدة ESP32 مثال Adafruit IO SSL/TLS
 * 
 * استخدم أحدث إصدار من نواة Arduino لوحدة ESP32:
 * https://github.com/espressif/arduino-esp32
 * 
 * يعمل بشكل ممتاز مع Adafruit Huzzah32 Feather ولوحة Breakout:
 * https://www.adafruit.com/product/3405
 * https://www.adafruit.com/products/4172
 * 
 * تستثمر Adafruit الوقت والموارد لتوفير هذا الرمز مفتوح المصدر،
 * يرجى دعم Adafruit والأجهزة مفتوحة المصدر عن طريق شراء
 * المنتجات من Adafruit!
 * 
 * كتب بواسطة توني ديكولا لصالح Adafruit Industries.
 * تم التعديل بواسطة برينت روبييل لصالح Adafruit Industries
 * ترخيص MIT، يجب تضمين النص أعلاه في أي إعادة توزيع
 */
#include <WiFi.h>
#include "WiFiClientSecure.h"
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"

/*
 * نقطة وصول واي فاي *********************************/
 * 
 * #define WLAN_SSID "SSID"
 * #define WLAN_PASS "PASSWORD"
 * 
 * /************************* إعداد Adafruit.io
 */

#define AIO_SERVER "io.adafruit.com"

 // استخدام المنفذ 8883 لـ MQTTS
#define AIO_SERVERPORT 8883

 // إعداد حساب Adafruit IO
 // (للحصول على هذه القيم، قم بزيارة https://io.adafruit.com وانقر على المفتاح النشط)
 // #define AIO_USERNAME "اسم_المستخدم_الخاص_بك_في_أدافايت_IO"
 // #define AIO_KEY "مفتاح_أدا فوايت_آي أو"

#define AIO_USERNAME "JimmyKernel"
#define AIO_KEY "aio_Mxiv12i74b5jKfKNSKLYjlhPmoHC"

/*
 * حالة عالمية (لا تحتاج لتغيير هذا!) ******************/
 * 
 * // WiFiFlientSecure لدعم SSL/TLS
 * WiFiClientSecure client;
 * 
 * // إعداد فئة عميل MQTT عن طريق تمرير عميل WiFi وتفاصيل خادم MQTT وتفاصيل تسجيل الدخول.
 * Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
 * 
 * // io.adafruit.com الجذر CA
 * const char* adafruitio_root_ca = \
 *  "-----BEGIN CERTIFICATE-----\n"
 *  "MIIEjTCCA3WgAwIBAgIQDQd4KhM/xvmlcpbhMf/ReTANBgkqhkiG9w0BAQsFADBh\n"
 *  "MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\n"
 *  "d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH\n"
 *  "MjAeFw0xNzExMDIxMjIzMzdaFw0yNzExMDIxMjIzMzdaMGAxCzAJBgNVBAYTAlVT\n"
 *  "MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\n"
 *  "b20xHzAdBgNVBAMTFkdlb1RydXN0IFRMUyBSU0EgQ0EgRzEwggEiMA0GCSqGSIb3\n"
 *  "DQEBAQUAA4IBDwAwggEKAoIBAQC+F+jsvikKy/65LWEx/TMkCDIuWegh1Ngwvm4Q\n"
 *  "yISgP7oU5d79eoySG3vOhC3w/3jEMuipoH1fBtp7m0tTpsYbAhch4XA7rfuD6whU\n"
 *  "gajeErLVxoiWMPkC/DnUvbgi74BJmdBiuGHQSd7LwsuXpTEGG9fYXcbTVN5SATYq\n"
 *  "DfbexbYxTMwVJWoVb6lrBEgM3gBBqiiAiy800xu1Nq07JdCIQkBsNpFtZbIZhsDS\n"
 *  "fzlGWP4wEmBQ3O67c+ZXkFr2DcrXBEtHam80Gp2SNhou2U5U7UesDL/xgLK6/0d7\n"
 *  "6TnEVMSUVJkZ8VeZr+IUIlvoLrtjLbqugb0T3OYXW+CQU0kBAgMBAAGjggFAMIIB\n"
 *  "PDAdBgNVHQ4EFgQUlE/UXYvkpOKmgP792PkA76O+AlcwHwYDVR0jBBgwFoAUTiJU\n"
 *  "IBiV5uNu5g/6+rkS7QYXjzkwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsG\n"
 *  "AQUFBwMBBggrBgEFBQcDAjASBgNVHRMBAf8ECDAGAQH/AgEAMDQGCCsGAQUFBwEB\n"
 *  "BCgwJjAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEIGA1Ud\n"
 *  "HwQ7MDkwN6A1oDOGMWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEds\n"
 *  "b2JhbFJvb3RHMi5jcmwwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEW\n"
 *  "HGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwDQYJKoZIhvcNAQELBQADggEB\n"
 *  "AIIcBDqC6cWpyGUSXAjjAcYwsK4iiGF7KweG97i1RJz1kwZhRoo6orU1JtBYnjzB\n"
 *  "c4+/sXmnHJk3mlPyL1xuIAt9sMeC7+vreRIF5wFBC0MCN5sbHwhNN1JzKbifNeP5\n"
 *  "ozpZdQFmkCo+neBiKR6HqIA+LMTMCMMuv2khGGuPHmtDze4GmEGZtYLyF8EQpa5Y\n"
 *  "jPuV6k2Cr/N3XxFpT3hRpt/3usU/Zb9wfKPtWpoznZ4/44c1p9rzFcZYrWkj3A+7\n"
 *  "TNBJE0GmP2fhXhP1D/XVfIW/h0yCJGEiV9Glm/uGOa3DXHlmbAcxSyCRraG+ZBkA\n"
 *  "7h4SeM6Y8l/7MBRpPCz6l8Y=\n"
 *  "-----END CERTIFICATE-----\n";
 */

 // قم بإعداد موجز يسمى 'test' للنشر و 'test2' للاشتراك.
 // تلاحظ أن مسارات MQTT لـ AIO تتبع الشكل: <username>/feeds/<feedname>
Adafruit_MQTT_Subscribe LED = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/LED");
Adafruit_MQTT_Publish humidity = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/humidity");
Adafruit_MQTT_Publish temperature = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/temperature");

850-ESP32 Tutorial 48/55- Basic Adafruit MQTT code (watch video)
اللغة: C++
/*
 * دروس Adafruit MQTT الأساسية 1
 * شاهد تعليمات الفيديو لهذا الرمز على يوتيوب https://youtu.be/M9BQweAsHJM
 * صفحة الموارد لهذه الدروس والرمز:
 * 📚⬇️ تحميل وصفحة الموارد https://robojax.com/RJT670
 * دروس بواسطة https://youTube.com/@robojax
 * 
 * مكتبة Adafruit MQTT مثال ESP32 Adafruit IO SSL/TLS
 * 
 * استخدم أحدث إصدار من نواة ESP32 Arduino:
 * https://github.com/espressif/arduino-esp32
 * 
 * تعمل بشكل رائع مع Adafruit Huzzah32 Feather ولوحة Breakout:
 * https://www.adafruit.com/product/3405
 * https://www.adafruit.com/products/4172
 * 
 * تستثمر Adafruit الوقت والموارد لتوفير هذا الرمز مفتوح المصدر،
 * يرجى دعم Adafruit والأجهزة مفتوحة المصدر من خلال شراء
 * المنتجات من Adafruit!
 * 
 * كتب بواسطة توني ديكولا لشركة Adafruit Industries.
 * تم تعديله بواسطة برنت روبيل لشركة Adafruit Industries
 * ترخيص MIT، يجب تضمين جميع النصوص أعلاه في أي توزيع
 * /
 * 
 * /// مرجع: https://www.electronicwings.com/esp32/esp32-mqtt-client
 */
#include <WiFi.h>
#include "WiFiClientSecure.h"
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"

/*
 * نقطة وصول واي فاي *********************************/
 * 
 * #define WLAN_SSID "دراس"
 * #define WLAN_PASS "5152535455"
 * 
 * /************************* إعداد Adafruit.io
 */

#define AIO_SERVER "io.adafruit.com"

 // استخدام المنفذ 8883 لـ MQTTS
#define AIO_SERVERPORT 8883

 // إعداد حساب Adafruit IO
 // للحصول على هذه القيم، قم بزيارة https://io.adafruit.com وانقر على المفتاح النشط
 // #define AIO_USERNAME "اسم_مستخدم_أدا فريت_أي أو"
 // #define AIO_KEY "YOUR_ADAFRUIT_IO_KEY"

#define AIO_USERNAME "robojax"
#define AIO_KEY "aio_wCyL33EVKLcGoAotGNEQ4dGQYOLZ"

/*
 * الدولة العالمية (لا تحتاج لتغيير هذا!) ******************/
 * 
 * // WiFiFlientSecure لدعم SSL/TLS
 * عميل WiFiClientSecure;
 * 
 * // إعداد فئة عميل MQTT عن طريق تمرير عميل WiFi وتفاصيل خادم MQTT وتسجيل الدخول.
 * عميل Adafruit_MQTT mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
 * 
 * // io.adafruit.com الجذر CA
 * const char* adafruitio_root_ca =
 *  "-----BEGIN CERTIFICATE-----\n"
 *  "MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh\n"
 *  "MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\n"
 *  "d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\n"
 *  "QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT\n"
 *  "MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\n"
 *  "b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG\n"
 *  "9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB\n"
 *  "CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97\n"
 *  "nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt\n"
 *  "43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P\n"
 *  "T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4\n"
 *  "gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO\n"
 *  "BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR\n"
 *  "TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw\n"
 *  "DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr\n"
 *  "hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg\n"
 *  "06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF\n"
 *  "PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls\n"
 *  "YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk\n"
 *  "CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=\n"
 *  "-----END CERTIFICATE-----\n";
 * 
 * /****************************** الخلاصات
 */

 // قم بإنشاء تغذية تُسمى 'test' للنشر و'test2' للاشتراك.
 // يرجى ملاحظة أن مسارات MQTT لـ AIO تتبع الشكل: <اسم المستخدم>/feeds/<اسم التغذية>
Adafruit_MQTT_Subscribe LED = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/LED");
 // ادafruit_MQTT_Publish الرطوبة = ادafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/humidity");
 // آدادفروت_إم كيو تي تي_نشر درجة الحرارة = آدادفروت_إم كيو تي تي_نشر(&mqtt, AIO_USERNAME "/خدمات/درجة الحرارة");

ملفات📁

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