Publié par Laisser un commentaire

Capteur de lumière photorésistance avec Raspberry Pi

Raspberry Pi ligth sensor module

Dans ce tutoriel, nous utilisons un capteur de luminosité. Avec un script Python sur votre Raspberry Pi, vous pourrez savoir qu’il fasse sombre ou non. Lorsque vous aurez terminé ce didacticiel, vous pourrez connecter un module de capteur de luminosité avec sortie numérique à votre Pi via les broches GPIO. Vous aurez également le code de base pour convertir le signal de sortie du capteur en informations utilisables dans votre script Python.

Préparez votre Pi

Tout d’abord, vous avez besoin d’un Raspberry Pi avec la dernière version de Raspberry Pi OS. Cette version comprend “Thonny”. Nous utiliserons cet environnement convivial pour écrire notre code Python. Si vous n’êtes pas familier avec Python ou avec Thonny ou avec les broches GPIO, je vous suggère de consulter nos tutoriels “Comment débuter à programmer en Python sur Raspberry Pi” et/ou “Comment utiliser les broches GPIO du Raspberry Pi” pour une introduction rapide.

Préparez le matériel supplémentaire

Ensuite, vous aurez besoin d’un peu de matériel supplémentaire:

  • un breadboard (nous utilisons un breadboard de 400 points)
  • un capteur de luminosité avec sortie numérique
  • des câbles Dupont
  • un T-cobbler
  • un câble GPIO 40 broches

Si vous manquez des pièces, n’hésitez pas à visiter notre boutique. Nous avons un kit bien conçu contenant toutes les pièces dont vous avez besoin pour démarrer.
Raspberry Pi GPIO kit

Apprenez à connaître le module capteur de lumière

ligth sensor module

Le module capteur de lumière est équipé d’une LDR (Light Dependent Resistor). Le LDR a une résistance variable qui change en fonction de l’intensité de la lumière qui lui tombe dessus. Cela nous permet de mesurer l’intensité de la lumière ambiante.

La résistance du LDR diminue lorsque l’intensité de la lumière augmente. Il en résulte un signal analogique qui ne convient pas aux broches GPIO de notre Raspberry Pi. Pour cette raison, nous utilisons ce module équipé du LDR bien sûr, mais également d’un comparateur de tension et d’un potentiomètre. Ces composants nous permettent d’avoir une sortie numérique avec un seuil de luminosité ajustable:

  • intensité lumineuse > seuil : sortie = 0
  • intensité lumineuse < seuil : sortie = 1

Le signal de sortie de la broche “DO” (digital output) peut donc être connecté directement à une broche GPIO de notre Raspberry Pi. La tension de fonctionnement du module est de 3,3V à 5V.

Certains modules d’éclairage ont une quatrième broche, il s’agit de la sortie analogique (broche gauche sur l’image). Ce signal de sortie ne peut pas être connecté directement aux broches GPIO du Raspberry Pi. Il faut un circuit plus complex ou un autre type de carte capable de lire les signaux analogiques.

Et pour finir, le module est équipé de 2 LED: pour indiquer que le module est sous tension et pour indiquer l’état mesurée de la luminosité.

Mettre en place la partie matérielle

Soyez prudent ! Avant de brancher des câbles sur les broches GPIO de votre Raspberry Pi, assurez-vous d’éteindre correctement le Pi et de retirer le câble d’alimentation de la carte mère!

raspberry pi ligth sensor module
  • connectez le câble 40 broches sur les broches GPIO de votre Pi (si nécessaire, retirez d’abord le cache de votre Pi)
  • branchez le T-cobbler sur le breadboard comme indiqué sur la figure ci-dessus ou ci-dessous
  • branchez l’autre extrémité du câble 40 broches dans le T-cobbler
  • reliez la broche VCC du capteur à une broche 5V (fil rouge)
  • reliez la broche DO du capteur à la broche 23 (fil jaune)
  • connectez le GND du capteur à une broche GPIO GND (fil noir)
Raspberry Pi ligth sensor module

Ecrivez le code

Le but de ce tuto est d’écrire un script Python très simple qui nous permet de visualiser quand le module détecte l’obscurité ou la lumière

Pour écrire le code, nous utilisons l’EDI Thonny. Vous pouvez trouver Thonny dans le menu d’applications de votre Raspberry Pi.

Écrivez ou collez le code suivant dans l’EDI:

import RPi.GPIO as GPIO
import time GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
LIGHT_PIN = 23
GPIO.setup(LIGHT_PIN, GPIO.IN)
lOld = not GPIO.input(LIGHT_PIN) print('Starting up the LIGHT Module (click on STOP to exit)')
time.sleep(0.5) while True:
if GPIO.input(LIGHT_PIN) != lOld:
if GPIO.input(LIGHT_PIN):
print ('\u263e')
else:
print ('\u263c')
lOld = GPIO.input(LIGHT_PIN)
time.sleep(0.2)

Quelques explications à propos du code:

  • GPIO.setmode (GPIO.BCM) L’option GPIO.BCM signifie que nous faisons référence aux broches par le numéro “Broadcom SOC channel”, ce sont les numéros après “GPIO”
  • GPIO.setwarnings (False) nous l’utilisons ceci pour éviter les messages d’avertissement.
  • GPIO.setup(LIGHT_PIN, GPIO.IN) nous définissons la broche PIR-pin (= 23) comme une broche d’entrée
  • lOld = not GPIO.input(LIGHT_PIN) Nous utilisons une variable “lOld” pour sauvegarder le dernier état du capteur, cela nous permettra de comparer la dernière valeur mesurée avec la précédente et d’imprimer uniquement lorsque la valeur a changé. Pour être sûr d’imprimer l’état lors du lancement du script, nous attribuons la valeur opposée du capteur de lumière à cette variable.
  • time.sleep(0.5) On attend une demi seconde pour être certain que le capteur soit stabilisé.
  • while True: est une boucle à l’infinie (jusqu’à ce que nous interrompons le programme)
  • Attention, Python est sensible aux espaces. Ne supprimez pas le “tab” avant la ligne de code quit suit la commande “while”
  • if GPIO.input(LIGHT_PIN) != lOld: si le signal est différent du dernier état mesuré
  • if GPIO.input(LIGHT_PIN): si le signal est 1, l’intensité de la lumière est faible => obscurité
  • print ('\u263e') imprimer le symbole de la lune (code ASCII), n’hésitez pas à modifier le code ASCII dans du texte à votre choix
  • print ('\u263c') imprimer le symbole du soleil (code ASCII)
  • lOld = GPIO.input(LIGHT_PIN) nous sauvegardons le dernier statut mesuré dans la variable lOld
  • time.sleep(0.2) On attend 0,2 secondes avant de poursuivre la boucle

Exécutez le programme

Avant de lancer le programme, vous devrez le donner un nom et le sauvegarder.

Python script for light sensor

Aprés avoir sauvegardé le code, cliquez sur le bouton Exécuter. Vous verrez l’état de l’intensité de la lumière apparaître à l’écran. Si l’intensité de la lumière change au-dessus ou en-dessous du seuil, le nouvel état sera imprimé à l’écran.

N’hésitez pas à ajuster le potentiomètre sur le module pour ajuster le seuil.

Pour arrêter le programme, cliquez simplement sur le bouton STOP.

Toutes nos félicitations! Avec cette configuration, vous connaissez l’intensité de la lumière ambiante. Vous pouvez également utiliser le script pour une application dans laquelle vous souhaitez contrôler une lampe par exemple. Ayez encore beaucoup de plaisir!

Cette publication vous a-t-elle été utile ?

Cliquez sur une étoile pour la noter !

Note moyenne 5 / 5. Nombre de voix : 3

Aucune évaluation jusqu’à présent ! Soyez le premier à évaluer cette publication.

Nous sommes désolés que ce tutoriel ne vous ait pas été utile !

Améliorons ce tuto !

Dites-nous comment nous pouvons améliorer ce tuto ?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Cette publication vous a-t-elle été utile ?

Cliquez sur une étoile pour la noter !

Note moyenne 5 / 5. Nombre de voix : 3

Aucune évaluation jusqu’à présent ! Soyez le premier à évaluer cette publication.

Nous sommes désolés que ce tutoriel ne vous ait pas été utile !

Améliorons ce tuto !

Dites-nous comment nous pouvons améliorer ce tuto ?

découvrez ici plus de produits

Soyez le premier informé de nos derniers tutoriels et produits en vous inscrivant à notre Newsletter

freva.com respecte votre vie privée. Lisez notre politique de protection de la vie privée sur la façon dont nous traitons vos informations personnelles.