Wollte mal sehen, ob meine selbstgebaute Antenne, die an meinem Raspberry Pi hängt, von irgendwelchen Bergen abgeschattet wird. Da gibt die heywhatsthat.com. Für den Flugzeug Transponder empfang, mit 1090 Mhz gibt es ja nicht so große Hindernisse, da die meisten Flugzeuge um ca. 10 km Höhe fliegen. Aber auch um Höhenunterschiede zu visualisieren ist die Seite ganz gut. Von Langenhagen, das in ca. 62 m liegt, kann man schön nach Bremen runterschauen:
„Raspberry Pi: Höhenunterschiede mit heywhatsthat.com visualisieren“ weiterlesen
Raspberry Pi: Kismet WLAN Auswertung in Hannover und Langenhagen in 2015
Wie hier beschrieben, können die Kismet Dateien auch ausgewertet werden, da sie in einer DB vorliegen. Also erst einmal die Anzahl der vorhandenen WLANs die in 2015 mit einem Raspberry Pi und Kismet inkl. GPS Modul in Langenhagen und Hannover empfangen wurden.
|
1 |
sqlite3 wireless.dbl "select count(*) from wireless" |
Ausgabe: 4416
Nun wollen wir mal sehen, wie so die jeweiligen Verschlüsselungsmodus sind.
|
1 |
sqlite3 wireless.dbl "select Encryption, count(Encryption) from wireless group by Encryption" |
Ausgabe:
None |645
WEP |77
WPA Migration Mode WEP40 WPA+TKIP WPA+PSK |1
WPA+AES-CCM |143
WPA+PSK WPA+AES-CCM |1630
WPA+TKIP |12
WPA+TKIP WPA+AES-CCM |32
WPA+TKIP WPA+PSK |124
WPA+TKIP WPA+PSK WPA+AES-CCM |1752
Diese Daten in einer Grafik:

UPDATE 5.4.15: Neue Auswertung mit Basis 10012 Einträge aus Hannover und Langenhagen. Die wireless.dbl hat jetzt eine Größe von 5,5 MB.
|
1 2 3 4 5 6 7 8 9 10 |
None|1368 WEP|179 WEP40 WPA+TKIP WPA+PSK|1 WPA Migration Mode WEP40 WPA+TKIP WPA+PSK|1 WPA+AES-CCM|249 WPA+PSK WPA+AES-CCM|3634 WPA+TKIP|23 WPA+TKIP WPA+AES-CCM|70 WPA+TKIP WPA+PSK|341 WPA+TKIP WPA+PSK WPA+AES-CCM|4146 |
Die nicht verschlüsselten WLANs sind meistens kostenpflichtige Zugänge von Kabel-Deutschland und auch von der Telekom. Hotels und Geschäfte haben auch oft öffentliche WLAN Zugänge. Ein paar private User sind aber auch dabei 😉
Raspberry Pi: Wie kann der Kismet-Server sauber rauf und runter gefahren werden zum WarWalking (WarDriving)?
Wenn ein Kismet-Server auf dem Raspberry Pi läuft, muss der Server sauber rauf und runter gefahren werden, sonst werden die *NETXML Dateien wegen einem fehlenden sync nicht vollständig auf die SD-Karte geschrieben. Das Problem ist aber, wie kann der Raspberry Pi eingerichtet werden, so das der gpsd und Kismet automatisch hoch und auch sauber wieder runter fahren, ohne das ein Bildschirm bzw. Konsole angeschlossen wird? Und wie kann vom GPS Empfänger die Systemzeit gesetzt werden, da der Raspberry Pi ja keine Systemuhr hat und es beim WarWalking kein Internet mit NTP gibt ?
Die Lösung des Problems wird in dieser Anleitung beschrieben.
Wir brauchen ein Script zum automatischen hochfahren und ein Script das auf einen Tastendruck wartet. „Raspberry Pi: Wie kann der Kismet-Server sauber rauf und runter gefahren werden zum WarWalking (WarDriving)?“ weiterlesen
Raspberry Pi: Wie kann der Raspberry Pi mit Kali bzw. Debian Linux den K8055 von Velleman über Konsole und Python ansteuern?
Den K8055 gibt es schon lange. Mit diesen technischen Daten:
- 5 digitale Eingänge (Test-Tasten auf der Platine)
- 2 analoge Eingänge
- 8 digitale Ausgangsschalter mit offenem Kollektor (max. 50V/100mA) (LED-Anzeige auf der Platine)
- 2 analoge Ausgänge:
- 0 bis 5V, Ausgangswiderstand 1K5
- PWM 0 bis 100% ‚offener Kollektor‘-Ausgang max. 100mA / 40V (LED-Anzeige auf der Platine)
- allgemeine Konvertierungszeit: 20ms pro Befehl
- Stromversorgung über USB: ungefähr 70mA
Er kann auch über USB an den Raspberry Pi angeschlossen werden. Nötige Treiber gibt es auch unter GPL und die sind in ein paar Minuten installiert. Den nötige Linux (Debian, Kali) Treiber gibt es hier.

Hier eine Anleitung für den Raspberry Pi (Kali, Debian) wie der Treiber installiert wird: „Raspberry Pi: Wie kann der Raspberry Pi mit Kali bzw. Debian Linux den K8055 von Velleman über Konsole und Python ansteuern?“ weiterlesen
Raspberry Pi: Per Bash mit GPIO Lib wiringpi, per Phyton mit RPi.GPIO und Java mit pi4j ansteuern der Pins auf Kali
Um die Pins per Bash anzusteuern, kann die wiringpi Lib verwendet werden. Die GPIO Homepage oder auch die Pin Belegung des rPi ist hilfreich.
So, jetzt erst einmal alles installieren und testen mit einer LED mit Widerstand an Pin 7 (4. Pin von oben links) und Masse (ganz unten links).
Zuerst alles für die Bash, um von der Konsole auf die Pins zugreifen zu können: „Raspberry Pi: Per Bash mit GPIO Lib wiringpi, per Phyton mit RPi.GPIO und Java mit pi4j ansteuern der Pins auf Kali“ weiterlesen
Raspberry Pi: Neues Debian Image mit allem was der Planspotter braucht aufsetzen
Da mein Server abgeraucht war, und schon wieder kein Backup vorhanden war, alles noch einmal.
Hier die Anleitung für einen Raspberry Pi mit Server auf dem Dump1090-mutability läuft. Diese Flugdaten werde an Flightradar 24, Flightaware, Plane Plotter und via TWFlug an Fhem gesendet.
Hier mal meine aktuellen Daten aus EDDV von heute:

Jetzt aber an die Arbeit. Etwas Zeit muss man schon mitbringen, bis es wieder läuft.
(Update 31.3.2016) Ich würde jetzt die neue Debian Jessie Version verwenden wie hier beschrieben. Aber wheezy läuft auch gut…
Hier die Anleitung in Kurzform: „Raspberry Pi: Neues Debian Image mit allem was der Planspotter braucht aufsetzen“ weiterlesen
Was empfängt mein Raspberry Pi in Langenhagen: Flugstatus 25.02.2015
Raspberry Pi: Wie kann ein Hardware-Reset-Taster eingebaut werden?
Der Lötkolben war gerade noch heiß, deshalb noch mal eben zwei Kontakte an dem Raspberry Pi (Model B Revision 2.0, ältere Rev. haben diese Reset Logik nicht, meiner hat Rev. 7, siehe cat /proc/cpuinfo) angelötet. In der 2 Rev. des rPi kann an P6 eine Steckerleiste angelötet werden. Wenn diese beiden Kontakte über einen Taster geschlossen werden, wird ein Hardware-Reset ausgelöst. Ist evl. mal ganz hilfreich.
Hier findet Ihr die zwei P6 Lötpunkte, an denen ich die Steckerleiste angelötet haben:

Wie kann auf einem Raspberry Pi unter Kali Linux Ethersex für den AVR-NET-IO compiliert werden?
Wie kann auf einem Raspberry Pi unter Kali Linux (Debian müsste genauso laufen) Ethersex compiliert werden? Das geht so wie sehr ausführlich hier beschrieben. Folgende Anpassungen sind aber noch mit dem root User oder sudo nötig:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
apt-get update apt-get upgrade # die nötigen Libs installieren apt-get install gcc-avr avr-libc avrdude dialog gawk m4 libncurses5-dev # ein Verzeichnis erstellen mkdir avr-net-io # in das Verzeichnis gehen cd avr-net-io # das Projekt holen wget http://github.com/ethersex/ethersex/tarball/master/ethersex-ethersex-snapshot_compile_ok-927-g3f59c22.tar.gz # das Archive auspacken tar xfz ethersex-ethersex-snapshot_compile_ok-927-g3f59c22.tar.gz # in das Verzeichnis gehen cd ethersex-ethersex-3f59c22/ # Konfigurieren in der GUI |
# Load a Default Configuration Avr-Net-Io, Hostname vergeben, Mac anpassen, Ip und Netmask auswählen …

|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# Konfiguration anschauen ob alle Module wie gewünsch vorhanden sind mit make show-config # Ausgabe: MCU: atmega32 Hardware: netio These modules are currently enabled: ====================================== * ADC * ADC_INLINE * ECMD_PARSER * ECMD_TCP * ENC28J60 * ETHERNET * HTTPD * ICMP * IPV4 * NET * ONEWIRE * ONEWIRE_DETECT * ONEWIRE_DETECT_ECMD * ONEWIRE_INLINE * PORTIO_SIMPLE * TCP * UIP * VFS * VFS_INLINE * VFS_INLINE_INLINESVG * VFS_IO_INLINE # compilieren mit make # nach ein paar Minuten ist das ethersex.hex File zum flashen bereit: Final size of ethersex.bin is 28018. avr-objcopy -O ihex -I binary ethersex.bin ethersex.hex =======The ethersex project======== Compiled for: atmega32 at 16000000Hz Imagesize: 28018/32768 bytes (85.50%) [=========================-----] Program (.text + .data) : 20548 bytes Data (.data + .bss) : 1131 bytes |
So oder so läuft dann das flashen. Oder auch so, mal sehen was am Besten läuft. Aber nicht mehr heute Nacht …
Streik EDDV: Raspberry Pi mit TWFlug und Dump1090 Flugauswertung (Planspotter) mit Fhem
Der Streik am 30.1.2015 am Flughafen in Hannover hat keine relevanten Auswirkungen auf den Flugverkehr, der von mir mit einem Raspberry Pi und DUMP1090 via Fhem erfasst wird. Das zeigen diese Grafiken:



Raspberry Pi: Wie kann eine automatische Scriptausführung nach einem reboot eingerichtet werden?
Wie kann ein Script automatisch nach dem reboot starten? Da gibt es mehrere Möglichkeiten. Hier die via crontab und @reboot.
Cron ist in den meisten Installationen schon enthalten. In Kali und Debian Linux mit diesen Abhängigkeiten, wie meine Mindmap zeigt: „Raspberry Pi: Wie kann eine automatische Scriptausführung nach einem reboot eingerichtet werden?“ weiterlesen
Raspberry Pi: Wie kann die Bandbreite pro Prozess mit NetHogs angezeigt werden?
Mit dem Kommandozeilenwerkzeug nethogs, das die Bandbreitennutzung nach Prozessen und Sub-Netzen gruppieren kann, bekommt man schnell einen Überblick.
Es listet die PID, den Prozessnamen, Send Bytes, Received Bytes und den ausführenden Benutzer auf.
Die Installation ist auf dem Raspberry Pi mit:
|
1 |
apt-get nethogs |
schnell erledigt. Das Programm hat nur die folgenden Abhängigkeiten:

„Raspberry Pi: Wie kann die Bandbreite pro Prozess mit NetHogs angezeigt werden?“ weiterlesen
Raspberry Pi: Was ist bei Kali Linux anders als im Debian?
Wer den Raspberry Pi bisher unter Debian laufen hat, wundert sich evl. über einige Unterschiede zu Kali Linux. Welche fallen zuerst auf?
Es gibt default kein raspi-config. Der Speicher der SD-Karte kann aber mit raspi-config sehr einfach expandiert werden. Deshalb ausnahmsweise ein paar Packages, die nicht von Kali stammen, wie folgt installieren mit dem root User:
|
1 2 3 4 5 6 7 8 9 |
apt-get update apt-get upgrade wget http://archive.raspberrypi.org/debian/pool/main/r/raspi-config/raspi-config_20150706_all.deb # lua5.1 da lua5.2 nicht läuft wget http://http.us.debian.org/debian/pool/main/l/lua5.1/lua5.1_5.1.5-7.1_armel.deb wget http://http.us.debian.org/debian/pool/main/t/triggerhappy/triggerhappy_0.3.4-2_armel.deb dpkg -i triggerhappy_0.3.4-2_armel.deb dpkg -i lua5.1_5.1.5-7.1_armel.deb dpkg -i raspi-config_20150706_all.deb |
Dann gibt es unter Kali kein /boot Verzeichnis mit den Boot Dateien. Das /boot Verzeichnis ist dort leer. Das /boot Verzeichnis liegt auf einer anderen Partition und zwar auf mmcblk0p1. Deshalb ein Verzeichnis z.B. /boot-bereich anlegen und mounten. Dann können diese Dateien bearbeitet werden.
Wenn die Dateien bearbeitet wurden, einfach das Verzeichnis wieder umounten.
|
1 2 3 4 |
mkdir /boot-bereich mount /dev/mmcblk0p1 /boot-bereich/ nano /boot-bereich/config.txt umount /boot-bereich |
Welche Unterschiede fallen Euch auf? Gern als Kommentar.
Raspberry Pi: Wie können OpenHab Addons installiert werden?
Wie können Addons für OpenHab installiert werden?
Dazu erweitern wir erst einmal die Addons mit den Bindings. Die werden später benötigt.
|
1 2 3 4 5 |
cd OpenHab/addons wget https://openhab.ci.cloudbees.com/job/openHAB/lastSuccessfulBuild/artifact/distribution/target/distribution-1.6.0-SNAPSHOT-addons.zip unzip distribution-1.6.0-SNAPSHOT-addons.zip # Optional: Löschen des zip rm distribution-1.6.0-SNAPSHOT-addons.zip |
Jessie: RPI-Monitor für den Raspberry Pi installieren
Dieser Entwurf aus dem letzten Jahr, wollte ich nun auch noch veröffentlichen. Wer einen RPI-Monitor braucht:
Wie hier gut beschrieben die Version 2.6.1 installieren, da die aktuelle Version 2.9.1 unter jessie nicht läuft.
Aber auch auf der RPI-Monitor Seite wird die Installation ausführlich beschrieben.
|
1 2 3 4 5 |
sudo apt-get update && sudo apt-get upgrade sudo apt-get install dpkg-dev librrds-perl libhttp-daemon-perl libjson-perl libipc-sharelite-perl libfile-which-perl wget --no-check-certificate https://github.com/XavierBerger/RPi-Monitor-deb/raw/master/packages/rpimonitor_2.6-1_all.deb sudo dpkg -i rpimonitor_2.6-1_all.deb rm rpimonitor_2.6-1_all.deb |
Nun im Browser http://IP:8888/ aufrufen.

„Jessie: RPI-Monitor für den Raspberry Pi installieren“ weiterlesen
Raspberry Pi Wardrive: Kismet compilieren und WLANs auf Google anzeigen
Da es auf Debian wheezy noch nicht das aktuelle Kismet Package gibt, hier die Anleitung wie es compiliert und installiert werden kann.
|
1 2 3 4 5 6 7 8 9 10 |
# System aktualisieren sudo apt-get update sudo apt-get upgrade # nötige Programme laden sudo apt-get install screen gpsd libncurses5-dev libpcap-dev tcpdump libnl-dev wget http://www.kismetwireless.net/code/kismet-2013-03-R1b.tar.gz tar xfvz kismet-2013-03-R1b.tar.gz cd kismet-2013-03-R1b/ ./configure sudo make install |
Wenn der GPS Empfänger über gpsd läuft und wie bei mir nicht an dem USB Port hängt, müssen in /usr/local/etc/kismet.conf noch folgende Einstellungen gemacht werden.
|
1 2 3 4 5 6 7 |
# (Optional) Verzeichnis wo die Logeinträge hingeschrieben werden, sonst start Verzeichnis logprefix=/home/pi/kismet # das WLAN Interface und den WLAN-Stick Type ncsource=wlan0:type=rt2800usb gps=true gpstype=gpsd gpshost=localhost:2947 |
Gestartet wird Kismet bei mir über ein kleines bash Script start-wardrive.sh:
|
1 2 3 4 5 6 |
#!/bin/bash cd kismet-2013-03-R1b sudo pkill wpa_cli sudo pkill ifplugd sudo pkill wpa_supplicant sudo kismet |
Für die Auswertung kann man das Python Script zum umwandeln einer NETXML Datei in das KML Format verwenden, es geht wie folgt
„Raspberry Pi Wardrive: Kismet compilieren und WLANs auf Google anzeigen“ weiterlesen
Raspberry Pi: Wardriving (Warwalking) Kismet netxml Dateien visualisieren mit Google Earth
Auswertung der netxml Daten geht auch sehr gut mit giskismet, das die netxml Dateien in eine SQLite Datenbank (default: wireless.dbl ) kopiert und auch GoogleEarth / KML Dateien für die Visualisierung via SQL erzeugen kann.
Installiert wird es auf dem Raspberry Pi mit: „Raspberry Pi: Wardriving (Warwalking) Kismet netxml Dateien visualisieren mit Google Earth“ weiterlesen
Raspberry Pi: GPS-Module GY-GPS6MV2 einrichten
Haben nun auch einen GPS-Empfänger (Datenblatt (pdf)) bekommen. Hier ein paar Highlights:
- Model: GY-GPS6MV2
- Power Supply Range: 3 V to 5 V
- Ceramic antenna
- EEPROM for saving the configuration data when powered off
- Backup battery
- LED signal indicator
- Antenna Size: 25 x 25 mm
- Module Size: 25 x 35 mm
- Default Baud Rate: 9600 bps
Klein und billig: „Raspberry Pi: GPS-Module GY-GPS6MV2 einrichten“ weiterlesen
OpenWrt Barrier Breaker 14.07: Wie kann Dump1090 auf einem TP-WR703N Router unter OpenWrt zum Airplanespotting installiert werden?
Hatte noch einen TP-WR703N rumliegen. Wenn dort die aktuelle Version von OpenWrt (14.07) installiert ist, geht es mit LuCI sehr schnell.
Auf die Seite System – Software gehen. Im Filter dump1090 eingeben und auf Find package klicken. Dann unten mit klick auf Install das fertige Package installieren.
„OpenWrt Barrier Breaker 14.07: Wie kann Dump1090 auf einem TP-WR703N Router unter OpenWrt zum Airplanespotting installiert werden?“ weiterlesen
Arduino: Wie können RFID Tags eingelesen und drahtlos empfangen werden?
Wie hier schon beschrieben, können mit einem Arduino und eine RFID-Reader leicht RFID-Tags eingelesen werden.
In dieser Anleitung, werden nun die eingelesenen RFID Daten drahtlos versendet und empfangen. Dazu wird ein zweiter Arduino und ein Sender und Empfänger ( < 2 Euro) verwendet.
Hier der schematische Aufbau:
„Arduino: Wie können RFID Tags eingelesen und drahtlos empfangen werden?“ weiterlesen
Arduino: Wie können RFID Tags eingelesen werden?
Wie können RFID-Tags eingelesen werden?
Das geht ganz einfach mit einem Arduino Nano und ein 125 kHz EM4100 RFID card reader module (RDM630 UART) das keine 5 Euro inkl. Versand kostet.
Die Belegung des RFID-Readers:

Die PINs:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
1.Pin Definition (WEIGAND26): 2. Pin definition (TTL interface RS232 data format): P1: P1: PIN1 DATA0 PIN1 TX PIN2 DATA1 PIN2 RX PIN3 PIN3 PIN4 GND PIN4 GND PIN5 +5V(DC) PIN5 +5V(DC) P2: P2: PIN1 ANT1 PIN1 ANT1 PIN2 ANT2 PIN2 ANT2 P3: P3: PIN1 LED PIN1 LED PIN2 +5V(DC) PIN2 +5V(DC) PIN3 GND PIN3 GND |
Spec RDM630: Baud Rate: 9600bps,N,8,1, Frequenze: 125 kHz, DC 5V (+-5%), <50 mA, Empfangsbereich: 2 bis 5 cm, Checksum card 10byte Data mit XOR
So sieht der Aufbau aus:

Es sind nur 3 Verbindungen zwischen dem Arduino und dem RDM630 nötig und zwar:
|
1 2 3 4 5 |
Arduino Nano: D6 auf PIN 1 des RDM630 (TX) +5v auf PIN 5 des RDM630 (+5 Volt) GND auf PIN 4 des RDM630 (GND) Antenne auf P2 PIN 1 und 2 des RDM630 |
Dann folgende Software RFIDReader.ino auf den Arduino laden, die den Vorteil hat, das die serielle Konsole frei bleibt.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 |
/* RFIDReader Beschreibung: Dieses Programm liesst RFID-Tags von Transponer ein und ueberprueft die Checksumme (XOR) und gibt die Nummer auf der Seriellen-Konsole aus wenn die Nummer erkannt wurde gefolgt von einem OK. Folgende Verbindungen sind noetig: Arduino Nano: D6 auf PIN 1 des RDM630 +5v auf PIN 5 des RDM630 (+5 Volt) GND auf PIN 4 des RDM630 (GND) Antenne auf P2 PIN 1 und 2 des RDM630 Serielle Konsole auf 57000 Baud stellen. Compile mit Arduino 1.5.8 IDE. Einstellung: Board Arduino Nano, Prozessor Arduino ATMega328, Programmer USBtinyISP Der Sketch verwendet 8.216 Bytes (26%) des Programmspeicherplatzes. Das Maximum sind 30.720 Bytes. Globale Variablen verwenden 378 Bytes (18%) des dynamischen Speichers, 1.670 Bytes für lokale Variablen verbleiben. Das Maximum sind 2.048 Bytes. Dieses Programm basiert auf dem Beispielprogramm von maniacbug https://maniacbug.wordpress.com/2011/10/09/125khz-rfid-module-rdm630/ Copyright (C) 2015 Thomas Wenzlaff http://www.wenzlaff.de This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see {http://www.gnu.org/licenses/}. */ #include <SoftwareSerial.h> // Pin definitions // Specifies a function to call when an external interrupt occurs. Replaces any previous function that was attached to the interrupt. // Most Arduino boards have two external interrupts: numbers 0 (on digital pin 2) and 1 (on digital pin 3). // The Arduino Mega has an additional four: numbers 2 (pin 21), 3 (pin 20), 4 (pin 19), and 5 (pin 18). const int rfid_irq = 0; // PIN 6 ist auf dem Nano der D6 oder der Pin 9 von rechts, wenn die Stecker rechts liegen const int rfid_tx_pin = 6; // RX wird nicht benoetigt const int rfid_rx_pin = 7; // Untertrueckung von Rauschen bzw. leer Ausgaben, evl. aendern const long LEER = 16843009L; // Baud Rate zum Host PC, evl. aendern const long baudRate = 57600L; // For communication with RFID module SoftwareSerial rfid(rfid_tx_pin, rfid_rx_pin); // Indicates that a reading is now ready for processing volatile bool ready = false; // Buffer to contain the reading from the module uint8_t buffer[14]; uint8_t* buffer_at; uint8_t* buffer_end = buffer + sizeof(buffer); void rfid_read(void); void setup(void) { // Oeffnet die Serielle Verbindung zum Host PC um die Ausgabe der RFID-Tags zu sehen // Geschwindigkeit kann angepasst werden Serial.begin(baudRate); Serial.println("Starte RFID-Reader V. 1.0 von wenzlaff.info"); // Open software serial connection to RFID module pinMode(rfid_tx_pin,INPUT); // muss fest fuer das Modul auf 9600 stehen rfid.begin(9600); Serial.println("OK"); // Listen for interrupt from RFID module. Fallingfor when the pin goes from high to low. attachInterrupt(rfid_irq,rfid_read,FALLING); } void loop(void) { if ( ready ) { // Convert the buffer into a 32-bit value uint32_t result = 0; // Skip the preamble ++buffer_at; // Accumulate the checksum, starting with the first value uint8_t checksum = rfid_get_next(); // We are looking for 4 more values int i = 4; while(i--) { // Grab the next value uint8_t value = rfid_get_next(); // Add it into the result result <<= 8; result |= value; // Xor it into the checksum checksum ^= value; } // Pull out the checksum from the data uint8_t data_checksum = rfid_get_next(); // evl. die Nummer anpassen, oder die if abfrage loeschen if (result != LEER){ if ( checksum == data_checksum ){ Serial.print(result); Serial.println(" OK"); } } // We're done processing, so there is no current value ready = false; } } // Convert the next two chars in the stream into a byte and // return that uint8_t rfid_get_next(void) { // sscanf needs a 2-byte space to put the result but we // only need one byte. uint16_t result; // Working space to assemble each byte static char byte_chars[3]; // Pull out one byte from this position in the stream snprintf(byte_chars,3,"%c%c",buffer_at[0],buffer_at[1]); sscanf(byte_chars,"%x",&result); buffer_at += 2; return static_cast<uint8_t>(result); } void rfid_read(void) { // Only read in values if there is not already a value waiting to be // processed if ( ! ready ) { // Read characters into the buffer until it is full buffer_at = buffer; while ( buffer_at < buffer_end ) *buffer_at++ = rfid.read(); // Reset buffer pointer so it's easy to read out buffer_at = buffer; // Signal that the buffer has data ready ready = true; } } |
Compile mit der Arduino 1.5.8 IDE.

Einstellung in der IDE:
Board Arduino Nano, Prozessor Arduino ATMega328, Programmer USBtinyISP
Serielle Konsole auf 57000 Baud stellen
und einen RFID-Tag an die Antenne halten:

Es wird eine Reichweite von ca. 4 cm erreicht. Wenn die Antenne unter der Schreibtischplatte montiert wird, kann der RFID-Tag sicher gelesen werden, wenn der Tag oben drauf liegt (Anwesendheitskennung).
Habt ihr eine Idee, wie die Reichweite vergrößert werden kann?
Oder einen guten Anwendungsfall?
Mindmaps ab jetzt auf kleinhirn.eu
Ab jetzt werden die Mindmaps auf der Domäne kleinhirn.eu veröffentlicht.
Für das dump1090-mutability (1.13) unter Debian für den Raspberry Pi gibt es da jetzt auch eine Mindmap.
Vorgestern wurde eine neue Version von dump1090-mutability (1.13) für den Raspberry Pi veröffentlicht
Die neue Version von Dump1090-mutability ist in der Version 1.13 veröffentlicht worden.
Was es neues gibt, steht hier. Läuft auf dem rPi mit ca. 30% CPU Last, wie man mit htop sehen kann:

Sieht doch cool aus, oder?

Hier mal eine Auswertung der letzten Tage aus EDDV:

Raspberry Pi: TWFlug ermöglicht nun die Summe aller Flugzeuge am Tag via Fhem
Habe gerade eine fix für TWFlug hochgeladen, der auch eine neue Funktion hat.
Es kann jetzt in Fhem die Summe aller Flugzeuge pro Tag angezeigt werden. Wird ein Flugzeug zwei oder mehrmals am Tag empfangen, wird es nur einmal in der Summe pro Tag berücksichtigt.
Es wird einmal am Tag kurz vor Mitternacht ein Eintrag in folgender Form geschrieben:
|
1 |
2015-01-05_23:59:41 flugdaten summe-pro-tag: 1296 |
Fix in Time Funktion, jetzt mit neuer 1.8 Time Api, LocalDateTime …
7700 Alarm Ausgabe in Konsole
In Fhem kann dann diese Grafik ausgegeben werden:

Hier der nötige Eintrag in der twflug.cfg Datei:
|
1 2 3 |
# die Grafik mit der Logdatei verbinden für die Anzahl Flugzeuge pro Tag define FlugdatenProTag_SVG SVG FileLog_Flugdaten:myFlugProTag:CURRENT attr FlugdatenProTag_SVG room Flugdaten |
Die myFlugProTag.gplot Datei:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
/* myFlugProTag.gplot Version 1.0 vom 06.01.2015 Dieses GNU-Plot Script zeigt die Flugdaten von den empfangenen Transpondern pro Tag an. Copyright (C) 2015 Thomas Wenzlaff http://www.wenzlaff.de This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see {http://www.gnu.org/licenses/}. */ # Die Logdatei sieht wie folgt aus: # 2015-01-05_23:54:43 flugdaten anzahl: 4 # 2015-01-05_23:59:41 flugdaten summe-pro-tag: 1296 set terminal png transparent size <SIZE> crop set output '<OUT>.png' set xdata time set timefmt "%Y-%m-%d_%H:%M:%S" set xlabel " " set title 'Summe aller empfangene Flugzeuge pro Tag' set ytics set y2tics set grid ytics y2tics set ylabel "Anzahl Flugzeuge" set y2label "Anzahl Flugzeuge" #FileLog 4:summe-pro-tag\x3a:0: plot "<IN>" using 1:2 axes x1y2 title 'Summe aller Flugzeuge pro Tag' ls l2fill lw 2 with lines |
Welche Funktionen brauch ihr noch?
Raspberry Pi: Neue Version dump1090-mutability (1.10.3010.14mu-11) veröffentlicht
Wie hier beschrieben, gibt es einen neuen fork von DUMP1090. Nun ist wieder eine neue Version erschienen (1.10.3010.14mu-11).
Was ist neu?
-Es kann jetzt ein maximaler Bereich angegeben werden mit Parameter –max-range parameter
-Anzeige der Nachrichten Zeit
-Fix bei der UTC Uhr anzeige
-Fix im Info Panel
-Farbe des Flugeuges grau wenn es nicht mehr gesehen wird
-Fix beim beenden über SIGINT
-div. Fix..
Wie kann das update installiert werden?
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# System aktualisieren sudo update sudo upgrade # Version downloaden wget https://github.com/mutability/dump1090/releases/download/v1.10.3010.14mu-11/dump1090-mutability_1.10.3010.14mu-11_armhf.deb # Laufenden Server stopen sudo /etc/init.d/dump1090-mutability stop # Version installieren sudo dpkg -i dump1090-mutability_1.10.3010.14mu-11_armhf.deb # Es erscheint eine Frage nach dem maximalen Bereich in nautische Meilen Eingab z.B. 200 # Checken ob der Server läuft sudo /etc/init.d/dump1090-mutability status # Ausgabe: [ ok ] dump1090-mutability is running. # Archive kann gelöscht werden rm dump1090-mutability_1.10.3010.14mu-11_armhf.deb |
Dann aufrufen der Seite im Browser mit http://rpi-adresse:port
Raspberry Pi: Einfaches steuern der Ports, Kamera, System usw. über Browser mit BerryIO V. 1.12.0
Einfaches steuern der IO Ports, Kamera, LCD, SPI, Network, Systemstatus usw. des rPi geht mit BerryIO, das in ein paar Minuten installiert ist.
Zuerst einmal ein kleiner Überblick als Mindmap:

Und nun die Installation:
|
1 2 3 4 5 6 7 8 9 10 11 |
# System aktualisieren sudo apt-get update sudo apt-get upgrade # Download der aktuellen Version wget -N https://raw.github.com/NeonHorizon/berryio/master/scripts/berryio_install.sh # Script ausführbar machen chmod +x berryio_install.sh # Installation starten sudo ./berryio_install.sh # Programm Hilfe aufrufen berryio help |
Ausabe der Hilfe:
|
1 2 3 4 |
BerryIO V1.12.0 (2014-08-02) USAGE: sudo berryio <command> [<option>] [<option>] [....] |
Es gibt auch eine Kommandozeilen API. Cool mit der Api, man kann auch alles über das Terminal abfragen und evl. scripten. Da kommt mir doch gleich eine Idee zum Fhem Server.
Aber die Gui ist auch schön.
Aufruf im Browser: http://pi-adresse dann eingabe des Users: pi und Passwort.
Schon erscheint der Dialog:

Über das Menü können leicht die anderen Reiter angezeigt werden. Hier mal eine kleine Auswahl: „Raspberry Pi: Einfaches steuern der Ports, Kamera, System usw. über Browser mit BerryIO V. 1.12.0“ weiterlesen
Raspberry Pi: Wie kann ein neuer Mode S Decoder für RTLSDR Devices (DUMP1090 fork) dump1090-mutability installiert werden?
Der DUMP1090 Server läuft bei mir schon lange auf einem eigenen Raspberry Pi B+ ganz gut. Es gibt nun einen neuen fork von Oliver Jowett (thanks), der einige Neuerungen bzw. Erweiterungen hat. Der dump1090-mutability.
Der mutability fork braucht nicht als root laufen und enthält die FlightAware (faupt1090) Verbindung. Auch läßt er sich besser konfigurieren auch mit externen Server. Es gibt auch eine schönere GUI, mit Kreisen rund um den Standort und bessere Daten. So werden jetzt alle Flugzeuge in Summe angezeigt und auch mit Postitionsdaten. Also einige Gründe, mal umzuschwenken.
Hier mal ein Foto um Geschmack zu machen mit der Summe der Flugzeuge:

Und hier ein Foto, wenn ein Flugzeug selektiert ist mit Details:
„Raspberry Pi: Wie kann ein neuer Mode S Decoder für RTLSDR Devices (DUMP1090 fork) dump1090-mutability installiert werden?“ weiterlesen
Raspberry Pi: QR-Codes mit qrencode generieren
Vor einem Jahr hatte ich schon mal über QR-Codes geschrieben, wie Quick Response online erzeugt werden können.
Jetzt wolle ich mal QR-Codes mit dem Raspberry Pi selbst erstellen. Das geht auch sehr einfach. Wie?
Erste das System auf den aktuellen Stand bringen und dann das qrencode Package installieren:
|
1 2 3 4 |
sudo apt-get update sudo apt-get upgrade # installieren von qrencode sudo apt-get install qrencode |
Eine Mindmap der installierten Abhängikeiten:

Nun ist die Version 3.3 installiert. Wer die neuere 3.4.4 braucht, muss sie halt selbst compilieren (wget, ./configure, make, make install)
So nun wollen wir gleich mal ein paar QR-Cods generieren. Zuerst einen mit einer URL
|
1 |
qrencode -l H -o qr-www.wenzlaff.info.png 'http://www.wenzlaff.info' |
dabei ist der Parameter -l der Korrekturlevel ( L ~7%, M ~15%, Q ~25%, H ~30% ) und ein QR-Code mit einem Text: „Raspberry Pi: QR-Codes mit qrencode generieren“ weiterlesen
R.I.P.: Karotz lebt wieder (ἀνάστασις) mit OpenKarotz via Fhem auf dem Raspberry Pi
Leider ist Karotz schon jetzt gestorben.
Mit OpenKarotz lebe er nun wieder. Danke. Echt cool das Projekt. Die Anleitung ist auch super. Man braucht nur
1. den Karotz reseten
2. die neue Firmware 2.0 flashen
3. das update auf 2.1 machen und den Patch 222 einspielen
schon hat man einen über einen WEB-Browser (URL = Karotz-IP) erreichbaren Karotz. Das ist alles schön mit Fotos auf der Homepage von OpenKarotz beschrieben. Auf deutsch oder englisch kann man die Google Übersetzung unten rechts auf der Seite aktivieren.

Bei klick auf das Logo, erscheint:

Der About Reiter zeigt die aktuellen Versionen an:

Auch über Telnet kann man den Karotz erreichen mit login: openkarotz
|
1 |
telnet Karotz-ip |
Auch die Integration über den Homeserver Fhem, der auf einem Raspberry Pi läuft, klappt auf Anhieb. Hier gibt es eine Anleitung dazu. Einfach in der /opt/fhem/FHEM/99_myUtils.pm die folgende Methode einfügen:
|
1 2 3 4 5 6 |
sub karotz(@) { my ($ip,$cmd) = @_; my $url = "http://"."$ip"."/cgi-bin/".$cmd; my $ret = GetFileFromURL($url,3,undef,1,1); return $ret; } |
oder wenn man einen nicht blockenden Aufruf für Fhem haben möchte, oben in der Perl Datei
|
1 |
use HttpUtils; |
und dann diese Methode:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
sub karotzBefehl(@) { my ($ip,$cmd) = @_; my $url = "http://"."$ip"."/cgi-bin/".$cmd; my $hash = { url => $url, callback=>sub($$$){ Log 1,"karotz: $url\nERR:$_[1] DATA:$_[2]" }, }; my ($err, $ret) = HttpUtils_NonblockingGet($hash); if($err) { Log3 undef, $hash->{loglevel}, "karotz: $err"; return undef; } return $ret; } |
Der Aufruf kann dann für eine Ansage oder einer Ohr-Bewegung dann in der *.cfg Datei mit:
|
1 2 |
karotzBefehl("Karotz-IP", "tts?voice=julia&text=Telefonanruf.$name&nocache=0");;\ karotzBefehl("Karotz-IP", "ears_random");;\ |
Dann kann in der fhem.cfg ein Eintrag in der Art:
|
1 2 3 |
karotz(<IP-Karoz>,"ears_random");;\ # oder nicht blockend karotzBefehl("Karotz-IP", "ears_random");;\ |
gemacht werden und schon wackelt er mit den Ohren dank OpenKarotz.
Habt Ihr noch gute Seiten zu dem Thema gefunden oder Ideen und Tips?
FRITZ!Box 7490 update FRITZ!OS 6.23 veröffentlicht
Das Update war ja schon letztes Jahr, ist aber bei mir irgendwie vorbeigelaufen 😉
So werden die Features auch mehr, einfach die „alten“ in der Liste mit aufnehmen. Neue Möglichkeiten bei der Telefonie, welche? 😉






