Inhaltsverzeichnis
Mess-Daten einsammeln mit AmForth
Temperaturen, Luftfeuchten, Luftdruck und vielleicht noch den Stromverbrauch einsammeln? Erich Wälde macht das mit AmForth und kleinen Platinen mit Atmega Kontrollern. Die Kontroller hängen an einem RS485-Bus und werden vom Bus-Master (perl Programm auf einem Linuxrechner) regelmäßig befragt. Die eingesammelten Daten werden in einer sqlite3-Datenbank gelagert und mit einem weiteren (perl/pgplot-) Programm auf Wunsch angezeigt.
Zutaten
- AmForth Cookbook - Code Beispiele
- AmForth Multitasker Ein Task sammelt die Messdaten ein, ein zweiter Task bedient die serielle Schnittstelle und damit auch den Datensammler.
- RS485 Bus - Mit AmForth 6.3 und später kann man sich den Assembler Teil zum Glück sparen. Das wäre noch neu zu dokumentieren.
- Sensoren via i2c, spi und 1wire werden direkt angebunden. Siehe Cookbook!
- Und weitere Code Schnippsel von Erich Wälde.
- Funkverbindungen (434 MHz ISM Band) werden ebenfalls benutzt.
Beschreibungen
Wesentliche Teile dieses Projekts sind in der Vierten Dimension vorgestellt worden. Alle Hefte findest du im 4d-Archiv.
- 4d2006-04.pdf - Adventures in Forth 2. Realisierung von Uhr/Kalender und periodischen Aufgaben1).
- 4d2008-04.pdf - Adventures in Forth 5. Organisation von Ablauf, Buchhaltung, Sensoren, Mittelwertbildung etc.
- 4d2011-01.pdf - Adventures in Forth 6. RS-485 Bus, multi processor communication mode, recognizer; alle Daten und Befehle werden werden im Klartext als Forth Source bzw. als ascii Strings übertragen - man kann problemlos mitlesen.
- 4d2011-03.pdf - Adventures in Forth 9. 434MHz ISM-Funk, FSK2) senden und empfangen.
- 4d2011-04.pdf - Adventures in Forth 10. 434MHz ISM-Funk, OOK3) empfangen, käuflichen Außentemperatur-Sensor belauschen.
- 4d2012-04.pdf - Adventures in Forth 12. Ein Füllstandsensor für die Zisterne: Ultraschall-Entfernungsmessung, 434MHz FSK Verbindung.
- 4d2013-01.pdf - Adventures in Forth 13. Der Empfänger für den Füllstandsensor.
Der Daten-Einsammler und auch das Anzeigeprogramm sind in perl
realisiert. Zumindest das Anzeigeprogramm verdient eine neue
Basis, indem man den Einsammler an vorhandene Lösungen wie z.B.
collectd
anbindet.