Comment construire un système d’agriculture intelligent à l’aide de l’IoT

Raspberry Pi Tutorials

Les progrès dans le domaine de la technologie ont également amélioré les méthodes agricoles orthodoxes et les ont remplacées par des outils hautement efficaces et techniquement puissants. L’IoT (Internet des objets) est l’une des choses les plus puissantes qui nous permettent de contrôler et de surveiller les cultures et les plantes sur Internet. Dans ce tutoriel, nous allons apprendre à créer un système d’agriculture intelligent en utilisant ESP 32/NodeMCU. Notre projet nous aidera à surveiller l’humidité du sol des plantes ou des cultures sur Internet.

Conditions

Vous avez besoin des éléments suivants pour réaliser ce projet :

Schéma

Schéma de circuit Système d'agriculture intelligent

Composants Broches ESP32
DHT11 GPIO 21
Capteur de niveau d’eau GPIO 2
Capteur d’humidité GPIO 15
Module de relais GPIO 23

Câblage des clés du système agricole IoT

Travail

ESP32/NodeMCU

Ici, le NodeMCU/ESP32 agit en tant que microcontrôleur principal et son travail consiste à récupérer toutes les données des capteurs de sol, d’eau, de température et d’humidité et de les envoyer via Internet à l’application Blynk. Ensuite, ces données sont affichées sur l’application Blynk pour une surveillance ultérieure. La sortie du capteur de sol et du capteur d’eau sera analogique, nous avons donc connecté les broches analogiques de ESP32/NodeMCU au capteur de sol. L’ADC (convertisseur analogique-numérique) de notre microcontrôleur convertira les signaux analogiques du capteur en signal numérique. Ensuite, ce signal nous aidera à déterminer les besoins en eau de nos plantes aux moments appropriés.

Capteur de sol

Nous utilisons le FC-28 comme capteur de sol. Le capteur d’humidité du sol FC-28 est un excellent outil pour mesurer l’humidité du sol et d’autres matériaux comme le sol. Il est très facile à utiliser et à comprendre. Les deux grands plots agissent comme une résistance variable. Puisque l’eau est un conducteur, la quantité d’eau entre ces plots décide de la conductivité entre eux. Plus la résistance est faible, plus le rendement que nous obtenons est élevé, nous avons donc une humidité élevée dans le sol.

DHT

Le DHT11 est un capteur bon marché et très précis pour détecter à la fois la température et l’humidité. Il se compose d’une thermistance et d’un élément de détection capacitif. Pour mesurer la température, DHT 11 a une thermistance à coefficient de température négatif qui diminue sa résistance à mesure que la température augmente, ce qui signifie que plus la température est basse, plus la résistance de cette thermistance sera. Il peut mesurer la température entre 0 et 50 degrés Celsius avec une précision allant jusqu’à 2 degrés. Pour l’humidité, le capteur utilise un condensateur ayant deux électrodes et tenant un diélectrique humidifié entre elles. La capacité de ce condensateur est sensible à l’humidité, donc l’augmentation ou la diminution de l’humidité augmente ou diminue la capacité. Ce changement d’humidité peut être mesuré de 20 à 80 pour cent avec une précision de 5 pour cent.

Capteur de niveau d’eau

Le capteur de niveau d’eau fonctionne sur le même principe que le capteur d’humidité du sol. Il est composé de conducteurs parallèles exposés qui agissent comme une résistance variable. La résistance de cette résistance variable varie en fonction du niveau d’eau. Ce changement de résistance nous aide à mesurer la hauteur d’eau.

Module de relais

Le module relais est utilisé pour contrôler le moteur ou les lumières. Si le niveau d’eau est réduit à la valeur minimale du réservoir, nous pouvons allumer un moteur à distance pour remplir le réservoir. En revanche, si la température est réduite à son minimum, on peut allumer l’éclairage pour augmenter la température à une valeur fixe.

Application Blynk

Blynk est une plate-forme IOT qui permet de contrôler à distance des appareils électroniques via Internet via ses serveurs. Nous pouvons utiliser blynk pour faire beaucoup de choses comme afficher les données des capteurs, les stocker ou contrôler différents appareils via des relais sur une très longue distance. Cela fonctionne avec trois choses :

  • Application Blynk – C’est l’interface principale qui nous aide à créer différents widgets comme des boutons, des graphiques de commutation et des jauges et à les associer à différentes broches de notre microcontrôleur.
  • Serveur Blynk – Blynk Server est responsable de toutes les communications entre nos téléphones portables et le microcontrôleur. Il nous aide à contrôler notre microcontrôleur via Internet.
  • Bibliothèques Blynk – Les bibliothèques Blynk sont écrites pour faciliter notre travail de codage. Ceux-ci nous aident en fait à envoyer et à traiter toutes les commandes nécessaires au travail de notre microcontrôleur. Différentes bibliothèques sont écrites pour différents microcontrôleurs.

Fonctionnement du code

La bibliothèque de capteurs DHT11 est utilisée dans notre code pour plus de commodité. Il nous aide à obtenir des valeurs de température et d’humidité. L’humidité de l’eau et du sol sont des lectures analogiques qui peuvent être cartographiées dans une plage particulière. Nous utilisons deux fonctions distinctes pour envoyer des données à l’application Blynk.

La première fonction est utilisée pour envoyer des données de température et d’humidité.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
void sendSensor1Data()
{
  float h = dht.readHumidity();
  float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
    
  if (isnan(h) || isnan(t)) {
    Serial.println(“Failed to read from DHT sensor!”);    //This function is used to take values of first two sensors
    return;
  }               //Humidity and Temperature sensors value is taken through this function
  Blynk.virtualWrite(V5, h);
  Blynk.virtualWrite(V6, t);
}

La deuxième fonction est utilisée pour envoyer les niveaux d’humidité de l’eau et du sol.

4
5
6
7
8
9
10
11
void sendSensor2Data()
{
  waterLevel = analogRead(waterLevelSensor);
  waterLevel = map(waterLevel,0,2000,0,20);
  moistureLevel = analogRead(moistureLevelSensor);
  moistureLevel = map(moistureLevel,0,4000,0,20);        //This function is used to take value of Soil and Water sensor
  
  Blynk.virtualWrite(V7, waterLevel);
  Blynk.virtualWrite(V8, moistureLevel);
}

Virtual Write est une méthode de Blynk Library qui nous aide à lire les valeurs des broches virtuelles que nous allons configurer lors de la configuration de notre application blynk. L’objet minuterie Blynk est utilisé pour envoyer les valeurs de température et d’humidité toutes les deux secondes et toutes les cinq pour les niveaux d’humidité de l’eau et du sol. Ensuite, ces valeurs sont mises à jour dans les jauges de notre application.

Configuration de l’application Blynk

Étape 1

Téléchargez Blynk depuis le Play Store (Blynk (héritage) – Applications sur Google Play ) ou App Store (https://apps.apple.com/pk/app/blynk-0-1-legacy/id808760481). Ensuite, démarrez un nouveau projet pour votre microcontrôleur.

Étape 2

Configuration initiale de Blynk

Il vous enverra un jeton d’authentification à votre adresse e-mail.

Étape 3

Widget d'application Blynk

Ajoutez quatre jauges pour quatre capteurs respectifs.

Étape 4

Ajoutez également un bouton pour contrôler le relais.

Application Blynk - Ajouter un bouton de relais

Étape 5

Vous aurez cet écran. Démarrez le projet en appuyant sur ce bouton

Blynk - Présentation de l'agriculture intelligente

Étape 6.

Après avoir démarré le projet, les valeurs s’afficheront comme ceci :

Sommaire

Dans ce projet, nous avons appris à créer un système d’agriculture intelligent qui nous aidera à surveiller différents paramètres nécessaires à la bonne croissance des plantes. Ce système est assez bon marché par rapport à la fonctionnalité. Chaque culture ou plante a une température et des besoins en eau spécifiques, en utilisant ce projet, nous pouvons fournir les meilleures conditions appropriées pour la croissance d’une culture particulière. Nous pouvons en outre utiliser le relais pour contrôler le moteur à eau et les lumières si les exigences de température et d’eau ne sont pas respectées.