Günstige Arduino gesteuerten Licht Sockets - Reverse Engineering RF

5 Schritt:Schritt 1: Lesen des EEPROM Schritt 2: Messumformer Demontage / Cracking the-Code Schritt 3: Lassen Sie uns ein Arduino Transmitter! Schritt 4: Optional: Gleichzeitige Makeln Schritt 5: Das ist alles, folks!

Günstige Arduino gesteuerten Licht Sockets - Reverse Engineering RF

Günstige Arduino gesteuerten Licht Sockets - Reverse Engineering RF

Smart Glühbirnen kosten Ihre Erstgeborene. Was schade ist, denn intelligente Leuchten entsperren enormes Potenzial für Home-Automation , Energieeinsparung , und allerlei coole Projekte.
Wenn es nur einen Weg, um Ihre Beleuchtung, ohne die Bank zu steuern ...
Und jetzt gibt es! Für 19 € auf Amazon, können Sie eine bekommen 4-Glühbirne kit aus China , die normalerweise auf 4 Kanäle aus einer einzigen Fernbedienung beschränkt ... aber mit einigen kreativen Hacking, kann verwendet werden, um eine unbegrenzte Anzahl von Kanälen steuern mit einem Arduino und eine sehr einfache HF-Modul!
Hier ist ein Video von ihnen in Aktion als Teil unserer intelligenten Badezimmer Projekt (Instructable für das in Kürze!):

Denke, das ist genial? Vergessen Sie nicht, Lieblings es und folgen Sie uns auf Facebook !
Dauer: 1-2 Stunden
Preis gesamt: € 19 vier Buchsen (5 € / Buchse), ~ 20 € für einen Sender
Du solltest wissen:
Wie man ein Arduino (Programm siehe hier ) die Grundlagen der Verwendung eines Bus Pirate ( siehe hier )
Materialien:
A 4-er Packung Vktech drahtlose Glühbirne Holders Arduino UNO oder ähnliche 315MHz RF Verbindungssender
Werkzeuge:
IC Clips / Haken Bus Pirate (wir haben die Sparkfun Version ) kleinen Kreuzschlitzschraubendreher -Computer mit einem Mikro-USB-Kabel Ein Steckbrett und Ersatzdraht (solid core ist am besten)

Schritt 1: Lesen des EEPROM

  1. Günstige Arduino gesteuerten Licht Sockets - Reverse Engineering RF

    Günstige Arduino gesteuerten Licht Sockets - Reverse Engineering RF

    Günstige Arduino gesteuerten Licht Sockets - Reverse Engineering RF

    Günstige Arduino gesteuerten Licht Sockets - Reverse Engineering RF

    Günstige Arduino gesteuerten Licht Sockets - Reverse Engineering RF

    Wir werden durch Aufreißen eines dieser Lampenfassungen und Lesen von seinem Speicher zu starten. Schnappen Sie sich Ihre Schraubenzieher und entfernen Sie die beiden Kreuzschlitzschrauben, die Gehäuse zusammen. Der Fall sollte offen fallen und zeigen die Leiterplatte im Inneren.
    Wenn Sie sich umschauen, werden Sie ein paar Kondensatoren, einige Dioden, eine große Kiste (Relais) zu sehen, eine lange IC (der Mikrocontroller), wendete ein separates Board auf (dem HF-Empfänger) und einem kleinen 8-DIP-Chip gekennzeichnet 24C04 - dies ist der EEPROM, der die HF-Befehl auf dem Kolben drehen speichert.
    Werfen wir einen genaueren Blick auf das, was der Speicherchip hält, sollen wir? Über den Bus und das Piraten Datenblatt für den EEPROM-Chip , verdrahten eine Schaltung wie die, gezeigt. Du solltest haben:
    Bus Pirate VCC -> Chip VCC (und VPU, die Pull-up-Stift der Bus Pirate) Bus Pirate GND -> Chip GND Bus Pirate SDA (MOSI, Orange für Sparkfun BPs) -> Chip SDA Bus Pirate SCL (CLK, Gelb für Sparkfun BPs) -> Chip SCL Bus Pirate VPU -> Bus Pirate VCC (die Pull-up-I / O-Pins sind von dieser Stift angesteuert)
    Als nächstes wollen wir ein Skript, das die EEPROM-Daten in einer Datei mit dem I2C-Schaltung wir gerade eingerichtet Dump wird. Mit dem Terminal oder Befehlszeile, wechseln Sie zu dem Ordner, in dem Sie i2c_dump.py heruntergeladen und führen Sie es wie folgt:
    Es wird eine HEX-Datei, die die Hex-Werte der Daten zu erzeugen.
    Öffnen Sie die .txt-Datei. Wenn es nichts anderes als 0x00 oder 0xFF nichts enthält, die Chancen sind Sie brauchen, um Ihre Schaltung überprüfen und starten den Dump. Wenn Sie ein paar verschiedene Werte zu Beginn der Datei und eine Reihe von 0x00 Herren zu sehen, müssen Sie ein erfolgreiches Hex-Dump!
    Es ist eine gute Idee, an dieser Stelle, um zu versuchen Dumping ein paar von den anderen Leuchtmitteln, um zu sehen, welche Werte Veränderung in diesem Code. Mach dir keine Sorgen, wenn die Hex-Dumps nicht sinnvoll noch, aber Sie sollten feststellen, dass nur ein bestimmter Wert in ihnen verändert. Hmmmm ...

Schritt 2: Messumformer Demontage / Cracking the-Code

  1. Günstige Arduino gesteuerten Licht Sockets - Reverse Engineering RF

    Günstige Arduino gesteuerten Licht Sockets - Reverse Engineering RF

    Jetzt ist es Zeit, eine Schaltung, die die unglaublich billig Kunststoff Remote nachahmen bauen. Öffnen Sie die Fernbedienung, indem Sie die Batteriegehäuse, Batterie, und Schrauben. Hier finden Sie ein paar Tasten, einige kleine Komponenten, ein Metallkristall-Paket (mit R315A markiert), und ein IC mit HS1527 darauf gestempelt sehen. Die "315" auf dem Kristall klingt sehr wir den Betrieb eines 315 MHz-Sender und ein kurzer Blick auf die HS1527 Datenblatt sagt uns, dass wir mit einer OTP-Codierer-Sender handelt.
    Seite 2 ist besonders interessant, welche ein Ausgabeformat einer 20-Bit-Code und 4 Datenbits. Der Code wird verwendet, um einen beliebigen Gerät auf der gleichen Frequenz versehentlich die Lichter an zu verhindern, da gibt es eine ca. 1 / 1.000.000 Chance, dass eine zufällige Sendung wird den Code entsprechen. Die vier Datenbits entsprechen, zu dem RF-Buchse ist eingeschaltet - dies ist die letzten vier Bits des Hex-Wert, der zwischen jeder der EEPROMs des Sockets ändert.
    So wissen wir, die Datenbits in dem die Hex-Daten ist im Wandel. Was ist mit der 20-Bit-Code? Könnte es nicht überall in der EEPROM sein? Nun stellt sich heraus, dass Programmierer sind faul. Sie wirklich nicht wollen, um zusätzliche Arbeit und mehr Code zu erstellen, so dass beim Lesen eines seriellen Sender Sendung, sie würden wahrscheinlich die in der gleichen Weise im Speicher angeordnet Vergleichsdaten soll. Mit Blick auf eine der Deponien, sehen wir so etwas wie:
    5a5a 0c5a c18c 285a bea3 915a ffff ffff
    Auf einem anderen dump, sehen wir:
    5a5a 0c5a c18c 285a bea3 925a ffff ffff
    Und so weiter. Zählen 20 Bits nach links von der sich ändernden Ziffer (das ist 5 Hex-Werte), so erhalten wir den Code 0xBEA39. Mit etwas Glück können wir diese in ein Datenpaket zu schieben und sprengen sie in den Lampenfassungen, und sie werden durch Ein- oder Ausschalten zu reagieren!
    Lassen Sie uns für den Aufbau einer neuen Sender zu erhalten!

Schritt 3: Lassen Sie uns ein Arduino Transmitter!

  1. Günstige Arduino gesteuerten Licht Sockets - Reverse Engineering RF

    Günstige Arduino gesteuerten Licht Sockets - Reverse Engineering RF

    Draht Ihres arduino, um Ihre 315MHz HF-Verbindung Transmitter -Chip. Um dies zu tun, wollen Sie, um zu sehen Datenblatt und Spiel:
    Arduino GND -> Transmitter GND (Pin 1) Arduino P7 -> Sender Daten in (Pin 2) Arduino 5V -> Transmitter Vcc (Pin 3)
    Schneiden Sie ein Stück Draht ca. 23.8cm lang und verbinden Sie es mit der ANT Pin (Pin 4) auf dem Sender. Dies wird unsere Antenne sein.
    Jetzt greifen unsere Arduino-Dateien (ursprüngliche Autor: Salánki ) und ändern Sie den Wert von "char * Adresse" in hs1527_rf_light.ino auf die 20-Bit-Adresse, die Sie im vorherigen Schritt gefunden. Laden Sie dieses, um das Board. Der Standard-Code wird jeder der vier Lichter nacheinander wechseln.
    Wenn all dies funktioniert, haben Sie jetzt vier einzeln adressierbaren Wireless-LED-Buchsen!

Schritt 4: Optional: Gleichzeitige Makeln


  1. Unsere Anwendungsfall im Bad war - wir hatten einen Satz von vier Oberlichter, die wir zum Ein- und Ausschalten wollten alle zur gleichen Zeit. Aber mit der aktuellen Sendercode kann man deutlich sehen, wenn jeder aufleuchtet. Wie können wir dieses Problem beheben?
    Ändern Sie das EEPROM, natürlich! Wir werden einfach machen die Aktivierung Datenbits die gleiche für jeden der Sender.
    Knacken jede der HF-Steckdosen, und gehen Sie wie folgt für jeden:
    Befestigen Sie den Bus Piraten (wie bisher) Geben Sie "[0xA0 0x00]" in den Bus Piratenklemme (Dies setzt den Lesezeiger auf 0x00) Run "[0xA1 r: 16]", die die ersten 16 Bytes gedruckt wird. Beachten Sie die 0x91 / 2/4/8-Wert an Position 0x0A (dh das Byte # 10 Zählen von Null) Schreiben Sie eine neue Hex-Wert, indem Sie "[0xA0 0x0A 0x91]". Dieser schreibt den Wert 0x91 auf 0x0A positionieren.
    Wenn Sie mit allen Steckdosen zu beenden, sollte jeder auf die Taste 1 am Sender eingegeben werden. Wenn Sie erneut ausführen Sie das Testprogramm wieder, werden Sie feststellen, dass alle Lichter schalten mit nur einem Code!
    In ähnlicher Weise können wir den Bus Piraten verwenden, um die 20-Bit-Code zu ändern, dass Sie uns auf mehr als vier Anzeigen leuchten auf einmal mit einer einzigen Code. Probieren Sie es aus und sehen, was passiert!

Schritt 5: Das ist alles, folks!

  1. Günstige Arduino gesteuerten Licht Sockets - Reverse Engineering RF

    Mit Ihrem neuen RF-Hacking Befugnisse, können Sie jetzt bauen smart, computersteuerbare Glühbirnen für nur 5 € pro pop!
    Wenn Sie diese Instructable mögen, vergessen Sie nicht, Lieblings es und folgen Sie uns auf Facebook


    Referenzen:
    Die HF-Lampenfassungen: http: //www.Amazon.de/Vktech-Wireless-Remote-Contr ...
    Der HC1527 Chip Datenblatt: http://sc-tech.cn/en/hs1527.pdf
    EEPROM in den Lampenfassungen gefunden: http://www.atmel.com/Images/doc0180.pdf
    Bus Piraten pinouts (Blättern Sie nach unten für Sparkfun Pins): http: //dangerousprototypes.com/docs/Common_Bus_Pir ...
    BusPirate Scripting in python: http: //dangerousprototypes.com/docs/Bus_Pirate_Scr ...
    i2c_dump.py Skript für Dumping EEPROM: https://gist.github.com/kost/592e96381ca3c97abe21
    Anzeigen eines Hex-Dump in vim: http://vim.wikia.com/wiki/Hex_dump
    Die vpullup Problem: http: //dangerousprototypes.com/docs/Practical_guid ...
    HS1527 Encoder Original INO-Dateien: http: //forum.arduino.cc/index.php/topic,99714.0.ht ...
    315MHz Sender Datenblatt: http: //dlnmh9ip6v2uc.cloudfront.net/datasheets/Wir ...