Das Abschlussprojekt besteht aus mehreren Elementen, die Sie im Laufe der Adventszeit kennengelernt haben. Eine Funktion ist die am vorrangegangenen Tag vorgestellte Cheerlights-Funktion. Sie können weiterhin die aktuelle Farbe des Cheerlights-Projekts empfangen und mit der RGB-LED darstellen. Außerdem wird das Board zur Langzeitüberwachung der Temperatur eingesetzt. Gleichzeitig kann das Board einen Alarmton ausgeben, wenn die Temperatur einen bestimmten Wert überschreitet, z.B. weil ein Feuer entsteht. Und als letzte Funktion kann das Board als Weihnachtsglocke eingesetzt werden, indem es über ein zeitgesteuertes TalkBack-Kommando dazu gebracht wird, den Song Jingle Bells zu spielen. Alles in allem ist das heutige Projekt ein Allrounder für den Weihnachtsbaum.

Hinter dem heutigen Türchen befindet sich noch einmal ein recht spannender Sensor, nämlich einen NTC (Negative Temperature Coefficient). Dieser verändert seinen Widerstand in Abhängigkeit von der Temperatur. Es lohnt sich also durchaus auch ein paar der älteren Versuche neu aufzurollen und diesmal den Tempertursensor zu verwenden. Der heutige Aufbau besteht aus recht vielen Elementen. Auch das Poti kommt erneut zum Einsatz, um eine Feinabstimmung am NTC vornehmen zu können. Alternativ können Sie auch den 10-kΩ-Widerstand einsetzen, dann ist allerdings keine Feinabstimmung möglich.

Der Aufbau des letzten Versuchs
Der Aufbau des letzten Versuchs

Das Programm: Day24_Christmas

Das finale Programm muss nun die vielen verschiedenen Elemente miteinander vereinen. Dabei kommt der ThingSpeak Seite wieder eine große Bedeutung zu. Unter anderem wird diesmal auch die Schwellwert-Überwachung des NTCs von einer ThingSpeak App übernommen. Von dort werden dann auch die Alarmaktionen ausgeführt, nämlich einmal eine Twitter Nachricht gesendet und ein TalkBack-Kommando eingefügt, welches auf dem Controller den Alarm auslöst. Über die Time-Control App der ThingSpeak Seite können Sie außerdem einen Zeitpunkt festlegen, an dem mit dem Jingle Bells Song die Familie zum Tannenbaum gerufen wird oder Sie am nächsten Tag von der Musik geweckt werden möchten.

Im ersten Schritt müssen Sie auf der ThingSpeak Seite einen neuen Kanal erstellen. Diesen können Sie beispielweise FireAlarm nennen. Das field1 bekommt dann die Bezeichnung Temp. Unter API-Keys finden Sie dann den ersten Schlüssel, den Sie in für ThingSpeakKEY eintragen müssen. Damit wäre schon mal die Übertragung des aktuellen Temperaturwerts gewährleistet.

Der FireAlarm-Kanal

Als zweiten Schritt sollten Sie nun ein neues TalkBack-Element erstellen. Als Namen können Sie beispielsweise Alarms verwenden. Außerdem können Sie die Kommandos im Channel FireAlarm loggen lassen. Den API-Key müssen Sie nun hinter TalkBackKEY und die ID hinter TalkBackID eintragen. Nun können Sie auch schon Kommandos an das Board senden. Sie können Kommandos auch manuell eintragen indem Sie in der TalkBack-Übersicht des Alarm-Channels auf Add a new Command klicken und dort unter Command String entweder Alarm oder Jingle eintragen. Eine Angabe der Position ist nicht nötig, da der Befehl automatisch an erster Stelle gespeichert wird. Sie können das Programm nun schon uploaden und testen, ob die Übertragung des aktuellen Temperaturwertes funktioniert und ob das Board die Kommandos ausführt. An dieser Stelle lohnt es sich auch, mit einen Raumthermometer den NTC über das Poti zu kalibrieren.

Im Grunde wäre dies nun schon ein vollwertiges Projekt aber es fehlen noch die Bonus-Funktionen. Diese müssen allerdings nicht mehr im Programm vorgenommen werden, sondern nur noch auf der ThingSpeak Seite. Dazu gehen Sie auf Apps und wählen anschließend React aus. Mit React kann auf bestimmte Ereignisse reagiert werden. Erstellen Sie also mit Klick auf New React eine neue React-Funktion und geben folgende Werte ein:

Name: FireDetect1

Condition Type: Numeric

Test Frequency: On Data Insertion

Condition: If Channel

FireAlarm

field 1 (Temp)

is great than

40

Action: ThingTweet

then tweet:

Fire Alarm on the #NanoESP! Temp: %%trigger%%C #ThingSpeak #IoT

Using Twitter Account

[Twitter Account]

Options: Run action only the first time the condition is met

ThingSpeak React mit Twitter-Anbindung
ThingSpeak React mit Twitter-Anbindung
ThingSpeak React mit ThingHTTP-Anbindung
ThingSpeak React mit ThingHTTP-Anbindung

Mit Save React speichern Sie die Einstellungen. Damit ist der erste Schritt der Überwachung bereits getan. Wenn der Wert überschritten wird, sendet ThingSpeak über Ihren Account eine Twitter-Nachricht gesendet. Für den zweiten Schritt, dem Einfügen des Alarm-Kommandos müssen Sie nun noch etwas tiefer in die Trickkiste greifen, denn die Funktion wird nicht automatisch unterstützt. Was unterstütz wird ist aber ThingHTTP. Also klicken Sie auf Apps und dann auf ThingHTTP. Dort erstellen Sie ein neues Element und stellen Folgendes ein:

Name:   Alarm

URL:      [https://api.thingspeak.com/talkbacks/YOUR TALKBACK ID]/commands

Method:              POST

HTTP Version:    1.1

Host:     api.thingspeak.com

Headers:

Body:    api_key=[YOUR TALKBACK ID]&command_string=Alarm&position=1

Die TalkBack-Einstellungen
Die TalkBack-Einstellungen

Achten Sie darauf, dass Sie die [YOUR TALKBACK ID] und [YOUR TALKBACK KEY] in der URL und im Body-Part durch Ihre TalkBack ID und KEY ersetzen. Nun können Sie einen weiteres React-Element erstellen, welches die gleichen Parameter wie das erste enthält, nur mit der Änderung, dass Sie bei Action nun ThingHTTP und dort den Punkt Alarm auswählen. Damit haben Sie nun sichergestellt, dass ein Alarm ertönt, wenn der kritische Wert überschritten wird.

Als letzte Funktion können Sie nun noch ein zeitgesteuertes Jingle Bells einrichten. Dazu klicken Sie unter Apps auf TimeControl und erstellen ein neues Element, z.B. mit dem Namen Bell. Dort nehmen Sie nun die folgenden Einstellungen vor:

Name:   Presents

Frequency:          One Time

Time Zone:         Berlin

Run At:                2015-24-12 7:00 pm

Fuzzy Time:         ± 0 minutes

TalkBack:            Alarms, add command: Jingle

Die TimeControll-Einstellungen
Die TimeControll-Einstellungen

Für einen ersten Test empfiehlt es sich, einen Zeitpunkt in ein paar Minuten zu wählen. Wenn dies funktioniert hat, kann man den richtigen Zeitpunkt einstellen.

Alles in allem kann man nun noch das Projekt mit dem 9V-Batterie-Clip oder auch einer Akku-Bank mobil machen. Wenn das Board nun im Tannenbaum versteckt wird, so dass nur die RGB-LED an passender Stelle aus dem Geäst lugt, wird das Ambiente auch nicht unnötig gestört. Und pünktlich um 19.00 werden alle Familienmittglieder durch die Klänge von Jingle Bells zum Baum gerufen.

Ich wünsche ein frohes Weihnachtsfest!