DasFilisera Serre Intelligente : Système Avancé de Surveillance de la Croissance des Plantes
Composants et fournitures
| Composant | Quantité |
|---|---|
| Capteur de température DHT22 | 1 |
| Capteur de température DS18B20 (étanche) | 1 |
| Capteur température/humidité du sol FS200-SHT25 | 1 |
| Module relais 4 canaux | 1 |
| Module relais 2 canaux | 1 |
| Capteur ultrasons HC-SR04 | 1 |
| Arduino MKR1000 | 1 |
Applications et services en ligne
- DasData – Plateforme cloud pour stockage et visualisation des données
- Microsoft Visual Studio 2015 – Pour l'application Windows de visualisation
À propos du projet
Faites pousser vos plantes et légumes en surveillant précisément leurs conditions environnementales, simplement avec un MKR1000.
Besoins pour la croissance des plantes
La croissance des plantes dépend de plusieurs conditions idéales : température, humidité, lumière, nutriments minéraux et oxygène. Fournir la bonne quantité d'eau ou maintenir la température normale dans la serre peut être complexe, mais ce système le rend bien plus simple.
Vue d'ensemble du matériel
Température / Humidité
- TH1 – Température extérieure : Capteur DS18B20 étanche – broche D1
- TH2 – Température/humidité intérieure : DHT22 – broche D0
- TH3 – Conditions du sol : FS200/SHT25 – broches SCL/SDA (12/11)
Niveau d'eau
- W1 – Capteur ultrasons HC-SR04 – Echo sur A0, Trigger sur A1. Permet de contrôler une vanne via le relais R1 (4 canaux).
Air – Température / Oxygène
- A1 – Selon les valeurs température/humidité, commande d'ouverture des fenêtres via le relais R2. À régler selon votre climat.
Relais R1 / R2
Pour commander l'ouverture des fenêtres ou le démarrage d'une pompe : R1 connecté aux broches numériques 7, 8, 9, 10 ; R2 aux broches 5, 6.
MKR1000 – aREST
Une fois tout connecté, on récupère les données via la bibliothèque aREST, qui expose une interface web sur le MKR1000 au format JSON. Utilisez les bibliothèques et fichiers .ino fournis, et adaptez la connexion WiFi à votre routeur.
Données et interface
Grâce à cette interface, on peut consommer les données et les visualiser sur le réseau local. Une application Windows (.NET, Visual Studio 2015) permet de visualiser les conditions en temps réel, l'historique journalier et divers logs.
Pour le stockage cloud, on utilise les configurations DasData pour serre ou on crée ses propres canaux de données.
Il faut ensuite modifier les clés DsKey et AKey dans le fichier Settings.txt du dossier de l'application. Si tout fonctionne, les données apparaissent en ligne.
Suivez le canal Hackster de DasData pour les futures mises à jour.
Automatisation de la serre
Vous décidez quelles vannes ou moteurs activer selon la configuration et la taille de votre serre. Tout peut être contrôlé via les relais.
Code source
Filisera_Arduino– Sketch principal pour MKR1000libraries.zip– Bibliothèques nécessairesFilisera - vb.zip– Projet Visual Studio (.NET)Filisera - VS– Application Windows de lecture et d'affichage
Filisera_Arduino (extrait principal)
/* DASFilisera using aREST Library for Arduino/Genuino MKR1000 */
#include
#include
#include
#include "DHT.h"
#include
#include
#include
#include
// Capteurs température
#define DHTPIN 0
#define DHTTYPE DHT22
#define ONE_WIRE_BUS 1
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
float umidSol = 0, umidAer = 0, tempIn = 0, tempOut = 0, tempSol = 0, umidexIn = 0;
// Capteur niveau d'eau (ultrasons)
#define echoPin A0
#define trigPin A1
long duration;
int HR_dist = 0;
int minimumRange = 5, maximumRange = 200;
// WiFi & aREST
char ssid[] = "WIFI_AP";
char password[] = "WIFI_PASSW";
#define LISTEN_PORT 80
WiFiServer server(LISTEN_PORT);
aREST rest = aREST();
DHT dht(DHTPIN, DHTTYPE);
// Relais
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");
// Connexion WiFi
while (status != WL_CONNECTED) {
Serial.print("Attempting to connect to SSID: ");
Serial.println(ssid);
status = WiFi.begin(ssid, password);
delay(10000);
}
server.begin();
Serial.println("Server started");
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: ");
Serial.println(ip);
// Variables exposées à l'API REST
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);
dht.begin();
sensors.begin();
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
getmyDistance();
getInsideVals();
getOutSideVals();
getSoilVals();
WiFiClient client = server.available();
if (!client) return;
while(!client.available()) delay(1);
rest.handle(client);
}
// Fonctions de lecture capteurs, calcul distance, etc.
Application Windows (.NET) – Extrait
Public Class Form1
Private _deviceIP As String = ""
Private _AKey As String = ""
Private _DSKey As String = ""
Private _myDas As New dasData.das
Private Sub Form1_Load(...)
' Lecture Settings.txt : IP device, AKey, DSKey, relais
cmdCheckDevice()
cmdStartFilisera()
End Sub
Private Sub cmdGetSensorValues()
' Récupération JSON depuis l'API REST du MKR1000
' Parsing : Vol_container, Umiditate_sol, Umiditate_aer, Temp_in, Temp_out, Temp_sol
' Mise à jour jauges et graphiques (ChartTemp, chartUmid, chartVolum)
End Sub
Private Sub cmdAddData()
' Envoi données vers DasData cloud
End Sub
Private Sub cmdTriggers()
' Seuils d'alerte : volume > 80% stop eau, température > 38°C ouvre fenêtres, etc.
' Logs vers DasData
End Sub
End Class
Sources complètes : https://github.com/dasdata/DasFilisera
Schémas
Fichier PDF avec les connexions – capteurs et relais
Processus de fabrication
- Construire un enregistreur de température Raspberry Pi avec capteur I2C à 5 $
- Connecter plusieurs capteurs DS18B20 1-Wire à un Raspberry Pi pour une surveillance température précise
- Capteur de température infrarouge TMP006 avec Raspberry Pi : bibliothèque Python et guide de configuration
- Construire un capteur de température distant avec Raspberry Pi et Python – Guide étape par étape
- Comment connecter un capteur de température DS1820 One‑Wire à un Raspberry Pi via GPIO
- Comment connecter un thermomètre numérique DS18B20 One-Wire à un Raspberry Pi – Guide étape par étape
- Construire un système de surveillance température et lumière multi-capteurs avec Raspberry Pi et DS18B20
- Construire un moniteur de température domestique avec Raspberry Pi, MCP9808, InfluxDB et Grafana
- Capteur température palier de précision : détection et surveillance précises