Twitter Nachrichten auf dem NanoESP

Das Cheerlights-Projekt ist ein wirklich schönen Projekt. Doch hat mich manchmal gestört, dass ich nicht passend zur Farbe auch die aktuelle Nachricht des Cheerlights-Users lesen konnte. Zumindest nicht ohne das Handy zu Hilfe zu nehmen. Ein NanoESP mit Display und schon könnte man auch den passenden Tweet verfolgen. So schwer kann das ja nicht sein – dachte ich.

Also habe ich mich die Twitter API nach einer einfachen Möglichkeit durchsucht, Tweets anhand eines bestimmten Stichwortes zu suchen. Die Funktion gibt es, allerdings ist dafür eine etwas kompliziertes Authentifizierungsverfahren notwendig. Mit einem kleinen Mikrocontroller nicht zu machen. Wohl aber mit Hilfe einer php-Bibliothek:

Githup: Twitter API PHP Wiki von J7mbo

Es hat schon einiges an Stunden gedauert, diesen Weg überhaupt zu finden. Eine große Hilfe beim Verständnis einer generellen API-Abfragen war übrigens:

ApiGee.com

Mit Hilfe dieses Online-Tools kann man verschiedene Online-APIs ausprobieren und die Nachrichten erforschen. So kam ich erst darauf, dass es keine einfache Authentifizierung von wegen Passwort-Nutzer, sondern ein kompliziertes aber auch sicheres Verfahren mit zeitlich begrenzten Token und mehreren Parametern verwendet wird.

Die Lösung:

Nun ist es mir gelungen ein kleine PHP-Skript zu schreiben, mit dem das Abrufen des letzen Tweets zu einem Stichwort möglich ist. Dieses Skript läuft auf dem Server, auf dem ich auch damals die Temperaturabfrage eingerichtet hatte.

Damit es nicht zu kompliziert wird habe ich mit Thingspeak GetHTTP zwei Kanäle erstellt, über die die neuste Cheerlights und NanoESP Tweets direkt empfangen werden können. Diese werden auch in dem Arduino Programm verwendet. Falls Sie eigene Suchbegriffe suchen wollen, finden Sie weiter unten eine mini Anleitung der Schritte die nötig sind, damit Sie das Skript nutzen können.

NanoESP:
http://api.thingspeak.com/apps/thinghttp/send_request?api_key=WLLQ6TB5K2EXGF13
Cheerlights:
http://api.thingspeak.com/apps/thinghttp/send_request?api_key=AV7QCJ0BDRIT3ZSF

 

Die Ausgabe erfolgt in der Form
TwitterUsernamen: Tweet

und zwar auf einem Nokia 5110 Display. Die nötige Library finden Sie unter

https://github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library

oder im Library Manger. Angeschlossen ist das Display direkt an den Pins D3-D10.

Das Programm selbst hat zwar noch einige Macken, aber die Anzeige funktioniert soweit ganz gut:

NanoESP hat Tweet mit dem Stichwort NanoESP empfangen

NanoESP hat Tweet mit dem Stichwort NanoESP empfangen

Hinweis: Das Programm downloaden und mit der Arduino IDE ab Version 1.6.5 aufspielen. Sonst gibt es Fehler.

Mini Anleitung

Bevor Sie das Skript für eigene, individuelle Abfragen nutzen können, müssen Sie zunächst noch einige Schritte bei Twitter vornehmen, die in dem folgenden Video erläutert werden.

Um das Skript nun nutzen zu können muss man die Seite

www.temp.fkainka.de/twitter.php

mit den Parametern aufrufen:

http://temp.fkainka.de/twitter.php?oat=YourOAccesToken&oats=YourOAccesTokenSecret&ck=YourConsumerKey&cs=YourConsumerSecret&search=YourSerachWord

Ich empfehle Thingspeak GetHTTP-App zu benutzen, damit der Controller nicht mit einer zu langen URL belastet wird.