HTTP Actor / Sensor für CBPi Projektvorstellung
Verfasst: Freitag 12. Oktober 2018, 10:37
Hallo liebe Braufreunde,
ich habe mein aktuelles Projekt fast fertig gestellt und möchte es hier einmal vorstellen.
Mich interessiert vor allem, ob ihr daran Interesse habt, dann könnte ich es ausführlich dokumentieren, oder ob ihr noch Anregungen habt was zu implementieren wäre.
Zunächst einmal möchte ich mich bei JollyJumper bedanken, der mich a) auf die Idee gebracht hat und mir b) mit der Zusendung seines Arduino Sketches auch den Grundstein gelegt hat. Nun ist das Projekt allerdings "etwas" weiter ausgeufert als ich geplant hatte, aber seht selbst:
Basis (Hardware): Ein Wemos D1 Mini, DS18B20 Sensoren, und eine einfache Relaiskarte, hier mein Test-Setup (mit Bildschirm, der aber eigentlich nicht gebraucht wird) Die Idee: Ein Webserver einrichten, über den der Sensor / Actor eingerichtet werden kann, ohne den Arduino Code modifizieren zu müssen.
Das Ergebnis:
Beim ersten Start wird ein AP eingerichtet, in dem man das WiFi, sowie den CBPi Host konfigurieren kann: Ist das erledigt, verbindet sich der MC mit dem WLan und startet einen Server. Mit dem Browser kommt man wie beim CBPi auf die Oberfläche, welche die eingerichteten Sensoren und deren Wert, sowie die Aktoren und deren Status darstellt: Hier gibt es auch die Varianten "Edit" und "Add", mit welchen Aktoren (bis zur Anzahl der verfügbaren Pins, also maximal 5 bzw. 7 wenn man auf das Display verzichtet) oder Sensoren (Eigentlich egal wie viele, ich hab sie derzeit auf 10 beschränkt) bearbeitet und hinzufügt werden können.
Der Sensor bedient das HTTPSensor Plugin von CBPi, in dem die (auf der Oberfläche dargestellte) URL /sensor1/value angewählt wird. Das Klappt auch sehr zuverlässig.
Andersherum kann das HTTPActor Plugin den Controller steuern, indem die gesetzten Werte (ebenfalls dargestellt) angewählt werden. also z.B. 192.168.178.101/actors?D0=ON
Es können auch mehrere gleichzeitig geschaltet werden, z.b. mit /actors?D0=ON&D5=ON oder mit /actors?D0=ON&D5=OFF, ich nutze das z.B. um Phase und Neutralleiter gleichzeitig zu schalten.
Die Config-Informationen werden im internen Speicher in einer json-Datei abgelegt, sodass diese nach einem Neustart nicht neu eingerichtet werden müssen. Die WLAN Infos bleiben selbstverständlich ebenfalls gespeichert, jedoch nicht in der JSON-Datei sondern im EEPROM, sodass diese nicht im klartext ausgelesen werden können.
Ich bin gespannt was ihr davon haltet!
ich habe mein aktuelles Projekt fast fertig gestellt und möchte es hier einmal vorstellen.
Mich interessiert vor allem, ob ihr daran Interesse habt, dann könnte ich es ausführlich dokumentieren, oder ob ihr noch Anregungen habt was zu implementieren wäre.
Zunächst einmal möchte ich mich bei JollyJumper bedanken, der mich a) auf die Idee gebracht hat und mir b) mit der Zusendung seines Arduino Sketches auch den Grundstein gelegt hat. Nun ist das Projekt allerdings "etwas" weiter ausgeufert als ich geplant hatte, aber seht selbst:
Basis (Hardware): Ein Wemos D1 Mini, DS18B20 Sensoren, und eine einfache Relaiskarte, hier mein Test-Setup (mit Bildschirm, der aber eigentlich nicht gebraucht wird) Die Idee: Ein Webserver einrichten, über den der Sensor / Actor eingerichtet werden kann, ohne den Arduino Code modifizieren zu müssen.
Das Ergebnis:
Beim ersten Start wird ein AP eingerichtet, in dem man das WiFi, sowie den CBPi Host konfigurieren kann: Ist das erledigt, verbindet sich der MC mit dem WLan und startet einen Server. Mit dem Browser kommt man wie beim CBPi auf die Oberfläche, welche die eingerichteten Sensoren und deren Wert, sowie die Aktoren und deren Status darstellt: Hier gibt es auch die Varianten "Edit" und "Add", mit welchen Aktoren (bis zur Anzahl der verfügbaren Pins, also maximal 5 bzw. 7 wenn man auf das Display verzichtet) oder Sensoren (Eigentlich egal wie viele, ich hab sie derzeit auf 10 beschränkt) bearbeitet und hinzufügt werden können.
Der Sensor bedient das HTTPSensor Plugin von CBPi, in dem die (auf der Oberfläche dargestellte) URL /sensor1/value angewählt wird. Das Klappt auch sehr zuverlässig.
Andersherum kann das HTTPActor Plugin den Controller steuern, indem die gesetzten Werte (ebenfalls dargestellt) angewählt werden. also z.B. 192.168.178.101/actors?D0=ON
Es können auch mehrere gleichzeitig geschaltet werden, z.b. mit /actors?D0=ON&D5=ON oder mit /actors?D0=ON&D5=OFF, ich nutze das z.B. um Phase und Neutralleiter gleichzeitig zu schalten.
Die Config-Informationen werden im internen Speicher in einer json-Datei abgelegt, sodass diese nach einem Neustart nicht neu eingerichtet werden müssen. Die WLAN Infos bleiben selbstverständlich ebenfalls gespeichert, jedoch nicht in der JSON-Datei sondern im EEPROM, sodass diese nicht im klartext ausgelesen werden können.
Ich bin gespannt was ihr davon haltet!