بيت / وحدات تحكم اللعبة / وحدة Wifi تعتمد على شريحة ESP8266. وحدة التحكم الدقيقة ESP8266: البرامج الثابتة للاتصال والتكوين 1m لـ esp 01

وحدة Wifi تعتمد على شريحة ESP8266. وحدة التحكم الدقيقة ESP8266: البرامج الثابتة للاتصال والتكوين 1m لـ esp 01

مولي esp-01
مخطط الاتصال الصحيحوحدة esp-01 للبرمجة والبرامج الثابتة.

يتم وميض الوحدة عن طريق التبديل إلى وضع البرمجة للقيام بذلك، اضغط باستمرار على زر FLASH، ثم دون تحريره، اضغط لفترة وجيزة على زر RESET ثم حرّر FLASH.
يتم تبديل الوحدة إلى وضع البرمجة.
في المحطة في هذه اللحظة يمكنك أن ترى

Ets 8 كانون الثاني (يناير) 2013، السبب الأول:2، وضع التمهيد:(1.6)
وضع التمهيد:(1,6) - إعادة التشغيل عبر RESET في وضع البرمجة
وضع التمهيد:(1،7) - إعادة تشغيل الطاقة في وضع البرمجة - وهذا ليس صحيحًا تمامًا.

بالنسبة للبرامج الثابتة سأستخدم البرنامج مبرمج البرامج الثابتة NODEMCU
(سيتم إرفاق أرشيف مع البرنامج بالموضوع)
قم بفك ضغط الأرشيف وتشغيله في حالتي 32 نسخة بتالبرامج\Win32\Release\ESP8266Flasher.exe
نقوم بتكوينه للوحدة، في حالتي هو 1 ميجابايت من ذاكرة الفلاش أو 8 ميجابت.




الخطوة الأولى هي مسح الذاكرة بملف فارغ بحجم 1 ميجابايت.
هذا عنصر اختياري. يمكنك تخطي المسح والانتقال إلى البرامج الثابتة.
أولئك الذين لديهم ذاكرة أكثر أو أقل يحتاجون إلى ملف فارغ بالحجم المناسب.
بعد ذلك، نحدد البرامج الثابتة المطلوبة!
يمكنك استخدام البرامج الثابتة الجاهزة على NODEMCU أو تجميعها من المصمم باستخدام الوحدات النمطية التي تحتاجها.
على سبيل المثال، واحدة من NODEMCU القديمة التي أثبتت جدواها

منشئ wifi-iot.com/
منشئ nodemcu-build.com/
أو تنزيل الأحدث

مشاكل مع البرامج الثابتة
لووحدة esp8266 لا تومض، تحقق من عمليات السحب والاتصال الصحيح بـ GND GPIO0. وأيضًا ما إذا كان RX TX مختلطًا.
في المحطة، يمكنك التحقق من عرض وضع التمهيد:(1,6) أو وضع التمهيد:(1,7).

لوبعد فشل البرامج الثابتة، لا تعمل الوحدة، حاول مسح الذاكرة بملف فارغ فارغ بحجم ذاكرتك.

لولا تعمل الوحدة بعد البرامج الثابتة الناجحة وترسل القمامة التي لا نهاية لها إلى المنفذ (قد يومض مؤشر نقل البيانات)، ويحدث هذا عند وميض أحدث إصدارات Nodemcu، ثم ستحتاج بالإضافة إلى ذلك إلى وميض الملف في منطقة الذاكرة، اعتمادًا على شريحة الذاكرة.
تم أخذ المعلومات المتعلقة بالذاكرة من موقع nodemcu.
0x7c000 لـ 512 كيلو بايت، وحدات مثل ESP-01,03,07
0xfc000 لـ 1 ميجا بايت، وحدات مثل ESP8285، PSF-A85 ولكن أيضًا بعض أنواع esp-01,01s
0x1fc000 لـ 2 ميجابايت
0x3fc000 لـ 4 ميجابايت، نوع الوحدة ESP-12E، NodeMCU devkit 1.0، WeMos D1 mini وما إلى ذلك.

إذا فشل كل شيء، فاكتب...

سأضيف المجموعة الرسمية للشركة المصنعة للمعدات

للعمل مع RemoteXY، يجب أن تحتوي الوحدة النمطية ESP8266 على إصدار برنامج ثابت يدعم أوامر AT بما لا يقل عن الإصدار v0.40. للتحقق من إصدار الوحدة، وكذلك لتغيير البرنامج الثابت إذا لزم الأمر، قم بتوصيل الوحدة بالكمبيوتر عبر منفذ تسلسلي. يمكن توصيل الوحدة عبر لوحة Arduino أو عبر محول USB-UART.

الاتصال عبر لوحة اردوينو

عند استخدام Arduino، يتم وضع شريحة ATmega الرئيسية في وضع إعادة الضبط، ويظل محول USB-UART المدمج فقط نشطًا. للقيام بذلك، يتم توصيل جهة الاتصال RESET بالأرض. يتم توصيل أطراف RX وTX مباشرة بـ ESP8266، بدلاً من أن تكون متقاطعة كما لو كانت تعمل مع وحدة التحكم.

الاتصال عبر محول USB-UART

يجب أن يحتوي المحول على مخرج مصدر 3.3 فولت لتشغيل ESP8266. كما يجب أن يوفر هذا المصدر التيار المطلوب الذي لا يقل عن 200 مللي أمبير.



تحدد جهة الاتصال CPIO0 وضع تشغيل الوحدة. عندما لا تكون جهة الاتصال متصلة، تعمل الوحدة في الوضع العادي وتنفذ أوامر AT. عندما يتم إغلاق جهة الاتصال على الأرض، يتم تحويل الوحدة إلى وضع تحديث البرامج الثابتة. يتطلب تحويل الوحدة إلى وضع البرنامج الثابت توصيل طرف CPIO0 بالأرض عند توصيل الطاقة إلى الوحدة. إذا قمت بإغلاق جهة الاتصال أثناء تشغيل الوحدة، فلن تتحول الوحدة إلى وضع تحديث البرنامج الثابت.

التحقق من الإصدار الحالي

لإرسال أوامر AT وعرض الاستجابات، يجب عليك استخدام أي برنامج لمراقبة المنفذ التسلسلي. البرنامج الطرفي من اردوينو بيئة تطوير متكاملة. يجب ضبط البرنامج لإرسال الأوامر مع تغذية السطر اللاحق وحرف الإرجاع. سرعة تشغيل الوحدة الافتراضية هي 115200 بت في الثانية. لكي تعمل الوحدة في الوضع العادي، يجب تعطيل جهة اتصال CPIO0.

يمكنك التحقق من إصدار البرنامج الثابت الحالي عن طريق تشغيل الأمر AT: AT+GMR. مثال على استجابة الوحدة:

في الإصدار:0.40.0.0(8 أغسطس 2015 14:45:58)
إصدار SDK: 1.3.0

البناء:1.3.0.2 11 سبتمبر 2015 11:48:04
نعم

من المفيد أيضًا معرفة حجم ذاكرة الفلاش الخاصة بالوحدة النمطية الخاصة بك؛ يصف هذا الدليل البرنامج الثابت لوحدة ذات ذاكرة فلاش بحجم 8 ميجابت (512 كيلو بايت + 512 كيلو بايت) أو 16 ميجابت (1024 كيلو بايت + 1024 كيلو بايت)، باعتبارها الأكثر شيوعًا. يمكن معرفة حجم ذاكرة الفلاش عن طريق تنفيذ أمر AT لإعادة ضبط الوحدة: AT+RST.

Ets 8 يناير 2013، السبب الأول:2، وضع التمهيد:(3,1)

تحميل 0x40100000، لين 1396، غرفة 16
الذيل 4
تشسوم 0x89
تحميل 0x3ffe8000، لين 776، غرفة 4
الذيل 4
Chksum0xe8
تحميل 0x3ffe8308، لين 540، غرفة 4
الذيل 8
تشسوم 0xc0
كسوم 0xc0

إصدار التمهيد الثاني: 1.4(b1)
سرعة SPI: 40 ميجا هرتز
وضع SPI: ديو
حجم وخريطة فلاش SPI: 8 ميجابت (512 كيلو بايت + 512 كيلو بايت)
انتقل لتشغيل user1 @ 1000

#t#n"t استخدم بيانات ذاكرة rtc
slЏrlMя
شركة آي-ثينكر للتكنولوجيا المحدودة

برنامج البرامج الثابتة

لتحديث البرنامج الثابت، تحتاج إلى تنزيل برنامج البرنامج الثابت والبرنامج الثابت نفسه. سيستخدم برنامج وميض ESP8266 Flash Download Tools v2.4 من الموقع الرسمي لشركة Espressif Systems. رابط صفحة التحميل على الموقع الرسمي : . أنت بحاجة للذهاب إلى قسم "الأدوات".

رابط البرنامج الموجود في مخزن الملفات لدينا: FLASH_DOWNLOAD_TOOLS_v2.4_150924.rar

البرامج الثابتة

يمكن أيضًا تنزيل البرنامج الثابت من الموقع الرسمي. رابط صفحة التحميل على الموقع الرسمي : . يلزمك الانتقال إلى قسم "SDKs & Demos" وتنزيل إصدار البرنامج الثابت ESP8266 NONOS SDK بما لا يقل عن v1.3.0. مع إصدار البرنامج الثابت هذا يتم تنفيذ دعم أوامر AT v0.40 والإصدارات الأحدث.

رابط البرنامج الثابت في مخزن الملفات لدينا: esp8266_nonos_sdk_v1.4.0_15_09_18_0.rar

يجب فك جميع الملفات التي تم تنزيلها ووضعها في دليل حيث يتكون المسار الكامل للملفات من أحرف لاتينية فقط، أي بدون أحرف ترجمة اللغة.

إعدادات

إطلاق البرنامج البرامج الثابتة فلاشتنزيل الأدوات v2.4 (ملف يحمل نفس الاسم). في النافذة التي تفتح، يجب عليك تحديد الملفات التي تم تنزيلها وإعدادات الاتصال بشكل صحيح.


توجد الملفات التي تم تنزيلها في دليل bin الخاص بالأرشيف الذي يحتوي على البرنامج الثابت. لكل ملف يجب عليك تحديد عنوان التنزيل الصحيح. استخدم الجدول التالي لتحديد الملفات وتعيين العناوين:

اضبط الإعدادات التالية:

  • SPIAutoSet - مثبت؛
  • كريستال فريك - 26 م؛
  • حجم الفلاش – 8 ميجابت أو 16 ميجابت حسب حجم ذاكرة الفلاش؛
  • منفذ COM - حدد المنفذ الذي يتصل به ESP؛
  • بودرات – 115200

لبدء البرنامج الثابت، يجب عليك الضغط على زر "ابدأ".

تسلسل خطوات وميض البرامج الثابتة ESP8266

1. قم بتوصيل الوحدة بالكمبيوتر وفقًا لمخطط الاتصال الموجود في هذه المقالة.

2. بدء تشغيل مراقب المنفذ التسلسلي. قم بإصدار أوامر AT AT+RST وAT+GMR لتحديدها الإصدار الحاليحجم البرامج الثابتة ووحدة الذاكرة. تتيح لك هذه الخطوة أيضًا التحقق من توصيل الوحدة بشكل صحيح.

3. قم بتشغيل البرنامج الثابت Flash Download Tools، وقم بتكوين الملفات التي تم تنزيلها بشكل صحيح، واضبط الإعدادات.

4. قم بإيقاف تشغيل الطاقة عن وحدة ESP8266.

5. قم بتوصيل دبوس CPIO0 بالأرض.

6. قم بتوصيل الطاقة إلى وحدة ESP8266.

7. اضغط على زر START في البرنامج الثابت

8. انتظر حتى اكتمال البرنامج الثابت للوحدة. عند اكتمال البرنامج الثابت، ستظهر الرسالة FINISH باللون الأخضر.

9. افصل الطاقة عن وحدة ESP8266. افصل الأرض عن طرف CPIO0.

10. قم بتشغيل الوحدة، وابدأ تشغيل شاشة المنفذ التسلسلي. تأكد من أن الوحدة تعمل و نسخة جديدةالبرامج الثابتة عن طريق تنفيذ الأمر AT AT+GMR.

كيفية استخدام وحدة ESP-01 للتحكم في LED عبر الإنترنت، وهي وحدة تسمح لك بالتحكم في أي جهاز كهربائي.

في هذا البرنامج التعليمي ESP8266، نستخدم وحدة ESP-01 للتحكم في مؤشر LED عبر الإنترنت. يعد ESP8266 منصة رخيصة ولكنها فعالة للتواصل عبر الإنترنت.

كما أنه سهل الاستخدام مع Arduino. بعد الانتهاء من هذا الدرس، ستكتسب المعرفة الأساسية للتحكم في أي جهاز كهربائي عبر الإنترنت من أي مكان في العالم!

سنستخدم هنا محول USB إلى TTL لبرمجة ESP8266 ESP-01. وسوف نستخدمها لتطوير خادم ويب لـ التحكم عن بعدقاد.

كيف يعمل هذا

يمكن التحكم في ESP8266 من شبكة Wi-Fi محلية أو من الإنترنت (بعد إعادة توجيه المنفذ). تحتوي وحدة ESP-01 على دبابيس GPIO التي يمكن برمجتها لتشغيل أو إيقاف تشغيل مؤشر LED أو التتابع عبر الإنترنت. يمكن برمجة الوحدة باستخدام محول Arduino USB-to-TTL عبر المسامير التسلسلية (RX، TX).

توصيل الأجهزة بجهاز ESP8266

يمكننا استخدام محول USB إلى TTL أو استخدام Arduino لبرمجة ESP8266. فيما يلي ثلاث طرق يمكنك اتباعها لتحميل التعليمات البرمجية في ESP8266 - اختر الطريقة التي تناسبك. راجع الرسوم البيانية لكل خيار وقم بتكوين المعدات الخاصة بك وفقًا لذلك.

1. محول USB إلى TTL باستخدام موصل DTR

إذا كنت تستخدم محول USB إلى TTL مع مخرج DTR، فسيتم التنزيل بسلاسة. يرجى العلم أن الشاشة التسلسلية لن تعمل عند القيام بذلك.

USB TTL → ESP8266 ESP-01
أرض → أرض
تكساس → آر إكس
آر إكس → تكساس
آر تي إس → آر إس تي
دي تي آر → GPIO0

2. محول USB إلى TTL بدون إخراج DTR

لتوصيل محول USB إلى TTL بدون دبوس DTR، يجب علينا استخدام ناقل الحركة اليدوي. لهذا نستخدم زرين - انظر الرسم البياني التالي:

USB TTL → ESP8266 ESP-01
أرض → أرض
تكساس → آر إكس
آر إكس → تكساس
زر إعادة الضبط → RST
زر الفلاش → GPIO0

عند تنزيل الكود، انقر فوق الزر "التنزيلات" (فلاش). استمر في الضغط على الزر أثناء الضغط على زر إعادة الضبط مرة واحدة. يمكنك الآن تحرير زر الفلاش. أصبح ESP8266 الآن في وضع يمكنك من خلاله تحميل رسم تخطيطي.

3. استخدام Arduino Uno لتحميل الكود إلى ESP8266

يمكنك استخدام ESP8266 ESP-01 لتشغيل الكود. عند تنزيل الكود، اتبع نفس الإجراء كما في النقطة الثانية - استمر في الضغط على زر "تنزيل" أثناء الضغط على إعادة التعيين مرة واحدة، ثم حرر زر الفلاش.

اردوينو → ESP8266 ESP-01
أرض → أرض
تكساس → تكساس
آر إكس → آر إكس
زر إعادة الضبط → RST
زر الفلاش → GPIO0

تحميل كود ESP8266

استخدم أيًا من الطرق المذكورة أعلاه وافتح، ثم حدد لوحة ESP8266 من القائمة:

الأدوات → اللوحة → وحدة ESP8266 العامة
(أدوات → لوحة → وحدة ESP8266)

ملحوظة. إذا لم تقم بتثبيت وتكوين لوحة ESP8266 Arduino، فيرجى القيام بذلك باتباع الخطوات المذكورة أعلاه في هذا البرنامج التعليمي. ثم يمكنك المضي قدما.

الآن انسخ الكود أدناه إلى Arduino IDE وانقر على زر التنزيل. تغيير SSID إلى نقطة الوصول إلى خدمة الواي فايوقم بتغيير كلمة المرور إلى كلمة مرور wifi الخاصة بك وتجميعها.

#يشمل const char* ssid = "YOUR_SSID";//اكتب ssid الخاص بك const char* كلمة المرور = "YOUR_PASSWORD";//اكتب كلمة المرور الخاصة بك int ledPin = 2; // GPIO2 لخادم ESP8266 WiFiServer (80)؛ // إعداد منفذ الخدمة () (Serial.begin (115200)؛ تأخير (10)؛ pinMode (ledPin، OUTPUT)؛ digitalWrite (ledPin، LOW)؛ // الاتصال بـ شبكة WiFi Serial.println(); Serial.print("الاتصال بـ "); WiFi.begin(ssid, كلمة المرور); while (WiFi.status()!= WL_CONNECTED) (تأخر(500); Serial.print(". "); ) Serial.println(""); Serial.println("WiFi متصل"); // ابدأ الخادم server.begin(); "بدأ الخادم"); // اطبع عنوان IP Serial.print(" استخدم عنوان URL هذا للاتصال: "); .println("/"); حلقة باطلة () ( // تحقق مما إذا كان العميل قد قام بتوصيل WiFiClient client = server.available(); if (!client) ( return; ) // انتظر حتى يرسل العميل بعض البيانات Serial .println("new client"); while(!client.available())( تأخير(1); ) // اقرأ السطر الأول من الطلب String request = client.readStringUntil(" \r"); (request); client.flush(); // مطابقة الطلب int value = LOW; إذا (request.indexOf("/LED=ON")!= -1) (digitalWrite(ledPin, HIGH); value = HIGH;) إذا (request.indexOf("/LED=OFF") != -1)( digitalWrite(ledPin, LOW); // قم بإرجاع الاستجابة client.println("HTTP/1.1 200 OK"); client.println("نوع المحتوى: نص/html"); client.println(""); // لا تنسَ هذا العميل.println(""); العميل.println(" ");client.print("دبوس LED الآن:"); if(value == HIGH) (client.print("On"); ) else (client.print("Off"); )client.println( "

"); client.println("انقر هناقم بتشغيل مؤشر LED على الدبوس 2 ON
"); client.println("انقر هنا قم بإيقاف تشغيل مؤشر LED على الدبوس 2
"); العميل.println(""); تأخير (1)؛ Serial.println ("العميل غير متصل")؛ Serial.println ("")؛ )

افتح شاشتك التسلسلية وافتح عنوان URL الموضح على شاشتك التسلسلية من خلال متصفح الويب الخاص بك. قم بتوصيل GPIO 2 من ESP8266 إلى دبوس LED الأطول. الآن يمكنك التحكم في LED الخاص بك عن بعد عبر الإنترنت!

قم بإزالة جميع الأسلاك اللازمة لتنزيل الكود. يتم استخدام وحدة LM1117 لتوفير خرج منظم بجهد 3.3 فولت، مما يسمح لك بجعل الوحدة ESP8266 أو ESP-01 مستقلة.

توصيل ESP8266 بالإنترنت

حاليًا، لا يمكن الوصول إلى وحدة ESP8266 إلا عبر شبكة Wi-Fi المحلية. لإدارة الأجهزة من الإنترنت، تحتاج إلى إجراء إعادة توجيه المنفذ على جهاز التوجيه الخاص بك.

للقيام بذلك، ابحث عن عنوان IP الخاص بنظامك إما باستخدام الأمر "ifconfig" في جهازك الطرفي أو انتقل إلى Whatsmyip.org. انسخ عنوان IP الخاص بك. الآن افتح إعداد جهاز التوجيه الخاص بك وانتقل إلى إعدادات إعادة التوجيه. أدخل تفاصيل "منفذ الخدمة" و"عنوان IP". منفذ الخدمة هو رقم المنفذ من كود Arduino الخاص بك (منفذ الخدمة: 80):

خادم WiFiServer (80)؛ // منفذ الخدمة

عنوان IP هو الذي حددته مسبقًا. اترك باقي الإعدادات كإعداد افتراضي. انتقل الآن إلى متصفحك وأدخل العنوان: xxx.xxx.xx.xx:80. يجب أن تفتح صفحة للتحكم في مؤشر LED.

وحدة Wi-Fi ESP-01 هي الوحدة الأكثر شيوعًا في سلسلة ESP8266. يتم الاتصال بالكمبيوتر أو وحدة التحكم الدقيقة عبر UART باستخدام مجموعة من أوامر AT. بالإضافة إلى ذلك، يمكن استخدام الوحدة كجهاز مستقل؛ للقيام بذلك، تحتاج إلى تحميل البرامج الثابتة الخاصة بك فيها. يمكنك برمجة وتنزيل البرامج الثابتة من خلال إصدار Arduino IDE أعلاه 1.6.5. لفلاش البرنامج الثابت للوحدة، ستحتاج إلى محول UART-USB. يمكن استخدام وحدة ESP-01 على نطاق واسع في أجهزة إنترنت الأشياء (IoT).

تحديدوحدة

  • واي فاي 802.11 ب/ز/ن
  • أوضاع WiFi: العميل، نقطة الوصول
  • طاقة الخرج - 19.5 ديسيبل
  • جهد الإمداد - 1.8 -3.6 فولت
  • الاستهلاك الحالي - 220 مللي أمبير
  • منافذ GPIO: 4
  • تردد ساعة المعالج - 80 ميجا هرتز
  • سعة ذاكرة الكود
  • ذاكرة الوصول العشوائي - 96 كيلو بايت
  • الأبعاد - 13×21 ملم

اتصال

دعونا نفكر في وضع الأوامر AT. للقيام بذلك، قم بتوصيل الوحدة بالكمبيوتر عبر محول USB-UART. الغرض من دبابيس الوحدة (انظر الشكل 1):
  • VCC - +3.3 فولت
  • جي إن دي - الأرض
  • RX، TX - دبابيس UART
  • إخراج CH_PD - تمكين الشريحة
  • GPIO0، GPIO2 - الاتصالات الرقمية
تتطلب الوحدة طاقة خارجية 3.3 فولت.

الشكل 1. تعيينات دبوس الوحدة النمطية ESP-01

مخطط اتصال للتواصل مع الوحدة في وضع الأمر AT (الشكل 2):

الشكل 2. رسم تخطيطي لتوصيل وحدة ESP-01 بالكمبيوتر عبر منفذ تسلسلي

الشكل 3. دائرة التجميع

لإرسال أوامر AT في نظام التشغيل Mac OS X، يمكنك استخدام برنامج CoolTerm، وفي نظام التشغيل Windows - برنامج Termite. يمكنك فقط معرفة سرعة منفذ COM للاتصال بالوحدة بشكل تجريبي؛ وقد تختلف باختلاف البرامج الثابتة. بالنسبة للوحدة الخاصة بي، تبين أن السرعة كانت 9600 باود. بالإضافة إلى ذلك، لم يكن من الممكن إنشاء التبادل إلا بعد فصل وإعادة توصيل طرف CH_PD بمصدر الطاقة. بعد الاتصال، اكتب AT في الجهاز ويجب أن تتلقى استجابة موافق من الوحدة. يعطي الأمر AT+GMR رقم إصدار البرنامج الثابت للوحدة، ويقوم الأمر AT+RST بإعادة تشغيل الوحدة (انظر الشكل 4). يمكن العثور على قائمة بأوامر AT الأساسية في هذا المستند (ESP8266ATCommandsSet.pdf).

الشكل 4. إرسال أوامر AT إلى الوحدة من النمل الأبيض

إذا لم يكن وضع الأمر AT مناسبًا لك، فيمكن تكوين اللوحة باستخدام برنامج AppStack ESP8266 Config، والذي يمكن تنزيله من الرابط http://esp8266.ru/download/esp8266-utils/ESP8266_Config.zip. مظهريتم عرض البرنامج في الشكل 5. تم تكوين الوحدة باستخدام واجهة رسومية، ويمكن رؤية تنفيذ الأوامر في شاشة البرنامج (انظر الشكل 6). يمكن للشاشة أيضًا إرسال أوامر AT من سطر الأوامر.

الشكل 5. برنامج تكوين AppStack ESP8266

الشكل 6. الشاشة التسلسلية لبرنامج التكوين AppStack ESP8266

هناك خياران لاستخدام هذه الوحدة:

  • بالتزامن مع وحدة التحكم الدقيقة (على سبيل المثال Arduino)، والتي ستتحكم في الوحدة عبر UART؛
  • كتابة البرامج الثابتة الخاصة بك لاستخدام ESP8266 كجهاز مستقل.

مثال الاستخدام

لنفكر في مثال لتوصيل مستشعر الرطوبة ودرجة الحرارة DHT11 بوحدة ESP-01 وإرسال البيانات إلى خدمة ThingSpeak السحابية (https://thingspeak.com/). سنحتاج إلى الأجزاء التالية:
  • وحدة ESP-01
  • مجلس التنمية
  • مستشعر الرطوبة ودرجة الحرارة DHT11
  • المقاوم 10 كيلو أوم
  • توصيل الأسلاك
  • مصدر الطاقة 3 - 3.6 فولت
أولاً، لنقم بتوصيل مستشعر DS18B20 بوحدة ESP-01. DS18B20 عبارة عن مستشعر درجة حرارة رقمي يعمل عبر واجهة ذات سلك واحد. يظهر الرسم التخطيطي لتوصيل مستشعر DS18B20 بالوحدة في الشكل. 7.

الشكل 7. مخطط توصيل مستشعر DHT11 بوحدة ESP-01.

فأنت بحاجة إلى إنشاء ملف تعريف في خدمة ThingSpeak. تحتوي الخدمة على تعليمات لإرسال البيانات إلى الخدمة وتلقي البيانات من الخدمة.

الشكل 8. الدائرة الكاملة.

سنكتب البرنامج في Arduino IDE لـ ESP8266. سوف نستخدم مكتبات ESP8266WiFi.h (المدمجة) وOneWire.h. لنقم بتحميل المخطط من القائمة 1 إلى لوحة Arduino - نستقبل البيانات من مستشعر درجة الحرارة ونرسل البيانات إلى خدمة ThingSpeak. تحتاج إلى إدخال بياناتك الخاصة بنقطة وصول WiFi لوحدة ESP-01:

  • const char *ssid;
  • حرف ثابت * كلمة المرور؛
بالإضافة إلى معلمة PrivateKey لتطبيقك في خدمة ThingSpeak. القائمة 1 // موقع الويب // تضمين المكتبة للعمل مع esp8266 #include // قم بتضمين مكتبة DHT للعمل مع DHT11 #include // اتصال الدبوس DATA #define DHTPIN 4 // المستشعر DHT11 #define DHTTYPE DHT11 // إنشاء مثيل لكائن DHT DHT dht(DHTPIN, DHTTYPE); //SSID شبكات واي فايالاتصالات const char ssid = "********"; // كلمة مرور واي فايشبكات الاتصال const charpassword = "******"; // خادم ThingSpeak const char* host = "184.106.153.149"; // API KEY لتطبيق ThingSpeak الخاص بك const char* PrivateKey = "****************"; // متغيرات لتخزين درجة الحرارة والرطوبة درجة الحرارة العائمة؛ تعويم الرطوبة // متغير فترة القياس الطويلة غير الموقعة millis_int1=0; الإعداد الفارغ () (/ ابدأ المنفذ التسلسلي Serial.begin (115200)؛ تأخير (10)؛ Serial.print ("الاتصال بشبكة WiFi")؛ Serial.println (ssid)؛ // الاتصال عبر WiFi WiFi.begin ( ssid، كلمة المرور)؛ while (WiFi.status()!= WL_CONNECTED) (lay(500);) Serial.println("WiFi متصل");// start dht dht.begin(); if(milis()-millis_int1>=10*60000) ( Serial.print("connect to ThingSpeak"); Serial.println(host); // استخدم عميل WiFi WiFiClient client; if (!client.connect (host, 80)) ( Serial.println("فشل الاتصال"); return; ) // الحصول على بيانات درجة الحرارة temp = get_data_temperature(); // get_data_humidity(); // إنشاء عنوان URL مع طلب للخادم String url = "/ update?key="; url += PrivateKey; url += "&temp="; url += temp; url += "&humidity="; url += الرطوبة; // إرسال طلب إلى الخادم client.print(String) ("GET") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: Close\r\n\r\n"); );

// استجابة خادم ThingSpeak while(client.available())( String req = client.readStringUntil("\r"); Serial.print(req); ) ) ) الآن في خدمة ThingSpeak يمكننا عرض رسم بياني للقراءات لمستشعر درجة الحرارة DHT11 الخاص بنا (الشكل 9).

الشكل 9. رسم بياني لقراءات مستشعر درجة الحرارة DS18B20 في خدمة ThingSpeak.

الأسئلة الشائعةفي الأوامر
  • تأكد من توصيل الوحدة بشكل صحيح؛
  • تأكد من توصيل جهات اتصال Rx وTx بشكل صحيح بمحول UART-USB؛
  • تحقق من اتصال طرف CH_PD بـ 3.3 فولت؛
  • حدد بشكل تجريبي سرعة الاتصال على المنفذ التسلسلي.
2. وحدة ESP-01 لا تتلقى بيانات درجة الحرارة من المستشعردي إتش تي11
  • تأكد من توصيل مستشعر DHT11 بشكل صحيح بالوحدة.
3. لا يتم نقل البيانات إلى خدمة ThingSpeak
  • تحقق من اتصال الوحدة بنقطة وصول WiFi؛
  • التحقق من اتصال نقطة وصول WiFi بالإنترنت؛
  • تأكد من صحة الطلب المقدم إلى خدمة ThingSpeak.