DasFilisera Smart Greenhouse: Fortschrittliches Pflanzenwachstums-Überwachungssystem
Komponenten und Zubehör
| DHT22 Temperatursensor | 1 | Lufttemperatur & Luftfeuchtigkeit innen |
| DS18B20 | 1 | Wasserdichter Außentemperatursensor |
| Boden-Temperatur- & Feuchtigkeitssensor FS200-SHT25 | 1 | Für Bodenbedingungen (I2C: SCL=12, SDA=11) |
| 4-Kanal-Relais-Modul | 1 | Für Ventilsteuerung (Wasserstand) |
| 2-Kanal-Relais-Modul | 1 | Für Fensterlüftung (Temperatur/Sauerstoff) |
| Ultraschallsensor HC-SR04 | 1 | Wasserstandsmessung (Echo=A0, Trigger=A1) |
| Arduino MKR1000 | 1 | WiFi-fähiges Board für IoT-Anbindung |
Apps und Online-Dienste
- DasData – Cloud-Datenspeicher & Visualisierung
- Microsoft Visual Studio 2015 – Windows-Desktop-Anwendung für lokale Überwachung
Über dieses Projekt
Pflanzen und Gemüse bewusster anbauen – indem man ihre Umgebungsbedingungen genau kennt. Mit einem einfachen MKR1000 wird dies zum Kinderspiel.
Anforderungen für Pflanzenwachstum
Pflanzenwachstum hängt von idealen Umweltbedingungen ab: Temperatur, Luftfeuchtigkeit, Licht, Mineralstoffen und Sauerstoff. Die richtige Wassermenge bereitzustellen oder die normale Temperatur im Gewächshaus zu halten, kann knifflig sein – aber nicht, wenn man es deutlich einfacher machen kann.
Hardware-Übersicht
Temperatur / Luftfeuchtigkeit
- TH1 – Außen: Wasserdichter DS18B20 Sensor – Pin D1
- TH2 – Innen: DHT22 für Temperatur & Luftfeuchtigkeit – Pin D0
- TH3 – Boden: FS200/SHT25 für Bodenbedingungen – I2C Pins 12 (SCL) & 11 (SDA)
Wasserstand
W1 – Ultraschallsensor HC-SR04 für Wasserstandsmessung. Verbindungen: Echo an A0, Trigger an A1. Basierend auf diesem Wert kann ein Ventil über R1 (4-Kanal-Relais) gesteuert werden.
Lufttemperatur / Sauerstoff
A1 – Basierend auf Temperatur-/Feuchtigkeitswerten können Fenster über R2-Relais geöffnet werden. Je nach Klima sollte dies individuell angepasst werden.
Relais R1 / R2
Für Befehle wie Fenster öffnen oder Pumpen starten werden Relais angesteuert: R1 an digitalen Pins 7, 8, 9, 10; R2 an Pins 5, 6.
MKR1000 – aREST
Nach dem Verkabeln aller Komponenten werden Daten erfasst und über die aREST-Bibliothek als JSON-Webinterface auf dem MKR1000 bereitgestellt. Die entsprechenden Bibliotheken und .ino-Dateien werden bereitgestellt – WLAN-Zugangsdaten müssen im Code angepasst werden.
Daten und Benutzeroberfläche
Über das lokale Netzwerk können die Sensordaten visualisiert werden. Mit Visual Studio 2015 und .NET wurde eine Windows-Anwendung erstellt, die Live-Bedingungen, Tagesverläufe und Logs anzeigt.
Für Cloud-Speicherung wird die DasData-Gewächshaus-Konfiguration genutzt oder man erstellt eigene Datenkanäle.
Nächster Schritt: DsKey und AKey in der Settings.txt im Anwendungsordner anpassen. Bei korrekter Konfiguration sollten Daten online sichtbar sein.
Dem DasData Hackster-Kanal folgen für zukünftige Updates.
Gewächshaus-Automatisierung
Entscheiden Sie, welche Ventile oder Motoren basierend auf Ihrer Gewächshaus-Konfiguration und -Größe Aktionen auslösen. Alles lässt sich über die Relais steuern.
Quellcode
- Filisera_Arduino – Arduino-Sketch (C/C++)
- libraries.zip – Benötigte Bibliotheken
- Filisera - vb.zip – Visual Studio Projekt (VB.NET)
- Filisera - VS – .NET-Datei für Datenauslesung & Interface
Arduino-Code (Filisera_Arduino – Auszug)
/* DASFilisera mit aREST Library für Arduino/Genuino MKR1000 */
#include
#include
#include
#include "DHT.h"
#include
#include
#include
#include
// Sensor-Pins
#define DHTPIN 0 // DHT22 innen
#define DHTTYPE DHT22
#define ONE_WIRE_BUS 1 // DS18B20 außen
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
// Ultraschall-Sensor
#define echoPin A0
#define trigPin A1
// Variablen für REST-API
float umidSol = 0, umidAer = 0, tempIn = 0, tempOut = 0, tempSol = 0;
int sqrLevel = 0; // Wasserstand
// WiFi & aREST
char ssid[] = "WIFI_AP";
char password[] = "WIFI_PASSW";
#define LISTEN_PORT 80
WiFiServer server(LISTEN_PORT);
aREST rest = aREST();
// Relais-Pins
int inReleu1Ventil = 6, inReleu2Ventil = 7, inReleu3Ventil = 8, inReleu4Ventil = 9;
int inReleu1Lateral = 10, inReleu2Lateral = 11;
void setup() {
Serial.begin(115200);
rest.function("led", ledControl);
rest.set_id("1");
rest.set_name("mkr1000");
// WiFi-Verbindung
while (WiFi.status() != WL_CONNECTED) {
WiFi.begin(ssid, password);
delay(10000);
}
server.begin();
// Sensoren initialisieren
DHT dht(DHTPIN, DHTTYPE);
sensors.begin();
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Variablen für REST-API exponieren
rest.variable("Vol_container", &sqrLevel);
rest.variable("Umiditate_sol", &umidSol);
rest.variable("Umiditate_aer", &umidAer);
rest.variable("Temp_in", &tempIn);
rest.variable("Temp_out", &tempOut);
rest.variable("Temp_sol", &tempSol);
}
void loop() {
getmyDistance(); // Wasserstand
getInsideVals(); // DHT22 innen
getOutSideVals(); // DS18B20 außen
getSoilVals(); // SHT25 Boden
WiFiClient client = server.available();
if (client) rest.handle(client);
}
// Sensor-Funktionen: getmyDistance(), getInsideVals(), getOutSideVals(), getSoilVals()
// REST-API-Funktion: ledControl()
Visual Studio Anwendung (Auszug)
Die VB.NET-Anwendung liest periodisch (alle 5 Sekunden) Sensordaten vom MKR1000 per HTTP/JSON, speichert sie in der DasData-Cloud, zeigt Diagramme (Temperatur, Luftfeuchtigkeit, Wasserstand) an und ermöglicht manuelle Relais-Steuerung (Fenster, Wasser). Ein Countdown-Timer steuert die Aktualisierungsrate. Einstellungen (Device-IP, API-Keys, Relais-Zuordnung) werden aus Settings.txt geladen.
Schaltplan
PDF-Datei mit Anschlüssen – Sensoren & Relais
Quellcode-Repository
https://github.com/dasdata/DasFilisera
Herstellungsprozess
- Raspberry Pi Temperaturlogger mit 5 $ I2C Sensor bauen
- Mehrere DS18B20 1-Wire Sensoren an Raspberry Pi anschließen für präzises Temperaturmonitoring
- TMP006 Infrarot-Temperatursensor mit Raspberry Pi: Python Library & Setup Guide
- Fern-Temperatursensor mit Raspberry Pi & Python bauen – Schritt-für-Schritt-Anleitung
- DS1820 One-Wire Temperatursensor an Raspberry Pi GPIO anschließen
- DS18B20 1-Wire Digitalthermometer an Raspberry Pi anschließen – Schritt-für-Schritt-Anleitung
- Multi-Sensor Temperatur- & Licht-Überwachung mit Raspberry Pi & DS18B20
- Raspberry Pi Heimtemperaturmonitor mit MCP9808, InfluxDB & Grafana bauen
- Präziser Lagertemperatursensor: Genaues Erkennen & Überwachen
- NASA Goddards Lab-on-Chip-Sensor liefert Echtzeit-Durchfluss- und Temperaturüberwachung