Arduino MKR FOX 1200 Sigfox-Wetterstation – Low-Power IoT-Lösung
Komponenten und Materialien
| Arduino MKR Fox 1200 | × | 1 |
| DHT11 Temperatur- & Luftfeuchtigkeitssensor (3 Pins) | × | 1 |
Apps und Online-Dienste
| Sigfox |
| ThingSpeak API |
| Arduino IDE |
| Arduino Web Editor |
| Arduino IoT Cloud |
Über dieses Projekt
Einführung: Arduino MKR Fox 1200 Sigfox-Wetterstation
Sigfox ist ein 2009 gegründetes französisches Unternehmen, das Funknetzwerke für energiearme Objekte wie Stromzähler, Smartwatches und Waschmaschinen aufbaut, die kontinuierlich aktiv sind und kleine Datenmengen senden.
Sigfox nutzt eine proprietäre Technologie, die Kommunikation über das ISM-Funkband (Industrial, Scientific and Medical) ermöglicht – 868 MHz in Europa, 902 MHz in den USA. Es verwendet ein breitreichendes Signal, das ungehindert durch feste Objekte dringt, genannt „Ultra-Schmalband“, und wenig Energie benötigt – daher „Low-Power Wide-Area Network (LPWAN)“. Das Netzwerk basiert auf einer Ein-Hop-Stern-Topologie und erfordert einen Mobilfunkbetreiber für den Datenverkehr. Das Signal eignet sich auch zur einfachen Abdeckung großer Gebiete und zum Erreichen unterirdischer Objekte.
In diesem Tutorial erstellen wir eine einfache und sehr effiziente Sigfox-basierte Wetterstation.
Benötigte Materialien:
- Arduino MKR Fox 1200
- DHT-11 Sensor (es gibt den Sensor-Shield oder den einfachen Sensor)
- Alternativ kann auch der DHT-22 Sensor verwendet werden. Er nutzt dieselbe Bibliothek wie der DHT-11, ist aber effizienter.
Zusätzlich benötigt werden:
- Sigfox-Entwicklerkonto
- ThingSpeak-Konto
Schritt 1: Erste Schritte mit Arduino MKR Fox 1200
Der erste Schritt ist die offizielle Arduino MKR Fox 1200-Seite:
https://www.arduino.cc/en/Guide.MKRFox1200
Anschließend müssen Sie Ihr Sigfox-Board registrieren. Folgen Sie diesen Schritten:
Dieser Vorgang registriert Ihr Board und verbindet es mit dem Internet.
https://backend.sigfox.com/activate
Ohne diesen Schritt können Sie Ihr Board nicht mit dem ThingSpeak-Dashboard oder anderen Diensten verbinden.
Schritt 2: Neues Konto bei ThingSpeak
Erstellen Sie nun ein Konto bei ThingSpeak: https://thingspeak.com/users/sign_up
Danach können Sie einen neuen Kanal erstellen. Dieser Kanal kann Daten vom Sigfox-Backend empfangen. Dazu wählen Sie den API-Schlüssel Ihres Kanals und fügen ihn zur URL im Sigfox-Backend-System hinzu. Gehen Sie auf die API-Keys-Seite und tragen Sie Ihre API-Keys in die Sigfox-Backend-Seite ein. Siehe nächsten Schritt.
Schritt 3: Hardware und Schaltung
In diesem Projekt können Sie den einfachen DHT-11-Sensor oder das DHT-11-Board verwenden.
Den Sensor erhalten Sie bei Amazon. Es gibt den Sensor-Shield oder den einfachen Sensor. Auch der DHT-22 Sensor ist möglich. Er nutzt dieselbe Bibliothek wie der DHT-11, ist aber effizienter.
Bei Verwendung des einfachen Sensors müssen Sie einen 10-kOhm-Widerstand zwischen VCC und Datenpin schalten. Beim DHT-11-Shield können Sie den Sensor direkt an das Arduino-Board anschließen. Die Schaltung ist sehr einfach: Verbinden Sie 5V und GND mit dem DHT-11 und den Datenpin mit dem Arduino MKR Fox 1200 Pin 1.
Testen Sie nun die DHT-Bibliothek. Nutzen Sie den DHT-Beispielcode. Öffnen Sie den seriellen Monitor und prüfen Sie die Ergebnisse. Wenn alles funktioniert und Sie „Temp“ und „Humi“-Werte lesen können, ist alles in Ordnung und Sie können zum nächsten Schritt übergehen.
Schritt 4: Befehl im Sigfox-Entwicklerportal hinzufügen
Erstellen Sie einen neuen Callback-Befehl im Sigfox-Backend-Portal: https://backend.sigfox.com
- Klicken Sie auf „Device Type“ und dann auf „Callbacks“.
- Typ: DATA und Uplink auswählen
- Kanal: URL auswählen
- Fügen Sie diese Zeile zu „Custom payload config“ hinzu:
status::uint:8 temp::int:16:little-endian t::int:16:little-endian h::int:16:little-endian - „Use HTTP method“: GET auswählen
- Fügen Sie diese Zeile zu Ihrem Callback hinzu. Ersetzen Sie
#############durch Ihren ThingSpeak-API-Key:
https://api.thingspeak.com/update?api_key=###############&field1={customData#temp}&field2={customData#t}&field3={customData#h}&field4={snr}
Schritt 5: Der gesamte Code und die Software
Zuerst die Sigfox-Bibliothek in der Arduino IDE installieren. Dies sind die Arduino-Bibliotheken. Die offizielle Anleitung zum Hinzufügen von Bibliotheken finden Sie hier: https://www.arduino.cc/en/Guide/Libraries
Installieren Sie die Bibliotheken: Arduino Low Power, Sigfox und DHT.
#include <ArduinoLowPower.h>
#include <Sigfox.h>
#include <DHT.h>
In den Callback-Daten auf der Backend-Seite finden Sie die Variablennamen Ihres Arduino-Codes. Siehe im Code:
t = dht.readTemperature();
msg.t = convertoFloatToInt16(t, 60, -60);
h = dht.readHumidity();
msg.h = convertoFloatToUInt16(h, 110);
[...]
msg.moduleTemperature = convertoFloatToInt16(temperature, 60, -60);
[...]
SigFox.write((uint8_t*)&msg, 12);
Der Code erfasst Temperatur- und Luftfeuchtigkeitsdaten vom DHT-11-Sensor, wandelt die Daten in „int“ um und sendet sie über den SigFox.write-Befehl an die ThingSpeak-Plattform.
Link zum Arduino-Code: https://github.com/masteruan/SigFoxThingSpeak
Code hochladen und Projekt testen.
Sie können das Gerät mit einer Batterie betreiben. Ich nutze es in einem Boot ohne WLAN-Verbindung, da die Datenübertragung über das Sigfox-Netzwerk läuft.
Code
GitHub
Arduino MKR Fox 1000 und DHT-11 Code: https://github.com/masteruan/SigFoxThingSpeak
Herstellungsprozess
- Fortgeschrittene Wetterstation v2.0: Echtzeit Temperatur, Druck, Feuchte & Höhe Monitoring
- Modellbahn DCC-Zentrale selbst bauen mit Arduino – Kostenlose App inklusive
- Arduino-gesteuerte 6-Shot-Getränkemischstation – Bauen Sie Ihren eigenen Cocktail-Automaten
- Bluetooth-gesteuerter Arduino-Spybot bauen – Überwachungsroboter mit IP-Kamera
- Tragbare Arduino-Wetterstation für 10$ bauen (Nano, DHT22, BMP180 & LCD)
- eDOT: Präzise Arduino-Uhr & Wetterstation mit IR-Fernbedienung
- Wetterstation mit Arduino & ThingSpeak IoT (DHT11 + ESP8266)
- Echtzeit-IoT-Drucküberwachung mit MKR GSM, Arduino Cloud & Google Sheets
- Arduino MKR FOX 1200 Sigfox-Wetterstation – Low-Power IoT-Lösung
- Zuverlässige Arduino-Wetterstation mit DHT-Sensoren bauen