Firmware Sensormodule
Vom Benutzer vorgegebene Einstellungen wie das Sende- oder Messintervall werden in einen nichtflüchtigen Speicher geschrieben. Die controllerinterne UART-Schnittstelle wird auf 115200 Baud eingestellt. Zum Senden werden der Schnittstelle die Daten in Form einer Zeichenkette übergeben. Der Empfang erfolgt in einer Interrupt-Routine, in der die empfangenen Bytes in einen FIFO übertragen werden.
Bei der Initialisierung der Sensormodule wird die verwendete Schnittstelle automatisch ausgewählt Dazu erfolgt die Messung der Versorgungsspannung vor dem Spannungsregler. Beträgt diese 3,3 V so ist das Sensormodul an das Gateway angeschlossen, der UART/USB-Wandler wird durch den Multiplexer umgangen. Wenn die Versorgungsspannung 5 V beträgt, wird die Kommunikation durch den Multiplexer über den UART/USB-Umsetzer geroutet.
Programmablauf Sensormodule
Der Programmablauf der Sensormodule besteht im Wesentlichen darin, dass nach der Initialisierung, die Sensoren abgefragt werden. Dies geschieht entweder nach Ablauf eines eingestellten Sendeintervalls oder nach Auftreten eines detektierten Ereignisses. Danach werden die Messwerte prozessiert und an das Gateway oder den PC übertragen. Befindet sich das Sensormodul im Drahtlosmode, wird der Controller zwischen den Messungen in den Sleepmode versetzt um die Stromaufnahme zu reduzieren. In den Betriebsarten UART bzw. USB bleibt der Controller eingeschaltet, um über die Schnittstelle Befehle entgegen nehmen zu können.
Energiebedarf Sensormodule
Die Stromaufnahme der Sensormodule wird zu großen Teilen durch die Software beeinflusst. Dabei ist es wichtig, zwischen den Messungen die Sensoren und der Controller in den Ruhezustand versetzt werden. Als interne Zeitbasis eignet sich der im Controller interne 32,768 kHz-Quarzoszillator, der im vordefinierten Abstand den Controller aufweckt. Die durchschnittliche Stromaufnahme liegt dabei bei im Ruhezustand bei wenigen µA. Während des aktiven Zustands werden einige mA benötigt. Dies hängt im Wesentlichen vom verwendeten Sensor und von der Anzahl der übertragenen Beacon-Pakete ab. Mit einer handelsüblichen USB-Powerbank mit einer Kapazität von 2000 mAh lässt sich somit ein Sensormodul etliche Monate lang betrieben.