I2C – HD44780 – Raspberry PI – LCD Display

Bildschirmfoto vom 2013-01-11 20:50:02Mal wieder eine neue Bastelei die ich hier festhalten möchte. Ich habe mir vor ein paar Tagen I2C Videos bei Youtube angesehen und mir danach direkt die I2C Porterweiterung und ein passenden Bildschirm (TC1602A-09) bei Pollin bestellt. Nach ein wenig Löten konnte ich das I2C Modul auch dank i2c-tools und i2cdetect direkt, unter einer mit Jumpern festgelegten Adresse, in Betrieb nehmen. Zunächst versuchte ich das smb python Modul mit eigenen „verfuschten“ Treibern zu nutzen. Da das jedoch sehr instabil war nutzte ich lcdproc mit dem LCDd Deamon. Dieser Deamon erlaubt es mir auch extern über das Netz Inhalte auf den Display zu bringen. Als nächstest ist ein Twitterfeeder o.ä. geplant. Sieht im Dunkeln auf jedenfall sehr schick aus!

IMG_20130111_184338

Update: Nachdem ich ein wenig mit den verschiedensten lcdproc python Apis Experimentiert habe, konnte verschiedene Clientlösungen bauen:

iTunes Anzeige für Mac OSX:

Twitter LCD Client (auf Raspberry selbst):

Raspberry PI – Twitter und Mail Notifier

Um auch endlich mal was mit dem Raspberry PI anzufangen hab ich mir ein kleines Projekt überlegt was mir über eine sehr helle RGB-LED aktuelle Nachrichten bei Twitter oder Googlemail anzeigt. Leider konnte ich nur eine LED ansteuern da die GPIO Ports einer Strombegrenzung von 50 mA unterliegen. Glücklicherweise liegt aber genau an den Ports eine Spannung von 3.3 V an sodass die LED direkt angeschlossen werden konnte. Jetzt noch ein kleiner Python Script der die Pins bei den Events von Twitter und er E-Mail einschaltet.

Um das ganze auch selbst zu installieren benötigt man folgende Dinge:

  • Python2.7 auf dem Raspberry
  • Python Modul tweepy installiert (pip install tweepy)
  • anlegen der datei .lasttweetid und .mailpassword(mit passendem account passwort)
  • zuletzt noch das Script anpassen:
    • consumer_key,consumer_secret,access_token und access_token_secret von https://dev.twitter.com in … einfügen
    • Google Mail Account bei USERNAME einfügen
  • RGB-LED an den Raspberry anschliessen
    • gemeinsame Anode an +3.3V
    • Blau und Grün an die GPIO Pins 0 und 1 (Achtung ! Rote LED mit Vorwiederstand !)

WordPress – getrennte Subnavigation

Da ich zu diesem Thema im Netz keine Lösung gefunden habe hier ein kleiner Walkthrough. Grundsätzlich geht es darum eine normale WordPress Navigation mit einer Hierarchie auf der Seite getrennt darzustellen. wp_list_pages() und wp_list_posts() bieten beide diesen Mechanismus durch die gefilterte parent ID. wp_nav_menu() besitzt dieses Feature nicht. Daher muss ein kleiner Filter Skript angelegt werden:

 

Mit diesem Skript lässt sich, wie in diesem Beispiel, jeweils das Cat Element darstellen wenn die Vaterseite geöffnet ist.

 

Google Music GTK Player – Python

Als kleine Ablenkung vom Lernen für die anstehende Prüfungsphase habe ich mal die schon seit längeren beobachtete Unofficial-Google-Music-API ausprobiert. Darüber hinaus auch mal ein wenig mit pygtk hantiert und durch glade zwei einfach GUIs für das Login und den Player erstellt. Dieses Projekt ist eine kleine Bastelei und hilft eventuell dem ein oder Anderen bei eigenen Projekten mit Python-GStreamer, Python-GTK und der Google Music API. Zu finden ist der Quelltext unter github.com.

Ruby on Rails – LoriotTime

Im letzten Monat habe ich mich mit dem Ruby Framework Rails beschäftigt und für einen lokalen Theaterverein eine Ticketsoftware nach dem REST Prinzip entwickelt. Rails ist ein in Ruby geschriebenes Application Framework was verschiedenste Programmier und Entwicklungsparadigmen wiederspiegelt. DRY (don’t repeat yourself), MVC (Model-View-Controller Pattern) und „Konvetion vor Konfiguration“ bieten eine sehr strikte aber organisierte Anwendungsentwicklung.

Die entwickelte Applikation (unter github zu finden) soll dazu dienen, Karteien über Personen, Auftrittsphasen, den einzelnen Auftritten und entsprechende Reservierungen zu verwalten. Die gegebene REST Schnittstelle kann auch anstelle von einer Webapplikation als native App agieren was hier z.B. das Exportieren der Veranstaltungstickets sehr erleichtert (Kartendruck). Zum Beginn habe ich die Einstiegtsliteratur „Ruby on Rails 2„und „Ruby on Rails 3.1“ von Galileo Computing genutzt. Später war auch das Online Tutorial „Learn Rails by Example“ von Michael Hartl sehr hilfreich ! Sicherlich nutzt die Entwicklung noch nicht alle Stärken des Frameworks aus, da noch Praxiserfahrungen fehlen.

Nützliche Ressourcen waren ausserdem:

Webprojekt – Calinee, Hören & Genießen

Ein Webprojekt calinee.de für einen befreundeten Pianisten aus dem Sauerland, der ein Candlelight Dinner mit Klavierbegleitung in verschiedenen Restaurants anbietet. Ich habe die überschaubare Website komplett mit freier Software entwickelt. Unter Anderem GIMP und Eclipse waren im Einsatz. SEO und Webshop kommen nach Bedarf später nach. Es wird also später noch ein wenig mehr Arbeit auf mich zukommen ;-)

PHP Kontaktformular Klasse

In verschiedenen Projekten benötige ich sehr oft ein Kontaktformular welches immer die selben Attribute und Eigenschaften besitzt. Daher habe ich mir zur vereinfachung eine PHP Klasse geschrieben die mir ein komplettes Kontaktformular ausgibt, dynamisch mit jQuery validiert, serverseitig validiert und an den zu sendenden Empfänger schickt. Alle Einstellungen sind durch Kofigurarionsvariablen im Konstruktor zu bestimmen. Wie zum Beispiel die Eingabemaske mit unterschiedlichen validierungseigenschaften : text,textarea,plz,mail …
Hier ein Beispiel zum erzeugen:

<?php
include_once('kontakt_lib.php');
$set['mail-to']='ansprechpartner@meine-seite.de'; // Kontaktformempfaenger
$set['mail-from']='web-form@meine-seite.de'; // Absender
$set['title']='Kontaktform - Meine Seite'; // Titel
$set['jQueryMSG'] = true; // Zeigt direkt Fehler an
/*
Hier koennen 5 verschiedene Angaben gemacht werden:
text -> kleiner Text
textarea-> mehrzeiliger Text
mail -> Mailadresse mit validierung
plz -> Postleitzahlvalidierung
captcha -> Rechencaptcha
*/
$atr['Vorname']='text';
$atr['Nachname']='text';
$atr['E-Mail']='mail';
$atr['Nachricht']='textarea';
$atr['Sicherheitsabfrage']='captcha';
// Erzeugen
$k = new Kontaktform($atr,$set);
$k->checkForm(); // Validierung und Sendung
$k->echoForm(); // Ausgabe des Formulars
?>

github – stetro/contactlib

Für das Styling stehen viele verschiedene Klassentypen bereits im Formular und können selbst sehr einfach via CSS durchgestylt werden. Ein Beispiel Styling wird noch in Github hochgeladen. Bei Interesse, Verbesserungsvorschlägen oder Mithilfebedarf unter GitHub einfach melden. Vielleicht kann die Klasse jemand gebrauchen.

Das Ergebnis des oben stehenden Beispiels könnte dann so aussehen: