Donnerstag, 17. April 2014

Cubietruck - Einrichtung

Für seinen späteren Einsatzzweck soll der Cubie auch entsprechend eingerichtet sein. Diese Seite hier ist einfach da, um ein paar grundlegend,e allgemeine Einrichtungen zu beschreiben und wird ständig erweitert.

Wheezy startet ohne grafische Oberfläche. Dies ist wie ich finde vorteilhaft, da ich mich eh nur mit SSH einlogge und die Oberfläche nur unnötig Ressourcen braucht.

WLAN-Einrichtung:

Zunähst will ich das WLAN des Cubies konfigurieren. Da keine grafische Oberfläche installiert ist, muss dies über Konsole geschehen.
Treiber und die grundlegenden Pakete für den WLAN-Betrieb sind bereits installiert, weswegen nur noch das WLAN selbst konfiguriert werden muss.
Hierfür benötigt man noch den PSK-Key. Dies ist nicht der wirkliche WLAN-Key, sondern er leitet sich von diesem ab.  Zur Generierung wird folgender Befehl ausgeführt:

wpa_passphrase   yourSSID   yourpassword

Bei der Befehlsausführung gibt man dabei den wirklichen WLAN-Key und erhält als Ausgabe so etwas wie:

network={
        ssid="yourSSID"
        #psk="yourpassword"
        psk=faae10e11d8261d99bc9d8d867331ed7d6141075f6dc4dfe638993bcfa9fcb3d
}

Wichtig davon ist nur die SSID und der lange PSK mit den HEX-Zeichen (also die letzte Zeile).

Diese werden nun in die /etc/network/interfaces Datei eingetragen. Diese mit root-Rechten öffnen und am Ende der Datei Folgendes anhängen (so wie es das Beispiel in den Comments zeigt).

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
    wpa-ssid yourSSID
    wpa-psk faae10e11d8261d99bc9d8d867331ed7d6141075f6dc4dfe638993bcfa9fcb3d

Die Datei abspeichern und nun das WLAN-Interface mit dem folgenden Befehl starten.

sudo ifup wlan0

In der Ausgabe - sofern alles richtige läuft - sollte etwas wie 

bound to 192.168.1.5 -- renewal in 749797453 seconds.

auftauchen. Damit wurde dem WLAN-Interface erfolgreich eine IP-Adresse vom WLAN-Router vergeben.








Dienstag, 15. April 2014

Cubietruck und Betriebssystem


Durch die umfangreiche Ausstattung des Cubietrucks gibt es mehrere Möglichkeiten ein Betriebssystem abzuspeichern und auszuführen.
Auch gibt es zudem eine große Auswahl an Betriebssystemen, welche installiert werden können. Neben verschiedenen klassischen Linux-Distributionen, wie Ubuntu, Suse und co., stehen auch Android und OpenWRT zur Installation bereit.

Bei der Lieferung ist bereits Android 4.2.2 installiert. Es befindet sich im NAND-Speicher des Trucks.  Alternativ lässt sich das Betriebssystem auch von SD-Karte, USB-Stick und Festplatte (angeschlossen über SATA) starten.

Also stellt sich nun die Frage: Von wo starte ich welches Betriebssystem?

NAND: Vorteil ist, das man kein zusätzliches externes Speichermedium braucht. Einfach Strom anschließen und der Truck startet. Jedoch können mit NAND maximal 10.000 Schreibzyklen durchgeführt werden. Dies ist für ein Betriebssystem nicht sonderlich viel, vor allem wenn viele temporäre Daten erzeugt werden. Bis zu 8Gbyte lassen sich auf NAND speichern, danach ist Schluss.

SD-Karte: über den MicroSD-Slot lässt sich der Cubietruck um bis zu 32GByte  erweitern. Das Board ist so konfiguriert, dass es automatisch von einer bootbaren SD-karte startet, wodurch man einfach nur ein Image auf die SD-Karte kopiert und schon kann es losgehen. Dadurch ist man außerdem sehr flexibel, was die Auswahl des Betriebssystems angeht. Ganz ähnlich wie beim RaspberryPi. Ebenso lassen sich sehr einfach Backups gestalten.

Festplatte: Über den SATA-Anschluss können auf Festplatten angeschlossen werden. Strom gibt es auch direkt vom Cubietruck. Das passende Kabel wird direkt mitgeliefert.  Das Gehäuse bietet außerdem direkt einen Einschub für 2,5" Festplatten so dass diese ebenfalls geschützt ist. Vorteil bei der Festplatte ist zum Einem der große Speicherplatz und zum Anderen bietet der SATA-Anschluss eine hohen Performance-Gewinn - vorallem, wenn man direkt eine SSD anschließt.


Ich habe mich erstmal für die SD-Variante entschieden, da ich zunächst einige Betriebssystem testen möchte und mir leider keine Festplatte zur Verfügung steht. Als Betriebssystem habe ich mich erstmal für Wheezy entschieden.

Montag, 7. April 2014

Getting Started

Ich habe in der späten Abendstunde noch noch etwas Muße gefunden und mal mein Cubietruck aufgebaut.

Sehr positiv finde ich zu Beginn, das im Lieferumfang viel Zubehör mitgeliefert wurde.  Neben Stromkabel, auch Passivkühler, SATA-Kabel, Micro-USB-Kabel und auch einem Gehäuse.



Nach dem Anschließen und dem Stromzufuhr beginnt das Board direkt an zu starten. Ich bin doch sehr beeindruckt darüber, wie wahnsinnig verrückt es in vielen verschiedenen Farben blinkt. :)



Standardmäßig ist auf dem Truck Android 4.2.2 installiert.


Demnächst geht es dann weiter mit der Installation eines gescheiten Betriebssystems :)

neues Spielzeug - Cubietruck!


Endlich hat mein Raspberry Pi Unterstützung erhalten. Ich habe mit ein Cubietruck ( auch bekannt als Cubieboard v3) bestellt, welcher am Wochenende endlich geliefert wurde.

Der Grund ist, das ich bis alles mit meinem RaspberryPi umgesetzt habe, jedoch dieser mir für gewisse Arbeiten einfach zu langsam ist. vorallem der NAS-Dienst bzw. Fileserver war mir viel zu langsam, da sich beim  PI der USB-Port und der Ethernet-Anschluss über einen BUS arbeiten. Außerdem sind meine externen Festplatten alle auf NTFS formatiert und der NTFS-Dienst auf Linux einfach sehr viel Ressourcen fordert. Ich hätte ja einfach die Festplatten auf ext3 und co. formatieren können, doch dafür sind meine Festplatten einfach zu voll.

In der C't-Ausgabe 3/2014 gab es einen ausführlichen Beitrag über Raspberry Pi und anderer solcher Boards. Da für mich der Einsatzzweck als NAS sehr wichtig war, kamen nur Cubietruck als auch OLinuXino Micro in Frage. Ich habe mich nicht für letzteres entschieden, da es kein OnBoard WLAN, Bluethooth und Gigabit-Ethernet besitzt. Weiterhin hat das Board nur  1 GByte RAM wohingegen der Cubietruck mit 2 GByte um die Ecke kommt. (Außerdem klingt Cubietruck natürlich auch wesentlich cooler :) )

Somit ist mein neues Board gefunden, bestellt und warten auf seinen Einsatz :)

Sonntag, 23. Februar 2014

Auslesen von Temperaturwerten der Außensensoren einer Funk-Wetterstation

Es gibt viele Funk-Wetterstationen auf dem Markt. Viele dieser Stationen können über Außensensoren erweitert werden, welche glückerlicherweise auf dem 433Mhz Band die Temperaturen übertragen.

An meinem RaspberryPi habe ich ein Sende- und ein Empfangsmodul angeschlossen. Da es mehrere Module davon gibt, habe ich mich auf die Empfehlung von pilight verlassen, da ich diese Bibliothek bereits verwende, um Funksteckdosen zusteuern. Die Installation und die Module sind unter folgendem Link zu finden: http://wiki.pilight.org/doku.php/electronics .
Für die Temperatur-Außensensoren habe ich mich für PEARL Funk-Außensensor für Wetterstation entschieden.

Nun kommen wir zur Installation:

Nachdem die Hardware angeschlossen ist, kann die Software-Einrichtung beginnen.
Zunächst einmal benötige ich die pilight-Bibliothek. Hierfür muss man zunächst ein Repository hinzufügen, da pilight selbst nicht über die Standard-Repositorys zur Verfügung steht.
Hierfür öffnet man folgende Datei
sudo nano /etc/apt/sources.list
und fügt am Ende der Datei die folgende Zeile:

deb mirror://apt.pilight.org/mirror.txt stable main

Den nano-Editor schließt man mit [CTRL]+X --> Y --> [ENTER]
Da dieses Repository signiert ist, benötigt man nun den Public-Key, da mit die Daten erfolgreich und verschlüsselt übertragen werden können.

sudo wget -O - http://apt.pilight.org/pilight.key | sudo apt-key add -

Nun kann man ganz klassisch das pilight-package installieren:

sudo apt-get update

sudo apt-get install pilight

Nach hoffentlich erfolgreicher Installation kann der Pilight-Dienst über 

sudo service pilight start / stop

starten und stoppen. Dieses Programm läuft nun im Hintergrund und steuert die GPIO-Schnittstelle und die da angeschlossenen Sende- und Empfangsmodule. 
Damit man nun die Temperatursensoren auslesen kann, sollte zunächst einmal der Befehl 

sudo pilight-receive

Dieser Befehl gibt alle Daten, welche das Empfangsmodul empfängt und pilight dekodieren kann aus. Es sollten nun Daten der form:

{
        "code": {
                "id": 1420,
                "temperature": 152
        },
        "origin": "receiver",
        "protocol": "alecto",
        "repeats": 6

}

erscheinen. Dies sind die Daten der Außenthermometer. Hier ein paar Infos zu den Feldern.
  • ID: ID des Sensor zur eindeutigen Identifikation bei der Verwendung mehrerer Sensoren.
  • temperature: Die gemessene Temperatur. Der Wert muss noch durch 10 geteilt werden um die richtige Temperatur zu erhalten. ;-) Im Beispiel herrschen 15,2°C
  • protocol: gibt an welches Protokoll pilight zur Dekodierung verwendet hat. "alecto" ist dabei das Protokoll der Wetterstationen. (zumindest der verwendeten)
  • repeats: Die Sensoren senden ihre Daten 6x hintereinander, um eine fehlerhafte Übertragung zu verringern. So geht der Hersteller sicher, das die Daten auch an der Wetterstation ankommen. repeats listet den aktuellen Versuch der Übertragung.

Nun hat man eigentlich die Sensoren ausgelesen.Damit man die natürlich noch weiterverarbeiten kann, lasse ich diese Daten in eine Datei schreiben. Dies realisiere ich über ein BASH-Skript.

#!/bin/bash

pilight-receive | tee /tmp/pilight.txt &

Dadurch werden alle Messwerte in die Datei: /tmp/pilight.txt geschrieben. Somit kann dann mittels eines anderes Skripts die Dateien einfach verarbeitet werden. 
Ich habe mir hierfür ein PERL-Skript geschrieben, was den Inhalt der Datei ausliest und mittels eines regulären Ausdrucks von jedem Sensor den ersten übertragenen Wert verwendet und diesen inkl. der zugehörigen Sensor-ID in eine Datenbank schreibt.



Freitag, 25. Oktober 2013

funksteckdosen steuern


Eine nützliche Erweiterung des PIs ist die Verkabelung von einem Sende- und Empfangsmodul auf dem 433MHz-Band.  Diese können über die GPIO-Schnittstelle des RaspberryPI  genutzt werden. Dadurch lassen sich zum Beispiel Funksteckdosen ein- und ausschalten, was wie ich finde sehr nützlich für die Automatisierung ist. In Verbindung mit einem Webserver - welcher von außen erreichbar ist - lassen sich verschiedene Geräte mittels eines Smartphone von unterwegs steuern. Oder man schreibt sich Cronjobs wodurch man Tätigkeiten automatisieren kann, wie zum Beispiel das anschalten der Kaffee-Maschine frühs um 6 :) Besser geht es doch nicht!!!

Was wird benötigt:

  • Funkmodule zum Senden und Empfangen. Ich verwende diese hier: LINK
  • Ein paar Kabel zum Verbinden
  • Funksteckdosen. Hierbei gibt es viele auf dem Markt. Der Großteil wird von der späteren Software auch unterstützt. Wer sicher gehen will, kann HIER nachschauen. Für die erstmalige  Einrichtung ist ein Set mit Fernbedienung zu empfehlen, da diese zwingend für die Einrichtung erforderlich ist.


Kommen wir nun Einrichtung:

  • Zu Beginn verkabelt man die Funkmodule mit dem PI wie folgt:

  • Als Zweites installiert man die pilight-Bibliothek. Diese dient zur einfachen Verwendung der Signalübertragung. Die Protokolle der Steckdosen sind ebenfalls bereits enthalten. Für die aktuellste Installationsanleitung verweise ich einfach mal auf die Seite der Entwickler: LINK
  • Nun ist die Konfiguration an sich schon fertig :)
Funksteckdosen steuern:

Um die Funksteckdose zu steuern, werden über diese noch eine Informationen benötigt. Hier kommt die Fernbedienung ins Spiel. Hierfür startet man - sofern noch nicht geschehen - den pilight-Daemon mit dem Befehl:
sudo pilight-daemon start

Als nächstes lesen wir die Fernbedienung aus indem wir das folgende Programm ausführen:

sudo pilight-receive

Nun werden alle Signale, welche das Funkmodul empfängt, angezeigt. Nun hält man die Fernbedienung an das Empfangsmodul und drückt die Taste On-Taste der Dose A. Es sollte nun etwas wie der folgende Code auf dem Display erscheinen:

 {
        "code": {
                "systemcode": 23,
                "unitcode": 1,
                "state": "on"
        },
        "origin": "receiver",
        "protocol": "sartano"
}

Dies ist das Signal der Fernbedienung logischerweise. Hier noch etwas Erklärung dazu:
  •  system-code : Dies ist der PIN, welchen man sowohl in den Steckdosen als auch in der Fernbedienung einstellt.
  • unitcode: Dies ist die Nummer der Steckdose, welche man ebenfalls selber vorher festgelegt hat.
  • state: welchen Status die Steckdose annehmen soll. ( On --> an, off -->  logisch :D )
  • origin: welches Gerät, soll das Signal empfangen
  • protocol: Das Protokoll, welches für die Kodierung verwendet wurde. 
Dies sind alle Informationen die wir nun brauchen, um die Steckdosen zu steuern. Zum Senden des Signals nutzen wir den Befehl pilight-send. Mit den verschiedenen Argumenten kann jede Steckdose angesprochen werden. Ein Beispiel zur besseren Erklärung.

sudo pilight-send -p elro -s 20 -u 1 -t
  • Mit dem Attribut "-p" wird das Protokoll der Funksteckdose definiert. Eine Liste über die verschiedenen Protokolle erhält man, wenn man einfach mal "pilight-send -p" ausführt.
  • Mit "-s" übergibt man eingestellten PIN
  • Mit "-u" übergibt man die Nummer der Steckdose
  • Mit dem Attribut "-t" schaltet man eine Steckdose an. Zum Ausschalten verwendet man das Attribut "-f"
Und das war auch schon alles.

Ich habe mit auf meinen Webserver eine Seite erstellt, welche verschiedene Buttons listet. Je nach Button wird dann ein bestimmter "pilight-send" ausgeführt. Hierfür musste ich noch dem User "www-data" administrative Rechte zum Ausführen von pilight-send erteilen.

Sonntag, 13. Oktober 2013

Der Beginn

Nun zu Beginn - und damit der erste Inhalt meines Blogs :-)  - möchte ich erklären, wie ich mein RaspberryPi einrichte.
Es gibt mittlerweile unzählige Beiträge im Internet, welche erklären, wie man ein RaspberryPi startklar einrichtet. Die "Raspberry Pi Foundation" selbst hat auf ihrer Homepage ein Programm namens "NOOBS" veröffentlicht. NOOBS steht für "New Out Of Box Software" durch welche es nicht-technisch-versierten Menschen ermöglicht wird, das RaspberryPi startklar zu bekommen. Dabei wird die, von der Foundation veröffentlichte,Standard-Distribution "Raspian" verwendet.

Weitere Distributionen gibt es auf folgender Seite: HIER

Ich selbst habe mich für Raspbmc entschieden.  Grund dafür ist, das ich in der Vergangenheit zum Einem damit bereits gute Erfahrung gemacht haben und zum Anderem. weil bei dieser Distribution bereits die Media Center Software "XBMC" integriert ist. Diese benötige ich für mein Heimsystem. Doch dazu komme ich später.

Kommen wir  zur Einrichtung:
Für die Installation von Raspbmc auf dem RaspberryPi, muss das Image auf die SD-Karte "installiert" werden.
Hierfür bieten die  Entwickler der Distribution einen einfach Installer an - zu finden unter folgendem Link: Folge mir
Man wählt im Installer-Fenster lediglich nur noch die betreffende SD-Karte aus und der Rest wird wie durch Magie von selbst erledigt. Dabei wird lediglich eine Internetverbindung benötigt, um die aktuellste Version herunterzuladen.

Nun heißt es einfach SD-Karte ins RaspberryPi stecken und dem Gerät Strom geben. Es werden ein paar Einstellung vorgenommen. Das kann ein paar Minuten dauern.
Hat man Pi ein Bildschirm angeschlossen, startet nun automatisch die XBMC-Software. Hier sollte zunächst im aufblobbenden Menü die Sprache und die Zeitzone eingestellt werden.

Nun ist das Pi einsatzbereit.
Es lässt sich ebenfalls über SSH auf das Pi einwählen.
Hierfür sind folgende Anmeldedaten standardmäßig eingestellt:
Benutzer: pi
Passwort: raspberry

dieses sollte selbstverständlich nach der ersten Anmeldung geändert werden.
Dies gelingt ganz einfach mittels des Befehl "passwd". Daraufhin gibt man nochmal sein aktuelles Passwort ein und kann danach sein neues Passwort eingeben und bestätigen.
Mittels passwd lassen sich im übrigen auch die Passwörter anderer Benutzer ändern, sofern man die benötigten Rechte besitzt. Einfach hinter "passwd" den gewünschten Benutzernamen angeben und gut.


Nun heißt es nur noch sagen: Viel spaß beim Basteln :-)