Hier möchte ich noch ein weiteres Projekt vorstellen. Diesmal geht es um das steuern von Funksteckdosen.
Ziel war es über ein Webinterface meine Funksteckdosen zu Hause anzusteuern, so das ich z.B. über mein Iphone von Sofa aus Schaltvorgänge durchführen kann.
Ich benutze hier 2 Sorten von Steckdosen einmal die Intertechno YCT-100 und Elro AB440R beide werden mit 434 Mhz angesteuert.
Nach ein wenig suchen bin ich auf die RF Link Sender / Empfänger von Wattenrott.com gestoßen die mit ca 4,- € recht günstig sind. Beide haben einen digitalen Ein bzw. Ausgang so das I/O direkt an einen Atmega angeschlossen werden können.
Als Mikroprozessor wurde ein Atmega16 SMD verbaut, da ich hier noch einige rumliegen hatte. Und zur Anbindung eines PC / Servers noch eine FTDI FT232rl USB/Serial wandler.
Das Programm für dem Atmel habe ich mit Bascom erstellt. Leider hatte ich damals keine SPI Schnittstelle vorgesehen sondern einen Bootloader über einen selbst entworfenen Adapterplatine für SMD Atmegas aufgespielt.
Über den Bootloader läßt sich dann per Linux binary oder auf Windows über ein VB.Net Programm die eigentliche Firmware flashen.
Nun zum Ablauf des Programmes
Die über den Comport eingehende Befehlsfolge wird in die entsprechenden Impulse für die Steckdose zerlegt und gesendet.
Es gibt insgesamt 3 Möglichkeiten von Impulsfolgen
wobei die 1 bei meinen Funksteckdosen nicht benutzt wird.
Das Webinterface läuft auf meinem Debian Linux Server auf dem der Apache Webserver installiert ist. Praktischerweise lassen sich dann über einen Cronjob Zeitgesteuerte Aufgaben übernehmen.
Damit der Funksteckdosenschalter eindeutig zu identifizieren ist habe ich eine UDEV Regel erstellt.
wobei xxxxxxxx die Serial des FTDI Chip ist. Diese läßt siche mittels lsusb -v | grep iSerial ermitteln.
Danach können z.B über die Konsole befehle gesendet werden z.B.: Elro, Systemcode alle off (00000) Dose B (f0fff) Ein (f0): echo "00000f0ffff0" > /dev/RFLink
oder halt über das Webinterface oder das VB.Net Program.
Anbei Bilder Handsender, Leiterplatte(leicht eingestaubt), Webif auf Iphone, WindowsSoftware, Datentelegramm
Dateianhänge gibs im nächsten Post
Ziel war es über ein Webinterface meine Funksteckdosen zu Hause anzusteuern, so das ich z.B. über mein Iphone von Sofa aus Schaltvorgänge durchführen kann.
Ich benutze hier 2 Sorten von Steckdosen einmal die Intertechno YCT-100 und Elro AB440R beide werden mit 434 Mhz angesteuert.
Nach ein wenig suchen bin ich auf die RF Link Sender / Empfänger von Wattenrott.com gestoßen die mit ca 4,- € recht günstig sind. Beide haben einen digitalen Ein bzw. Ausgang so das I/O direkt an einen Atmega angeschlossen werden können.
Als Mikroprozessor wurde ein Atmega16 SMD verbaut, da ich hier noch einige rumliegen hatte. Und zur Anbindung eines PC / Servers noch eine FTDI FT232rl USB/Serial wandler.
Das Programm für dem Atmel habe ich mit Bascom erstellt. Leider hatte ich damals keine SPI Schnittstelle vorgesehen sondern einen Bootloader über einen selbst entworfenen Adapterplatine für SMD Atmegas aufgespielt.
Über den Bootloader läßt sich dann per Linux binary oder auf Windows über ein VB.Net Programm die eigentliche Firmware flashen.
Nun zum Ablauf des Programmes
Die über den Comport eingehende Befehlsfolge wird in die entsprechenden Impulse für die Steckdose zerlegt und gesendet.
Es gibt insgesamt 3 Möglichkeiten von Impulsfolgen
Code:
__ __
Lang Lang __| |__| |__ = 1
_ __
Kurz Lang ___| |__| |__ = f
_ _
Kurz Kurz ___| |___| |__ = 0
wobei die 1 bei meinen Funksteckdosen nicht benutzt wird.
Das Webinterface läuft auf meinem Debian Linux Server auf dem der Apache Webserver installiert ist. Praktischerweise lassen sich dann über einen Cronjob Zeitgesteuerte Aufgaben übernehmen.
Damit der Funksteckdosenschalter eindeutig zu identifizieren ist habe ich eine UDEV Regel erstellt.
Code:
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{serial}=="xxxxxxxx", SYMLINK+="RFLink"
wobei xxxxxxxx die Serial des FTDI Chip ist. Diese läßt siche mittels lsusb -v | grep iSerial ermitteln.
Danach können z.B über die Konsole befehle gesendet werden z.B.: Elro, Systemcode alle off (00000) Dose B (f0fff) Ein (f0): echo "00000f0ffff0" > /dev/RFLink
oder halt über das Webinterface oder das VB.Net Program.
Anbei Bilder Handsender, Leiterplatte(leicht eingestaubt), Webif auf Iphone, WindowsSoftware, Datentelegramm
Dateianhänge gibs im nächsten Post