03.09.2015

Bluetooth-Wetterstation mit dem TI Sensortag

Neue Version der Wetterstations-Software

Vor einiger Zeit wurde hier eine Anleitung zum Bau einer Wetterstation mit dem TI-Sensortag gepostet.

Nachdem man  nicht mehr einfach einen kostenlosen TempoDB-Account bekommen kann, ist es Zeit, für eine zweite Version der Wetterstationssoftware für das Texas-Instruments-Sensortag. Sie nutzt  nun den Service von thingspeak.com zum Speichern und Visualisieren der Messdaten. Zusätzlich wird eine neue verbesserte Firmware für das Sensortag eingesetzt.

Beispiel: Livedaten im iFrame via Thingspeak.com



Sensortag von Texas-Instruments

Wichtig: diese Anleitung ist für die alte Version des TI-Sensortag, nicht die neue Version (Simplelink Sensortag)

Die Hardware bleibt gleich, wir verwenden auch das alte Wetterhäuschen aus der alten Anleitung.

Das TI-Sensortag (Version 1) enthält jede Menge Sensoren, die eigentlich schon eine komplette Wetterstation sind. Neben dem Thermometer gibt es einen Luftdrucksensor, einen Luftfeuchtigkeitssensor und (hier weniger relevante) Magnetfeld und Beschleunigungssensoren.

Problematische Firmware

Das Sensortag hat zwei Probleme
  • der Stromverbrauch ist relativ hoch, d.h. die eingebaute Knopfzelle hält nur wenige Wochen
  • Es baut den Kontakt zur Basisstation nicht von selbst aus: man muss einen Knopf auf dem Sensortag drücken, wenn der Kontakt verlorengeht. Das ist sehr schade wenn man den Kontaktverlust nicht bemerkt, dann werden keine Werte mehr gemessen.

Schritt 1: Neue Firmware aufspielen

Beide Probleme werden durch die myWeasthercenter-Firmware gelöst, die man per App auf das Sensortag aufspielt.

Externe Batterie

Zusätzlich habe ich die Knopfzelle des Sensortag durch zwei hintereinandergeschaltete Monozellen ersetzt, die haben eine etwa 100 Mal so große Kapazität (20000 mAh), wie die Knopfzelle. Mal sehen, wie lang das hält..

Schritt 2: Bluetooth-Low-Energy-Untertützung am Raspberry Pi

Das TI-Sensortag liefert seine Daten über Bluetooth-Low-Energy. Die Daten sendet es bei meinem Stup an einen Raspberry Pi, für den man einen USB-Bluetooth-Low-Energy-Dongle braucht. Ich habe das Plugable usb-bt4le-Dongle verwendet.

Hier muß man eine neuere Version des Bluez-Bluetooth-Stacks für Linux selbst kompilieren, um BLE-Support zu erhalten. Wie das geht, hat Michael Saunby beschrieben.

Schritt 3: BluePy-Library kompilieren

Um von Python-Scripten auf BLE-Funktionen zugreifen zu können, barucht man die BluePy-Library, die man selbst kompilieren muß.

Schritt 4: API-Key auf thingspeak.com besorgen

Dieses Projekt nutzt thingspeak.com, um die Daten zu speichern und zu visualisieren. Dazu muß man sich dort einen kostenlosen Account beantragen und kann dann sogenannte Channels anlegen. Für den Channel bekommt man einen API-Key. Einzige Einschränkung eines kostenlosen Accounts ist, daß man max. alle 15 Sekunden Werte auf thingspeak.com speichern kann, was für unsere Zwecke locker ausreicht.

Schritt 5: Script installieren

Auf GitHub gibt es ein fertiges Python-Script (sensortag-thingspeak-cron.py zur Einbindung in Shell-Script) von mir. dazu müssen noch folgende Konfigurationswerte im Script eingetragen werden:
  • THINGSPEAK_APIKEY: API-Key aus Schritt 4
  • TAG_ID: Bluetooth-Adresse des Sensor Tag, kann mit "hcitool lescan" ermittelt werden
  • HEIGHT: Höhe des Standorts in Metern über Meereshöhe (wird zur Berechnung des Luftrucks benötigt)
Es ist noch ein Shell-Script beigelegt, das beim Aufruf eine evtl. laufendes Helper-Script beendet, bevor es das Python-Script startet. 

Ergebnis

Die Daten werden auf Thingspeak.com gespeichert, dort kann man sie sich  in einer konfigurierbaren Chart ansehen. Die Charts können per iFrame ingebunden werden. Wem das nicht reicht, kann sich die Daten von thingspeak.com auch via Webservice holen und selbst Diagramme bauen.

Luftdruck live im iFrame

 

 Luftfeuchte live im iFrame

 

Links





Keine Kommentare:

Kommentar veröffentlichen