Bonjour !
Dans notre milieu naturel, il existe certaines grandeurs physiques qui impactent considérablement notre vie. La connaissance de ces paramètres (température, humidité ambiante, etc) est incontournable. Ils peuvent êtres appréhendés par les capteurs de température et d’humidité.
Dans cette expérience, nous allons d’abord étudier les capteurs de température et d’humidité ambiante. Ensuite, à partir de nos découvertes, nous mettrons au point une mini station météo qui nous donnera à chaque instant l’heure et la température.
Eh oui ce sera notre station météo made in Senegal! (mdr)
Capteur de température et d’humidité (DHT11)
On remarque actuellement qu’il commence à faire froid à Dakar, mais sans outil, on est incapable de mesurer la température et l’humidité ambiante; d’où l’utilité d’un capteur de température et d’humidité. Celui-ci est nécessaire dans certains domaines d’activité comme l’agriculture, l’élevage et l’industrie.
Qu’est ce que le DHT11 ?
Le DHT11 est un capteur qui, à l’aide d’un microcontrôleur, mesure la température et l’humidité. Il fonctionne plutôt simplement : lors du démarrage, le microcontrôleur envoie un signal électrique pour réveiller le capteur et ensuite être à l’écoute des données lues par le capteur. Voilà un aperçu du fonctionnement du composant.
Il existe une large gamme de capteurs de température, mais dans notre expérience, nous avons choisi d’utiliser la gamme des DHTxx, plus précisément le DHT11 qui fonctionne aussi bien que son frère aîné, le DHT22, mais avec un petit écart dans la précision, bien compensé par le prix.

Câblage
le capteur DHT11 est composé de 3 broches:
- Ground: branche au GND de la carte arduino
- VCC : branche au 3,3V ou 5V (recommandé pour plus de précision)
- DATA: branché à un pin digital de la carte arduino
Pour bien illustrer ce câblage, nous avons réalisé à l’aide de Fritzing le câblage du DHT11.

Ci-dessous le câblage réalisé avec le matériel dans notre lab.

Une fois que nous en savons assez sur le DHT11 et pour bien illustrer la théorie précédente, nous allons maintenant passer à notre petite station de météo.
Fonctionnement et matériel
- Fonctionnement
Nous allons mettre en place une mini station météo dont le rôle est de relever les températures, d’humidité à l’aide du DHT11, l’heure et la date définie par le RTC (Real Time Clock) pour les afficher sur un écran LCD (Liquid Crystal Display).
Objectif fixé, quel matériel nous faut-il pour atteindre notre objectif ?
- Matériel
Ici, les composants seront : :
- la carte arduino
- le DHT11
- le Real Time Clock (DS3231)
- un écran LCD.
Étude de la RTC
Le real time Clock ou RTC est un module qui permet de lire l’heure et la date d’une localité en temps réel. Elle comporte un quartz et une pile qui permet de sauvegarder l’heure et la date.

Câblage du DS3231
VCC –> Arduino 5V
GND –> Arduino GND
SCL –> SCL (pin 21)
SDA –> SDA (pin 20 )

L’écran LCD
Jusque là, nous avons utilisé le moniteur série pour afficher l’état d’avancement de nos projets au niveau de l’ordinateur. Cela peut être gênant dans certains cas. Par exemple, lorsque l’on veut transporter notre projet, un affichage externe peut être nécessaire, voire indispensable. Ce dernier peut être soit un voyant (avec des jeux de lumière), soit un son (buzzer),… Par ailleurs il existe des écrans comme les écrans LCD, et c’est avec lui que nous travaillerons sur ce projet.
Les écrans LCD existent depuis 1971. Ils n’ont pas cessé de se développer depuis, et équipent maintenant bien des appareils à affichage embarqué (appareils photo, digicodes, montres, téléphones…).
LCD est l’abréviation anglaise de “liquid crystal display” qui veut dire : afficheur à cristaux liquides. Je ne vais pas entrer dans le détail du fonctionnement de tels afficheurs. Il faut juste savoir que cette technologie permet de créer des écrans plats qui consomment peu d’énergie.
L’écran LCD que je vous propose d’acquérir (ou en tous cas d’étudier) est un écran permettant l’affichage de 16×2 caractères, c’est-à-dire deux lignes de 16 caractères.
Il en existe plusieurs formats. Voici celui que nous utilisons :

Câblage de l’écran
Pour le câblage d’écran LCD, nous allons procéder de la façon suivante :
- RS pin to digital pin 12
- Enable pin to digital pin 11
- D4 pin to digital pin 5
- D5 pin to digital pin 4
- D6 pin to digital pin 3
- D7 pin to digital pin 2
Le VSS (voltage source supply) est relié à la RW (READ/WRITE) et les deux vont être est connectés au GND.
VDD (voltage drain drain) est connecté au +5V de l’arduino.
Remarque : il est nécessaire de mettre un potentiomètre qui est un variateur de tension entre l’entrée V0 de l’afficheur et le +5V de la carte arduino. Ce potentiomètre permet de varier le contraste de l’afficheur.
Pour les pins digitaux ci-dessus on est libre de choisir les pins que l’on veut parmi les pins de l’arduino.Ci-dessous le câblage de l’écran LCD par Fritzing

Voilà pour ce qui est des composants du système. Maintenant que l’on connaît chacun des composants et que l’on sait aussi comment les câbler, passons à une seconde étape qui est le câblage du système avant d’entamer la partie software (le code).
Schémas de câblage du système
Par souci de temps et d’esthétique dans notre système de câblage global, nous avons choisi d’utiliser un afficheur LCD I2C qui est un afficheur LCD dont les pins de branchement ont été réduits par un adaptateur appelé I2C; d’où le nom afficheur I2C.
C’est un afficheur très facile à câbler, car il ne comporte que 4 broches qui sont SDA, SCL, le +5V et le Ground. De plus, contrairement à l’afficheur classique, il possède un potentiomètre incorporé qui gère le réglage de la luminosité.

Câblage avec le matériel
La figure ci-dessous montre le câblage du système que nous avons fait dans le Rose Dieng LAB.

Le câblage est réalisé! À présent, passons aux codes.
Dans ce projet nous avons utilisé 3 composants électroniques programmables, ce qui implique un programme pour chacun. Ce sera un peu plus compliqué que d’habitude.
Il convient d’abord de se rappeler ce qu’on veut faire. On lit la température et l’humidité sur le capteur DHT11, puis la date et l’heure sur le DS3231 (RTC). Ces informations apparaîtront sur l’afficheur LCD.
Cependant l’écran LCD dont nous disposons est un afficheur (16,2). C’est à dire qu’il est composé de seize colonnes et de deux lignes. Autrement dit l’afficheur ne prend en charge que 16 caractères sur deux lignes. Donc pour pouvoir afficher toutes ces informations, il faut bien trouver des techniques dans le programme pour faire en sorte que ces informations soient toutes affichées.
On peut faire:
- soit un défilement du texte c’est à dire un texte qui défile de gauche vers la droite ou vice versa
- soit un clignotement du texte c’est à dire un texte qui s’affiche un certain temps puis s’efface en laissant place au texte suivant…
Les techniques de parution du texte sur l’écran LCD sont nombreuses et dépendent du niveau de programmation arduino.
Description du code
Pour mieux organiser notre code, nous avons adopté une méthode très simple. Après avoir installé les différentes librairies pour chaque composant, nous avons pris le soin de tester ces derniers avec le code exemple qui se trouve dans chaque librairie, et vérifier leur fonctionnement. Ensuite, nous avons créé un nouveau fichier .ino vide.
Dans ce fichier; nous avons nous avons importé les 3 librairies que nous avons téléchargées puis nous avons, pour chaque composant, fait la déclaration des variables.
Après avoir lu toutes les informations, nous les avons affichées en dernière partie sur notre écran.
Ci-dessous vous avez la capture d’écran du programme, mais vous pouvez aussi voir l’ensemble du projet concernant la station météo (code, matériel…) ici.



Une fois qu’on a fait le programme, on peut maintenant passer à la simulation. Pour cela, téléversons le code et observons le résultat.
Simulation
Ici nous avons adopté un affichage par intervalle de temps, c’est à dire que lorsque l’on lance le programme, on affiche sur la première ligne Welcome to Dakar et sur la deuxième ligne DALAL AK JAMM.
On attend quelques secondes, on efface cela puis on affiche la date et temps. On attend ainsi quelques secondes, puis on efface et on affiche enfin la température et l’humidité.


Nous voilà à la fin de cette expérience! Elle a été certes longue, mais elle nous aura permis de manipuler 3 différents composants (DHT11,ÉCRAN LCD,DS3231) tout aussi importants et utiles pour les futures projets arduino.
En effet nous savons maintenant comment utiliser l’écran LCD, c’est sûr que vous en entendrez parler très prochainement.