ESP32: странное поведение с запросами - требуется объект с буферным протоколом - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь израсходовать аккумулятор, чтобы посмотреть, как долго он питает мой ESP32.Для этого я написал простую программу, которая раз в минуту пишет на сайт «Все еще жив».Тем не менее, программа падает каждый раз, когда она успешно записала строку в веб-файл.Я не могу понять, почему это работает девять раз, а затем не удается.Вот код:

from time import sleep_ms, ticks_ms
import network
import socket
import urequests
import machine
import json

SSID="my_ssid"
PASSWORD="my_password"
port=100
wlan=None
s=None

def connectWifi(ssid,passwd): #function to connect to the Web
  global wlan #declare a WLAN object
  wlan=network.WLAN(network.STA_IF)                     #create a wlan object
  wlan.active(True)                                     #Activate the network interface
  wlan.disconnect()                                     #Disconnect the last connected WiFi
  wlan.connect(ssid,passwd)                             #connect wifi
  while(wlan.ifconfig()[0]=='0.0.0.0'): #wait for connection
    sleep_ms(1)
  sleep_ms(1000) #hold on for 1 second
  sendmessage("Connected to WLAN")
  sleep_ms(1000)  #hold on for 1 second
  return True

def sendmessage(myMessage):
  url = "http://www.sabulo.com/stillalive.php"
  headers = {'content-type': 'application/json'}
  data = {'message': myMessage}
  jsonObj = json.dumps(data)
  resp = urequests.post(url, data=jsonObj, headers=headers)
  return True

def main():
  connectWifi(SSID,PASSWORD)
  hitcount = 0
  while True:
      sendmessage("Still  alive " + str(hitcount))
      print("Still alive " + str(hitcount))
      hitcount = hitcount + 1
      sleep_ms(1000)

main()

Тогда я получаю это:

>>>
>>> I (5906) phy: phy_version: 4007, 9c6b43b, Jan 11 2019, 16:45:07, 0, 0
Still alive 0
Still alive 1
Still alive 2
Still alive 3
Still alive 4
Still alive 5
Still alive 6
Still alive 7
Still alive 8
╝Traceback (most recent call last):
  File "<stdin>", line 45, in <module>
  File "<stdin>", line 40, in main
  File "<stdin>", line 33, in sendmessage
  File "urequests.py", line 111, in post
  File "urequests.py", line 56, in request
OSError: 23
╝>
MicroPython v1.10-98-g4daee3170 on 2019-02-14; ESP32 module with ESP32
Type "help()" for more information.

Я использую один и тот же фрагмент кода для веб-загрузки в различных приложениях, и он никогда не дает мне этой ошибки.

Любая помощь с благодарностью признана:)

...