Arduino tour – Étape 9 – utilisation d’un capteur de Temperature(DHT11)-DS3231 et ecran LCD

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.

Fig 1: DHT11

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.

Fig 2 : Câblage du DHT11

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

Fig 3 : Câblage DHT11

 

 

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.

Fig 4 : Module de DS3231

Câblage du DS3231

VCC –> Arduino 5V

GND –> Arduino GND

SCL –> SCL (pin 21)

SDA –> SDA (pin 20 )

 

Fig 5: Câblage du DS3231 via fritzing

 

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 :

Fig 6 : Écran LCD

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

Fig 4 : Câblage de l’écran LCD

 

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é.

Fig 5 : Schéma de câblage du système

 

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.

Fig 6: Câblage

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.

fig 7: Programme- première partie

 

 

 

Fig 8: Programme- deuxième partie

 

 

Fig 9 : Programme- troisième partie

 

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é.

Fig 10: Message de bienvenue
Fig 12: Affichage date & heure

 

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.

 

Laisser un commentaire

Fermer le menu
Scroll Up