Auf dieser Seite geht es um den Baufortschritt meiner “Smart Home”-Lösung für Wohnmobile, Wohnwägen und Camper Vans – OpenSRV. Hier werden alle Links zu den Unterseiten veröffentlicht, sodass diese Seite Dir perfekt als eine Art “Einstiegsseite” dient!
Ziel soll es sein, dass Du mit relativ einfachen Mitteln eine eigene Smart-Home-Lösung für Dein Reisemobil realisieren kannst. Okay, ein wenig Erfahrung mit Mikrocontrollern und löten ist natürlich vorausgesetzt 😉
- SmartRV OpenSRV – der Name
- Die Funktionen
- Steuerung per Smartphone
- Aktualisierungen des Projekts
- Update 07.07.2020
- Update 02.07.2020
- Update 30.06.2020
- Erste Bilder
- Bilder, die Zweite
- Der Mikrocontroller
- Die Sensoren
- Innenraum Temperatur und Luftfeuchtigkeit
- Außentemperatur
- Die Programmierung
- Änderungen der Seite
- Info
SmartRV OpenSRV – der Name
Jedes Kind benötigt einen Namen, so nenne ich mein Projekt “SmartRV“. Das “RV” kommt aus dem amerikanischen und bedeutet so viel wie “recreational vehicle” (wörtlich übersetzt: Freizeit Fahrzeug). Auch wenn es sich eher auf Wohnmobile bezieht, so kann es meiner Meinung nach auch für Wohnwägen gelten 🙂
Übersetzt man “recreational”, so könnte man auch sagen, dass es etwas “wiederherstellt”. Also Lebensgefühl, Gesundheit, etc. – Du verstehst, was ich meine 🙂
Update: Der Name “SmartRV” ist schon belegt. Leider. Das Projekt nenne ich ab jetzt “OpenSRV”!
Die Funktionen
Grundsätzlich soll alles einfach aufgebaut und leicht nachvollziehbar sein. Eventuell werde ich an den ein oder anderen Stellen zwar Kompromisse eingehen müssen, aber lieber einfach und “nachbaubar”, als komplex und teuer (Fehler korrigiert; ein Dank an Bodo)!
- Innenraum Temperatur und Luftfeuchtigkeit
- Außen-Temperatur
- Wasserwaage zum Ausrichten des Fahrzeugs
- Taster, um Verbraucher ein- und auszuschalten
- Frischwasser-Stand
- Spannung der Aufbau-Batterie
- Kleines Display (eventuell OLED), um aktuelle Werte ablesen zu können
- Steuerbar via Smartphone-App
- …und noch vieles mehr! Hast Du noch eine Idee, was das OpenSRV machen können soll? Dann schreibe mir über die Kontakt-Seite!
Steuerung per Smartphone
Ich möchte das ganze System auf Bluetooth-Basis aufbauen. Ein Hauptgrund, was gegen WLAN/WiFi spricht, ist folgender: Stell Dir vor, Du bist auf einem Campingplatz und bist mit dem dortigen WLAN verbunden. Um jetzt beispielsweise ein Licht ein- oder auszuschalten müsstest Du zuerst das WLAN-Netz wechseln – auf die SmartRV. Danach kannst Du erst die Lampe einschalten. Dann wieder zurück zum normalen WLAN-Netz. Das ist nervig! Wenn die Übertragung über Bluetooth stattfindet, so kann eine Internetverbindung und die Steuerung der SmartRV gleichzeitig stattfinden!
Aktualisierungen des Projekts
Ich schreibe hier nach und nach ein paar Updates zum Projekt. Wenn Du schneller und frischere News erhalten willst, dann trete doch meiner Facebook-Gruppe bei! Hier ist der Link direkt zur Facebook-Gruppe: “OpenSRV by CampingTech” (ext. Link; öffnet sich in einem neuen Fenster).
Update 07.07.2020
GitHub muss man erstmal verstehen… Ich glaube, ich habe es nun halbwegs verstanden! Kurzum: Ich habe jetzt nur noch ein Repository für alles, was OpenSRV betrifft!
Hier der Link: https://github.com/rbrixel/opensrv (ext. Link; öffnet sich in einem neuen Link)
Update 02.07.2020
Ich habe gerade mal diverse grundlegende Funktionen getestet. Also konkret das Thema MQTT und Arduino OTA-Update. Vorab: Funktioniert!
Das ist schon echt was Feines! Wenn der ESP nachher mehr oder minder inrgendwo fest eingebaut ist, dann kommst Du echt nicht mehr an den USB-Anschluss, um ihn neu zu flashen, falls ein Update ansteht. Mit dem ArduinoOTA kannst Du über das Netzwerk die Firmware auf den ESP übertragen! Das ist so genial!
Auf dem Raspberry Pi Zero W läuft akutell der moquitto MQTT-Broker, der die Daten empfängt, aber auch senden kann. Innerhalb meines kleinen Versuchsaufbau sendet der ESP32 die Werte des DHT11 Temperatur- und Luftfeuchtigkeits-Sensors über WLAN an den MQTT-Broker auf dem RasPi. Im Interval von 5 Sekunden fliegen neue Daten rein!
Ich habe aber festegestellt, dass der ESP32 nicht immer einen korrekten Wert per MQTT überträgt. Ab und an kommt als Wert “NaN” an, was soviel bedeutet wie “not a number”. Das muss nochmal geprüft werden! Eventuell werde ich vor dem Senden eine Plausibilitätsprüfung einbauen, sodass bei einem falschen Wert der alte Wert erneut gesendet wird.
Update 30.06.2020
Grundsätzlich wird das “Gehirn” ein Raspberry Pi werden. Er enthält einen sogenannten “MQTT-Broker”. Das MQTT-Protokoll ist der Quasi-Standard für IoT-Applikationen (“Internet of Things”; vernetzte Elektronik). Im WLAN hängen dann noch diverse ESP32-Microcontroller, welche Status senden und Befehle empfangen können. Der riesige Vorteil von MQTT ist, dass sich das System relativ leicht erweitern lässt, da ich mir keine keine Gedanken über die Datenübertragung machen muss. Einfach Strom ran und fertig! Die Microcontroller sollen sich per “Over-The-Air-Update” über das Netzwerk aktualisieren lassen, sodass man nicht den Laptop per USB mit dem ESP verbinden muss. Das alles wird durch eine Smartphone-App abgerundet, welche über Bluetooth kommuniziert. Soviel mal zur kurzen Zusammenfassung.
Da ich nach dem Quellcode gefragt wurde – es ist ja schließlich Open-Source – habe ich ein GitHub-Repository eingerichtet. GitHub ist eine kostenlose Stelle im Internet, wo Quellcode abgelegt werden kann. Des Weiteren werde ich einen kompletten Projekt-Download hier auf der Seite anbieten, sobald es einen ersten Stand gibt. Für alle Interessierten muss bis dahin erstmal GitHub reichen!
Die Dachfenster-Lüfter-Steuerung wird die erste aktive Komponente des Systems. Den Quellcode für den Microcontroller, sowie einen schematischer Schaltplan findest Du auf meinem GitHub-Repository: https://github.com/rbrixel/skylight-fan-control (ext. Link; öffnet sich in einem neuen Fenster).
Als erstes Sensor-Modul, welches nur Daten sendet und keine Befehle empfängt, steht das Temperatur- und Luftfeuchtigkeits-Modul parat. Den exemplarischen Quellcode findest Du ebenso auf GitHub: https://github.com/rbrixel/nodetemphumi01 (ext. Link; öffnet sich in einem neuen Fenster).
Edit: Ich habe mich ein bisschen mehr mit GitHub beschäftigt und habe jetzt nur noch ein – gesammeltes – Repo! Siehe Update vom 07.07.2020!
Hier der Link zum main-repo auf GitHub: https://github.com/rbrixel/opensrv (ext. Link; öffnet sich in einem neuen Link)
Fällt Dir noch was ein, was fehlt oder hast Du sogar vielleicht eine Ergänzung? Dann schreib mir über die Kontaktseite, per Facebook- oder Instagram-Nachricht, sowie auch gerne per E-Mail! Ich freue mich über jede Nachricht!
Erste Bilder
Das ist der aktuelle Versuchsaufbau mit dem ESP32, einem OLED-Display, dem DHT22- und dem DS18B20-Sensor:
Eine Nahaufnahme des Displays mit der Ausgabe ber Temperatur-Werten, sowie der Luftfeuchtigkeit:
Ich habe mal testweise den wasserdichten Außen-Temperatursensor ins Eisfach meines Kühlschranks gesteckt, um zu sehen, wie sich die Anzeige mit negativen Werten verhält. Ich würde sagen: Test bestanden!
Die Werte kommen auch schon auf das Smartphone! Dazu verwende ich aktuell die kostenlose App “Serial Bluetooth Terminal” von “Kai Morich”. Es geht mir erst Mal darum, zu sehen, ob der ESP32 die Daten korrekt senden kann. Und ja… ich kann ja noch gar keine Android-Apps in Kotlin programmieren 😀
Bilder, die Zweite
So Leute! Ich hab mal wieder Zeit gefunden, an OpenSRV weiterzubasteln (24.11.2019)!
Ich habe jetzt eine externe Stromversorgung hinzugefügt, die 12 Volt liefert – ähnlich also, wie im Wohnmobil oder im Wohnwagen!
Des Weiteren ist noch ein Modul mit vier Relais hinzugekommen, sodass damit Verbraucher geschaltet werden können. Mit diesem Modul können 230V Wechselspannung mit bis zu 10 Ampere geschaltet werden!
Um am Terminal (was noch fehlt) die Relais auch ohne Smartphone ein- bzw. auszuschalten, gibt es noch fünf Taster. Vier davon sind für die Relais und einer ist für das Display bzw. als Eingabequelle gedacht.
Ich kann also jetzt die Verbraucher über die Relais per Taster oder per App ein- bzw. ausschalten. Geplant ist noch eine “Fernsteuerung”, die kein Smartphone benötigt.
Hier sieht man nochmal das Relais-Modul mit seinen Relais in einer etwas größeren Auflösung.
Auch sendet die Elektronik nun über Bluetooth (noch vorerst) einen weiteren Parameter: R1. Er steht für “Relais 1”. Der WErt hinter dem Doppelpunkt steht für ein- bzw. ausgeschaltet.
Auch mit den Shortcuts in der Bluetooth-Terminal-App kann ich jetzt das Relais nahezu ohne Zeitverzögerung ein- bzw. ausschalten. Daszu habe ich den Shortcut “r1_on” und “r1_off” angelegt.
Der Mikrocontroller
Als Basis soll ein “ESP32” (auch “NodeMCU32” genannt) von espressif eingesetzt werden. Dieser Mikrocontroller ist sehr leistungsstark und günstig. Er kostet um die 10 Euro und hat folgende Leistungsmerkmale:
- Dual-Core Prozessor (2x Tensilica-LX6-Kerne, getaktet mit bis zu 240 MHz)
- RAM: 512 Kilobyte SRAM
- WLAN-Modul (802.11 b/g/n; WPA2; OTA-Update-Funktion)
- Bluetooth-Modul (Classic und “Low Energy”)
- 4 MB oder 8 MB Programmspeicher
- 32 Pins GPIO (u.a. UART, I2C, SPI, DAC und ADC (12 Bit))
- Lässt sich entspannt über die Arduino IDE programmieren
Hier gibt es den ESP32 bei Amazon: https://amzn.to/2J9tlFy (ext. Link*)
Die Sensoren
Ja, da gibt es ja Möglichkeiten wie Sand am Meer! Hach ja… Meer… 🙂
Meine aktuelle Ideensammlung sieht wie folgt aus:
Innenraum Temperatur und Luftfeuchtigkeit
Dazu soll ein DHT22/AM2302 eingesetzt werden.
- Betriebsspannung: 3,3 Volt bis 5 Volt
- Feuchtemessgenauigkeit: ±2% RH
- Temperaturbereich: -40 °C bis +80 °C
- Temperaturmessgenauigkeit ±0.5
- Single-Bus – Digitalsignalausgang mit bidirektionale seriellen Daten
Es kostet ca. um die 7 Euro – das lohnt sich aber! Er hat einen besseren Temperatur- und Luftfeuchtigkeitsbereich gegenüber dem günstigeren DHT11!
Link zu Amazon: https://amzn.to/2VZxi4P (ext. Link*)
Außentemperatur
Dazu soll ein wasserdichter Temperatur-Sensor eingesetzt werden! Und ganz ehrlich: Zu wissen, wie draußen die Luftfeuchtigkeit ist.. Naja.. das brauchst Du nicht 🙂
Zum Einsatz kommt ein DS18B20 Sensor. Folgende technischen Daten hat er:
- Der Sensor befindet sich in einem Edelstahl-Gehäuse (6 * 30mm)
- Temperatur-Bereich von -55 °C bis 125 °C
Einer kostet um die 3 Euro und kann entspannt über Amazon bezogen werden: https://amzn.to/2pzVcIj (ext. Link*)
Die Programmierung
Der Mikrocontroller soll über die Arduino IDE in der Programmiersprache “C” programmiert werden. Klar, es gibt auch bessere Entwicklungsumgebungen, aber gerade für Anfänger ist die Arduino IDE perfekt geeignet, da es dazu Anleitungen im Internet zu Hauf gibt!
Die Smartphone-App (vorerst nur für Android) soll über das kostenlose “Android Studio” in der Programmiersprache “Kotlin” programmiert werden. Kotlin selbst ist sehr modern und wird von Google/Android als die Programmiersprache Nummer Eins deklariert, wenn es um Android-Entwicklung geht!
Ganz ehrlich… eine komplett neue Programmiersprache zu lernen ist mir jetzt ein wenig zu viel 🙂 Ich werde die Smartphone-App auf Basis von “PhoneGap” programmieren. Somit entwickel ich die App nur einmal in HTML, CSS und JavaScript und kann sie auf Android und Apple iOS nutzen.
Änderungen der Seite
30.06.2020: Kapitel “Aktualisierungen” hinzugefügt und Verweis auf die Facebook-Gruppe erzeugt.
24.11.2019: Kapitel “Bilder, die Zweite” erstellt, sowie Absatz bei Smartphone-App unter Programmierung aktualisiert.
21.10.2019: Erste Version der Seite erstellt!
Info
Für eventuell auftretende Schäden übernehme ich keine Haftung. Für alle von Dir durchgeführten Tätigkeiten haftest nur Du allein. Alle Angaben ohne Gewähr oder Garantie.
Die mit * gekennzeichneten Links sind sogenannte Affiliate Links. Kommt über einen solchen Link ein Einkauf zustande, werde ich mit einer Provision beteiligt. Für Dich entstehen dabei keine Mehrkosten. Wo, wann und wie Du ein Produkt kaufst, bleibt natürlich Dir überlassen. Wenn Du über den Affiliate-Link kaufst, dann unterstützt Du mich in meiner Arbeit hier auf CampingTech. Danke!