Kabelloser Bodenfeuchte-Sensor mit Helium & DFRobot – Echtzeit-Pflanzenpflege
Hardware
| Komponente | Anzahl |
|---|---|
| Helium Atom XBee-Modul (Prototyping) | 1 |
| Helium Element Access Point (Gateway) | 1 |
| DFRobot Gravity: Kapazitiver Bodenfeuchtesensor (analog) | 1 |
| Helium Arduino/mbed Adapter | 1 |
| Arduino UNO (oder kompatibles Board) | 1 |
Software & Dienste
- Arduino IDE
- Helium Dashboard (Web-UI für Geräte-Management & Datenvisualisierung)
- Bibliotheken:
Helium,ArduinoJson(über Bibliotheksverwalter installieren)
Aufbau der Sonde
- Helium Atom in Arduino Adapter stecken, auf Arduino UNO aufsetzen (RX/TX-Jumper passend setzen).
- Bodenfeuchtesensor an Adapter anschließen: Schwarz → GND, Rot → 5V, Blau → AD0.
- Weißer Stecker des Sensorkabels auf Sensor aufstecken.
Helium Network deployen
- Element Access Point an Strom & Ethernet (oder Cellular) anschließen → LED grün/teal = online.
- Helium Dashboard Account erstellen.
- „New Atom“: Name (z. B. „Fern Saver“), letzte 4 Stellen MAC-Adresse, 4-stelliger HVV-Code eintragen.
- „New Element“: ebenso + Standort für Kartenanzeige.
HTTP Channel einrichten
Im Dashboard: Channels → New → HTTP → Ziel-URL (z. B. requestb.in für Test) konfigurieren. Channel-Name „HTTP“ wird im Sketch referenziert.
Arduino Sketch (Kern)
#include "Board.h"
#include
#include
#include
#include
#define CHANNEL_NAME "HTTP"
#define CHANNEL_DELAY 5000
#define CHANNEL_SEND_CYCLE 12
Helium helium(&atom_serial);
Channel channel(&helium);
int channel_counter = 0;
#define DRY_VALUE 536 // in Luft
#define WET_VALUE 303 // in Wasser
#define HUM_RANGE (DRY_VALUE - WET_VALUE)
void setup() {
Serial.begin(9600);
helium.begin(HELIUM_BAUD_RATE);
channel_create(CHANNEL_NAME);
}
void loop() {
float reading = analogRead(A0);
float percent = 100 * (1 - (reading - WET_VALUE) / HUM_RANGE);
Serial.print("Reading: "); Serial.print(reading); Serial.print(" %: "); Serial.println(percent);
if (--channel_counter <= 0) {
StaticJsonBuffer jsonBuffer;
JsonObject& root = jsonBuffer.createObject();
root["value"] = reading;
root["percent"] = percent;
char buffer[HELIUM_MAX_DATA_SIZE];
size_t len = root.printTo(buffer, sizeof(buffer));
channel_send(CHANNEL_NAME, buffer, len);
channel_counter = CHANNEL_SEND_CYCLE;
}
delay(CHANNEL_DELAY);
}
Datenformat (JSON): {"value":433,"percent":55.5}. Kalibrierung (DRY/WET) ggf. anpassen.
Daten in Dashboard prüfen
- Atom-Status & Signalstärke anzeigen.
- Event-Log: jedes gesendete Datenpaket mit Channel-Status.
- Debug-View: Live-Werte bei aktivierter Option.
Weiterführendes
- Helium Developer Docs, Slack, Forum.
- IFTTT-Verknüpfung via HTTP-Channel für Benachrichtigungen bei Trockenheit.
Herstellungsprozess
- Bodenfeuchtesensoren: Funktionsweise und praktische Anwendungen
- Integriertes QR-, RFID- und Temperatur-Verifikations-Zugangskontrollsystem
- Günstiger Raspberry Pi Bodenfeuchtesensor für smarte Bewässerung
- Automatisiertes Aeroponik-System mit Raspberry Pi und Feuchtigkeitssensor bauen
- Roboter mit Raspberry Pi und Python bauen: Komplette Anleitung
- Nachhaltiger Erfolg: Lektionen in Beharrlichkeit von Abraham Lincoln und Instandhaltungsführung
- Thermofühler (Thermocouple) mit Arduino Portenta H7 über MAX6675 IC integrieren
- Arduino & MPU6050: Präzise Servomotor-Steuerung mit SG90 & MG996R
- u-blox LEA-6H 02 GPS-Modul: Arduino & Python Integrationsanleitung
- KI-verbesserte Digitalkameras revolutionieren Bodenfeuchte-Monitoring