لقد كان انترنت الأشياء حقًا موضوعًا مكشوفًا في الأيام الأخيرة. بناء شيء بمفردنا يمكنه الاتصال بشبكة الويب العالمية ويمكن الوصول إليه من أي مكان في العالم ، يبدو حقًا رائعًا أليس كذلك؟
لكن انتظر!!! أيبدو أنه معقد ؟
بالنسبة لي ، اعتقدت أن الأمر سيستغرق الكثير من الوقت والمهارة لبناء الأشياء التي يمكن أن تتفاعل مع الإنترنت، لكنني كنت مخطئًا تمامًا ، بفضل هذه الوحدة الرائعة التي تسمى ESP8266 . الآن ، يمكنك بسهولة فتح أبوابك لمشاريع إنترنت الأشياء بمساعدة هذه الوحدة. هذه الوحدة منخفضة التكلفة وصغيرة الحجم يمكنها أن تفعل المعجزات وهي بسيطة وسهلة الاستخدام ، شريطة أن تتبع الخطوات الصحيحة.
تهدف هذه المقالة إلى تعريفك بوحدة ESP8266-01 هذه وتساعدك على البدء بها. ربما تكون قد جلبت الوحدة النمطية الخاصة بك بالفعل وتعثرت أثناء محاولة استخدامها. لا تقلق فالكثير من الناس يجدون صعوبة بالغة في البدء في استخدام الوحدة النمطية لأنه لا توجد إرشادات أو وثائق مناسبة لهذه الوحدة. اتبع الإرشادات الموضحة هنا وستتمكن من تشغيل الوحدة النمطية ESP8266-01 في أي وقت من الأوقات ، وسوف نستخدم هنا FTDI USB إلى TTL Serial Adapter Module لبرمجة ESP8266.
ما هو ESP8266؟
معظم الناس يطلقون على ESP8266 كوحدة WIFI ، لكنها في الواقع متحكم. ESP8266 هو اسم المتحكم الدقيق الذي طورته شركة Espressif Systems وهي شركة مقرها شنغهاي. هذا متحكم لديه القدرة على أداء الأنشطة المتعلقة WIFI وبالتالي يستخدم على نطاق واسع كوحدة WIFI.
هناك العديد من أنواع الوحدات ESP8266 المتاحة تتراوح بين ESP8266-01 و ESP8266-12. والذي نستخدمه في البرنامج التعليمي هو ESP8266-01 لأنه الأرخص والمتاح بسهولة. ومع ذلك ، تحتوي جميع وحدات ESP على نوع واحد فقط من معالج ESP ، وما يختلف هو نوع شريط الاختراق المستخدم فقط. ستحتوي اللوحة الجانبية ESP8266-01 على دبابيس GPIO فقط بينما ستكون أعلى في اللوحات الأخرى.
ترد المواصفات الكاملة للوحدة في الجدول أدناه
حسنًا ، بعض الأشياء التي كان من الممكن أن تفاجئك بالمواصفات هي أن وحدة ESP8266 تأتي مع محول ADC وتستهلك تيارًا مرتفعًا جدًا يبلغ 0.8A أثناء وميض جهازك.
أساسيات نظرية WiFi:
بروتوكول التحكم في النقل (TCP) ، بروتوكول الإنترنت (IP) ، بروتوكول مخطط بيانات المستخدم (UDP) ، نقطة الوصول (AP) ، المحطة (Sta) ، معرف مجموعة الخدمات (SSID) ، واجهة برمجة التطبيقات (API) ، خادم الويب …. .
هل كل الشروط المذكورة أعلاه منطقية بالنسبة لك؟
إن كان جوابك نعم، فيمكنك القفز هذا الجزء والانتقال إلى القسم التالي. وإن كان جوابك لا، فعليك معرفة هذه الشروط لأنه عندها فقط يمكننا الدخول في عالم انترنت الأشياء.
بروتوكول التحكم في النقل (TCP):
هي مجموعة القواعد التي يعتمد عليها الإنترنت. حيث أن ESP8266 لديه القدرة على إعداد اتصالات WIFI. على مستوى عالٍ من شبكة Wi-Fi هي القدرة على المشاركة في اتصالات TCP / IP عبر وصلة لاسلكية. يمكنك جعل ESP الخاص بك يعمل على بروتوكول TCP / IP أو بروتوكول UDP.
بروتوكول مخطط بيانات المستخدم (UDP):
UDP هو أيضا نوع آخر من بروتوكول الإنترنت. هذا النوع من الاتصالات أسرع من TCP ولكنه أقل دقة. السبب هو أن TCP يستخدم الاعترافات أثناء اتصاله ولكن UDP لا يستخدم. يستخدم بروتوكول TCP في الغالب في الشبكات التي يوجد فيها متطلبات موثوقية عالية. يتم استخدام UDP في الأماكن التي تتمتع فيها السرعة بأولوية أعلى من الموثوقية. على سبيل المثال ، يتم استخدام UDP في مؤتمرات الفيديو ، لأنه حتى إذا لم يتم إرسال بعض وحدات البكسل ، فلن يؤثر ذلك على جودة الفيديو كثيرًا ولكن السرعة مهمة جدًا.
تعمل معظم المشاريع والرموز ESP8266 حول TCP / IP ، UDP سيكون أقل عناء.
نقطة الوصول (AP) والمحطة (STA):
بمجرد البدء في العمل مع وحدة ESP ، ستصادف هاتين المصطلحين بشكل متكرر. دعنا نقول لك أنت وصديقك ترغب في تصفح الإنترنت على الهواتف الذكية الخاصة بك ولكن بما أنه ليس لديه اتصال إنترنت نشط ، فإنك تقرر تشغيل نقطة الاتصال الخاصة بك ويتصل صديقك به. هنا هو هاتفك الذي هو مصدر اتصال بالإنترنت هو نقطة الوصول (AP) وهاتف صديقك الذي يستخدم الإنترنت يسمى محطة (STA).
يمكن استخدام وحدة ESP8266 في ثلاثة أوضاع ، وضع AP ، وضع STA أو في كل من وضع STA و AP (مجتمعين).
معرف مجموعة الخدمة (SSID):
هذا هو مصطلح بسيط إلى حد ما. تقريبا جميعنا قد استخدم WIFI. يسمى اسم شبكة Wi-Fi SSID الخاص به. عندما يكون لدينا نقاط وصول متعددة لمحطة للاتصال بها ، يجب أن تعرف المحطة نقطة الوصول التي يجب أن تكون متصلاً بها ، ومن ثم يتم إعطاء هوية لكل نقطة وصول (AP) تعرف باسم SSID.
واجهة برمجة التطبيقات (API):
لتبسيط الأمر ، تعد واجهة برمجة التطبيقات (API) بمثابة برنامج مراسلة يأخذ طلباتك ويعالجها ويعيد النظام إلى النتيجة المرغوبة. تستخدم معظم الأنشطة التي نقوم بها على الإنترنت واجهات برمجة التطبيقات ، مثل عند حجز رحلة ، وإجراء عملية شراء عبر الإنترنت ، إلخ. كل مواقع الويب تربطك بواجهة برمجة التطبيقات حيث يتم جزء من العمل مثل الاشتراك ، إجراء الدفع ، إلخ. هناك.
يستخدم ESP8266 API للتحدث إلى عالم الإنترنت. على سبيل المثال ، إذا كان يريد معرفة الوقت أو المناخ أو أي شيء يجب أن يطلبه في شكل واجهة برمجة تطبيقات لموقع الويب المقابل. سيتلقى موقع الويب هذا الطلب ويعيد النتيجة المرغوبة إلى وحدة ESP الخاصة بنا.
قاعدة بيانات الانترنت:
خادم الويب هو شيء مسؤول عن عرض محتويات موقع الويب. سيتم تحميل جميع محتويات هذا الموقع بالذات على خادم الويب الخاص به. هناك أجهزة كمبيوتر مخصصة تتمثل مهمتها في العمل كخادم ويب فقط. يمكننا أيضًا برمجة ESP8266 لدينا للعمل كخادم ويب ، والاتصال به من أي مكان في العالم.
أنواع البرمجة مع ESP8266:
هناك طريقتان للعمل مع وحدة ESP8266 الخاصة بك. سيساعدك هذا البرنامج التعليمي على البدء مع كليهما. طريقة واحدة هي باستخدام أوامر AT. الطريقة الأخرى هي استخدام Arduino IDE. دعونا نفهم ما يعنيه.
جميع وحدات ESP8266 التي يتم شحنها من المصنع سيكون لها برنامج ثابت افتراضي (SDK + API) يتم تحميلها فيه. ستساعدك هذه البرامج الثابتة في برمجة وحدة ESP8266 من خلال أوامر AT.
الطريقة الأخرى هي عن طريق برمجة وحدة ESP8266 مباشرة باستخدام Arduino IDE (اللوحة غير مطلوبة) ومكتباتها. جميع المشاريع يمكن القيام به في كلتا الطريقتين. ولكن ، إذا بدأت في استخدام Arduino IDE لبرمجة ESP8266 الخاص بك ، فقد لا تتمكن من استخدام أوامر AT لأن SDK الافتراضية قد تكون تالفة. في هذه الحالة ، يجب عليك فلاش ESP باستخدام الإعدادات الافتراضية. سوف نغطي ذلك في برنامج تعليمي آخر.
مخارج ESP8266:
لسوء الحظ ، هذه الوحدة ليست ملائمة للوح ، وبالتالي لا يمكننا تركيبها مباشرة على لوحنا. بخلاف Arduino ، فإنه لا يحتوي على USB مدمج إلى برنامج تشغيل تسلسلي. وبالتالي يتعين علينا استخدام “FTDI USB to TTL Serial Adapter Module” للتواصل معها. تأكد من أن لوحة FTDI يمكن أن تعمل على 3.3V أيضًا ؛ يظهر ما نستخدمه في هذه المقالة أدناه.
الآن ، كما نعلم ، يجب علينا تشغيل ESP8266 بقوة 3.3 فولت. لكن الاستهلاك الحالي هو 0.8A ، لذلك قد لا يعمل كما هو متوقع إذا كان مدعومًا من لوحة اختراق FTDI. وبالتالي علينا بناء دائرة التشغيل الخاصة بنا. هنا استخدمنا LM317 لغرض التشغيل .
القطع المطلوبة:
- Perf Board
- ESP8266-01
- FTDI breakout Board
- LM317
- 0.1uf capacitor
- 10uf Capacitor
- Barrel Jack
- Bergstik Male and Female
- Push Button
- Connecting wires
- 12V Adapter to power the board.
التوصيل:
ربما حاول البعض تشغيل ESP الخاص بك مباشرةً من FTDI وحصلت عليه ، ولكن فيما يلي الأسباب لبناء لوحة خاصة بك مع بعض المكونات الإضافية:
يمكن فقط عدد قليل من لوحات FTDI مصدر الحالي بما يكفي لوحدة ESP. قد تستهلك وحدات قليلة من ESP تيارًا أعلى من الأخرى أثناء الوميض. وبالتالي ، من الآمن دائمًا الحصول على مصدر الطاقة الخاص بك ، وسيكون من الأسهل دمج دائرة التشغيل في Dot Board بدلاً من اللوح.
يجب علينا دائمًا إعادة تعيين وحدة ESP قبل تحميل الكود ، وسيساعدنا إنشاء لوحة خاصة بنا على إعادة تعيين الوحدة بسهولة. لقد استخدمنا زر الضغط لإعادة ضبط ESP8266.
يجب وضع دبوس GPIO0 عند البرمجة باستخدام Arduino ويجب تركه حراً عند استخدام أوامر AT ، يمكن تبديل هذا بسهولة إذا بنينا لوحة خاصة بنا. لقد استخدمنا Jumper للتبديل بين وضع أوامر AT ووضع برمجة Arduino IDE.
تتم جميع البرامج باستخدام الاتصالات التسلسلية ، إذا كنت تستخدم لوحة ، فقد تتسبب بعض المحطات الطرفية السائبة في حدوث خطأ في منتصف الطريق وتجبرنا على وميض الوحدة للعمل معها مرة أخرى.
يقال أنه يمكنك الاختيار بين استخدام لوحة ، وجعل لوحة خاصة بك لبرمجة الوحدة النمطية. إذا كنت لا تزال ترغب في استخدام اللوح ، فيمكن بناء نفس الدائرة الموضحة أعلاه باستخدام اللوح. سيكون المظهر مختلفًا فقط ، وسيتم تطبيق جميع التعليمات الأخرى في هذا البرنامج التعليمي.
إنشاء لوحة للبرنامج ESP8266:
نحن هنا نبني لوحة لبرمجة وحدة ESP8266 التي لها دائرة تشغيل خاصة بها لتشغيل ESP8266. كما ذكرت سابقا سيتطلب وحدتنا حوالي 800mA أثناء البرمجة. وبالتالي قمنا ببناء وحدة الطاقة الخاصة بنا باستخدام منظم الجهد المتغير LM317 لأن مصدر التيار LM317 هو 1.2A تقريبًا. سيكون الجهد الكهربي لإدخال LM317 هو 12 فولت والذي سيتم إعطاؤه باستخدام مهيئات التثبيت على الحائط 12V 2A. سيتم تنظيم إخراج LM317 إلى 3.3 فولت باستمرار باستخدام مقاومات 220ohm و 360ohm. تحقق أيضًا من حلبة شاحن البطارية الخاصة بنا باستخدام LM317 لمعرفة المزيد حول LM317.
الصيغ لحساب الجهد الناتج من LM317 وترد أدناه:
التصويت = 1.25 * (1+ (R2 / R1))
حيث ، R1 هو 220ohm و R2 360ohms.
الوحدة النمطية ESP8266 متصلة حسب المسامير الموضحة في الجدول أدناه.
للتبديل بسهولة بين وضع أوامر AT ووضع Arduino Programming ، قمت بوضع مفتاح (jumper) سيؤدي إلى سحب GPIO 0 إلى الأرض عند استخدام Arduino IDE وسيتركها عائمة عند استخدام أوامر AT.
هناك زر ضغط والذي عند الضغط عليه سيعيد ضبط وحدة ESP. يتم ذلك عن طريق توصيل دبوس RST الخاص بوحدة ESP بالسلك الأرضي من خلال زر الضغط. في كل مرة قبل أن نبرمج وحدة ESP الخاصة بنا ، يجب علينا إعادة ضبطها.
بمجرد قيامك بتجميع الدائرة ، يجب أن تبدو كما يلي.
لقد استخدمت لوحة Perf ولكن يمكنك أيضًا استخدام اللوح إذا كنت مهتمًا (كما تمت مناقشته أعلاه).
بمجرد القيام به مع الاتصالات. قم بتشغيل اللوحة بدون لوحات ESP و FTDI وتحقق مما إذا كنا نحصل على 3.3V بشكل صحيح على طرفي VCC والأرضيين لوحدات ESP. تأكد الآن من أن لوحة FTDI في وضع 3.3V وقم بتوصيل وحدات FTDI و ESP بلوحة الأم.
قم بتشغيل المحول وتوصيله باللوحة ، يجب أن تضيء وحدة ESP بلون أحمر.
ثم قم بتوصيل لوحة FTDI بالكمبيوتر باستخدام كابل USB صغير لكابل USB وانتقل إلى “إدارة الأجهزة” على جهاز الكمبيوتر الخاص بك وستجد لك لوحة FTDI متصلة بمنفذ COM ، كما هو موضح أدناه:
حان الوقت الآن للحصول على برمجة وحدة ESP8266 الخاصة بنا. يمكنك البدء باستخدام أوامر AT ثم الانتقال إلى استخدام Arduino IDE.
برمجة ESP8266 باستخدام أوامر AT:
تتمثل الطريقة الأولى والأسهل في برمجة وحدة ESP باستخدام أوامر AT. الحروف AT تعني “ATenttion”. أوامر AT هي الإرشادات التي يمكن استخدامها للتحكم في مودم معين ، في حالتنا هي الوحدة النمطية ESP8266. دائمًا ما يبدأ أمر AT بالحرف AT ويتبعه أمر معين. يتم توفير قائمة كاملة بأوامر AT التي يمكن استخدامها للتحكم في ESP8266 وبرمجتها في وثائق شركة Espressif Systems. يمكن العثور على نفس الشيء في الرابط أدناه.
يمكنك قراءة الوثائق لفهم ما سيقوم به كل أمر. ولكن ، لأغراض هذا البرنامج التعليمي ، أستخدم فقط عددًا قليلاً من الأوامر فقط للتحقق من إصدار البرنامج الثابت للوحدة النمطية وتعيين الوحدة النمطية للعمل في وضع AP (Access Point).
يمكن إرسال أوامر AT هذه مباشرةً من أي برنامج مراقبة تسلسلي (Putty أو Arduino) من جهاز الكمبيوتر الخاص بنا ، ومن أجل إرسال أوامر AT هذه ، يجب إنشاء اتصال تسلسلي بين وحدات ESP والكمبيوتر.
الخطوة 1: تثبيت أي برنامج مراقبة المسلسل. يستخدم هذا البرنامج التعليمي Arduino Serial Monitor لأن معظمنا لديه خبرة في استخدامه مع لوحات Arduino.
الخطوة 2: قم بتوصيل وحدة ESP ووحدة FTDI بلوحة التطوير وتشغيلها. تأكد من ترك دبوس GPIO0 حرا وتوصيل دبوس RST بالأرض بشكل مؤقت ثم تركه حرا. لقد استخدمنا مفتاح الانتقال ، في اللوحة ، للاختيار بين البرمجة من خلال أمر AT ومن خلال Arduino IDE. واستخدمت زر الضغط لإعادة ضبط ESP. إذا قمت بإجراء الاتصالات كما هو موضح أعلاه ، فيجب أن تبدو اللوحة الخاصة بك على هذا النحو.
الخطوة 3: قم بتوصيل لوحة FTDI بجهاز الكمبيوتر الخاص بك وافتح “إدارة الأجهزة” ، تحت منافذ COM ، سترى إلى أي منفذ COM متصل بوحدة FTDI الخاصة بك ، لاحظ ذلك. يجب أن يتصل بـ COM20 كما هو موضح أدناه.
الخطوة 4: افتح معرّف Arduino IDE ، وتأكد من اتصالك بمنفذ FTDI COM (COM20). ويمكن ضمان ذلك عن طريق فحص Tools-> Ports. الآن ، افتح Serial Monitor وحدد “Both NL&CR” ومعدل الباود كـ “115200” كما هو موضح في أسفل الصورة في الخطوة التالية.
ملاحظة: قد يختلف معدل البث بالباود أيضًا استنادًا إلى البائع الخاص بك. إذا لم يعمل 115200 ، فحاول 9600 و 38400 و 74880.
الخطوة 5: تأكد من ترك دبوس GPIO0 حرا (تحقق من المفتاح) واضغط على زر إعادة الضبط (RST). يجب أن تشاهد بعض القيم العشوائية على جهاز العرض التسلسلي ومن ثم تتوقف بقول “Ready” ، كما هو موضح في الصورة أدناه.
إذا كنت قد حققت ذلك حتى الآن ، فهذا عظيم! يمكنك البدء في برمجة الوحدة النمطية ESP8266 باستخدام أوامر AT باستخدام ورقة البيانات. فقط لجعلها أكثر إثارة للاهتمام ، سأريك كيفية تكوين وحدة ESP الخاصة بك في وضع AP + STA ومعرفة كيفية عملها.
الخطوة 6: الأمر الأول الذي سنستخدمه هو أمر AT. يتم استخدامه فقط للتحقق من نجاح بدء التشغيل. عندما تكتب “AT” ثم تضغط “إدخال” ، يجب الرد مرة أخرى بـ “OK”.
الخطوة 7: يمكن التحقق من إصدار SDK وإصدار البرنامج الثابت للوحدة باستخدام الأمر “AT + GMR”
الخطوة 8: كما ذكرت وحدة ESP يمكن أن تعمل في وضع AP (وضع نقطة الوصول) ، ووضع STA أو كل من وضع AP و STA. يتيح تشغيل الوحدة النمطية في وضع AP حتى نتمكن من التحقق من العمل.
ببساطة أرسل “AT + CWMODE = 2” وسيجيبك بـ “OK”
ستبدو الشاشة التسلسلية كما يلي أدناه بعد إدخال الأوامر
يمكنك الآن التحقق مما إذا كانت وحدتك تعمل كنقطة وصول ، وذلك ببساطة عن طريق محاولة الاتصال بشبكة WIFI الخاصة بها. افتح إعدادات WIFI الخاصة بك في الهاتف المحمول أو الكمبيوتر المحمول وابحث عن الشبكات المتاحة التي يجب أن تجدها في وحدة ESP كما هو موضح أدناه. بالنسبة لي يدعى ESP_A3A3E7
برمجة ESP8266 باستخدام Arduino IDE:
أصبح العمل مع وحدات ESP أسهل كثيرًا منذ أن بدأ مجتمع Arduino دعمه من خلال توفير مكتبته الخاصة ومدير مجلس الإدارة. وبهذه الطريقة ، لا يتعين عليك استخدام الطريقة الصعبة لتعلم وثائق التعليمات الخاصة بوحدة ESP وبرمجتها باستخدام أوامر AT.
في هذا البرنامج التعليمي ، دعنا نعد وحدة Arduino IDE لوحدة ESP ونبرمجها حتى نغمض ضوء LED.
الخطوة 1: إذا لم يكن لديك برنامج Arduino IDE قم بتنزيله وتثبيته. (تأكد من أن إصدار Arduino هو 1.6.5 أو أعلى)
الخطوة 2: انتقل إلى File -> Preferences لفتح مربع الحوار أدناه. في “عنوان URL لمديري مجلس الإدارة الإضافي” ، قم بلصق الرابط أدناه كما هو موضح في الصورة. ثم اضغط موافق.
http://arduino.esp8266.com/stable/package_esp8266com_index.json
الخطوة 3: الآن ، انتقل إلى Tool -> Boards -> Board Managers. ابحث عن ESP8266 بواسطة مجتمع esp8266 وانقر فوق “تثبيت” كما هو موضح في الصورة أدناه.
سيستغرق التثبيت بعض الوقت ، وبمجرد الانتهاء ، يمكننا البدء في خطوتنا التالية.
الخطوة 4: الآن ، انتقل إلى Tools -> Boards -> Generic ESP8266 modules. يجب أن ترى الشاشة أدناه.
الخطوة 5: الآن ، دعونا نحاول تحميل برنامج Example blink. يمكن العثور على هذا البرنامج في File -> Examples -> ESP8266 -> Blink.
الخطوة 6: قم بتوصيل وحدة ESP8266 الخاصة بك ولوحة FTDI كما هو موضح أعلاه الدائرة وتأكد من سحب GPIO0 إلى الأرض. لسحب GPIO0 ، اضبط مفتاح وصلة المرور كما هو موضح في الشكل أدناه ، استخدمنا مفتاح وصلة المرور للتحديد بين البرمجة من خلال أمر AT وعبر Arduino IDE. ثم قم بتشغيل الوحدات وإعادة ضبطها عن طريق الضغط على زر الضغط على اللوحة.
الخطوة 7: الآن اضغط على زر التحميل ، سيستغرق هذا التحميل وقتًا أطول بقليل من تحميل اردوينو المعتاد. انتظر حتى يكتمل التحميل. مرة واحدة ، فعلت سترى الشاشة التالية.
يجب أن ترى أيضًا مصباح LED باللون الأزرق يومض على وحدة ESP. هذا يؤكد أن البرنامج قد تم تحميله بنجاح. يتم شرح الإجراء الكامل أيضًا في الفيديو المقدم في النهاية.
بعد ذلك ، إذا حاولت استخدام أوامر AT الخاصة بالوحدة ، فلن تعمل. للعمل مع أوامر AT مرة أخرى ، يجب عليك وميض وحدة ESP8266 مع البرنامج الثابت.