قم بتثبيت ميكروبيثون على ESP8266 واعمل معه في لينكس (للمبتدئين)

مرحبا يا هابر!

هذه هي تجربتي الأولى مع وحدات التحكم الدقيقة بشكل عام ، و 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()                             # Scan for available access points
    sta_if.connect("<AP_name>", "<password>") # Connect to an AP
    sta_if.isconnected()                      # Check for successful connection
    # Change name/password of ESP8266's AP:
    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 + x
  • 2. باستخدام IDE


    على الرغم من أن الخيار الأول فعال للغاية (على الأقل يمكنك أيضًا وميض LED فيه) ، إلا أنه مع IDE لا يزال أكثر ملاءمة. جربت خيارين ، استقرت في النهاية على Thonny .

    التثبيت:

    نضع python3-tk من المستودعات ، وفي الواقع Thonny عبر النقطة:

    sudo apt install python3-tk

    sudo pip3 install thonny

    يمكنك تحميل البرامج الثابتة إلى MK مباشرة من خلال Thonny:



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



مجموع


في الإخراج ، لدينا esp8266 MK مع مخيط ميكروبيثون ، و IDE سهلة الاستخدام للعمل معها.

PS: الجزء الثاني (منصة ذاتية الدفع على MK esp8266 مع ميكروفون)

All Articles