كيف تبدأ مع FreeRTOS و ESP8266

لقد اشتريت مؤخرًا NodeMCU من AliExpress مقابل حوالي 4 دولارات. كان السبب في أنني فعلت ذلك هو معرفة سبب كل هذا العناء مع ESP8266.

NodeMCU هي منصة إنترنت الأشياء مفتوحة المصدر. يتضمن البرنامج الثابت الذي يعمل على ESP8266 Wi-Fi SoC من أنظمة Espressif ، والأجهزة التي تعتمد على وحدة ESP-12.

بالمقارنة مع Arduino UNO ، فإن جهاز ESP8266 الخاص بي يخرجه تمامًا من الحديقة عندما يتعلق الأمر بقوة وحدة المعالجة المركزية والسعر.

ESP8266 أسرع بنسبة 500٪ وأرخص بنسبة 82٪ من Arduino. يحتوي ESP8266 أيضًا على اتصال WiFi.

لقد فوجئت جدًا عندما زرت موقع Espressif على الويب من أجل ESP8266. هناك الكثير من الوثائق والموارد التي يمكنك استخدامها. على سبيل المثال ، هناك تطبيق Android يخبر ESP8266 بالاتصال بشبكة WiFi الخاصة بك. يرسل التطبيق SSID وكلمة المرور كحزم ، ويقوم ESP8266 بشمها ، ثم يتصل بشبكة WiFi الخاصة بك. يسمى هذا SmartConfig ، وقد اخترعته شركة Texas Instruments.

في هذه المقالة ، سأوجهك إلى إعداد وتشغيل مثال التكوين الذكي من Espressif RTOS SDK.

إليك الأشياء التي ستحتاجها:

  • كمبيوتر حديث.
  • لوحة NodeMCU مع ESP12-E
  • VirtualBox (//www.virtualbox.org/wiki/Downloads)
  • Ubuntu Server LTS (//www.ubuntu.com/download/server)

تكوين VirtualBox من أجل التطوير

  1. قم بتنزيل VirtualBox وتثبيت خادم Ubuntu. يجب أن يكون هذا سهلاً ، ولكن إذا كنت لا تعرف كيف ، فقم بذلك باستخدام Google أو إلقاء نظرة على دليل الرسم خطوة بخطوة. يعد تثبيت نظام تشغيل مهارة جيدة. (نصيحة: عندما يطالبك برنامج VirtualBox بتحديد القرص ، اجعله مخصصًا ديناميكيًا وبحجم لا يقل عن 50 جيجابايت. سيوفر لك ذلك بعض الصداع في المستقبل)
  2. تأكد من أنه يمكنك الوصول إلى الإنترنت من داخل الجهاز الظاهري وتكوين خادم DNS:

لتكوين خادم DNS ، ألق نظرة على هذا المثال.

مثال: dns-nameservers 8.8.8.8 8.8.4.4إذا كان بإمكانك اختبار اتصال Google ، فأنت على ما يرام!

3. (اختياري) قم بتثبيت خادم OpenSSH و Samba. هذا سيجعل حياتك أسهل بكثير.

4. (اختياري) قم بتمكين إعادة توجيه المنفذ. من أجل SSH مباشرة في جهازك الظاهري ، تحتاج إلى تمكين إعادة توجيه المنفذ. على سبيل المثال ، لتعيين المنفذ 2222 على جهازك المضيف إلى المنفذ 22 بجهازك الظاهري .

إذا قمت بتمكين إعادة توجيه المنفذ ، فيمكنك الآن SSH في جهازك الظاهري من جهاز المضيف الخاص بك كما في الشكل أدناه.

ملاحظة: إذا كنت تستخدم نظام Windows ، فأنت بحاجة إلى Putty من أجل SSH في الجهاز الظاهري.

5. قم بتوصيل NodeMCU الخاص بك وقم بتنفيذ الأمر التالي:

tail -f /var/log/kern.log

يجب أن يكشف لك هذا أنه قد تم تحديد الجهاز على أنه / dev / ttyUSB0. إذا لم يحدث شيء ، فأنت بحاجة إلى إضافة USB إلى الجهاز الظاهري. بعد إضافة USB ، افصل جهازك وقم بتوصيله مرة أخرى.

إذا وصلت إلى هذه النقطة وكل شيء يعمل ، فتهانينا ! أنت الآن جاهز لتجميع SDK وتشغيل مثال SmartConfig. يمكنك حتى إرسال تغريدة لي على //twitter.com/metonymyqt

تجميع SDK وامض اللوحة

  1. قم بتثبيت الحزم المطلوبة (على النحو التالي). هذه المعلومات متاحة أيضًا في readme.md الخاص بـ SDK.
sudo apt-get install make unrar-free autoconf automake libtool gcc g++ gperf flex bison texinfo gawk ncurses-dev libexpat-dev python-dev python python-serial sed git unzip bash help2man wget bzip2 libtool-bin

2. قم بإنشاء مجلد جديد وانتقل إليه: mkdir Development && cd Development

3. استنساخ Open SDK: //github.com/pfalcon/esp-open-sdk

git clone --recursive //github.com/pfalcon/esp-open-sdk.git

3. تشغيل جعل: make

تحذير: ستستغرق هذه الخطوة بعض الوقت حتى تنتهي ، لذا يرجى التحلي بالصبر. على جهازي الظاهري اكتمل بعد 50 دقيقة. قد يستغرق الأمر أكثر أو أقل بالنسبة لك ، ولكن قبل التشغيل ، تأكد من أنك متصل بالإنترنت وأن DNS مهيأ بشكل صحيح . أفضل طريقة للتحقق من ذلك هي تنفيذ ping على Google أو أي موقع آخر إذا تم حظر Google في منطقتك.

إذا نجح الأمر ping ، فيمكنك تصغير النوافذ ومشاهدة حلقة من برنامجك التلفزيوني المفضل. عد بعد حوالي 40 دقيقة (ولكن تأكد من عدم نوم جهاز الكمبيوتر الخاص بك).

بعد بناء SDK بنجاح ، سترى رسالة تخبرك بوضع شيء ما في طريقك. للقيام بذلك ، قم بتنفيذ ما يلي:

echo 'export PATH=/home/denis/Development/esp-open-sdk/xtensa-lx106-elf/bin:$PATH' >> ~/.profile

سيقوم الأمر بإلحاق السلسلة بالملف ~ / .profile . الآن يرجى تشغيل الأمر التالي:

xtensa-lx106-elf-gcc --version

إذا تم تنفيذ الأمر بنجاح ، فأنت على ما يرام!

4. اختبر منتداك

قم بتوصيل NodeMCU وتشغيل lsusb للتحقق من أن جهازك متصل. بعد ذلك ، قم بتشغيل esptool.py chip_id . يجب أن تشاهد الآن معرف رقاقة اللوحة.

5. استنساخ ESP8266_RTOS_SDK

git clone //github.com/espressif/ESP8266_RTOS_SDK.git

6. قم بتصدير مسار SDK ومسار SDK / BIN باستخدام الأوامر أدناه.

echo 'export SDK_PATH=/home/denis/Development/ESP8266_RTOS_SDK' >> ~/.profile
echo 'export BIN_PATH=/home/denis/Development/ESP8266_RTOS_SDK/bin' >> ~/.profile

7. تجميع مثال SmartConfig

cd /home/denis/Development/ESP8266_RTOS_SDK/examples/smart_config/
chmod +x ./gen_misc.sh
./gen_misc.sh

الآن اقبل القيم الافتراضية حتى يُطلب منك SPI_SIZE_MAP. هذا هو المكان الذي تحدد فيه 4 لأن NodeMCU لديه حجم فلاش يبلغ 32 ميجابت وهذا يترجم إلى 4 ميجابايت. يمكنك أيضًا تحديد SPI_SPEED 3 = 80 ميجا هرتز

سترى شيئًا كهذا:

!!!SDK_PATH: /home/denis/Development/ESP8266_RTOS_SDKBIN_PATH: /home/denis/Development/ESP8266_RTOS_SDK/bin
No boot needed.Generate eagle.flash.bin and eagle.irom0text.bin successully in BIN_PATHeagle.flash.bin — — — →0x00000eagle.irom0text.bin — →0x20000!!!

8. فلاش المجلس

cd $BIN_PATH
esptool.py erase_flash
esptool.py write_flash 0x00000 $BIN_PATH/eagle.flash.bin 0x20000 $BIN_PATH/eagle.irom0text.bin 0x3FC000 $BIN_PATH/esp_init_data_default.bin

الآن ، إذا قمت بإعادة ضبط اللوحة ، فلن ترى وميض LED.

9. استخدم تطبيق الهاتف

  • تطبيق أندرويد
  • تطبيق iPhone

افتح التطبيق ، وتأكد من أنك متصل بشبكة WiFi AP ، وأدخل كلمة مرورك ، واضغط على تأكيد. بعد بضع ثوانٍ ، يجب أن يتصل ESP8266 بنقطة الوصول الخاصة بك. هذا هو. مبروك وصولك للنهاية!

إذا كنت ترغب في تطوير المزيد باستخدام ESP8266-RTOS-SDK ، فيرجى زيارة المواقع الرسمية. ستجد الكثير من الموارد والوثائق هناك. أيضًا ، يرجى إلقاء نظرة على الأمثلة الأخرى الموجودة في مجلد SDK.

شكرا جزيلا على وقتك في قراءة هذا. إذا كنت تريد التواصل معي ، فيمكنك القيام بذلك على Twitter: MetonymyQT

مصادر

  • نظرة عامة على ESP8266
  • موارد ESP8266
  • موقع FreeRTOS