Multi-MonG

Multi-Monitoring Gadget der SPE Karlsruhe

Programmierung

Für die Programmierung des Gadgets wird die "Arduino IDE" benötigt. Diese kann hier heruntergeladen werden und muss anschließend installiert werden. Nun muss noch die Unterstützung für den verwendeten Mikrocontroller eingerichtet werden. Dazu werden in der Arduino IDE die Einstellungen geöffnet (Datei>Voreinstellungen) und unter "Zusätzliche Boardverwalter-URLs" die folgende URL eingetragen:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Nun wird der Boardverwalter geöffnet (Werkzeuge>Board>Boardverwalter) und dort das Paket "esp8266" installiert. Achtung: Für das Programm "Snake" muss die Version 2.4.2 oder früher installiert werden, für "MultiMonG" ist die Version egal.

Für das Gadget gibt es zwei Programme, zwischen denen gewählt werden kann. Mit dem ersten Programm zeigt es die Uhrzeit, Temperatur, Luftfeuchtigkeit und Luftqualität an. Zusätzlich kann ein Timer gestellt und eine Laufschrift angezeigt werden. Das Programm kann hier heruntergeladen werden:
MultiMonG.zip

Das zweite Programm implementiert das klassische Computerspiel "Snake", das mit den zwei tastern gespielt wird. Das Programm kann hier heruntergeladen werden:
Snake.zip

Nach dem Herunterladen muss die .zip-Datei entpackt werden. In dieser gibt es den Unterordner "libraries". Der Inhalt dieses Ordners muss unter Dokumente/Arduino/libraries eingefügt werden. Anschließend kann die Datei "MultiMonG.ino" bzw. "Snake.ino" aus der .zip-Datei in der Arduino IDE geöffnet werden.

Das Gadget wird nun mit einem USB-Kabel an den Computer angeschlossen.

Jetzt wird der verwendete Mikrocontroller ausgewählt (Werkzeuge>Board>ESP8266 Boards>NodeMCU 1.0), sowie der Port, an den der Mikrocontroller angeschlossen ist (Werkzeuge>Port). Wenn es hier mehrere Auswahlmöglichkeiten gibt, kann man das Gadget wieder vom Computer trennen und dabei beobachten, welcher Port verschwindet bzw. dazu kommt.
Jetzt kann das Programm durch einen Klick auf "Hochladen" (Der Pfeil oben links) auf das Gadget geladen werden.

Während das Gadget programmiert wird, gucken wir uns kurz den Aufbau des Programms an:

Hier soll es nur um den groben Aufbau der Programme gehen, zur genaueren Erläuterung dienen Kommentare, die direkt im Programm stehen:

/*
 *  So markierte Programmteile sind Kommentare, diese dienen nur der
 *  Erläuterung des Programms.
 */

// Auch so markierte Zeilen sind Kommentare

Am Anfang des Programms werden Bibliotheken importiert, das sind Dateien mit komplexerem Code, die für die einzelnen Bauteile zur Verfügung gestellt werden. So müssen wir nicht alle Funktionen selbst implementieren.

#include <MD_MAX72xx.h>	// LED-Matrix
#include <Arduino.h>	// Standard Arduino-Bibliothek
...

Danach folgen einige Definitionen, hier werden bestimmte konstante Werte festgelegt, die dann im Programm benutzt werden. So sind alle Werte, die vielleicht später noch verändert werden könnten (z.B. die Pins des Mikrocontrollers, an die Sensoren etc. angeschlossen sind) an nur einer Stelle eingetragen.

#define BTN1_PIN D3
#define BTN2_PIN D2

Nun werden noch Variablen angelegt, die im Programm benutzt und verändert werden. Im MultiMonG-Programm können einige dieser Variablen nach Belieben verändert werden, z.B. Name und Passwort des ausgesendeten WLAN-Netzwerkes.

char SSID[50] = "Siemens-MultiMonG";
char PASSWORD[50] = "12345678";

Erst jetzt werden die Funktionen definiert, also der Teil des Programms, der das Verhalten des Gadgets direkt steuert. Dies sind im Wesentlichen zwei Funktionen:

void setup() {
    ...
    Diese Funktion wird beim Start des Gadgets einmal ausgeführt
    ...
}

void loop() {
    ...
    Diese Funktion wird danach immer wieder ausgeführt
    ...
}