Arbeiten mit dem Cayenne Dashboard - einfacher Sensor (Teil 1)

Cayenne funktioniert ähnlich wie OpenHAB erfordert aber keinen eigenen Server. Cayenne ist ein kostenfreier Internet Service angeboten von MyDevices, der es ermöglicht IoT Projekte sehr einfach zu visualisieren. Da es sich bei Cayenne um einen Internet-Dienst handelt, können wir auf die Informationen unseres IoT Projekts von überall zugreifen. Es gibt auch eine Smartphone App zum Zugriff auf die Daten.

Als Beispiel wollen wir ein einfaches IoT Gerät basierend auf einem D1 Mini bauen, das ein DHT11 Temperatur- und Feuchtesensor ausliest und ein Relais-Modul ansteuert. Beide Module sind auch im 35 in 1 Sensor Satz enthalten. Der Aufbau ist ganz einfach. Der DHT11 wird mit dem Anschluss D1 des D1 Mini und das Relais mit dem Anschluss D2 des D1 Mini verbunden. Zusätzlich werden beide Module mit dem GND Anschluss und dem 3.3V Anschluss des D1 Mini verbunden.

 

Damit wir Cayenne nutzen können brauchen wir einen Account. Wir rufen die Website von MyDevices auf und können uns dort für einen gratis Account registrieren oder falls wir bereits einen Account haben dort anmelden.

Bei einem neuen Account erscheint der Startbildschirm. Wir wählen "All Devices"

Wir gelangen zur Geräteauswahl und wählen "Generic ESP8266"

Es folgt der Setup Schirm für das gewählte Gerät. Wir nennen das Gerät z.B. "D1 Mini". Cayenne wartet nun darauf, dass sich ein Gerät mit den angegeben Zugangsdaten (Username, Password und Client ID) meldet. Dazu müssen wir in folgendem Sketch die Zugangsdaten für MQTT und WLAN editieren und ihn dann auf den D1 Mini laden. 

 Sketch:

Board für Arduino IDE = NodeMCU1.0(ESP-12E Module)

 

 

/*ESP8266 mit DHT11 Sensor und Relais gesteuert über MQTT Dashboard Cayenne
 * https://mydevices.com
 */
//#define CAYENNE_DEBUG
#define CAYENNE_PRINT Serial
#include <CayenneMQTTESP8266.h>
#include <DHTesp.h>

// WiFi network info.
#define SSID ""
#define WIFIPASSWORD ""

// Cayenne Zugangsdaten. Diese erhalten wir vom Cayenne Dashboard.
#define USERNAME ""
#define PASSWORD ""
#define CLIENTID ""

//Kanäle zur Kommunikation mit dem Dashboard
#define KANAL_TEMPERATUR 1
#define KANAL_FEUCHTE 2
#define KANAL_RELAIS 3
#define KANAL_STATUS 4

#define PIN_DHT 5
#define PIN_RELAIS 4

//globale Variablen
boolean relais_status = 0;
TempAndHumidity neueWerte;
DHTesp dht;

void setup() {
	Serial.begin(115200);
  pinMode(PIN_RELAIS,OUTPUT);
  digitalWrite(PIN_RELAIS,relais_status);
  dht.setup(PIN_DHT, DHTesp::DHT11);
	Cayenne.begin(USERNAME, PASSWORD, CLIENTID, SSID, WIFIPASSWORD);
}

void loop() {
	Cayenne.loop();
}

// Diese Funktion wird von Cayenne.loop in regelmäßigen Abständen aufgerufen
// Hier sollten die Daten der Sensoren übertragen werden
CAYENNE_OUT_DEFAULT()
{
  neueWerte = dht.getTempAndHumidity();
  if (dht.getStatus() == 0) {
    Cayenne.celsiusWrite(KANAL_TEMPERATUR,neueWerte.temperature);
    Cayenne.virtualWrite(KANAL_FEUCHTE,neueWerte.humidity,TYPE_RELATIVE_HUMIDITY,UNIT_PERCENT);
  }
  Cayenne.digitalSensorWrite(KANAL_STATUS,relais_status);
}

//Diese Funktion wird von Cayenne.loop aufgerufen wenn Daten für Aktoren von Cayenne anstehen
//Hier sollte auf diese Daten reagiert werden
CAYENNE_IN_DEFAULT()
{
  if (request.channel == KANAL_RELAIS) {
    relais_status = getValue.asInt();
    digitalWrite(PIN_RELAIS,relais_status);
  }
}


 

 Nachdem der Sketch kompiliert und hochgeladen wurde sollte die Cayenne Web-Seite nach kurzer Zeit das folgende Bild zeigen. Eventuell ist ein Reload am Browser notwendig.

Wir sehen links das Gerät D1 Mini und am Dashboard die drei Werte die der D1 Mini an den MQTT Server sendet. Als nächstes wollen wir das Dashboard etwas hübscher gestalten und einen Knopf zum Einschalten des Relais hinzufügen.

Zuerst klicken wir auf das grün unterlegte "+" Zeichen rechts oben auf jedem der Widgets. Damit wird das Widget dem Dashboard zugeordnet. Nun kann man die Widgets verschieben und in Aussehen und Größe ändern. Zum Ändern des Aussehens klicken wir auf das Zahnradsymbol rechts oben und wählen Settings. Es erscheinen die Einstellungen des Widgets die wir verändern können.

 

Nun wollen wir auch noch ein Widget hinzufügen um das Relais zu schalten. Wir klicken oben links auf "Add New...." und wählen im Menü "Devices/Widgets". Auf der Device & Widget Seite wählen wir "Custom Widgets". In der Liste rechts daneben wählen wir "Button". Es erscheint das Eingabeformular für die Button Settings:

Nachdem alle Felder im Formular gesetzt sind (in Übereinstimmung mit dem Sketch muss Kanal 3 gewählt werden) können wir den "Add Widget" Button klicken wodurch das neue Widget zum Dashboard hinzugefügt wird. Wir können den Relais Button gleich ausprobieren. Ein Klicken auf den Button sollte das Relais in unserem Versuchsaufbau einschalten. Nach maximal 10 Sekunden sollten wir auch die Rückmeldung im Status erhalten.

Zu guter letzt wollen wir noch einen Trigger hinzufügen der das Relais (z.B. für eine Heizung) einschaltet wenn die Temperatur unter 18°C absinkt und wieder ausschaltet wenn die Temperatur über 22°C ansteigt. Dazu klicken wir auf das Zahnradsymbol eines Widgets und wählen Trigger. Es erscheint das Triggerformular. Mit Drag & Drop ziehen wir das D1 Mini Gerät auf die "if" Fläche und auf die "then" Fläche. Bei der "if" Fläche wählen wir als Trigger Temperatur und stellen die gewünschten Werte ein. Bei der "then" Fläche wählen wir Relais als Action. Das Formular sollte dann so aussehen.

Wenn Alles richtig ausgefüllt ist können wir auf Save klicken. Auf die gleiche Weise erstellen wir einen zweiten Trigger, der das Relais ausschaltet wenn die Temperatur über 22°C ansteigt.

So das wars. Viel Spaß beim Experimentieren. 

Letzter Artikel Arbeiten mit dem Cayenne Dashboard - Internet der Dinge(Teil 2)
Neuer Artikel Neues aus dem Makerspace: 3-D Drucker

Kommentar

Gerald Lechner - Dezember 1, 2018

Hallo Andre
Danke für den Hinweis die Pins 4 und 5 waren vertauscht. Ich habe den Sketch korrigiert.
Für den DHT 22 muss die vierte Zeile im Setup geändert werden

dht.setup(PIN_DHT, DHTesp::DHT22);

Gruß Gerald

Andre Schubert - Dezember 1, 2018

PIN 4 und PIN 5 im Sketch müssen getauscht werden

Rene - Dezember 1, 2018

Geil

Andre Schubert - Dezember 1, 2018

Ich versuche den Aufbau mit einem DHT22 und bekomme keine Werte geliefert. Wo muss ich den Sketch anpassen ?

Jürgen - Dezember 1, 2018

Hallo, gibt es auch Anbieter, wie MyDevices,
die den Standort in Deutschland haben? Mir wäre wohler dabei. Gruß Jürgen

Hinterlasse einen Kommentar

Kommentare müssen vor der Veröffentlichung überprüft werden

Erforderliche Angabe