Das Arduino Plug and Make Kit bietet eine Vielzahl von Sensoren und Aktoren, mit denen du die Welt der Arduino-Programmierung erkunden kannst. In diesem Blog habe ich bereits einige spannende Projekte mit diesem Kit vorgestellt. Heute zeige ich dir, wie du eine smarte Wetterstation mit Anbindung an die Arduino Cloud programmieren kannst.
Das Arduino Plug and Make Kit erhältst du bei BerryBase für bereits ab 96€* (zzgl Versandkosten).
Mit rund 97 € hat das Kit zwar einen stolzen Preis, bietet jedoch ein durchdachtes System, das sich ideal für den einfachen Einstieg eignet. Dank der Qwiic-Schnittstelle entfällt das oft fehleranfällige Verkabeln der Komponenten – besonders für Anfänger ein großer Vorteil, der einen deutlich frustfreieren Start ermöglicht.
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Inhaltsverzeichnis
- Benötigte Ressourcen für dieses Projekt
- Aufbau der Schaltung am Arduino Plug and Make Kit
- Programmieren der Wetterstation in der Arduino Cloud
Benötigte Ressourcen für dieses Projekt
Wenn du die smarte Wetterstation am Arduino UNO R4 nachbauen möchtest, dann benötigst du:
- ein Arduino Plug and Make Kit, mit
- Arduino UNO R4 WiFi
- Umweltsensor
- 3fach Taster Modul
- zwei Qwiic Kabel
Aufbau der Schaltung am Arduino Plug and Make Kit
Dank der Qwiic-Schnittstelle gestaltet sich der Aufbau der Schaltung äußerst einfach. Die Sensoren und Aktoren werden über den I2C-Bus angesteuert, was es ermöglicht, sie einfach in Reihe miteinander zu verbinden.
Programmieren der Wetterstation in der Arduino Cloud
Mit der Arduino Cloud kannst du nicht nur ein Dashboard erstellen, sondern auch direkt deinen Sketch programmieren. Dafür wird der Arduino Cloud Agent benötigt, der die Verbindung zwischen dem Mikrocontroller, der am Computer angeschlossen ist, und dem Browser herstellt.
Wenn dieses Programm installiert wurde, dann findest du dieses unten rechts bei der Uhr in der Taskleiste.
Im oben verlinkten YouTube Video zeige ich dir wie du die kleine Wetterstation einrichtest und programmierst.
Schritt 1 – Verbinden des Mikrocontrollers mit der Arduino Cloud
Wenn der Arduino Cloud Agent installiert wurde, dann müssen wir diesen einrichten, dazu öffnen wir in der Cloud den Menüpunkt „Devices“ (1) und wählen dort die Schaltfläche „ADD DEVICE“ (2)
Im nächsten Schritt müssen wir zunächst auswählen welchen Typ wir verbinden wollen. Da wir den originalen Arduino UNO R4 WiFi haben, wählen wir hier die Kachel mit dem Arduino Logo (3).
Nun wäre der perfekte Zeitpunkt um deinen Mikrocontroller mit dem PC zu verbinden (soweit noch nicht geschehen).
In meinem Fall hat die Suche einpaar Sekunden gedauert und der Dialog hat zwischendrin einpaar mal gewechselt.
Du solltest, wenn dein Gerät gefunden wurde die Schaltfläche „CONFIGURE“ (4) finden welche wir klicken müssen.
Anschließend wird die Firmware und andere Eigenschaften geprüft und konfiguriert.
Dem Gerät müssen wir einen Namen (5) vergeben und diesen Schritt über die Schaltfläche „NEXT“ (6) verlassen.
Dir wird zunächst ein zufälliger Name angezeigt welchen du natürlich auch übernehmen kannst.
Es wird nun ein Sketch auf den Mikrocontroller überspielt welcher die Features für die Arduino Cloud enthält.
Wenn der kleine Wizard abgeschlossen ist, verlassen wir diesen über die Schaltfläche „DONE“ (7).
Schritt 2 – Erstellen eines Things und des Dashboards
Ein Thing in der Arduino Cloud ist eine Collection aus Variablen und Konfigurationen welche du später in deinem Dashboard & Sketch verwenden kannst. Daher müssen wir diesen nach dem aufbau der Verbindung zum Mikrocontroller erstellen. Du kannst an deinem konfigurierten Thing jederzeit Variablen hinzufügen und ändern!
Zunächst klicken wir im Menü auf den Eintrag „Thing“ (8) und wählen anschließend die Schaltfläche „CREATE THING“ (9).
An diesem Thing kannst du nun Variablen hinzufügen (10), ein Gerät verknüpfen (11) und die WiFi Verbindung konfigurieren (12).
Schritt 2.1 -Variablen anlegen
Im ersten Schritt am Thing wollen wir die Variablen für die Temperatur und die rel. Luftfeuchtigkeit sowie „aktiv“ hinzufügen.
Um eine Variable anlegen zu können, müssen wir zunächst auf „ADD“ (10) klicken und dort vergeben wir dieser einen Namen (13) wählen den Datentypen aus (14) und klicken unten auf die Schaltfläche „ADD VARIABLE“ (15).
Das wierderholen wir für die rel. Luftfeuchtigkeit und für das Feld „Aktiv“, wobei wir die letztere Variable als bool definieren.
Schritt 2.2 – Verknüpfen des Gerätes mit dem Thing
Nachdem die Variablen angelegt wurden (15), verknüpfen wir unseren Mikrocontroller mit dem Thing, dazu klicken wir auf der rechten Seite auf die Schaltfläche „Select Device“ (16).
Im neuen Dialog werden alle konfigurierten Mikrocontroller aufgelistet. Da wir zu diesem Zeitpunkt nur einen Mikrocontroller eingerichtet haben, klicken wir hier am Eintrag für den Arduino UNO R4 WiFi die Schaltfläche „ASSOCIATE“ (17).
Schritt 2.3 – Einrichten der WiFi-Verbindung
Die Einrichtung der WiFi-Verbindung ist denkbar einfach, hier musst du nur auf die Schaltfläche „Configure“ (18) klicken und gibst dort die Daten von deinem lokalen WiFi-Netzwerk ein. Das Gute daran ist, diese Daten werden sogleich auch für dein Sketch verwendet und du musst hier nichts zwischenspeichern.
Im neuen Dialog gibst du nun deine SSID (19) und dein Passwort (20) ein. Diese Eingabe bestätigst du abschließend mit der Schaltfläche „SAVE“ (21).
Schritt 3 – Dashboard erstellen und verwenden der Variablen
Nun können wir endlich unser Dashboard erstellen und die Sensordaten vom Arduino visualisieren. Dazu klicken wir im Menü auf „Dashboard“ (22) und wählen dort die Schaltfläche „CREATE DASHBOARD“ (23).
Oben Links im neuen, leeren Dashboard finden wir drei Schalter und den Namen (24).
Über das die Schaltfläche mit dem Auge (25) können wir den Bearbeitungsmodus verlassen und gelangen in die Ansicht zum Darstellen der Sensorwerte.
Die Schaltfläche mit dem Bleistift (26) dient dazu, den Bearbeitungsmodus zu aktivieren. Über diesen Modus können wir dem Dashboard Elemente hinzufügen.
Die Schaltfläche mit dem Smartphone (27) wechselt die Ansicht zu einer mobilen Darstellung. Damit kannst du prüfen ob dein Dashboard auch auch tragbaren Geräten korrekt angezeigt wird.
Schritt 3.1 – ein Element dem Dashboard hinzufügen und konfigurieren
Klicken wir nun auf den Bleistift (28) und wählen anschließend die Schaltfläche „ADD“ (29). Aus dem Dropdown Menü können wir nun verschiedene Elemente für unser Dashboard auswählen. Starten wir zunächst mit dem Schalter (engl. Switch) (30).
Diesem Element vergeben wir einen Namen (31) und verlinken dieses mit einer Variable aus einem Thing (32).
Da wir zur Zeit nur ein Thing konfiguriert haben (33), ist auch nur eines angezeigt aus welchem wir die Variable active (34) auswählen und dieses mit der Schaltfläche „LINK VARIABLE“ (35) bestätigen. Den Dialog verlassen wir anschließend über die Schaltfläche „DONE“.
Dieses Vorgehen wiederholen wir nach bedarf für die Variablen temperatur und humidity. Wenn wir den Wert in einem Block anzeigen lassen wollen, dann wählen wir den Block „Value“ (36) und für das Diagramm „Chart“ (37).


Wenn du dein Dashboard erstellt hast, dann könnte dieses ungefähr wie folgt aussehen:
Schritt 4 – Generieren des Quellcodes
Das Dashboard wurde nun eingerichtet und wir können uns als nächstes dem Quellcode widmen wo wir den Sensor auslesen und die Werte den Variablen zuweisen.
Wir können über die Arduino Cloud ein Sketch generieren lassen welches bereits das nötigste enthält. Dazu öffnen wir das zuvor konfigurierte Thing und wählen oben rechts den Link „</> Sketch“ (38). Anschließend klicken wir auf „GENERATE SKETCH“.
Im neuen Dialog kannst du oben dem neuen Sketch einen Namen vergeben (39) und findest den Hinweis auf den verknüpfen Mikrocontroller (40). Über die Schaltfläche „Upload“ (41) kannst du dein Sketch auf den Mikrocontroller überspielen.
Den nachfolgenden Code kopieren wir in das Fenster vom Sketch. Wenn du deine Variablen wie hier im Beitrag benannt hast, dann sollte dieser 1:1 funktionieren.
#include <Modulino.h> // Bibliothek für das Modulino-Framework, das Sensoren und Taster unterstützt. #include "thingProperties.h" // Enthält die Konfiguration der Arduino Cloud Eigenschaften. #define indicatorLED 13 // Definiert die LED an Pin 13 zur Statusanzeige. ModulinoThermo umweltsensor; // Objekt für den Umweltsensor (Temperatur und Luftfeuchtigkeit). ModulinoButtons taster; // Objekt für das Taster-Modul. const int TASTER_A = 0; // Pin-Definition für den Taster A. long lastAction = -1; // Speichert den letzten Zeitpunkt einer Aktion. const int PAUSE = 2500; // Zeitspanne (in ms) zwischen zwei Aktionen. void setup() { Serial.begin(9600); // Initialisiert die serielle Kommunikation mit 9600 Baud. delay(1500); // Wartet 1,5 Sekunden, um den Mikrocontroller zu stabilisieren. initProperties(); // Konfiguriert die Cloud-Variablen und definiert, wie diese behandelt werden (Lesen, Schreiben, Callback-Funktionen bei Änderungen). ArduinoCloud.begin(ArduinoIoTPreferredConnection); // Startet die Verbindung zur Arduino Cloud über die bevorzugte Verbindungsmethode. setDebugMessageLevel(2); // Setzt die Debug-Ebene für detailliertere Nachrichten. ArduinoCloud.printDebugInfo(); // Gibt Debug-Informationen zur Arduino Cloud-Verbindung aus. Modulino.begin(); // Initialisiert das Modulino-System. umweltsensor.begin(); // Startet den Umweltsensor. taster.begin(); // Startet das Taster-Modul. } void loop() { ArduinoCloud.update(); // Aktualisiert die Verbindung zur Arduino Cloud, um Daten zu synchronisieren. long currentMillis = millis(); // Holt die aktuelle Zeit in Millisekunden seit Start. if (currentMillis > (lastAction + PAUSE)) { // Führt die folgenden Aktionen nur alle 2,5 Sekunden aus. lastAction = currentMillis; if (active) { // Wenn die Wetterstation aktiv ist: temperatur = umweltsensor.getTemperature(); // Liest die Temperatur vom Sensor aus und speichert sie in der Cloud-Variable. humidity = umweltsensor.getHumidity(); // Liest die Luftfeuchtigkeit vom Sensor aus und speichert sie in der Cloud-Variable. } } if (taster.update() && taster.isPressed(TASTER_A)) { // Prüft, ob der Taster aktualisiert wurde und Taster A gedrückt ist. active = !active; // Wechselt den Status der Wetterstation (aktiv/inaktiv). onActiveChange(); // Ruft die Funktion auf, die auf Änderungen der "active"-Variable reagiert. } delay(50); // Fügt eine kurze Pause ein, um die Schleife zu stabilisieren. } void onTemperaturChange() { // Funktion wird aufgerufen, wenn sich die Temperatur in der Arduino Cloud ändert. } void onHumidityChange() { // Funktion wird aufgerufen, wenn sich die Luftfeuchtigkeit in der Arduino Cloud ändert. } void onActiveChange() { digitalWrite(indicatorLED, active); // Schaltet die Status-LED basierend auf dem "active"-Status ein oder aus. }
Schritt 5 – Upload & Test
Sobald du den Sketch auf den Mikrocontroller hochgeladen hast werden deine Daten übertragen und im Dashboard visualisiert.
Wie kannst Du eine LED ohne Vorwiderstand anschließen ?
Hi,
die große 10mm LED an Pin D13 hat eine Spannungsversorgung von 3.4V und daher kann diese getrost auch an den digitalen Pin vom Arduino angeschlossen werden. Wenn du eine normale 5mm oder 3mm LED verwenden möchtest, dann benötigst du einen 220 Ohm Vorwiderstand. Der Beitrag richtet sich mehr an das Arduino Plug and Make Kit, daher bin ich auf diese LED nicht näher eingegangen.
Gruß, Stefan