ich habe einen ESP8266 (Node MCU und D1 Mini) verschaltet und schicke die Temperaturdaten per MQTT an einen Server (MQTT Broker). Micropython ist auf dem ESP installiert, das Python Programm mit Thonny funktioniert gut:
Code: Alles auswählen
import machine, onewire, ds18x20, time
# Verbindung zu Wlan
import network
sta_if = network.WLAN(network.STA_IF); sta_if.active(True)
sta_if.scan() # Scan for available access points
sta_if.connect("Schneider2G", "XXXXX") # Connect to an AP
sta_if.isconnected() # Check for successful connection
# Verbindung zu MQTT Server
from umqtt.simple import MQTTClient
CLIENT_NAME = 'esp_1'
BROKER_ADDR = '192.168.59.67'
PORT = '1883'
mqttc = MQTTClient(CLIENT_NAME, BROKER_ADDR, keepalive=60)
# zum testen
# from machine import Pin
# Pin(2, Pin.OUT).value(0) # led aus, 0 schaltet ein
mqttc.connect()
# zum testen
from machine import Pin
Pin(2, Pin.OUT).value(0) # 1 led aus, 0 schaltet ein
TOPIC = 'home/temp/azi'
ds_pin = machine.Pin(4)
ds_sensor = ds18x20.DS18X20(onewire.OneWire(ds_pin))
roms = ds_sensor.scan()
#print('Found DS devices: ', roms)
while True:
ds_sensor.convert_temp()
time.sleep_ms(750)
for rom in roms:
#print(rom)
temp = ds_sensor.read_temp(rom)
mqttc.publish(TOPIC, ''+str("%2.2f"%temp))
print('Die Temperatur im Arbeitszimmer: ', temp)
#print (str("%2.2f"%temp))
time.sleep(60) # ca. alle 60 Sekunden
Ich bin kein Profi, habe aber versucht die Lösung selber zu finden. Ich habe den gleichen Aufbau mit einem anderen Board (D1 Mini) und einem anderen Sensor (dht22) versucht - gleiches Ergebnis. Einer Fehlermeldung würde mir vielleicht helfen, aber wie komme ich die Meldung? Im log am MQTT Broker habe ich keine Fehlermeldung gefunden.
Jetzt weiss ich nicht mehr weiter. Hat jemand eine Idee?