Das Ganze war eher nur ein kleines Wochenendprojekt, aber um es nicht zu zeigen ist es irgendwie doch zu schick geworden. Ich habe Funksteckdosen geschenkt bekommen, allerdings keine Fernbedienung dazu. Um sie benutzen zu können habe ich also die Kontrollsequenzen aus der (geborgten) Fernbedienung ausgelesen, einen Webserver auf einem ESP8266 aufgesetzt und lasse sie nun vom ESP mit einem 433MHz-Sender schalten. Gibts zwar so ähnlich schon reichlich, ein paar Besonderheiten hat das Ganze aber doch: - Die Website hat bringt einiges an CSS mit, damit sie nicht so langweilig aussieht - Die Seite ist responsive. Bedeutet: Sie wird auf einem Smartphone mit anderen Parametern als auf einem Desktop-PC dargestellt, damit sie auf unterschiedlichen Endgeräten funktioniert. - POST Requests, statt dem üblichen GET. Finde ich schöner, weil es die Adresszeile in Ruhe lässt. - Die Index-Seite wird vom Dateisystem (SPIFFS) gelesen, aber ein paar Platzhalter werden dynamisch ersetzt, damit die Buttons je nach Schaltzustand ihre Farbe ändern können und man die Infos am unteren Rand sehen kann. Das hält den Code schön sauber, weil man nicht das komplette html-Dokument als String im Sourcecode hat, und macht es einfacher, Änderungen im HTML einzubauen. Benutzt wird SPIFFS als Dateisystem und PlatformIO als Build Manager, außerdem der Arduino Core für den ESP8266. Der Code, zusammen mit ein paar zusätzlichen Infos liegt auf GitHub: https://github.com/jadeaffenjaeger/433home
:
Bearbeitet durch User
Das ist ja ein schönes Projekt; erstaunlich daß noch niemand kommentiert hat. Ist das zum Nachbau freigegeben? Leider sehe ich auf GitHub keine weiteren Infos über die Hardware. Wie ist der 433 MHz-Sender an den ESP8266 angebunden? Ist das Timing ein Problem? Ich hatte mich schon länger gefragt, ob ein ESP8266 Impulsfolgen im Bereich <1 ms erzeugen kann, ohne durch Interrupts gestört zu werden. Kann man andere Funkprotokolle hinzufügen? Ansonsten sieht das echt schick aus.
Kleiner Hinweis @Threadstarter: Ich habe eben mal die Github-Seite überflogen - meiner Vermutung nach hast Du das verwendete Protokoll leicht falsch interpretiert, auch wenn es in der Praxis keinen grossen Unterschied macht: Das letzte, vermeintlich 25ste Bit ist kein (variables) Daten-Bit, sondern besteht aus einer Zeiteinheit (bei Dir also ca. 275µs) "high" gefolgt von (üblicherweise) 31 Zeiteinheiten "low"; in den Datasheets wird das manchmal "Sync-Bit" genannt, und nach jeder Wiederholung der eigentlichen Daten gesendet. Sebastian E. schrieb: > Leider sehe ich auf GitHub keine weiteren Infos über die Hardware. Wie > ist der 433 MHz-Sender an den ESP8266 angebunden? Das geht bei allen derartigen Lösungen üblicherweise über einen beliebigen GPIO-Pin, an den ein üblicher 433MHz ASK/OOK-Transmitter angeschlossen ist, der um 1 Euro kostet. Kleines Problem dabei normalerweise: Die Sendestärke der Dinger ist umso höher, je höher die angelegte Spannung ist; Für maximale Reichweite sollten sie mit 12V betrieben werden. Da die GPIO-Pins des ESP8266 aber nur mit 3.3V arbeiten, muss man entweder den 433MHz-Sender ebenfalls mit 3.3V laufen lassen, wodurch sich die Sendestärke und Reichweise massiv reduziert, oder man muss die 3.3V-Ausgänge des ESP per Levelshifter auf 12V erhöhen. > Ist das Timing ein > Problem? Ich hatte mich schon länger gefragt, ob ein ESP8266 > Impulsfolgen im Bereich <1 ms erzeugen kann, ohne durch Interrupts > gestört zu werden. Ist meines Wissens nach kein Problem, so lange das kürzeste Timing über ca. 100µs liegt, was m.W.n nach bei allen üblichen 433MHz-Protokollen der Fall ist. > Kann man andere Funkprotokolle hinzufügen? Ja, grundsätzlich könnte man damit wohl (fast?) jedes unidirektionale Protokoll verwenden, das Infrarot- oder 433MHz ASK/OOK-Signale benutzt. > Ansonsten sieht das echt schick aus. Stimmt. Nettes kleines Projekt!
:
Bearbeitet durch User
Hallo, sehr schönes Projekt, muß ich mir mal genauer anschauen. Joachim S. schrieb: > Da die GPIO-Pins des ESP8266 aber > nur mit 3.3V arbeiten, muss man entweder den 433MHz-Sender ebenfalls mit > 3.3V laufen lassen, wodurch sich die Sendestärke und Reichweise massiv > reduziert, oder man muss die 3.3V-Ausgänge des ESP per Levelshifter auf > 12V erhöhen. Der Data-Eingang der billigen 433MHz-Sender geht üblicherweise über einen Widerstand auf die Basis eines Transistors, der dann im Kollektorkreis den Sender einschaltet. Zum Ansteuern reichten bei mir die 3,3V des ESP8266 bisher aus, die Reichweite des Senders mit 5V Betriebsspannung deckt zumindest die Funksteckdosen in einem Zimmer hier sicher ab. Ich habe einen 433MHz-Sender in einer Sonoff-WLAN-Steckdose untergebracht, Software auf dem ESP ist eine eigene (auch Arduino-IDE), Protokoll ist MQTT und am "anderen Ende" läuft ein RasPi mit Mosquitto und FHEM. Gruß aus Berlin Michael
Freut mich, dass das Projekt gefällt, und über potentielle Nachbauer freue ich mich ganz besonders! Andere Funkprotokolle hinzufügen ist kein Problem, nur eben Handarbeit. Die ganze Steuerung findet in der switches.ino-Datei statt. Je nach Protokoll müsste man da evtl. ein paar Zeilen umschreiben... Wie schon richtig bemerkt steigt die Sendeleistung des 433MHz-Moduls, je höher die Eingangsspannung am Sender ist. Ich wollte die Schaltung allerdings so unkompliziert wie möglich halten, deshalb sieht meine Lösung so aus: - Der Sender bekommt genau wie der ESP 3,3V Versorgungsspannung. Das spart die zweite Spannung auf der Platine und einen zusätzlichen Treiber. - An den Ausgang ist ein 17,3cm langer Draht als Viertelwellendipol gelötet - Da auf diese Weise gelegentlich Befehle verloren gehen, wird jede Sequenz zehnmal nacheinander gesendet, um die Chance zu erhöhen, dass eine vollständige ankommt. In meiner Zweizimmerwohnung (Geräte sind über alle Zimmer verteilt) funktioniert das bis jetzt absolut zuverlässig. Hatte noch kein einziges Mal, wo etwas nicht geschaltet hätte. Wenn man über mehrere Etagen oder durch dicke Wände will, kommt man um höhere Spannung aber wohl nicht herum. Mit der Mikrosekunden-Delay Funktion von der Arduino IDE klappt das Timing problemlos. Ich nehme an, die Steckdosen haben auch keine sonderlich strikten Anforderungen. Wenn ich mal wieder etwas mehr Zeit habe soll noch ein NTP-Client dazu kommen, und ein Interface, das es erlaubt, Steckdosen auch zu bestimmten Zeitpunkten zu triggern. Das wird dann meinen Radiowecker ersetzen. @Joachim: Interessant! Hast du irgendwo einen Link dazu? Im Moment ist das tatsächlich reines Replay dessen, was aus der Fernbedienung kommt. Ohne irgendwelches Reverse Engineering.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.