Nach ungefähr 2 Monaten Wartezeit ist heute ENDLICH der Rasp angekommen. Wie erwartet auch in der 512MB Version.
Freitag, 21. Dezember 2012
Freitag, 9. November 2012
Aktuelle Liste der anwesenden Bewohner - Implementierung Teil 1
Während Christian Venga sich unter Einsatz seines Lebens damit beschäftigt die Belegung des DVI/HDMI-Adapter herauszufinden, möchte ich mich kurz mit einem Teil der Softwareimplementierung befassen.
Wir haben als Erstes damit begonnen die Funktionalität fertigzustellen, die es ermöglicht, die gerade anwesenden Bewohner anzuzeigen. Ein erster Schritt dahin besteht darin, anhand einer Liste die momentan im Netzwerk verfügbaren Geräte zu ermitteln. Wir nehmen dabei eine simple XML-Datei zu hilfe, um nicht groß eine Datenbankinfrastruktur aufbauen zu müssen.
Diese sieht wie folgt aus und beinhaltet eine Liste der User mit Namen, Hostname des Smartphones und ein Statusinformation, die anzeigt, ob das Gerät im lokalen Netzwerk ist. Wir werden diese Information später durch unser Programm dynamisch ändern.
Wir haben als Erstes damit begonnen die Funktionalität fertigzustellen, die es ermöglicht, die gerade anwesenden Bewohner anzuzeigen. Ein erster Schritt dahin besteht darin, anhand einer Liste die momentan im Netzwerk verfügbaren Geräte zu ermitteln. Wir nehmen dabei eine simple XML-Datei zu hilfe, um nicht groß eine Datenbankinfrastruktur aufbauen zu müssen.
Diese sieht wie folgt aus und beinhaltet eine Liste der User mit Namen, Hostname des Smartphones und ein Statusinformation, die anzeigt, ob das Gerät im lokalen Netzwerk ist. Wir werden diese Information später durch unser Programm dynamisch ändern.
Wir werden die XML-Datei jetzt mithilfe von Java einlesen und dann die aktualisierten Daten in die Datei schreiben. Da wir vielleicht später noch einmal XML-Dateien lesen müssen, erstellen wir uns erstmal eine Hilfsklasse, die den Zugriff und Speicherung übernimmt.*Name* *Hostname oder IP* false
import java.io.File; import java.io.PrintStream; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; /** * @author Vengadivision * */ public class XmlIO { /** * @param FilePath * @return */ public static Document getXmlByFilePath(String FilePath) { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = null; try { builder = factory.newDocumentBuilder(); Document document = builder.parse(new File(FilePath)); return document; } catch (Exception e) { return null; } } /** * @param FilePath * @param document */ public static void writeXmlByFilePath(String FilePath, Document document) { DOMSource source = new DOMSource(document); PrintStream ps; try { ps = new PrintStream(FilePath); StreamResult result = new StreamResult(ps); TransformerFactory transformerFactory = TransformerFactory .newInstance(); Transformer transformer; transformer = transformerFactory.newTransformer(); transformer.transform(source, result); } catch (Exception e) { e.printStackTrace(); } } }Die beiden statischen Methoden sind denke ich soweit selbst erklärend. Mehr dann im nächsten Teil ;-)
Freitag, 2. November 2012
MDR-Stecker - Belegung
Hier schonmal auf Anfrage die Belegung des MDR Steckers. Die Pins die ich nicht beschriftet habe, müssen wir nochmal nachmessen. Die Liste erhebt keinen Anspruch auf Richtigkeit. Sobald wir die Gelegenheit haben (also wenn das Kabel und der Stecker da ist), werden wir es nachprüfen und die Tabelle ggf. korrigieren.
Die beiden fehlenden Pins sind ergänzt. Danke an den annonymen Kommentator ;)
Die Belegung der HDMI-Stecker ist übrigens bei Wikipedia zu finden!
MDR-Pin | Belegung |
---|---|
1 | DDC Masse |
2 | TMDS Clock Abschirmung |
3 | DDC 5V Versorgungsspannung |
4 | TMDS Data 0- |
5 | TMDS Data 0+ |
6 | frei |
7 | frei |
8 | frei |
9 | SDA (Pin 16 am HDMI) |
10 | TMDS 1 Abschirmung |
11 | frei |
12 | TMDS 2- |
13 | TMDS 2+ |
14 | TMDS Clock- |
15 | TMDS Clock+ |
16 | frei |
17 | TMDS 0 Abschirmung |
18 | SCL (Pin 15 am HDMI) |
19 | frei |
20 | frei |
21 | frei |
22 | TMDS 1- |
23 | TMDS 1+ |
24 | Hot Plug |
25 | TMDS 2 Abschirmung |
26 | frei |
Eingestellt von
Unknown
um
18:15
8 Kommentare:
Diesen Post per E-Mail versendenBlogThis!In Twitter freigebenIn Facebook freigebenAuf Pinterest teilen
Labels:
Adapter,
HDMI,
Kabelbelegung,
MDR 26
Standort:
Wiehl, Deutschland
Dienstag, 23. Oktober 2012
Display - eine genauere Betrachtung
Da wir ja immernoch auf die weitere Hardware warten, haben wir uns schonmal ein par Gedanken zum Touchscreen gemacht. Hier erstmal ein Bild der Anschlüsse an der Rückseite des Screens.
- Power - 12V DC in
- 26 pol. MDR - ein digitaler Eingang, den wir per Eigenbauadapter auf HDMI adaptieren werden
- USB 2.0 - Allerdings nicht in der herkömmlichen Variante, es kann aber einfach mit einer zweireihigen 2,54mm Buchsenleiste ein Adapter auf den Standard-USB 2.0 gebastelt werden. Der Display ksann auch über USB mit Strom versorgt werden allerdings sind auch hier 12V notwendig. Eine USB Stromversorgung ist also nicht ohne weitere Hardware möglich. Wir werden also auf herkömmlichem Wege mit einem externen Netzteil arbeiten. Der Belegungsplan der Buchse sieht folgendermaßen aus:
Quelle: IBM 4820 SurePoint Solution - Planung installation und Service - integrierter USB-Hub - Hier könnte bspw eine Maus und Tastatur angeschlossen werden
Diese Leiste scheint wohl für den Anschluss eines Nummernpads gedacht zu sein. Werden wir wohl nicht benutzen.
Montag, 22. Oktober 2012
Der Touchscreen ist angekommen! :)
Endlich konnten wir mal den bestellten Touchscreen unter die Lupe nehmen. Wir waren eigentlich davon ausgegangen, dass es sich um ein resistives Display handeln müsste. Beim ersten Hands On hatten wir dann doch den Eindruck, ein kapazitives Display in den Händen zu halten. Da werden wir dann wohl nochmal recherchieren. Leider muss die erste Inbetriebnahme noch etwas warten, da die bestellten Kabel und Adapter noch aus China auf dem Weg zu uns sind. Hier aber schon mal das erste Bild. Sowohl weitere Bilder, als auch eine detailliertere Besprechung der Modifikationen, die für den Betrieb mit dem Raspberry nötig sind, folgen noch! :)
Samstag, 20. Oktober 2012
DeLorean und das mysteriöse Paket
Doch kommen wir zu einer anderen interessanten Sache. Heute habe ich zum ersten Mal live einen echten DeLorean (wer kennt ihn nicht aus "Zurück in die Zukunft" mit seinen markanten Flügeltüren?) gesehen und sogar als Beifahrer die Fahrt genießen können. Ich möchte Euch die Bilder nicht vorenthalten :)
Motor |
Timedrive nur mit Plutonium ;) |
Flügeltür |
Freitag, 19. Oktober 2012
Auslesen der VVS-Daten
Gute Neuigkeiten! Wir bekommen den Raspberry in der neuen Ausführung, nämlich mit 512 MByte Speicher. Leider ist er aber noch nicht angekommen, deswegen beschäftigen wir uns schon mal mit der Realisierung der Funktionen. Heute soll es um die ersten Schritte für das Auslesen der Real-Time Daten einer Haltestelle gehen.
Über die Seite
Wir haben noch nicht alle Parameter ausgetestet, aber wir werden jetzt kurz auf die eingehen, die uns bekannt sind.
Hier eine Beispielanfrage:
(Vielen Dank an Felix N. und Moritz T. aus S.-V. für die Infos ;-))
Über die Seite
http://www2.vvs.de/vvs/widget/kann ein HTTP-Request abgesetzt werden, der eine XML mit den angeforderten Daten zurückgibt. Das Tolle ist, dass keine Session angelegt werden muss, um diese Infos zu bekommen.
Wir haben noch nicht alle Parameter ausgetestet, aber wir werden jetzt kurz auf die eingehen, die uns bekannt sind.
- language -> Sprache der Rückgabe, hat allerdings keine direkte Auswirkung in diesem Fall. Die Ausgabe bleibt gleich.
- limit -> Anzahl der Datensätze, die zurückgegeben werden, im Beispiel 20
- name_dm -> 7-stellige ID der Haltestelle
- itdDateYear,itdDateMonth,itdDateDay, itdTimehour, itdTimeMinute -> Zeit der Anfrage
Hier eine Beispielanfrage:
http://www2.vvs.de/vvs/widget/XML_DM_REQUEST? zocationServerActive=1 &lsShowTrainsExplicit=1 &stateless=1 &language=de &SpEncId=0 &anySigWhenPerfectNoOtherMatches=1 &limit=20 &depArr=departure &type_dm=any &anyObjFilter_dm=2 &deleteAssignedStops=1 &name_dm=XXXXXXX &mode=direct &dmLineSelectionAll=1 &itdDateYear=2012 &itdDateMonth=10 &itdDateDay=12 &itdTimeHour=19 &itdTimeMinute=26 &useRealtime=1
Der nächste Schritt wird sein, den zurückgegebenen XML-Tree zu parsen und auszulesen.Dazu später mehr!
(Vielen Dank an Felix N. und Moritz T. aus S.-V. für die Infos ;-))
Dienstag, 16. Oktober 2012
Geplante Einsatzmöglichkeiten
Im Rahmen der Planung des Projekts haben wir bereits einige Einsatzmöglichkeiten identifiziert, die im Folgenden kurz besprochen werden:
Türöffner
Der Summer für die Eingangstür soll sowohl über den Touchscreen, als auch über eine Handyapp betätigt werden können. Bei der App ist es besonders wichtig, dass eine sichere Authentifizierung des Benutzers erfolgt. Der Knopf für den Summer wird ebenso wie bei der Lichtsteuerung über ein Relais gebrückt, dass vom GPI/O des Raspberry geschaltet wird.Lichtsteuerung
Über den GPI/O und ein gewöhnliches Relais ist es möglich, einen Lichtschalter zu Brücken und somit eine "Schnittstelle" zu dem digitalen System zu schaffen. Unter Umständen ist es nötig noch Schutzmaßnahmen zu treffen, um den Raspberry vor Überspannung zu schützen.
ÖPNV-Anzeige
Der Raspberry soll Informationen über die Bahnverbindung an der nahegelegenen Haltestelle von der VVS-Website auslesen und anzeigen. Als Vorbild dienen die Anzeigetafeln an Bahnhöfen.
Aktuelle Liste der anwesenden Bewohner
Die Software führt eine Liste, derer Mitbewohner, die aktuell zu Hause sind. Dies geschieht sowohl automatisch (es wird in regelmäßigen Abständen überprüft, welche Handys im heimischen WLAN angemeldet sind) als auch manuell, per Login oder -out am Terminal. Die Liste ist für alle anderen im Internet zugänglich.
Putzplan
Ein Putzplan für die Wohnung liegt im PDF-Format vor und soll auf Wunsch angezeigt werden können.
Vorlesungspläne
Vorlesungspläne liegen im PDF-Format vor und sollen angezeigt werden. Da verschiedene Bewohner verschiedene Vorlesungspläne einsehen wollen, muss hier eine Benutzeridentifizierung erfolgen.
Voice Recognition (Awesomeness Level over 9000)
Einfache Befehle (vornehmlich für die Lichtsteuerung) sollen per Voice Recognition eingegeben werden können. Hier ist noch zu klären, ob das mit dem Raspberry überhaupt möglich ist.
Einkaufsliste
Nach der groben Planung steht die Einkaufsliste auf dem Programm.
Da das Display mit einem MDR26 Stecker und einem proprietären USB-Anschluss ausgerüstet ist, das Raspberry aber nur mit HDMI und USB 2.0, sind noch einige Adapter nötig. Aus Kostengründen werden wir diese so weit es geht selbst bauen.
Adapter:
Gesamtpreis bis jetzt: ca. 80€
- Raspberry Pi in der Ausführung B
- IBM 12" Pos Monitor TFT Display 4820-48T Kassendisplay
Da das Display mit einem MDR26 Stecker und einem proprietären USB-Anschluss ausgerüstet ist, das Raspberry aber nur mit HDMI und USB 2.0, sind noch einige Adapter nötig. Aus Kostengründen werden wir diese so weit es geht selbst bauen.
Adapter:
- HDMI auf DVI-Kabel (male)
- 26 Pin MDR Wire Mount
- HDMI (female ) zu DVI (male) Adapter zu Diagnosezwecken
Das Raspberry Pi kann über den integrierten GPI/O (General Purpose Input/Output) mit Relais verbunden werden.
Gesamtpreis bis jetzt: ca. 80€
Die benötigte Hardware ist bestellt und wir warten gespannt auf die Ankunft.
Eingestellt von
Unknown
um
13:09
Keine Kommentare:
Diesen Post per E-Mail versendenBlogThis!In Twitter freigebenIn Facebook freigebenAuf Pinterest teilen
Labels:
Adapter,
Raspberry Pi,
Touchscreen
Standort:
Stuttgart, Deutschland
Das Projekt
Das ProjectShinyDonut ist ein Low-Budget Smarter-Living Home-Automatisierungsprojekt. Es besteht im Wesentlichen aus einem Raspberry-Pi, der mit einem Touchscreen, mit einigen elektronischen Geräten im Haus und über das Heimnetzwerk mit dem Internet verbunden ist. Das System soll direkt über den Touchscreen oder über ein Online-Interface (bspw. auch per Smartphone) steuerbar sein.
Software
Auf dem Raspberry wird das Betriebssystem Raspbian laufen (eine angepasste Debian Distribution). Ob die Applikation dann in reinem Java oder als Weboberfläche mit vorgeschaltetem Tomcat-Apllicationserver realisiert wird, ist noch nicht entschieden.
Software
Auf dem Raspberry wird das Betriebssystem Raspbian laufen (eine angepasste Debian Distribution). Ob die Applikation dann in reinem Java oder als Weboberfläche mit vorgeschaltetem Tomcat-Apllicationserver realisiert wird, ist noch nicht entschieden.
Abonnieren
Posts (Atom)