إنّ لوح المتحكّم ESP-01 الرّخيص والمزوَّد بوحدة اتّصال واي فاي انتشر حديثاً بشكل سريع لاستخدامه المتحكّم ESP8266 الشّائع.
وحدة ESP-01 (S) بالإصدار الأسود مزوّدة بذاكرة فلاش حجمها 1 MB
وحدة ESP-01 (S) بالإصدار الأسود مزوّدة بذاكرة فلاش حجمها 1 MB

رقاقة المتحكّم ESP8266:

صُمّمت المتحكّمات من الطّراز ESP8266 للتواصل عبر شبكة الإنترنت باستخدام الواي فاي، كما تُزوَّد بقدرة معالجة وذاكرة مخصّصة لها على الدارة المطبوعة للمتحكّم، ممّا يسمح باستخدامها مع الأجهزة الإلكترونيّة عبر أقطاب الاتصال العامة (GPIO) الموجودة على هذه الوحدة. يوجد قطبين عامّين على الإصدار ESP-01.
تمّت إضافة المتحكّمات من الطراز ESP8266 إلى الكثير من ألواح المتحكّمات في هذه الإيام (على سبيل المثال الوحدة ESP-01). تمّ تطوير وتصنيع أول متحكّمات النوع ESP8266 من قبل شركة Espressif Systems الصينيّة، وتعتبر مجموعة بروتوكولات الاتصال بالشبكة وقابلية الاتصال باستخدام الواي فاي أهمّ الأسباب التي أدت إلى الانتشار الواسع لهذه المتحكمات.

ترتيب الأقطاب على الوحدة ESP-01
ترتيب الأقطاب على الوحدة ESP-01

متطلّبات الطّاقة:

تُعتبر رقاقات ESP8266 منخفضة الاستهلاك للطّاقة حتّى في أوقات التّشغيل الكامل، وتحتاج إلى جهد 3.3 V مستمرّ للعمل. تستهلك الرّقاقة ما بين 80 و170 mA عموماً كما أنّها تدعم ثلاثة أوضاع تشغيل ذات استهلاك طاقة مخفض، وهي: السّكون الخفيف وتستهلك 0.5 mA، سكون المودم ويستهلك 15 mA، والسّكون العميق ويستهلك 10 mA. التيّار الأقصى الذي تستجرّه الوحدة هو 300 mA.
يتمّ توصيل التيّار الكهربائيّ المستمرّ بجهد 3.3 V إلى الوحدة عبر القطبَين VCC وGND، كما يجب أن يتمّ توصيل جهد 3.3 V إلى القطب CH_PD، يستطيع كلّ قطب عامّ أن يعطي تيّاراً يصل حتى 12 mA.

مواصفات الوحدة ESP-01:

يتواجد حاليّاً إصداران من هذه الوحدة (الإصدار الأزرق وهو الأقدم، والإصدار الأسود والذي يسمّى أيضاً ESP-01S). الفرق الرّئيس بين الإصدارين هو وجود ذاكرة فلاش 1 MB على الإصدار الأسود بينما يوجد فقط 512 KB من هذه الذواكر على الإصدار الأزرق، كما لاحظ بعض المطوّرين أنّ استخدام معدّل النقل 115200 bps أفضل مع الإصدار الأحدث.
• عدد الأنوية: 1.
• المعماريّة: 32 bit.
• تردد الساعة: 80 MHz بشكل افتراضي أو 160 MHz تبعاً للبرمجة.
• الذاكرة: ذاكرة فلاش خارجيّة 512 KB أو 1 MB حسب الإصدار.
• جهد التشغيل: 3.6 V جهد مستمرّ.
• جهد الدخل: 2.5 حتى 3.6V مستمرّ.
• جهد الدخل المنصوح به: 3.3 V مستمرّ.
• مصدر التزويد بالطاقة: عن طريق الأقطاب العامة (القطب Vc والقطب CH_PD يجب توصيل الطاقة إلى القطبين معاً).
• الاتصال بالشبكة: اتصال واي فاي (بروتوكول IEEE 802.11 b/g/n).
•  الهوائيّ: خط على الدارة المطبوعة.
• المعايير: FCC/CE/TELEC/SRRC.
• مدى تردّد العمل: 2.4G -2.5G (2400 m – 2483.5) m .
• قوة البث: 802.11b: +20 dBm, 802.11g: +17 dBm, 802.11n: +14 dBm.
• حساسيّة المستقبل: 802.11b: -91dbm (11 Mbps), 802.11g: -75 dBm(54 Mbps),802.11n: -72 dbm (MCS7).
• الحماية: WPA، WPA2.
• التشفير: WEP/TKIP/AES.
• بروتوكولات الاتصال: IPv4/TCP/UDP/HTTP/FTP.
• اتصال بلوتوث: غير متوفّر.
• أقطاب الدخل والخرج: اثنان (GPIO1 & GPIO2).
• قطب تغذية الليد على الدارة: GPIO1 والذي يعمل قطب للمرسل.
• أقطاب الدخل التماثليّ: غير متوفرة.
• تيّار التشغيل: 300 mA (أقصى تيّار).
• تيّار التشغيل لكل قطب دخل/خرج: 12 mA.
• الأبعاد: 25 x 14.5 mm.
• المدى الحراريّ للتشغيل: -40 ~ 125 C.
• بروتوكولات التوصيل: SPI, SDIO, Serial/UART.
• المداخل: لا يوجد.
• قابليّة التوصيل مع ألواح الاختبار: ممكنة.
• أبعاد القطب: 5 x 2.54 mm.

برنامج التشغيل:

يوجد على الوحدةESP-01 ثلاثة أقطاب دخل وخرج (أحدها متصل مع الليد الأزرق الموجود على لوح الدارة). الهدف من استخدام هذه الوحدة هو القدرة على التّحكّم بهذه الأقطاب الثلاثة باستخدام الواي فاي، ومن أجل التوصّل إلى ذلك تحتاج رقاقة المتحكّم الموجودة على الوحدة إلى برنامج يسمّى (Firmware) يسمح بالاتصال مع الرّقاقة ويحدّد الأوامر التي يمكن تطبيقها وكيف تستجيب الوحدة لهذه الأوامر.
يتمّ استخدام مصطلح الرّفع (Upload) للإشارة إلى عمليّة إضافة برنامج التّشغيل إلى المتحكّم. كما تشير كلمة البرمجة إلى رفع برنامج تشغيل مخصّص أو معدّل مسبقاً إلى ذاكرة الوحدة -وهو المكان الذي يخزن فيه برنامج التشغيل حتى عمليّة الرّفع أو البرمجة التالية-. تتمّ عملية رفع برنامج التشغيل باستخدام بروتوكول UART التّسلسليّ.

أوضاع التشغيل:

يوجد على الأقلّ وضعا تشغيل للوحدة ESP-01. هما الوضع العادي ووضع البرمجة. في حال الرّغبة برفع برنامج تشغيل جديد إلى المتحكّم يجب أن يتمّ استخدام وضع البرمجة، مع ملاحظة أنّ عمليّة رفع برنامج التّشغيل ستقوم بإزالة البرنامج القديم (كما ستزيل مجموع أوامر AT إذا كانت مشمولة بعمليّة الرّفع).

البرمجة:

يوجد على الوحدة ESP-01 منفذ UART يمكن استخدامه للاتصالات المنطقيّة TTL ولرفع برنامج التشغيل إلى ذاكرة المتحكّم. للتمكّن من استخدام واجهة UART نحتاج إلى محول من مدخل USB إلى TTL يعمل بجهد 3.3V، ويجب أن يكون قادراً على تأمين 300 mA من التيّار على الأقلّ.

محول FTDI من USB إلى TTL مع منظم جهد مستمر 5/3.3 V ومدخل mini-B USB بالإضافة إلى أقطاب Rx/Tx
محول FTDI من USB إلى TTL مع منظم جهد مستمر 5/3.3 V ومدخل mini-B USB بالإضافة إلى أقطاب Rx/Tx

يوجد أكثر من خيار للتّحويل من الاتّصال التسلسليّ إلى USB، حيث يمكننا استخدام لوح أردوينو للقيام بهذه المهمّة في حال توفر المعرفة اللازمة. تُعتبر وحدة FTDI للتحويل من USB إلى TTL خياراً جيّداً للقدرة على اختيار جهد التّشغيل المطلوب (5 V أو 3.3 V)، كما تستطيع أن تؤمّن تياراً يصل حتى 500 mA عبر القطب Vc.

مكتبات البرمجة:

يمكن تغيير برنامج تشغيل الوحدة ESP-01 الحالي باستخدام برامج مخصّصة قابلة للتّحميل تَمّت كتابتها بالاستعانة بحزمة تطوير برمجيّ مناسبة (SDK). يوجد عدّة خيارات من برامج التّشغيل وحزم التّطوير المتوفّرة.

المعالجات التي تعمل بأوامر AT:

العديد من وحدات ESP-01 تكون مبرمجة مسبقاً ببرنامج تشغيل يستخدم أوامر AT، ويوجد العديد من برامج التشغيل التي تعمل بهذه الطّريقة وهي متاحة للتحميل عن شبكة الإنترنيت.
عند وجود معالج يعمل بأوامر AT يمكن استخدام هذه الأوامر لتغيير بعض إعدادات الأجهزة الافتراضيّة أو لتشغيل الأقطاب العامّة. وعلى الرّغم من تخزين مجموعة أوامر AT في ذاكرة الوحدة فإنّ إعدادات الأجهزة -بعد تغييرها- لن تُحفظ في الذاكرة، وهو ما يعني الحاجة إلى تحديث هذه الإعدادات بعد كلّ إقلاع. يمكن أن يتمّ توجيه أوامر AT للوحدة عبر واجهة UART أو باستخدام تطبيق خارجي (كبرنامج اتصال TCP) القادر على إرسال الأوامر عبر الواي فاي باستخدام معدّ النقل الذي يتمّ تحديده للمتحكّم ESP8266.
عند استخدام هذه المقاربة لا حاجة لاستخدام لغة برمجة محدّدة، بل نستخدم أوامر AT فقط لاستخدام الوحدة.
لحسن الحظ قامت شركة Espressif بتجهيز حزمة تطوير برمجيّة (SDK) وسمحت بذلك برفع العديد من برامج التشغيل المختلفة إلى المتحكّم.

برنامج التشغيل NodeMCU:

يُعدّ برنامج التّشغيل NodeMCU بديلاً أكثر شعبيّة لبرنامج تشغيل الوحدة ESP-01. يقوم هذا البرنامج بتشغيل مترجم Lua على المتحكّم ESP8266، وهو ما يسمح بتنفيذ أوامر مكتوبة بلغة Lua (وهو ما يشابه نظام تشغيل مصغّر).
تُكتب النصوص البرمجيّة بلغة Lua وتُحفظ بلاحقة (.lua). يسمح برنامج التشغيل NodeMCU بتشغيل الأقطاب العامّة والأجهزة عبر بروتوكولات مثل I2C وPWM، وتسمح هذه النصوص البرمجيّة بضبط إعدادات الأجهزة أيضاً.
يعطي برنامج التشغيل NodeMCU المطوّرين قدرة على الاستفادة من المجال الواسع لوظائف لغة البرمجة Lua وأكوادها الجاهزة لكتابة التّطبيقات الخاصّة بهم.

التشغيل باستخدام Arduino IDE:

قام مجتمع مطوّري ESP8266 مؤخراً بإنشاء إضافة لبيئة تطوير الأردوينو (Arduino IDE) تسمح برفع برامج تشغيل مبرمجة بلغات تشبه لغة برمجة الأردوينو (C أو C++)، حيث يتمّ إضافة المتحكّم ESP8266 كنواة إضافيّة باستخدام مدير اللّوح.
تعمل هذه المقاربة على استخدام Compiler بدون مترجم ((Interpreter، حيث تقوم بيئة تطوير الأردوينو بأخذ نص برمجيّ وتحوّله إلى برنامج مع كلّ الوظائف والمكتبات البرمجيّة المرتبطة به ليشكّل برنامج تشغيل ٍمتكاملٍ على هيئة ملفّ ثنائيّ (Binary)، وبعدها يتمّ رفع هذا الملف إلى المتحكّم.
تُكتب النّصوص البرمجيّة والأكواد وتُحفظ بلاحقة (.ino)، تسمح النّصوص البرمجيّة المشكّلَة باستخدام بيئة تطوير الأردوينو بالتّحكّم بأقطاب الدّخل والخرج، كما تسمح بضبط إعدادات الأجهزة، و إضافة نواة المتحكّم ESP8266 إلى بيئة تطوير الأردوينو. يمكن الاستفادة من عدد كبير من المكتبات والأكواد الجاهزة.

طرق أخرى:

يوجد بيئة تطوير أخرى للمستخدمين المتقدّمين وهي esp-open-sdk التي تسمح بالبرمجة المباشرة للمتحكم ESP8266.، كما يمكن استخدام لغة البايثون(MicroPython) ولغة الجافا سكريبت، كذلك يمكن استخدام (Espruino)، ولكن في وقت كتابة هذا المقال فإنّ كلّ هذه الطرق ما تزال في مرحلة مبكرة من التّطوير.

ميزات أخرى للوحدة ESP-01:

كما هو الحال في العديد من ألواح المتحكّمات، يوجد على هذه الوحدة ليد تشغيل باللون الأحمر و ليد أزرق يشير إلى تشغيل الواي فاي، ومن الجدير بالذّكر أنّ الليد
الأزرق وأوامر Serial.pri لا يمكن استخدامهما في ذات الوقت.

ترجمة:لؤي أزدشير ديب
مراجعة:علي العلي
تدقيق لغوي:سلام أحمد
تحرير:كرم ديوب