Запись данных в ESP32 через USB-соединение с MicroPython

У меня ESP32 подключен к компьютеру через USB-порт. Я могу использовать ESP32 для отправки данных по последовательному соединению с помощью оператора печати, мне нужно периодически записывать команды в ESP32. Как я могу прочитать, что происходит через COM-порт ESP32 в MicroPython? Я безуспешно пробовал много вариантов следующего:

from machine import UART

uart = UART(115200)
while 1:
    if uart.any():
        msg = uart.read()
        print(msg)

person Mike C.    schedule 20.04.2020    source источник


Ответы (1)


Печать предназначена только для печати в REPL. Если вы хотите общаться с MCU через последовательный порт, вы должны писать на него.

Самый простой пример:

# your imports and initialization

msg = uart.read()
uart.write(msg)

И на вашем компьютере вам нужно запустить некоторую последовательную консоль, например. picocom или, если вы пользователь Windows, тогда Putty. После подключения просто введите что-нибудь в терминале и нажмите Enter. Это практически все, что вам нужно, чтобы начать повторять сообщения. Вы можете использовать библиотеку Python serial на своем компьютере, но я предлагаю придерживаться простейших инструментов, пока вы не подключитесь впервые.

Однако еще две вещи:

  1. Ваш init неполный, имхо. Он должен содержать параметры порта и тайм-аута.
  2. Вы не можете использовать один и тот же USB-порт для программирования и связи (как в Arduino). REPL взорвет ваше соединение. Вам нужен USB-последовательный адаптер за 2 доллара из Китая и подключение к другим контактам UART (на ESP32 есть 3 интерфейса UART).
person Grzegorz Pudłowski    schedule 20.04.2020
comment
Пудловски Спасибо. Я не понимал, что вы не можете связаться с существующим подключением. Попробую еще раз. - person Mike C.; 20.04.2020
comment
Без проблем. Я создал несколько проектов, основанных на Micropython и последовательной связи, поэтому не стесняйтесь пинговать меня, если вы застряли. - person Grzegorz Pudłowski; 20.04.2020
comment
Сделаю. Спасибо. - person Mike C.; 20.04.2020