Facebook
Twitter
Google+
Kommentare
0

Den USB Mail Melder per Webseite steuern

Mein erstes richtiges USB-Gadget ist der USB Mail Melder (USB Mail Notifier). Um damit etwas zu experimentieren habe ich ein kleines Webinterface gebaut mit dem man in nahezu Echtzeit die Farben verändern kann. Doch erstmal ein Bild:

Diese kleine Box kann man in allen Farben aufleuchten lassen. Normalerweise gibt es dazu Treiber und Software auf einer CD mitgeliefert. In der Software kann man via POP3 bzw. Webmail auf E-Mail-Accounts zugreifen, und bei neuen E-Mails aufleuchten lassen.

Ich dachte mir dann, wie wäre es das Gadget aus PHP heraus zu steuern? Leider mußte ich schnell feststellen dass man mit PHP nicht so leicht auf die USB-Schnittstelle zugreifen kann. Ich habe es jedenfalls nicht hinbekommen.

Aber Dank der hervorragenden Arbeit von Christoph gibt es auch ein kleines Kommandozeilen-Tool mit dem man das Gadget erleuchten kann. Mein Webfrontend sieht dann so aus:

Hier noch ein kleines Video:

Der Benutzer kann aktuell per Slider die drei Grundfarben einstellen, es X mal pulsieren lassen oder es ausschalten. Man könnte natürlich auch einen kleinen Daemon bauen der per IMAP/POP3 einige E-Mail-Accounts prüft, oder einen RSS Feed abfragt, oder oder oder. Alles was man mit PHP machen kann und bei dem man ein visuelles Feedback benötigt.

Den Code gibt es bei Github. Es ist nichts besonderes, hauptsächlich HTML, CSS und Javascript, sowie einige wenige Zeilen um auf das Kommandozeilentool von Christoph zuzugreifen.

Ich weiß nicht ob es unter Linux geht direkt auf die USB-Schnittstelle zuzugreifen, ich denke da an so etwas ähnliches hier:

<?php
$string = "Hallo Schnittstelle!\n";
$pointer = fopen("/dev/ttyS0","w");
fwrite ($pointer, $string);
fclose($pointer);

Für Windows und die COM1 Schnittstelle habe ich diesen Schnipsel gefunden, ob das so oder so ähnlich auch für ein USB Gerät funktioniert habe ich noch nicht herausfinden können:

<?php
`mode COM1: BAUD=4800 PARITY=N data=8 stop=1 xon=off`;

$fp = fopen ("COM1:", "w+");
if (!$fp) {
    echo "can't open port: COM1";
} else {
    fputs ($fp, $string );
}

Oder aber mittels der W32API auf eine DLL zugreifen und darin eine Funktion aufrufen. Habe ich aber auch noch nie gemacht.

Wer das also schonmal gemacht hat oder eine Idee hat wie man auf eine Zwischensoftware verzichten kann, möge sich melden!

Danke nochmals an getDigital für das Gadget!

Ähnliche Artikel:

  1. Bug in PHP 5.3.0′s mail() Funktion
  2. Die mail.de GmbH sucht Javascript-Entwickler
  3. Webseite testen mit Browser Sandboxen
Über den Autor

PHP Gangsta

Der zweitgrößte deutsche, eher praxisorientierte PHP-Blog von Michael Kliewe veröffentlicht seit Mitte 2009 Artikel für Fortgeschrittene.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen