gemäß eines Tutorials versuche ich einen Raspberry Pi Pico mit Node-RED kommunizieren zu lassen.
Python gibt mir aber folgende Fehlermeldung:
Code: Alles auswählen
Traceback (most recent call last):
File "<stdin>", line 56, in <module>
File "/lib/umqtt/simple.py", line 123, in publish
OSError: [Errno 107] ENOTCONN
Mein gesamter Code lautet wie folgt:
Code: Alles auswählen
import network, time, machine, ledled
from secrets import *
from umqtt.simple import MQTTClient
rp2.country("DE")
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, PASSWORD)
while not wlan.isconnected() and wlan.status() >= 0:
ledled.obled(1, 0.5)
time.sleep(1)
print('wait ...')
ledled.obled(2, 0.1)
print('Connected to Wifi!')
mqtt_server = 'broker.hivemq.com'
client_id = 'board1'
topic_pub_temp = b'test'
# Temperatur-Sensor
sensor_temp = machine.ADC(4)
conversion_factor = 3.3 / (65535)
# Temperatur lesen
def temperature():
temperature_value = sensor_temp.read_u16() * conversion_factor
temperature_Celcius = 27 - (temperature_value - 0.706)/0.00172169/ 8
time.sleep(2)
return temperature_Celcius
def mqtt_connect():
client = MQTTClient(client_id, mqtt_server, keepalive=3600)
try:
client.connect()
except Exception as es:
print(es)
print('Connected to %s MQTT Broker'%(mqtt_server))
return client
def reconnect():
print('Failed to connect to the MQTT Broker. Reconnecting...')
time.sleep(5)
machine.reset()
try:
client = mqtt_connect()
time.sleep(2)
except OSError as e:
reconnect()
while True:
client.publish(topic_pub_temp, str(temperature))
time.sleep(5.0)
Code: Alles auswählen
self.sock.write(pkt, i + 1)
Viele Grüße und Danke an alle Antwortenden,
euer Ernst