Python Script für Arduion -> Raspberry -> Thingspeak

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
Randolph23
User
Beiträge: 1
Registriert: Freitag 16. Oktober 2020, 11:48

Freitag 16. Oktober 2020, 11:54

Hallo liebe Gemeinde,

bin absoluter Python Neuling und hätte eine Frage mit der Bitte um Hilfe :)

Ich habe einen Arduino an einen Raspberry angeschlossen und lese damit die analoge Schnittstelle eines kapazitiven Feuchtigkeitsmessers über /dev/ttyAMC0 aus
Diese Daten würde ich gerne per Python Script an Thingspeak senden.
Bei meinem DHT22 Sensor klappt das wunderbar, aber wie kann ich die Ausgabe der o.g. Schnittstelle mit übergeben? (Die Kanäle bei Thingspeak sind natürlich schon eingerichtet)

mein bisheriges Script:

Code: Alles auswählen

import thingspeak
import time
import Adafruit_DHT

channel_id = 4711
write_key  = '######
read_key   = '######
pin = 2

sensor = Adafruit_DHT.DHT22

def measure(channel):
    try:
        humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
        # write
        response = channel.update({'field1': temperature, 'field2': humidity})

        # read
        read = channel.get({})
        print("Read:", read)

    except:
        print("connection failed")

if __name__ == "__main__":
    channel = thingspeak.Channel(id=channel_id, write_key=write_key, api_key=read_key)
    while True:
        measure(channel)
        # free account has an api limit of 15sec
        time.sleep(30)
Vielen Dank im voraus!
Sirius3
User
Beiträge: 13054
Registriert: Sonntag 21. Oktober 2012, 17:20

Freitag 16. Oktober 2020, 14:01

Und wo ist jetzt das konkrete Problem? Statt `Adafruit_DHT.read_retry` rufst Du halt die Routine für Deinen Feuchtigkeitssensor auf.
Nackte `except` sind schlecht, weil man die Ursache des Fehlers verschluckt, und damit eine Fehlersuche unmöglich macht. Zumindest die Fehlermeldung inklusive komplettem Traceback sollte man ausgeben. logging.exception wäre da ein Möglichkeit.
Konstanten schreibt man komplett gross: CHANNEL_ID, PIN, READ_KEY, ...
Antworten