Der Sketch für deinen Test

Lektion
Downloads

Als nächstes machst du dich an den Sketch, mit dem du die Daten deines Potis an Adafruit IO überträgst. Du findest den Sketch in den Downloads dieser Lektion. Im Folgenden gehen wir ihn im Detail durch.

Am Anfang des Sketchs bindest du die Bibliothek AdafruitIO_WiFi.h ein, die du bereits im Bibliotheksmanager mitinstalliert hast:

#include "AdafruitIO_WiFi.h"

___STEADY_PAYWALL___

Anschließend folgen dein Benutzername (Username) und dein Key von Adafruit IO sowie die Zugangsdaten zu deinem WLAN-Netzwerk:

#define IO_USERNAME "BENUTZERNAME"
#define IO_KEY "KEY"

#define WIFI_SSID "WLAN-NETZ"
#define WIFI_PASS "PASSWORT"

Nun erstellt du das Objekt io – basierend auf diesen Daten und legst fest, dass die Daten über den Feed poti übertragen werden sollen:

AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
AdafruitIO_Feed *poti = io.feed("poti");

Bevor wir zu Setup und Loop kommen, fehlen noch eine Konstante für den Pin, an dem dein Poti angeschlossen ist und eine Variable für den Wert, den dieser an deinen ESP8266 übermittelt:

const int analogIn = A0;
int gauge = 0;

Die Setup-Funktion

Hier startest du zunächst den Seriellen Monitor mit einer Baudrate von 115200 (achte darauf, dass du im Monitor denselben Wert einstellst). Anschließend stellst du mit der Funktion io.connect() die Verbindung zu Adafruit IO her:

Serial.begin(115200);

Serial.print("Connecting to Adafruit IO");
io.connect();

while (io.status() < AIO_CONNECTED) {
  Serial.print(".");
  delay(500);
}

Der While-Loop ist optional und dient nur der Visualisierung des Verbindungsaufbaus in deinem Seriellen Monitor. Sobald die Verbindung steht, gibst du eine entsprechende Nachricht im Monitor aus:

Serial.println();
Serial.print(io.statusText());

Der Loop

Im Loop rufst du als erstes die Funktion io.run() auf. Diese sollte immer am Anfang des Loops stehen und sorgt dafür, dass der Feed läuft und aufrecht erhalten wird.

Danach liest du mit analogRead() den aktuellen Wert deines Potis aus und gibst ihn im Seriellen Monitor aus:

io.run();

gauge = analogRead(analogIn);
Serial.println(gauge);

In der nächsten Zeile, speist du diesen Wert in den Feed poti ein:

poti->save(gauge);

Zuletzt fehlt noch ein Delay. Erinnerst du dich, dass du im kostenlosen Paket von Adafruit IO 30 Datenpunkte pro Minute senden kannst? Um diese nicht zu überschreiten, darfst du folglich nur alle zwei Sekunden einen Wert übertragen:

delay(2000);

Und das ist alles, was du für deinen ersten Test an Code benötigst. Lade den Sketch nun auf deinen ESP8266. In der nächsten Lektion kehrst du zu deinem Dashboard zurück und überprüfst, ob alles funktioniert.