Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
  • Deutsch
  • English
Menu

IoT Dienst Cayenne für den Arduino Mikrocontroller

Posted on 11. Januar 202130. April 2023 by Stefan Draeger

In diesem Beitrag möchte ich dir den IoT Dienst Cayenne für den Arduino vorstellen.

Ethernetshield W5100 am Arduino UNO R3 mit Temperatursensor DS18B20
Ethernetshield W5100 am Arduino UNO R3 mit Temperatursensor DS18B20

  • Registrieren eines neuen Benutzers in Cayenne
  • Einrichten eines Microcontrollers in Cayenne
    • Arduino UNO mit EthernetShield
      • Hinzufügen eines Devices/Widgets im Dashboard von Cayenne
      • Quellcode für den DS18B20
      • Anpassen des neuen Widgets im Dashboard
  • Schalten eines Relais über Cayenne
  • Fazit

Registrieren eines neuen Benutzers in Cayenne

Um einen neuen Benutzer in Cayenne zu registrieren musst du

  • deinen Vornamen, Nachnamen, sowie
  • deine E-Mail-Adresse, und natürlich
  • ein Passwort

eingeben.

IoT Dienst Cayenne - registrieren eines neuen Benutzers
IoT Dienst Cayenne – registrieren eines neuen Benutzers

Das Passwort bedarf keiner besonderen komplexität und auch vermisst man beim einloggen ein sonst übliches Double-Opt-In.

Einrichten eines Microcontrollers in Cayenne

Nach dem Login wird man über einen Wizard angeleitet, um ein Dashboard einzurichten. Dabei wählt man im ersten Schritt einen Mikrocontroller aus.

Cayenne - Schritt 1 auswählen eines Microcontrollers
Cayenne – Schritt 1 auswählen eines Microcontrollers

Zur Auswahl stehen hier auf der Oberfläche die „üblichen verdächtigen“ Raspberry PI, Arduino & LoRa. Wenn du einen ESP besitzt bzw. verwenden möchtest, so findest du diese über „All Devices“.

Cayenne - Auswahl eines ESPs
Cayenne – Auswahl eines ESPs

Arduino UNO mit EthernetShield

Für den Arduino UNO gibt es diverse Ethernet Shields welche man entweder auf diesen stecken kann oder über Breadboardkabel an diesen anschließen kann.

Arduino UNO mit aufgestecktem Ethernet Shield
Arduino UNO mit angeschlossenem Ethernet Shield (EN28J60)

Das Ethernetshield ENC28J60 habe ich bereits im Beitrag Arduino Lektion #114: Mini Ethernetshield ENC28J60 ausgiebig vorgestellt. Hier möchte ich nun zeigen, wie du mit Cayenne und dem Ethernetshield WS5100 Daten eines einfachen Temperatursensors vom Typ DS18B20 veröffentlichen kannst.

Zunächst müssen wir eine Bibliothek installieren, damit der Mikrocontroller über MQTT mit dem IoT Dienst Cayenne kommunizieren kann. Dazu navigieren wir über das Hauptmenü „Sketch“ > „Bibliothek einbinden“ > „Bibliotheken verwalten…“ zum Bibliotheksverwalter. 

In dem Bibliotheksverwalter suchen wir zunächst nach „Cayenne MQTT“ (1) und betätigen auf dem gefundenen Eintrag die Schaltfläche „Installieren“ (2) nach der Installation kann dieser Dialog über die Schaltfläche „Schließen“ (3) geschlossen werden.

Arduino IDE - Bibliotheksverwalter - installieren der Bibliothek von Cayenne
Arduino IDE – Bibliotheksverwalter – installieren der Bibliothek von Cayenne

Hinzufügen eines Devices/Widgets im Dashboard von Cayenne

Auf der Webseite findest du zunächst einen Wizard, über welchen du deinen ersten Channel erstellen kannst. Einen solchen Channel erstellst du, in dem du die Schaltfläche „Add new…“ betätigst und dort den Eintrag „Device/Widget“ auswählst.

Cayenne Dashboard - Add new Device/Widget
Cayenne Dashboard – Add new Device/Widget

Auf der rechten Seite solltest du nun einige Mikrocontroller sowie Sensoren/Aktoren sehen. Hier wähle ich nun den Eintrag „Temperature“ in der Sektion „Sensors“ aus.

Cayenne Dashboard - auswählen der Sektion für Temperatursensoren
Cayenne Dashboard – auswählen der Sektion für Temperatursensoren

Es werden nun 5 Temperatursensoren aufgelistet für welche Beispielprogramme vorliegen.

IoT Cayenne Dashboard - Temperatursensoren
IoT Cayenne Dashboard – Temperatursensoren

In dieser kleinen Anleitung möchte ich den Temperatursensor DS18B20 verwenden, daher wähle ich diesen aus. Auf der rechten Seite kannst du den Channel anpassen, aber für den Einstieg in Cayenne lassen wir das einfach mal so stehen.

IoT Cayenne - Einstellungen im Channel
IoT Cayenne – Einstellungen im Channel

Über die Schaltfläche „Step 1: Sketch File“ kannst du den Dialog für den Download des Beispielprogrammes anzeigen und herunterladen.

IoT Cayenne - Sketch File
IoT Cayenne – Sketch File

Dieser Sketch ist sofort lauffähig, so weit man den Temperatursensor DS18B20 am digitalen Pin D2 angeschlossen hat.

Quellcode für den DS18B20

×Close
Cayenne Code
Copy and paste the code below to your Arduino IDE and click the  (upload) button.

After uploading the code, return to Cayenne and add your sensor. It will appear in your Arduino dashboard.

/*
Cayenne DS18B20 Example

This sketch shows how to send DS18B20 Sensor data to the Cayenne Dashboard.

The CayenneMQTT Library is required to run this sketch. If you have not already done so you can install it from the Arduino IDE Library Manager.

Steps:
1. Install the OneWire library (http://www.pjrc.com/teensy/td_libs_OneWire.html) from the Arduino Library Manager.
2. Install the DallasTemperature library (http://milesburton.com/Main_Page?title=Dallas_Temperature_Control_Library#Code.2FLibrary) from the Arduino Library Manager.
3. Attach a DS18B20 to a digital pin on your Arduino.
   Schematic:
   [Ground] -- [DS18B20] -- [4.7k resistor] -- [5V]
                   |______________|
                   |
              Digital Pin
4. Set the SENSOR_PIN value below to the pin number you used when connecting the sensor.
5. Set the VIRTUAL_CHANNEL value below to a free virtual channel (or the virtual channel of a DS18B20 Sensor widget you have added) in the Dashboard.
6. Set the Cayenne authentication info to match the authentication info from the Dashboard.
7. Compile and upload this sketch.
8. Once the Arduino connects to the Dashboard it should automatically create a temporary display widget (or update the DS18B20 Sensor widget you have added) with data.
   To make a temporary widget permanent click the plus sign on the widget.
*/

#define CAYENNE_PRINT Serial  // Comment this out to disable prints and save space
#include <OneWire.h>
#include <DallasTemperature.h>
#include <CayenneMQTTEthernet.h>

// Cayenne authentication info. This should be obtained from the Cayenne Dashboard.
char username[] = "xyz";
char password[] = "abc";
char clientID[] = "def";

#define SENSOR_PIN 2 // Do not use digital pins 0 or 1 since those conflict with the use of Serial.
#define VIRTUAL_CHANNEL 0815

OneWire oneWire(SENSOR_PIN);
DallasTemperature sensors(&oneWire);

void setup()
{
    Serial.begin(9600);
    Cayenne.begin(username, password, clientID);
    sensors.begin();
}

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

// This function is called at intervals to send sensor data to Cayenne.
CAYENNE_OUT(VIRTUAL_CHANNEL)
{
    // Send the command to get temperatures.
    sensors.requestTemperatures();
    // This command writes the temperature in Celsius to the Virtual Channel.
    Cayenne.celsiusWrite(VIRTUAL_CHANNEL, sensors.getTempCByIndex(0));
    // To send the temperature in Fahrenheit use the corresponding code below.
    //Cayenne.fahrenheitWrite(VIRTUAL_CHANNEL, sensors.getTempFByIndex(0));
}

Anpassen des neuen Widgets im Dashboard

Wenn du diesen Sketch auf den Arduino kopiert / geschrieben und mit dem Internet verbunden hast, musst du die Schaltfläche „Step 2: Add Sensor“ betätigen und man wird zum Dashboard geleitet. Dort solltest du nun deinen Sensor als Widget wiederfinden.

Cayenne Dashboard - Widget für den Temperatursensor DS18B20
Cayenne Dashboard – Widget für den Temperatursensor DS18B20

Es kommt manchmal vor das zwei Widgets erzeugt werden und wenn man das eine wohl überzählige löscht dann beide verschwinden, hier muss man nur die Seite aktualisieren und es sollte das eigentliche Widget wieder erscheinen.

Dieses angezeigte Widget lässt sich über das Zahnrad etwas konfigurieren.

Cayenne - Konfiguration eines Widgets
Cayenne – Konfiguration eines Widgets

Wenn die Nummer im Feld Channel angepasst wird muss diese wiederum im Sketch angepasst werden!

Unter „Widget Name“ können wir den Titel im Widget anpassen.
Aus der Auswahlliste „Choose Widget“ kann man den Style / Typ des Widgets auswählen und so das Design im Dashboard anzupassen.

Cayenne - Widget Konfiguration Style im Dashboard wählen
Cayenne – Widget Konfiguration Style im Dashboard wählen

Zur Auswahl stehen:

Gauge
Linechart
Value

Sollten wir die Konfiguration soweit abgeschlossen haben können wir auf das kleine Diagramm neben dem Zahnrad klicken und dort die empfangenen Sensorwerte in einem Liniendiagramm ablesen.

Cayenne - Daten des Sensors in einem Liniendiagramm
Cayenne – Daten des Sensors in einem Liniendiagramm

Schalten eines Relais über Cayenne

Ähnlich einfach wie das einrichten eines Temperatursensors kannst du auch ein Relais einrichten und sogar über das Dashboard steuern (EIN/AUS Schalten).

Fazit

Der IoT Dienst Cayenne ist eine sehr gute alternative zu ThinkSpeak (Beitrag Iot Service ThingSpeak, einrichten und betreiben). Jedoch hat dieser Dienst einpaar kleine Schwächen, so hatte ich zeitweise keinen Zugriff auf mein Dashboard und konnte diesen Fehler nur mir dem löschen der Browser History lösen.

Besonders gelungen finde ich dass, man zu den Sensoren / Aktoren gleich fertige Sketche bzw. Programme mit Pinbelegung erhält so das man sehr schnell sein eigenes kleines Dashboard mit Sensorwerten erschaffen kann.

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}