Eigener Verschlüsselungsdienst auf dem Raspberry Pi

Der Name des Beitrag lässt Einiges vermuten, aber was nun kommt ist wohl eher ungewöhnlich.

In diesem Beitrag erstelle ich einen kleinen Dienst, der Nachrichten unlesbar macht und diese per Mail an einen beliebigen Empfänger schickt. Der Empfänger der eMail erhält einen Link, der ihm die unleserliche Passphrase zu einem lesbaren Text entschlüsselt. Der Empfänger der des Textes benötigt zusätzlich seinen persönlichen Schlüssel. Das soll die Nachricht noch weiter vor ungewünschten Lesern schützen.

Starten wir einfach mal mit ein paar Bildern, damit der Sinn hinter diesem Projekt etwas deutlicher wird.

Text verschlüsseln

Text verschlüsseln

Per Weboberfläche auf dem Pi kann der Absender die Nachricht verschlüsseln. Der Key, also der private Schlüssel kann frei gewählt werden, muss jedoch dem Empfänger der Nachricht mitgeteilt werden, damit dieser die Nachricht wieder entschlüsseln kann.

Der Empfänger erhält nun eine eMail, die einen Link enthält. Der Link führt ebenfalls zum Webserver, der auf dem Raspberry Pi läuft. Weiterlesen

Ping mit Python

Ich habe mich in den letzten Tagen mit der Möglichkeit auseinandergesetzt, Geräte im WLAN zu entdecken und daraufhin diverse Aktionen auszuführen. Eine davon ist die Methode die IP anzupingen.

Voraussetzung ist, dass das anzupingende Gerät (z.B. Smartphone) im Heimnetz eine feste IP vom Router zugewiesen bekommen hat. Der Programmieraufwand in Python ist sehr gering und auch leicht umzusetzen: Weiterlesen

Mit Python in MySQL Datenbanken arbeiten

Wer mit Python Daten erfassen, generieren oder speichern möchte, kann dies in Textdateien, Variablen oder eben einer Datenbank tun.

Letzeres ist die eleganteste und sicherste Methode. Zudem kann hier eine fast unbegrenzte Menge an Datensätzen gespeichert und abgerufen werden.

Ich möchte das am Beispiel der MySQL Datenbank erklären. Ein Vorteil ist hierbei, dass ich mit Python die Daten erfassen kann und im Browser per php die Datenbank darstellen kann.

Als Beispiel nutze ich den altbewährten RFID Türöffner, den ich bereits hier vorgestellt habe.

Weiterlesen

RFID Türöffner mit LCD Display

Auf einen Wunsch hin möchte ich noch einmal auf das Thema RFID eingehen. In diesem Beispiel soll eine Tür geöffnet werden indem eine bestimmte RFID Karte eingescannt wird. Zusätzlich gibt es ein LCD Display, welches Informationen anzeigt.

Möchtet Ihr dem diesem Beispiel Schritt für Schritt folgen, so müssen der Raspberry, das LCD Display und der RFID Reader wie auf dem Schaltplan zu sehen angeschlossen werden.
Ebenfalls empfehle ich die Hardware zu nutzen, die ich in diesem Beispiel verwendet habe.
LCD Display:  Amazon Link – Als Display kann jedes 16×2 LCD mit einem HD44780 Controller verwendet werden. e
RFID Reader:  Seeedstudio oder Amazon
RFID Karten: Amazon

Die Hardware: Weiterlesen

Anleitung: Porterweiterung mit MCP23017 und I2C online

Endlich habe ich mich überwunden!
Dieses “I²C” habe ich lange gemieden, obwohl ich von seinen Vorteilen wusste.

Nun habe ich mir das Bauteil MCP23017 geschnappt und Dieses auch erfolgreich zum Laufen bekommen.
In der nachfolgenden Anleitung habe ich versucht sehr detailliert vorzugehen und ebenfalls die Funktionsweise der Ansteuerung zu erläutern.
Das ist bei dem Umgang mit dem Baustein das “A und O”.

Zur Anleitung geht´s hier lang.

DuelPi – RFID Card Game

Ich möchte mein erstes, etwas umfangreicheres Python Programm vorstellen.

Hierbei handelt es sich um ein Zwei-Spieler-Spiel, welches mit einem RFID Kartenleser arbeitet. Das Spiel kurz erläutert:

Das Spiel besteht aus insgesamt 20 Karten. (8 Charakterkarten, 12 Powerupkarten)
Charakterkarten stellen einen “Duellanten” dar, der vom Spieler in das Duel geschickt wird. Powerupkarten verbessern den “Duellanten”.

Ein Charakter hat folgende Eigenschaften:

  • Lebenspunkte (LP auf 0 = Charakter aus dem Spiel)
  • Angriff (Bestimmt den maximal möglichen Schaden)
  • Verteidigung (Bestimmt die maximal mögliche Verteidigung)
  • Initiative (Je größer der Wert, desto größer die Chance zuerst anzugreifen.
  • Geschicklichkeit (Je größer der Wert, desto höher die Chance dass der Angriff NICHT fehlschlägt)
  • Schwäche (Noch keine Funktion. Zeigt später die Methode/Waffe/etc.. an, die dem Charakter am meisten Schaden kann)

Powerupkarten können diese Werte beeinflussen. Weiterlesen

RC-Car Steuerung mit Playstation 3 Controller

Ich habe dem Auto eine weitere Steuerungsmöglichkeit hinzugefügt.

Es ist möglich neben der Steuerung über Handy/Internet, das Auto per PS3 Controller zu steuern.

Die Fahrtrichtung wird über das Steuerkreuz angegeben, die Geschwindigkeit kann mit der analogen Wippe R2 eingestellt werden.
Die Verarbeitung der Daten erfolgt in diesem Fall nicht mehr über PHP, sondern über ein kleines Python Script, dass im Hintergrund läuft.

Eine Anleitung zur Kopplung des Controllers, bzw. zur Verarbeitung der Signale in Python kann ich bei Bedarf noch erstellen.