1- Objectifs
Découvrir l'utilisation d'un capteur numérique avec l'ESP8266 en tant qu'objet connecté.
Le principe général de cette activité est d'avoir la température d'un objet à l'aide de son smartphone :
- La maquette contient donc une carte électronique constituée de l'ESP8266 qui est un micro-contrôleur muni d'une carte wifi, d'un capteur de température DS18B20 et d'un capteur de lumière.
- l'éditeur python Thonny est utilisé en tant qu'éditeur de programme et de son téléversement dans l'ESP8266.
Le schéma suivant synthétise l'organisation :
Avant de poursuivre, vous devez connecter votre maquette à la borne wifi de la salle afin de récupérer son adresse (cf paragraphe2 de 1 - ESP8266 : commander 2 leds).
2 Capteur de lumière
2.1 Découvrir le codage de base pour lire le capteur de lumière
Voici le programme qui permet de lire la valeur du capteur de lumière (photorésistance) et de l'afficher dans la console.
from machine import Pin, ADC
from time import sleep
#Initialisation
lum = ADC(0)
#boucle de test de leture du capteur
while True:
lumVal = lum.read()
print("lumière ",lumVal)
sleep(0.5)
La boucle est uniquement là pour permettre d'observer l'évolution du niveau de lumière en cachant partiellement le capteur.
Vous aurez noté que le module machine importe aussi les fonctions ADC relatives à la lecture de valeurs analogiques.
2.2 Lire le niveau de lumière en passant par le wifi
L'objectif de ce paragraphe est que vous incorporiez la lecture du capteur dans le code de l'activité précédente.
Sur l'écran de votre navigateur, en ayant saisi l'adresse IP de votre carte, on doit voir :
- les deux boutons pour commander indépendamment chaque led
- un texte dessous qui affiche le niveau de luminosité.
3 Capteur de température
3.1 Découvrir le codage de base pour lire le capteur de température
Voici le programme qui permet de lire la valeur du capteur de température et de l'afficher dans la console.
from machine import Pin
import onewire
import ds18x20
import time
#--initialisation du capteur ds18b20
ow = onewire.OneWire(Pin(4))
sensor = ds18x20.DS18X20(ow)
#--boucle de test de lecture du capteur
while True :
roms = sensor.scan()
sensor.convert_temp()
time.sleep(2)
print(sensor.read_temp(roms[0]))
La boucle est uniquement là pour permettre d'observer l'évolution de la température.
Vous aurez noté que deux bibliothèques sont importées pour permettre la lecture du capteur.
3.2 Lire la température en passant par le wifi
L'objectif est d'ajouter au programme précédant, la température lue par le capteur.
Lorsque toute l'activité sur l'utilisation des capteurs est finie, vous déposez votre code ci-dessous