Nun habe ich aber ein paar raspi Zeros liegen, die nur Temperatur und Feuchte messen und per MQTT verschicken sollen.
Ein script um die Werte auszulesen hab ich gefunden, eines um Daten per MQTT zu verschicken auch. Ich habe nun beides "zusammengefriemelt" und bin zumindest soweit gekommen, dass das script startet und die Werte einmal überträgt.
Danach scheine ich es in den Wald zu schicken, denn es kommt nicht mehr zur Kommandozeile zurück. Mit "Strg-C" lässt es sich abbrechen und auch wieder starten. Nur...sollte das script ohne mein Zutun Daten im Abstand von 10 Sekunden verschicken.
Kann mir hier bitte jemand aufs Pferd helfen?
Danke !
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#------------------------------------------------------------------------
# SHT31 abfragen
#------------------------------------------------------------------------
import os, sys, time
import smbus
# I2C Bus festlegen
bus = smbus.SMBus(1)
# SHT31 Adresse definieren, 0x44(68)
bus.write_i2c_block_data(0x44, 0x2C, [0x06])
time.sleep(0.5)
# Daten lesen aus 0x00(00), 6 Bytes
# Temp MSB, Temp LSB, Temp CRC, Humididty MSB, Humidity LSB, Humidity CRC
data = bus.read_i2c_block_data(0x44, 0x00, 6)
# Daten konvertieren
temp = data[0] * 256 + data[1]
cTemp = -45 + (175 * temp / 65535.0)
fTemp = -49 + (315 * temp / 65535.0)
humidity = 100 * (data[3] * 256 + data[4]) / 65535.0
# Daten zur Kontrolle anzeigen
print (("Temperatur in Celsius: %.2f C") %(cTemp))
print (("Temperatur in Fahrenheit: %.2f F") %(fTemp))
print (("Relative Feuchtigkeit: %.2f %%RH ") %(humidity))
#### MQTT Versand
import time
import paho.mqtt.client as mqtt
def on_connect(client, userdata, flags, rc):
print("Connected with result code " + str(rc))
client = mqtt.Client()
client.on_connect = on_connect
client.connect("localhost", 1883, 60)
client.loop_start()
while True:
time.sleep(10)
client.publish("data/temp", "%.2f" %cTemp)
client.publish("data/humidity_rel", "%.2f" %humidity)