Starterkit: Hardware Hacking

Bemerkung

Das Starterkit: Hardware Hacking wird aktuell nicht mehr verkauft, da einfache Funksteckdosen nicht mehr verfügbar sind.

Features

  • Kleinstspannungs-Elektrogeräte hacken und über
    • PC, Smartphone/Tablet oder über das Internet (Internet der Dinge) steuern.
    • Demo-Apps für Android, Windows Phone und iOS sind verfügbar.
  • Direkt mit dem Hacken beginnen: Zwei Funksteckdosen im Kit enthalten
  • Massenmarkt-Geräte auslesen und steuern,
    • z.B. Rauchmelder, Funkfernbedienungen, Garagentore und Türklingel.
  • Interaktion über USB, WLAN und Ethernet möglich.

Beschreibung

Das Starterkit: Hardware Hacking ermöglicht es Kleinstspannungs-Elektrogeräte zu hacken und so mit Tinkerforge Modulen zu verbinden. Jeder (Embedded-)PC und jedes Smartphone/Tablet kann genutzt werden um mit den gehackten Geräten zu interagieren. Interaktion ist über USB sowie über WLAN mit Hilfe der WIFI Extension möglich. Auch eine Ethernet Schnittstelle kann mit der Ethernet Extension hinzugefügt werden.

Zwei Funksteckdosen sind in diesem Kit enthalten, so dass direkt mit dem Hacken begonnen werden kann. Eine Schritt-für-Schritt Anleitung erklärt wie diese gehackt werden können (Lötkolben, Lötzinn und Schraubendreher benötigt).

Es gibt zwei Gruppen von Anwendungen für dieses Kit: Steuern und Auslesen. Für Steuerungsanwendungen wird ein Industrial Quad Relay Bricklet mitgeliefert. Dieses besteht aus vier schaltbaren Solid-State-Relais. Für Ausleseanwendungen wird ein Industrial Digital In 4 Bricklet mitgeliefert. Dieses kann vier digitale Signale mit Spannungen bis zu 36V galvanisch getrennt auslesen.

Dokumentierte Beispielanwendungen sind:

  • Rauchmelderalarm zum PC weiterleiten.
  • Steckdosen über den PC uns über Smartphone/Tablet fernsteuern (Android, Windows Phone und iOS).
  • Garagentore über ein Smartphone/Tablet (Android, Windows Phone und iOS) öffnen und schließen.
  • Türklingel zum PC weiterleiten.

Eine Vielzahl weiterer Anwendungen sind möglich. Alles was über eine Fernbedienung gesteuert wird oder digitale Signale ausgibt kann mit diesem Kit kinderleicht gehackt werden. Die dokumentierten Beispiele sollten ausreichen um auch ohne Vorkenntnisse jedes Elektrogerät in dieser Kategorie zu hacken.

Die Programmierung kann über alle verfügbaren Bindings (C/C++, C/C++ für Mikrocontroller, C#, Delphi/Lazarus, Go, Java, JavaScript, LabVIEW, Mathematica, MATLAB/Octave, MQTT, openHAB, Perl, PHP, Python, Ruby, Rust, Shell, Visual Basic .NET) stattfinden. Beispielimplementierungen für viele Programmiersprachen und Demo-Anwendungen erleichtern den Einstieg in die Programmierung mit Tinkerforge.

Ein How-To-Video das zeigt wie man eine Funkfernbedienung hackt sowie Anwendungen des Kits gibt es auf Youtube:

Technische Spezifikation

Eigenschaft Wert
Digitale Eingänge 4
Spannungsbereich Low Pegel 0-2V
Spannungsbereich High Pegel 3-36V
   
Digitale Ausgänge 4
Maximaler Schaltstrom 1,2A pro Relais
Maximale Schaltspannung 30V pro Relais

Benötigte Werkzeuge

  • Lötkolben
  • Lötzinn
  • Schraubendreher (um Gehäuse zu öffnen etc.)

Firmware aktualisieren und erste Tests

Im ersten Schritt sollten die Bricks und Bricklets ausprobiert und die Firmwares ggf. aktualisiert werden.

Dazu müssen der Brick Daemon und der Brick Viewer installiert werden. Schließe beide Bricklets an den Master Brick an und verbinde es per USB mit dem PC. Anschließend kann über den Brick Viewer bestimmt werden, ob alle Firmwares aktuell sind. Falls nicht, so sollten diese aktualisiert werden (Bricks aktualisieren, Bricklets aktualisieren):

Firmware update in Brick Viewer

Danach sollten mit dem Brick Viewer alle Bricks und Bricklets überprüft werden. Dazu klickt man am besten durch die verschiedenen Tabs und überprüft, dass der Master Brick und die Bricklets korrekt angezeigt werden.

Funktionsweise

Es gibt zwei grundlegende Möglichkeiten dieses Kit zu nutzen: Spannungen messen und Spannungen schalten. Eine detaillierte Erklärung der Grundlagen befindet sich im Hardware Hacking für Anfänger Tutorial.

Warnung

Die genannten Spannungsobergrenzen sind einzuhalten! Geräte die über eine potentiell gefährlich hohe Spannung versorgt werden (z.B. Netzspannung) dürfen nicht gehackt werden!

Spannungen bis zu 36V messen

Der aktuelle Zustand von Elektrogeräten wird oft irgendwo in Form einer elektrischen Spannung repräsentiert. Wenn es sich um ein digitales Signal handelt und dessen Spannung unter 36V liegt, dann kann ein Industrial Digital In 4 Bricklet damit verbunden und der Zustand ausgelesen werden. Ein gutes Beispiel dafür sind LEDs. Eine LED die den Zustand eines Systems anzeigt, kann problemlos ausgelesen werden.

Hierbei ist es wichtig zu beachten, dass die minimale Spannung, die als High erkannt wird, bei 3V liegt. Die maximale Spannung die als Low erkannt wird liegt bei 2V. Zwischen diesen Spannungen ist das Verhalten undefiniert.

Um ein Signal auszulesen muss dieses an einen der Eingänge des Industrial Digital In 4 angeschlossen werden. Falls keine Reaktion des Eingangs im Brick Viewer zu erkennen ist, kann es sein das die Belegung gedreht werden muss (verpolt). Die Belegung kann per Trial and Error getestet werden. Das Industrial Digital In 4 ist verpolungsgeschützt.

Die nachfolgende Abbildung zeigt exemplarisch die notwendige Schaltung zum Auslesen einer LED. Hierbei wurde der Vorwiderstand mit einbezogen um ausreichende Pegel für die High/Low Detektion zu erhalten.

Beispielschaltung: Industrial Digital In 4 Bricklet misst LED Zustand

Spannungen bis zu 30V schalten

Mit dem Industrial Quad Relay Bricklet können Signal geschaltet (kurz geschlossen) werden. Viele Geräte verfügen über Taster oder Schalter die mit diesem Bricklet gehackt werden können. Ein gutes Beispiel hierfür sind Fernbedienungen.

Die nachfolgende Abbildung zeigt exemplarisch einen möglichen Aufbau um einen Taster/Schalter mit dem Industrial Quad Relay Bricklet zu steuern.

Beispielschaltung: Industrial Quad Relay Bricklet überbrickt Schalter

Hardware Hacking für Anfänger

Um ein Industrial Digital In 4 oder Industrial Quad Relay Bricklet mit einem Gerät zu verbinden muss zuvor folgendes erledigt werden:

  • Finde Löt-Pads die benutzt werden können um eine Spannung zu messen oder zu schalten.
  • Löte Drähte an diese Pads.

Im Hardware Hacking für Anfänger Tutorial werden diese Schritte genauer erläutert.

Beispiele

Es gibt viele Geräte die gehackt werden können. Hier sind ein paar Beispiele:

Funksteckdosen fernsteuern

In diesem Kit sind zwei Funksteckdosen enthalten die als erster Schritt in die Hausautomatisierung genutzt werden können. Wir werden die Fernbedienung dieser Funksteckdosen hacken, so dass wir die Steckdosen über den PC schalten können.

Industrial Quad Relay with connected Remote Control

Dazu schließen wir ein Industrial Quad Relay Bricklet an die Taster der Fernbedienung an. Es gibt eine große Anzahl an Funksteckdosen und Fernbedienungen auf dem Markt. Die meisten kommerziell erhältlichen Fernbedienungen nutzen einen HX2262 IC mit einem Hardwaredesign welches identisch zu der hier verwendeten ELRO Fernbedienung ist. So kann diese Beschreibung auch für die meisten anderen Funksteckdosen- Fernbedienungen genutzt werden.

Die vollständige Beschreibung des Hardware-Aufbaus ist hier zu finden.

Beispiel Apps für Android (Java), Windows Phone (C#) und iOS (ObjC) sind verfügbar.

Eine Beispielimplementierung mit GUI (kompatibel mit Windows (.NET), Linux (Mono) und macOS (Mono)) ist verfügbar in C#.

Minimalistische Beispiele sind verfügbar in:

C, C#, Delphi, Java, PHP, Python, Ruby, Visual Basic .NET

Rauchmelder auslesen

Über drahtlose Rauchmelder ist es möglich den Alarm eines ganzen Rauchmelder-Netzwerks an einem Punkt auszulesen. Wir werden uns dies zu nutze machen und eigene Aktionen ausführen wenn Rauch erkannt wird. Hierzu hacken wir einen drahtlosen Rauchmelder. Als Beispiel könnten wir im Alarmfall eine E-Mail oder Textnachricht verschicken.

Smoke Detector with connected Industrial Digital In 4 Bricklet

Für dieses Projekt nutzen wir ein drahtlose Rauchmelderset und schließen ein Industrial Digital In 4 Bricklet an eine der LEDs an, die im Alarmfall aufleuchtet.

Eine ausführliche Beschreibung des Hardware-Aufbaus ist hier zu finden.

Beispielimplementierungen mit Schritt-für-Schritt Anleitungen sind verfügbar für:

C, C#, Delphi, Java, PHP, Python, Ruby, Visual Basic .NET

Garagentor mit Smartphone fernsteuern

Garagentoröffner besitzen typischerweise eine Fernbedienung. Eine solche Fernbedienung wollen wir in diesem Beispiel hacken. Anschließend werden wir das Garagentor über eine kleine App mit dem Smartphone steuern können, so dass die Fernbedienung nicht mehr mitgenommen werden muss.

Garage Door Opener with Android Control

Eine kurze Beschreibung des Hardware-Aufbaus kann hier gefunden werden.

Beispiel Apps für Android (Java), Windows Phone (C#) und iOS (ObjC) sind verfügbar.

Benachrichtigung durch die Türklingel

In diesem Projekt verbinden wir das Industrial Digital In 4 Bricklet mit einer typischen, 12V betriebenen, Türklingel. Sobald jemand klingelt, wird unser Python Skript "Ring Ring Ring!" ausgeben. Dieses Projekt kann natürlich erweitert werden, so dass eine SMS versendet wird oder dein Telefon klingelt wenn jemand an der Tür ist. Sei kreativ!

Türklingel Benachrichtigung mit Industrial Digital In 4

Eine Beschreibung des Hardware-Aufbaus und mehr Fotos gibt es hier.

Die Beispielanwendung in Python gibt es hier.