Вот простая программа на Micropython, которую я написал для тестирования моей платы ESP32 Vroom32. Вылетает через несколько минут. Я получил около 38000 отсчетов.
from time import sleep
n = 0
while 1:
print(n)
n += 1
sleep(0.02)
Вот код, который я использую для его чтения.
import serial, serial.tools.list_ports
import time
def find_port(): #Finds which port the arduino is plugged into
ports = list(serial.tools.list_ports.comports())
for p in ports:
if "EA60" in p[2]:
return(p[0])
usbport = find_port()
ser = serial.Serial(usbport, 115200) #setup serial
while 1:
try:
data = ser.readline()
ser.flushInput()
data = data.strip().decode()
print(data)
time.sleep(0.02)
except Exception as e:
print(e)
Я пробовал разные вещи, такие как мигание светодиода и замедление времени до 0,2 секунды. ,После выполнения этих двух вещей он работал около 8 часов, а затем потерпел крах. Когда это разбилось. Мне пришлось отключить устройство, подключить его снова и перезапустить программу python на компьютере, прежде чем она снова запустится. Простая перезагрузка устройства не сработала. Кроме того, после добавления кода мигания светодиода (не включенного в приведенный выше пример) светодиод продолжал мигать все время. Казалось, что он все еще работает, но не общается.
Новый код микропифона, который мигает:
from time import sleep
from machine import Pin
n = 0
led = Pin(2, Pin.OUT)
while 1:
print(n)
n += 1
led.value(not led.value())
sleep(0.2)
Обновление:
Вчера вечером я добавил код, чтобы попытаться отловить ошибку. Плата все еще не работала, и файл ошибок не был создан.
New main.py
from time import sleep
from machine import Pin
n = 0
led = Pin(2, Pin.OUT)
while 1:
try:
led.value(not led.value())
n += 1
print(n)
sleep(0.2)
except Exception as e:
print("ESP32: ", e)
Новый настольный скрипт:
import serial, serial.tools.list_ports
import time
def find_port(): #Finds which port the arduino is plugged into
ports = list(serial.tools.list_ports.comports())
for p in ports:
if "EA60" in p[2]:
return(p[0])
usbport = find_port()
ser = serial.Serial(usbport, 115200, timeout=10) #setup serial
while 1:
try:
data = ser.readline()
ser.flushInput()
data = data.strip().decode()
print(data)
if "ESP32" in data:
with open("errors.txt", "a") as f:
err = data + "\n"
f.write(err)
time.sleep(0.2)
except Exception as e:
print(e)