Fischertechnik AVR Raspberry Pi Elektronik Netzwerk Sonstiges Impressum |
Particle P0 PhotonKurzbeschreibungDas Modul hat 24 Anschlüsse (dual inline), also DIP24. Acht digitale Ein-/Ausgänge, sechs analoge, Tx/Rx, Reset und Strom. Im einfachsten Fall erfolgt die Stromversorgung über den eingebauten USB-Anschluss.Der Clou ist das integrierte WLAN-Modul. Für mein Interesse war die Möglichkeit das Modul in einen Tiefschlaf versetzen zu können mit ausschlaggebend. Stromverbrauch dann unter 0,01 mA. Am USB-Port unter LinuxDie liebgewonnen Ausgaben Serial.print() und so fort funktionieren unter Linux auf Anhieb. Nach dem Anstecken des Moduls gibt es /dev/ttyACM0, das zum Beispiel mitstty -F /dev/ttyACM0 9600 eingestellt werden kann.
Mit cat /dev/ttyACM0 werden dann die Ausgaben
dargestellt.
ErstinbetriebnahmeDie Erstinbetriebnahme ist sofort gelungen, erfordert aber ein echtes Umdenken.
Erste Internet-AnwendungFällt die Heizung in Abwesenheit aus, besteht das Risiko, dass das Heizungswasser in den Rohren friert und die Rohre platzen. Nach dem Auftauen läuft die Brühe dann ins Haus.Unabhängig von der Eintrittswahrscheinlichkeit fährt sich leichter weg, wenn im Internet zu sehen ist, dass alles in Ordnung ist. Der Schaltungsansatz war einfach: Ein Photon, mindestens zwei Temperaturfühler auf Basis DS18B20 und eine Internetanbindung, um die gemessenen Temperaturen auch aus der Ferne betrachten zu können. Dabei sollten die Daten im Internet gespeichert werden, damit das Modul die meiste Zeit, nahezu ohne Stromverbrauch, schlafen kann. Die Luxusvariante überwacht dann noch die Außentemperatur und einen Raum im Haus. RealisierungDer Platinenabschnitt im Bereich der WLAN-Antenne sollte uneingeschränkt frei bleiben, deshalb habe ich nur die Ports D5 und A5 genutzt und kam mit einem kleinen Streifen Lochrasterplatine aus.Tatsächlich nutze ich VIN und GND (ich zähle das mal als Pin 1 und Pin 2), A5 (Pin 7), D5 (Pin 18), GND (Pin 21) und 3V3 (Pin 24). An VIN und GND habe ich die Möglichkeit einen meiner Einzellen- LiPos direkt anzuschließen. A5 nutze ich als digitalen Eingang mit Pullup. Über einen Jumper kann ich den Tiefschlaf verhindern und so das Modul auch mal neu programmieren. Auf der anderen Seite habe ich ein Pfostenfeld 4x3 (Platz ist für 5x3) für den Anschluss der Temperatursensoren aufgelötet. Die mittlere Reihe ist an 3V3, die dem Modul zugewandte Reihe an GND und die abgewandte Reihe ist an D5 und über einen 4k7 Pullup mit 3V3 verbunden. Das Modul gibt es in zwei Varianten; hier habe ich die "no headers"-Variante eingesetzt. Zur Montage habe ich Sockelleisten verwendet, die gerade so durch die Modulplatine und die Lochrasterplatine reichen. Auf diese Art und Weise spare ich Platinenfläche und kann trotzdem zu Mess- oder Erweiterungszwecken alle Anschlüsse leicht abgreifen. Diese kompakte Bauweise hat den Nachteil, dass die Taster auf dem Modul nicht mehr gut bedienbar sind. Darüberhinaus sind die Lötstellen zwischen Sockelleiste und Modul nur schwer kontrollierbar und auf der fertigen Platine kaum nachzulöten. QuelltextWer die Sensoren unter Arduino schon benutzt hat, kommt sofort klar. Das Standard-Beispiel läuft auch auf dem Photon. Da Fehlmessungen zum Leben dazugehören, mache ich fünf Messungen und verwerfe den kleinsten und größten Wert. Die verbleibenden mittele ich.Der Aufruf des Web-Zugriffs einschließlich Parameterübergabe sollte selbsterklärend sein. Im Quelltext hat der Web-Server die IP-Adresse 1.2.3.4 und heißt host.domain.
Akku-BetriebDie sehr platzsparende Montagevariante der ersten Versionen habe ich inzwischen abgewandelt und hier einen Photon mit Stiftleisten eingesetzt; die Sockelleisten gibt es weiterhin und verbreitern das Design entsprechend um maximal die zwei zusätzlichen Reihen.Weiterhin bleibt die Steuerung über A5: Steckbrücke gesteckt verhindert die Schlafphasen und ermöglicht die Neuprogrammierung. Entgegen den ersten Versionen wird der Pin A5 jetzt analog genutzt. Zwischen V_IN und GND ist ein Spannungsteiler, der Eingangsspannungen bis 5 V auf Werte bis 3,3 V herunterteilt. Konkret 1000 kΩ zwischen GND und A5 und dann eine Reihenschaltung aus 470 kΩ und 100 kΩ von A5 zu V_IN. Mit diesen Werten wird eine Eingangsspannung von 5,181 V auf 3,3 V am Pin A5 gewandelt; der zugehörige Strom liegt dann bei 3,3 μA. Die Auflösung beträgt ca. 1,3 mV und teilt den Spannungsbereich der eingesetzten LiIon-Akkus in über 700 Stufen. Auf dem Bild durch die Steckbrücke verdeckt, ist noch ein Kondensator parallel zum 1000 kΩ-Widerstand; 100 nF aus der Grabbelkiste. Sinn und Zweck ist eine stabile, niederohmige Bereitstellung der Spannung am analogen Eingang. Hintergrund ist das Messverfahren im Prozessor. Dieser lädt vor der eigentlichen Messung einen internen Kondensator über den ausgewählten analogen Eingang. Die gewählten Widerstandswerte im Spannungsteiler sind zwar Akku-schonend, aber viel zu hoch um diesen Kondensator zu laden. Mit dem Zusatzkondensator wird dieses Problem einfach umgangen. Akku-KapazitätDie Messung erfolgt mit der aktuellen Software ca. alle 10 Minuten. Bei zwei angeschlossenen Sensoren ist das Board dafür jeweils knapp 20 Sekunden eingeschaltet. Pro Tag sind das also ca. 24*6*20 Sekunden oder 0,8 Stunden. Die Stromaufnahme liegt bei ca. 100 mA; pro Tag wird demnach eine Akkukapazität von 80 mAh benötigt.Mit einer Standardzelle 18650 mit 2600 mAh sollte ein Monat Laufzeit leicht möglich sein. In Realität gibt es immer wieder Internet-Probleme, die in Kombination mit einem wohl noch immer vorhandenen Firmwarebug, dazu führen können, dass das Modul stundenlang hängt. In der aktuellen Software wird deshalb nach einer Minute Laufzeit der 10-minütige Tiefschlaf gestartet. Es sieht so aus, als wäre das Problem so dauerhaft umgangen. Klippenkein WLANMit meinem zweiten Photon hatte ich Pech. Er wollte partout nicht ins Netz und war damit quasi wertlos. Dieses Problem hatten vor mir schon einige und in einem Forum stand dann auch die Lösung für solche Probleme. Ursache war wohl ein defekter Schlüssel. Dieser lässt sich mit den folgenden Schritten beseitigen:
particle keys doctor <ID> .
Dieses erfordert alle o.a. Tools, spart aber die einzelnen Aufrufe.
|