понедельник, 23 октября 2023 г.

Тест micropython на nodemcu v3 под Linux

Железо

  • NodeMCU ESP8266

Подключение

  • Подключаем по USB
  • Проверяем видимость:   ls /dev/ttyU* на выходе получаем  /dev/ttyUSB0

Окружение

  • Нельзя ставить в env: conda deactivate
  • Ставим утилиту: pip3 install esptool
  • Проверка: esptool.py -h
  • Добавим себя в группу: sudo groupadd dialout (новая группа действует после перелогина)
  • Права для записи: sudo chmod o+rw /dev/ttyUSB0(чтобы не перелогиниваться сразу)

Прошивка

  • Стираем прошивку: esptool.py --port /dev/ttyUSB0 erase_flash
Выход:
esptool.py v4.6.2
Serial port /dev/ttyUSB0
Connecting....
Detecting chip type... Unsupported detection protocol, switching and trying again...
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: bc:dd:c2:57:56:0c
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 1.1s
Hard resetting via RTS pin...

  • Скачиваем прошивку: https://micropython.org/download/ESP8266_GENERIC берем latest .bin. На момент теста ESP8266_GENERIC-20231005-v1.21.0.bin
  • Прошиваем: esptool.py --port /dev/ttyUSB0 write_flash --flash_size=detect -fm dio 0x00000  ./ESP8266_GENERIC-20231005-v1.21.0.bin
Выход:
esptool.py v4.6.2
Serial port /dev/ttyUSB0
Connecting....
Detecting chip type... Unsupported detection protocol, switching and trying again...
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: bc:dd:c2:57:56:0c
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Flash will be erased from 0x00000000 to 0x0009cfff...
Flash params set to 0x0240
Compressed 641212 bytes to 425908...
Wrote 641212 bytes (425908 compressed) at 0x00000000 in 37.7 seconds (effective 136.2 kbit/s)...
Hash of data verified.

Проверка в IDE MU

  • Ставим IDE:  https://codewith.mu/ 
  • Запускаем код:
    from machine import Pin
    from time import sleep
    LED = Pin(2, Pin.OUT)
    while True:
        LED.value(not LED.value())
        sleep(0.5)

  • При успехе мигает светодиод

Проверка в IDE PyCharm

  • Ставим плагин MicroPython
  • File->Settings->Languages and Frameworks->MicroPython. Указываем Enable MicroPython support, Device type - ESP8266, Device path - /dev/ttyUSB0
  • Правой кнопкой на файле и run
Запуск из консоли

  • pip3 install adafruit-ampy
  • Список файлов ampy -p /dev/ttyUSB0 ls
  • Загрузка ampy -p /dev/ttyUSB0 put ./main.py
  • Запуск ampy -p /dev/ttyUSB0 run ./main.py
Для автозапуска файл должен называться main.py

Комментариев нет:

Отправить комментарий