Vous êtes sur la page 1sur 16

Projet 2

SYSTÈME D’ARROSAGE
AUTOMATIQUE

Enseignante: Mme Wafa AMMAR


Présentation
 Ce projet consiste à réaliser un dispositif d’arrosage automatique pour des
plantes, qui déclenche une arrivée d’eau seulement en cas de besoin.
L'objectif est d'obtenir une automatisation de l'arrosage et une gestion de la 
consommation d'eau pour le jardin.
La carte ESP32 permet de transférer les différents paramètres vers une
application Android sur smartphone ou tablette grâce à une liaison wifi.
Ce transfert se fait à l’aide d’une plateforme IOT. Dans notre cas, on va
utiliser la plateforme gratuite « Thing Speak »
Préparation du projet
Carte ESP32 +  Câble USB
Plaque d’essai

Matériels: Capteur DHT111
Capteur d’humidité de sol
Pompe à eau de 5V + un relais
Fils jumper

Application Android:

Réaliser une IHM simple d’un objet connecté.


Plateforme iot:
ThingSpeak : qui permet de stocker et de collecter les données des objets connectés en passant par le protocole HTTP
Quelques conseils
 Pour assurer le bon déroulement du projet, il est
préférable de tester capteur par capteur.
 Fonctionner le capteur en mode circuit automatisé
puis le rendre connecté en utilisant la plateforme gratuite
« ThingSpeak »
Capteur DHT11
1. Mesurer la température/humidité
from machine import Pin

from time import sleep

import dht

sensor=dht.DHT11(Pin(5))

while True:

sleep(1)
Câblage
sensor.measure()

temp=sensor.temperature()
DHT11 ESP 32

hum=sensor.humidity()
+ 3V

print('temperature=',temp,'°C')
out D5

print('humidité=',hum,'%')
- GND
Capteur DHT11
2. envoyer les 2 valeurs du ESP32 vers la plateforme
d'IoT Thingspeak.
import urequests as requests
from machine import Pin sensor = dht.DHT11(Pin(5))
while True:
from time import sleep
sensor.measure()
import network temp = sensor.temperature()
import dht hum = sensor.humidity()
ssid = ‘******'
print('Temperature: %3.1f C' %temp)
password = ‘********'
print('Humidity: %3.1f %%' %hum)
station = network.WLAN(network.STA_IF)
station.active(True) url="https://api.thingspeak.com/update?api_key=378IIPOSS8D
station.connect(ssid, password) D7W50&field1="+str(temp)+"&field2="+str(hum)
while station.isconnected() == False:
rpass
= requests.get(url)
r.close()
print('Connection successful')
print(station.ifconfig()) sleep(3)
Capteur DHT11
3.Appinventor pour récupérer les 2 valeurs du
température et humidité
Remarque:
Vous pouvez créer votre application mobile selon le choix.
Vous êtes libres dans le choix des textes ou des images.

Pour récupérer les données à partir du plateforme d’IOT « ThingSpeak »,


il faut créer les composants suivants:

• Label 1 est nommé « val_hum » pour récupérer la valeur de l’humidité


• Label 2 est nommé « val_temp » pour récupérer la valeur de température
• Composant de connectivité Web (composant invisible)
• Importer l’extension JsonUtils (composant invisible) qui est responsable à
l’échange de données
Interface graphique
Code Appinventor
Explication

- Appeler la variable web sachant que


l’URL utilisé c’est l’URL de lecture
pris du plateforme IOT Thing speak.
- Initialiser la variable « rep » à ‘’ ‘’
(chaîne vide)
- « rep » est une variable qui contient
deux valeurs (la valeur temp et la
valeur hum)
- Récupérer les 2 valeurs temp et hum
à partir de field1 et field2.
- Afficher le contenu de ces 2 valeurs
dans les 2 Labels: val_temp et val_hum
Capteur DHT11 + capteur d’humidité de sol
1. Mesurer l’humidité de sol

Capteur d’humidité de ESP 32


sol
VCC+ 3V
GND GND
D0
A0 D34
Capteur DHT11 + capteur d’humidité de sol
1. Mesurer l’humidité de sol
from machine import Pin, ADC
from time import sleep
capteur= ADC(Pin(34))
capteur.atten(ADC.ATTN_11DB)
ADC.width(ADC.WIDTH_10BIT)
while True:
x= capteur.read()
print(x)
sleep(10)
Capteur DHT11 + capteur d’humidité de sol
2. envoyer la valeur de l’humidité de sol vers la plateforme
d'IoT Thingspeak.
import urequests as requests sensor = dht.DHT11(Pin(5))

capteur= ADC(Pin(34))
from machine import Pin, ADC
capteur.atten(ADC.ATTN_11DB)
import network
ADC.width(ADC.WIDTH_10BIT)
from time import sleep while True:
import dht sensor.measure()

ssid = ‘*******' temp = sensor.temperature()

password = ‘*********' hum = sensor.humidity()

x = capteur.read()
station = network.WLAN(network.STA_IF)
print('humidite du sable=',x)
station.active(True)
print('Temperature: %3.1f C' %temp)
station.connect(ssid, password)
print('Humidity: %3.1f %%' %hum)
while station.isconnected() == False: url="http://api.thingspeak.com/update?api_key=378IIPOSS8DD7W50&
pass field1="+str(temp)+"&field2="+str(hum)+"&field3="+str(x)

print('Connection successful') r = requests.get(url)

r.close() sleep(10)
print(station.ifconfig())
Capteur DHT11 + capteur d’humidité de sol
3.Appinventor pour récupérer la valeur de l’humidité de sol
Explication

- Initialiser la variable val à 0


- Récupérer la valeur de field3 et la
stocker dans la variable val.
- Tester
• Si la valeur récupérée = 1
Afficher le texte « Pas de pluie »
Mettre l’image du « Sun » est visible
Mettre l’image de « pluie » est invisible.
• Sinon
Afficher le texte « Il pleut »
Mettre l’image du « Sun » est invisible
Mettre l’image de « pluie » est visible.
Capteur DHT11 + capteur d’humidité de sol + pompe à eau + relais
1. Tester un relais
Capteur DHT11 + capteur d’humidité de sol + pompe à eau + relais
1. Tester un relais
Programme Python Câblage
from machine import Pin
Relais Carte ESP32 Pompe à eau relais
from time import sleep
IN1 D26 + COM
relay = Pin(26, Pin.OUT)
GND GND ‐ ‐ du 5V
while True:
relay.value(0) VCC 3V NO → + du 5V

sleep(10)
relay.value(1)
sleep(10)
capteur= ADC(Pin(34)) #Capteur d'humidité de sol
Programme python final capteur.atten(ADC.ATTN_11DB)

ADC.width(ADC.WIDTH_10BIT)
import urequests as requests
relay = Pin(26, Pin.OUT) #relais
from machine import Pin, ADC
while True:
import network
from time import sleep sensor.measure()

import dht temp = sensor.temperature()

ssid = ‘*******' hum = sensor.humidity()

password = ‘*********' x = capteur.read()

station = network.WLAN(network.STA_IF) if x > 500 :


station.active(True) relay.value(0)
station.connect(ssid, password) sleep(1)
while station.isconnected() == False: relay.value(1)
pass url="http://api.thingspeak.com/update?api_key=378IIPOSS8DD7W5
print('Connection successful') 0&field1="+str(temp)+"&field2="+str(hum)+"&field3="+str(x)
print(station.ifconfig()) r = requests.get(url)
sensor = dht.DHT11(Pin(5)) #Capteur DHT11 r.close() sleep(10)
Application Android