Messdaten aufzeichnen und automatisch versenden (Telegram Bot)

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo liebe Community,

    Ich plane gerade ein Projekt, indem die Daten von mehreren Umweltsensoren ausgewertet werden, und danach in ein Diagramm eingetragen werden. Ausserdem soll bei Bedarf eine Benachrichtigung per Telegram gesendet werden, dass ein bestimmter Raum gelüftet werden sollte, da ein bestimmter Wert eine Grenze unter- oder überschritten hat. Für die Datenverarbeitung wollte ich einen Arduino verwenden der die aufbereiteten Daten an einen Raspberry pi weitergibt. Auf diesem sollte dann der Telegram bot laufen, und die Daten in ein Diagramm eingetragen werden.

    Meine Fragen:

    Wie soll ich den Raspberry pi mit dem Arduino verbinden?

    Wie kann ich den Telegram Bot einrichten? (Bin noch nicht der Beste was Programmieren angeht;))

    Wie kann ich so eine Datenbank erstellen?

    Wie könnte ich eventuell andere Systeme wie zum Beispiel Bewegungsmelder und die Türklingel in das System integrieren???

    Danke schon mal im voraus,

    LenderSchlender:danke_ATDE:

    Linux hasn´t windows

  • Messdaten aufzeichnen und automatisch versenden (Telegram Bot)? Schau mal ob du hier fündig wirst!

  • Also bisschen Programmieren wirst du lernen müssen.

    Zur Visualisierung der Messdaten empfehle ich dir Grafana. Dort kann man auch gleich die Schwellwerte hinterlegen wo bei unter/überschreiten eines Grenzwertes automatisch eine Nachricht mit Telegram versendet wird.

    Wie kann ich so eine Datenbank erstellen?

    Hier musst du dich erstmal für ein Datenbanksystem entscheiden.

    Der Einfachheit würd ich dir zu influxdb raten, selbst verwende ich PostgreSQL mit timescale Erweiterung.

  • Da du wohl mehrere Sensoren an verschiedenen Orten brauchst, ist wahrscheinlich Funk eine gute Lösung. Such mal hier im Form nach "Tino". der User Nurazur hat diese Platinen entwickelt - ein Atmel µC + Funksender + Sensor zur Verbindung mit dem Pi. Du kannst die Platinen bei ihm bekommen. Damit dürfte sich quasi alles abdecken lassen, was du brauchst.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Da du wohl mehrere Sensoren an verschiedenen Orten brauchst, ist wahrscheinlich Funk eine gute Lösung.

    Dem stimme ich zu, allerdings würde ich die Sensoren trotzdem gerne verkabeln. Dazu die Frage: müssen die kabel geschirmt sein?( maximale Kabellänge ca. 15m, eventuell parallel verlaufend zu Netzstromleitungen.

    Die Sensoren für Luftfeuchtigkeit und Temperatur stehen schon fest, nämlich DHT21, bei den anderen Sensoren werden ich wohl noch ein bisschen im Internet schauen

    Also bisschen Programmieren wirst du lernen müssen.

    Das war mir schon klar;) Als Programmiersprache Python oder würdet ihr mir etwas anderes empfehlen?

    Zur Visualisierung der Messdaten empfehle ich dir Grafana. Dort kann man auch gleich die Schwellwerte hinterlegen wo bei unter/überschreiten eines Grenzwertes automatisch eine Nachricht mit Telegram versendet wird.

    Ist das bei Grafana schon integriert oder bekommt man da einfach eine Ausgabe wo man noch ein Programm schreiben muss für den Bot selber?


    Hier musst du dich erstmal für ein Datenbanksystem entscheiden.

    Der Einfachheit würd ich dir zu influxdb raten

    wird das dann mit Grafana verbunden, oder läuft das unabhängig voneinander?

    EDIT: Hab mir mal die Website von Grafana angeschaut, damit wäre die Frage der Benachrichtigung über Telegram schonmal geklärt, sollte ich wohl öfter machen bevor ich eine Antwort schreibe:denker:

    Linux hasn´t windows

    Einmal editiert, zuletzt von LenderSchlender (7. Februar 2020 um 14:38)

  • Als Programmiersprache Python oder würdet ihr mir etwas anderes empfehlen?

    ja Python, aber Version 3!

    Ist das bei Grafana schon integriert oder bekommt man da einfach eine Ausgabe wo man noch ein Programm schreiben muss für den Bot selber?

    Integriert


    wird das dann mit Grafana verbunden, oder läuft das unabhängig voneinander?

    Läuft beides unabhängig voneinander, und Grafana greift dann auf die DB zu. so läuft das aber eig immer mit einer DB.

  • Ok schonmal danke für diese Infos, jetzt kann ich schon viel konkreter planen. Ich habe noch zwei Fragen zur Hardware:

    1: Welchen Raspberry pi soll ich verwenden bzw. wieviel RAM brauchen die beiden Programme?

    2: Datenauswertung über Arduino oder Raspberry? (wenn Arduino wie kann ich die beiden verbinden?):denker:

    Linux hasn´t windows

  • Eigentlich brauchst du keinen Arduino. Aber es bietet sich an, einen einzusetzen, denn er ist zuverlässiger und hat eine höhere Verfügbarkeit als der Pi. Der Arduino könnte die Messdaten entgegennehmen, puffern und regelmäßig (auf Abruf) an den Pi weiter geben. Der Pi muss also nicht permanent laufen und es gehen auch keine Daten verloren, wenn der Pi mal aus ist, Updates macht oder sonst irgendwie spinnt.

    Die Speicherung und Auswertung der Daten sollte auf jeden Fall der Pi machen, dafür ist ein Arduino nicht wirklich geeignet.

    Die Verbindung würde ich hier ganz schlicht seriell machen, mit geringer Datenrate, damit es sicher funktioniert. Es geht ja nur um kleine Datenmengen.

    Der Arduino sollte eine Realtime Clock haben, damit er die jeweilige Uhrzeit speichern und die Messungen in den korrekten Zeitabständen durchführen kann.

    Der 328P hat 1024 Bytes EEPROM-Speicher - je nach Umfang der Messdaten genügt das nur für wenige bis einige Messungen - bei 8 Bytes pro Messwert (Sensor ID, Datum, Zeit, Wert) für 128 Messungen... bei mehreren Sensoren und mehrere Messungen pro Stunde genügt das nur für wenige Stunden.

    Eine DS3231 RTC bietet 32 Kbit (4 KByte) Speicher, die genutzt werden können und so einen größeren Puffer bereitstellen.
    Oder du benutzt einen EEPROM-Chip (Microchip LC24...) mit z. B. 1 Mbit (128 KByte) - für noch mehr Puffer.

    Wenn man den Speicher geschickt verwaltet, muss man auch nicht immer die vollen 8 Bytes für Datum/Uhrzeit usw. speichern. Da kann man auch noch was sparen.

    So lange der Strom nicht ausfällt, hat der Arduino natürlich auch reichlich RAM als Speicher. Wenn er am Netz hängt und zur Sicherheit noch ein Pufferakku dran ist, reicht das wahrscheinlich auch. Ein Mega/Mega2560 hat 4 KByte EEPROM und 8 KByte SRAM.

    Noch einfacher ist es vielleicht mit einem SD-Card-Modul - bis zu 2 GB soll man damit speichern können. Das klingt doch nicht schlecht.

    Von Adafruit (und anderen) gibt es komplette Datenlogger-Shields, passned für Arduino Uno/Mega und andere mit RTC und CD-Card.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

    2 Mal editiert, zuletzt von Gnom (7. Februar 2020 um 16:16)

  • Da der Pi wohl sowieso 24/7 laufen wird, und alles über eine Spannungsquelle versorgt wird, die eventuell eine USV bekommt, werden keine Daten verloren gehen können. Nur bei Updates werden halt mal maximal ein paar Stunden keine Daten geliefert,was nicht allzu schlimm ist. Kann man pro GPIO pro einen Sensor anschließen und die Spannungsversorgung dieser auf nur einem Pol anschließen, oder muss ich dabei irgendwas beachten? Ab wieviel Sensoren wird es sich ungefähr lohnen dafür einen Arduino zu verwenden?

    Wenn das WLAN ausfällt, werden die Daten in der Website dann automatisch aktualisiert wenn es wieder da ist? :denker:

    Linux hasn´t windows

  • Du musst dein Projekt gliedern in mehrere Unterpunkte, und dafür die Antworten liefern (dir selbst)

    • Sind alle Messpunkte via Kabel erreichbar (wenn ja evtl mit Pi umsetzbar)
    • Soll der Server 24/7 laufen
    • Willst du es mit Grafana umsetzen?
    • Welche Sensoren kommen zum Einsatz?

    Nur bei Updates werden halt mal maximal ein paar Stunden keine Daten geliefert,was nicht allzu schlimm ist.

    Welches Update willst du denn machen? Keine Angst dauert in der Regel nicht so lange.


    b wieviel Sensoren wird es sich ungefähr lohnen dafür einen Arduino zu verwenden?

    Kommt auf die Fragen oben an. Wenn alles Zentral vom Pi weg verkabelt werden kann gar nicht.


    Wenn das WLAN ausfällt, werden die Daten in der Website dann automatisch aktualisiert wenn es wieder da ist?

    Kommt auch wieder drauf an, wenn alles verkabelt ist, ist WLAN in dem Fall unwichtig.


    : Welchen Raspberry pi soll ich verwenden bzw. wieviel RAM brauchen die beiden Programme?

    Wenn mit Grafana und DB würd ich zu nem 4er greifen. Ist auf alle Fälle zukunftsfähtig. Wegen RAM :conf: schwierig zu sagen, ich hab meinen 3er jetzt außer Dienst genommen und mit nem 4er ersetzt (4 GB). Dort lief WeeWx, Homematic, Homebridge, openhab2 und paar mini Skripte. Aber wie gesagt das ist wieder Einsatzabhängig.

  • Moin!

    Nur zur Info.

    Raspberry pi 3B mit einem GB Speicher, Grafana und influxDB. Rennt seit einem Monat. Webseite und Abfragen werden ohne Verzögerungen ausgeführt.

    Bei einem Einsatz von einem Arduino kann man eine serielle Verbindung nutzen.

    Habe nur, im Moment, keine Idee wie die Daten dann in die Datenbank kommen....


    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!