Я использую micropython на моем esp32. Я хочу отправить данные из esp32 в конечную точку брокера AWS IoT MQTT. Но в модуле сокетов микропифонов метод getaddrinfo (hostname, port) каждый раз возвращает пустой список. Как я могу решить это?
Это работает, когда я использую IP-адрес вместо имени хоста. Но конечная точка посредника AWS MQTT не имеет статического IP-адреса для своей конечной точки посредника.
# My code:
sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
sta_if.connect("wifiname", "password")
KEY_PATH = "/619e3d582c-private.pem.key"
CERT_PATH = "/619e3d582c-certificate.pem"
with open(KEY_PATH, 'r') as f:
PVT_KEY = f.read()
with open(CERT_PATH, 'r') as f:
CERT_KEY = f.read()
client = MQTTClient(client_id="esp32_micropython_shafik",
server="xxxxxxxxxxx.iot.eu-west-1.amazonaws.com",
port = 8883,
keepalive = 10000,
ssl = True,
ssl_params = {
"cert": CERT_KEY,
"key": PVT_KEY,
"server_side":False
} )
def checkwifi():
while not sta_if.isconnected():
time.sleep_ms(500)
print(".")
sta_if.connect()
def publish():
while True:
checkwifi()
msg = b'hello shafik'
client.publish(b"weather", msg)
time.sleep(1)
print("type", type(PVT_KEY))
client.connect()
publish()`
Я постоянно получаю эту ошибку: umqtt / simple.py в 57 строке, IndexError: список индексов выходит за пределы диапазона.
Как я могу это решить?