У меня есть плата NodeMCU ESP8266, на которой работает MicroPython. Я запускаю веб-сервер на моем ESP8266. Это мой первый IoT-проект, основанный на одной из этих плат.
Ниже приведен фрагмент кода.
Это выполняется в течение main.py
. Время от времени что-то вызывает сбой кода (возможно, на основе времени и запроса). Когда main.py
по какой-то причине выходит, я возвращаюсь к интерфейсу командной строки python.
Я бы хотел, чтобы плата перезагрузилась, когда это произойдет (если нет лучшего способа).
Каков наилучший способ перезапуска/сброса ESP8266?
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
s = socket.socket()
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(addr)
s.listen(5)
print('listening on', addr)
while True:
cl, addr = s.accept()
print('client connected from', addr)
cl_file = cl.makefile('rwb', 0)
print("Request:")
while True:
line = cl_file.readline()
print("Line:" , line)
if not line or line == b'\r\n':
print("breaking")
break
if line == b'GET /active HTTP/1.1\r\n':
machine.WDT
не доступно для esp8266, это сообщение на форуме подразумевает, что сейчас реализован в базовой форме. Это, наверное, первое, что нужно попробовать. (Нулевая вещь, которую нужно попробовать, это выяснить, как остановить сбой вашего кода, конечно). В этой ветке также обсуждается создание сторожевого таймера на ЕСП. - person nekomatic   schedule 08.03.2017