مرحبا يا هابر!هذه هي تجربتي الأولى مع وحدات التحكم الدقيقة بشكل عام ، و ESP8266 (بشكل Nodemcu v2) على وجه الخصوص. ربما تكون هذه التجربة مفيدة لشخص ما.لماذا ميكروبيثون بالضبط؟ الجواب بسيط - تقتصر تجربتي البرمجية المتواضعة على Pascal في الجامعة ، وكتابة نصوص التكوين لـ Procera في Python ، لذلك اتضح أنها الأقرب. ستكون الأمثلة لنظام Linux (ubuntu 18.04) ، ولكن أعتقد أنه لن يكون هناك أي اختلاف جوهري في توزيعات Linux الأخرى.تدريب:
نضع python3 و pip و picocom إذا لم تكن مثبتة بالفعل:sudo apt install python3 python3-pip picocom
التحقق من إصدار الثعبان:python --version
Python 3.6.9
إذا كان python الإصدار 2.7 ، تغيير إلى 3:sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
update-alternatives: using /usr/bin/python3 to provide /usr/bin/python (python) in auto mode
نقوم بتحديث النقطة والتحقق من الإصدار:sudo pip3 install --upgrade pip
pip --version
pip 20.0.2 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)
pip3 --version
pip 20.0.2 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)
نقوم بتثبيت إصدار أحدث من esptool 2.8 من النقطة (نظرًا لأن الإصدار 2.1 من مستودع أوبونتو يعطي الخطأ "حدث خطأ فادح: لا يدعم ESP8266 الوظيفة erase_flash." أثناء البرامج الثابتة):pip3 install esptool
قم بتنزيل البرنامج الثابت هنا . استخدمت بناء مستقر 1.12 .هناك خياران ممكنان:1. شروق الشمس يدويًا (باستخدام الطرفية و REPL):
نقوم بمسح الفلاش على ESP8266:
esptool.py --port /dev/ttyUSB0 erase_flash
إخراج الأمر:
esptool.py v2.8
Serial port /dev/ttyUSB0
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: c8:2b:96:00:63:35
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 9.5s
Hard resetting via RTS pin...
املأ البرنامج الثابت:
esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 Downloads/esp8266-20191220-v1.12.bin
إخراج الأمر:
esptool.py v2.8
Serial port /dev/ttyUSB0
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: c8:2b:96:00:63:35
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Flash params set to 0x0040
Compressed 619828 bytes to 404070...
Wrote 619828 bytes (404070 compressed) at 0x00000000 in 9.1 seconds (effective 543.8 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
وإذا رغبت في ذلك ، نتحقق من صحة المجموع الاختباري:
esptool.py --port /dev/ttyUSB0 --baud 460800 verify_flash --flash_size=detect 0 Downloads/esp8266-20191220-v1.12.bin
بعد ذلك ، نحاول الاتصال بـ MK ونرى وحدة تحكم REPL :
picocom /dev/ttyUSB0 -b115200
picocom v2.2
port is : /dev/ttyUSB0
flowcontrol : none
baudrate is : 115200
parity is : none
databits are : 8
stopbits are : 1
escape is : C-a
local echo is : no
noinit is : no
noreset is : no
nolock is : no
send_cmd is : sz -vv
receive_cmd is : rz -vv -E
imap is :
omap is :
emap is : crcrlf,delbs,
Type [C-a] [C-h] to see available commands
Terminal ready
>>> help()
Welcome to MicroPython!
For online docs please visit http://docs.micropython.org/en/latest/esp8266/ .
For diagnostic information to include in bug reports execute 'import port_diag'.
Basic WiFi configuration:
import network
sta_if = network.WLAN(network.STA_IF); sta_if.active(True)
sta_if.scan()
sta_if.connect("<AP_name>", "<password>")
sta_if.isconnected()
ap_if = network.WLAN(network.AP_IF)
ap_if.config(essid="<AP_NAME>", authmode=network.AUTH_WPA_WPA2_PSK, password="<password>")
Control commands:
CTRL-A -- on a blank line, enter raw REPL mode
CTRL-B -- on a blank line, enter normal REPL mode
CTRL-C -- interrupt a running program
CTRL-D -- on a blank line, do a soft reset of the board
CTRL-E -- on a blank line, enter paste mode
For further help on a specific object, type help(obj)
>>>
ملاحظة: للخروج من picocom ، استخدم Ctrl + a وعلى الفور Ctrl + x2. باستخدام IDE
على الرغم من أن الخيار الأول فعال للغاية (على الأقل يمكنك أيضًا وميض LED فيه) ، إلا أنه مع IDE لا يزال أكثر ملاءمة. جربت خيارين ، استقرت في النهاية على Thonny .
التثبيت:
نضع python3-tk من المستودعات ، وفي الواقع Thonny عبر النقطة:
sudo apt install python3-tk
sudo pip3 install thonny
يمكنك تحميل البرامج الثابتة إلى MK مباشرة من خلال Thonny:

وبعد ذلك ، يصبح وميض الصمام أكثر ملاءمة:

مجموع
في الإخراج ، لدينا esp8266 MK مع مخيط ميكروبيثون ، و IDE سهلة الاستخدام للعمل معها.PS: الجزء الثاني (منصة ذاتية الدفع على MK esp8266 مع ميكروفون)