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

Cayenne works similarly to OpenHAB, but does not require its own server. Cayenne is a free internet service offered by MyDevices that makes it very easy to visualize IoT projects. Since Cayenne is an internet service, we can access the information of our IoT project from anywhere. There is also a smartphone app for accessing the data.

As an example, let's build a simple IoT device based on a D1 Mini that reads a DHT11 temperature and humidity sensor and drives a relay module. Both modules are also included in the 35-in-1 sensor set. The structure is very simple. The DHT11 is connected to D1 of the D1 Mini and D2 of the D1 Mini. Furthermore, both modules are connected to the GND terminal and the 3.3V terminal of the D1 Mini.

 

In order to use Cayenne, we need an account. On the MyDevices website, we can create a free account.

With a new account, the start screen appears. We select "All Devices"

We come to the device selection and choose "Generic ESP8266"

The setup screen for the selected device follows. We name the device e.g. "D1 Mini". Cayenne now waits for a device to log in with the given credentials (username, password and client ID). For this we have to edit the access data for MQTT and WLAN in the following sketch and then load it on the D1 Mini. 


 Sketch:

Board for Arduino IDE = NodeMCU1.0(ESP-12F 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);
  }
}

 
 

 After the sketch has been compiled and uploaded, the Cayenne web page should show the following image after a short time. It may be necessary to reload the browser.

We see the D1 Mini device on the left and on the dashboard the three values that the D1 Mini sends to the MQTT server. Next, we want to make the dashboard a little prettier and add a button to turn on the relay.

First, we click on the green highlighted "+" sign on the top right of each of the widgets. This will assign the widget to the dashboard. Now we can move the widgets around and change their appearance and size. To change the appearance we click on the gear icon on the top right and select Settings. The settings of the widget that we can change will appear.

 

Now we also want to add a widget to switch the relay. We click on "Add New...." in the upper left corner and select "Devices/Widgets" from the menu. On the Device & Widget page we select "Custom Widgets". In the list to the right we select "Button". The input form for the button settings appears:


After all the fields in the form are set (in accordance with the sketch, channel 3 must be selected) we can click the "Add Widget" button which will add the new widget to the dashboard. We can try the relay button right away. Clicking the button should turn on the relay in our test setup. After a maximum of 10 seconds, we should also get the feedback in the status.

Last but not least we want to add a trigger that turns on the relay (e.g. for a heater) when the temperature drops below 18°C and turns it off again when the temperature rises above 22°C. To do this we click on the gear icon. To do this, we click on the gear icon of a widget and select Trigger. The trigger form appears. With Drag & Drop we drag the D1 Mini device to the "if" area and to the "then" area. In the "if" area, we select Temperature as the trigger and set the desired values. On the "then" area we select Relay as Action. The form should look like this.

When everything is filled in correctly we can click on Save. In the same way, we create a second trigger that turns off the relay when the temperature rises above 22°C. This is the first trigger.

So that's it. Have fun experimenting. 

Esp-8266Projekte für anfänger

17 comments

Stefan

Stefan

@Joachim: Einbinden von libraries (Bibliotheken) gehört zur C oder auch Arduino Grundausbildung. Ich denke wenn die von AZ soweit unten anfangen werden die Anleitungen deutlich zu lang.
Bei der Arduino IDE kann mit mit Strg+Shift+I (=Sketch/Bibliothek/Bibliothekverwalter) die 2. h-Dateien einfach in die Zeile oben rechts eingeben, suchen und dann unten die gefundenen Bibs. installieren. Jetzt sollten die Fehlermeldungen weg sein.
@Manfred: Gute Idee, ich hab von 1&1 eine Homepage für ca. 25Euros, da werde ich es mal versuchen.

Joachim

Joachim

Beim kompilieren läuft man auf die Fehlermeldung, dass die Dateien CayenneMQTTESP8266.h und DHTesp.h nicht gefunden werden können. Kann mir jemand weiterhelfen und sagen, wo ich diese Dateien finden kann, bzw. wo ich sie einfügen muss? Vielen Dank

Grundsätzlich finde ich es super, dass es Leute gibt, die Ihre Ideen mit anderen teilen und sogar entsprechende Anleitungen hier einstellen. Umso ärgerlicher ist, wenn dann relevante Informationen fehlen und das Nachvollziehen daran scheitert. Wenn wir hier alles Spezialisten wären, die sich auskennen und selbst helfen können , dann bräuchten wir diese Anleitungen nicht. Ich denke aber, hier gibt es eine Menge Einsteiger, die über diesen Weg in die Materie reinkommen möchten. Und da wären dann VOLLSTÄNDIGE Informationen hilfreich

Joachim

Joachim

Beim kompilieren läuft man auf die Fehlermeldung, dass die Dateien CayenneMQTTESP8266.h und DHTesp.h nicht gefunden werden können. Kann mir jemand weiterhelfen und sagen, wo ich diese Dateien finden kann, bzw. wo ich sie einfügen muss? Vielen Dank

Grundsätzlich finde ich es super, dass es Leute gibt, die Ihre Ideen mit anderen teilen und sogar entsprechende Anleitungen hier einstellen. Umso ärgerlicher ist, wenn dann relevante Informationen fehlen und das Nachvollziehen daran scheitert. Wenn wir hier alles Spezialisten wären, die sich auskennen und selbst helfen können , dann bräuchten wir diese Anleitungen nicht. Ich denke aber, hier gibt es eine Menge Einsteiger, die über diesen Weg in die Materie reinkommen möchten. Und da wären dann VOLLSTÄNDIGE Informationen hilfreich

Manfred Blum

Manfred Blum

Hat schon mal einer versucht sich von solchen Anbietern wie MyDevices abzunabeln und die Devices selbst zu programmieren?
Das einfachste wäre bei 4-Eins, 1und1, etc. eine preisgünstige Domäne (Server) zu erwerben und die Darstellungsprobleme mit HTPL in Verbindung mit PHP in den Griff zu bekommen??? Die Kosten mit 60 bis 70€/Jahr dürften zu stemmen sein.

Oder mit XAMPP auf seinem eigenen Rechner einen eigenen Server aufzubauen. Ist gar nicht so schwer und der Lerneffekt ist kolossal und kostenlos.

Manfred Blum

Manfred Blum

Es wäre lobenswert, wenn die sichtbare Seite so breit wäre, dass man die Code-Zeilen bis zum Ende lesen könnte.

Christof

Christof

Mach doch “einfach” deinen eigenen Server .. Google-Suche nach “create my own mqtt server” oder schau mal hier:
https://obrienlabs.net/how-to-setup-your-own-mqtt-broker/

Gunther

Gunther

Zitat:
“Our business operations and the computer servers that handle data collected via the Services are hosted in the United States. If you are accessing or using the Services in the European Union or other regions with laws governing data collection and use that may differ from U.S. law, then please note that your personal information will be transferred to the United States and you consent to such transfer.”

Das heißt: Es gelten NICHT die europäischen Datenschutzgesetze!!!
Dann kann man ja auch die chinesischen Clouddienste nutzen…

Sven

Sven

Beim Cayenne Dashboard Sketch kompiliert kommt immer Fehler kann die *.h dateinen nicht finden. Es ist mühselig die einzelner Dateien in den Ordner ein zu fügen, wer hilfreich wenn eine Liste mit den benötigten datein dabei wäre.

michael

michael

Man hätte vieleicht auch mal für neulinge den genauen ablauf beschreiben können, für die account registrierung.
vielen dank
michael

Jens

Jens

In dem Sketch ist das Relaymodul an 3V3 angeschlossen obwohl es lt. Datenblatt ein 5V Modul ist. Funktioniert das trotzdem? Ansonsten VCC für das Relaismodul von den 5V des D1mini versorgen. Auch sind die Farben für GND und VCC zum Relaismodul mit rot für GND und schwarz für VCC ungünstig gewählt. Vorsicht also beim Nachbau! Mit freundlichen Grüßen, Jens Gabrikowski

Wolfgang Petzold

Wolfgang Petzold

Ich bin leider in der englischen Sprache nicht so bewandert. Könntet Ihr die ersten 3 Absätze dieses Artikels auch in die deutsche Sprache übersetzen?

Danke

Andre Schubert

Andre Schubert

Gibt es die Möglichkeit, Daten vom Dashboard einzulesen ? Also von Cayenne abholen und in nen ESP8266 seriell ausgeben ?

Gerald Lechner

Gerald Lechner

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

Andre Schubert

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

Rene

Rene

Geil

Andre Schubert

Andre Schubert

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

Jürgen

Jürgen

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

Leave a comment

All comments are moderated before being published