Assemblage des codes
Fondamental :
Si l'ensemble de vos pprogrammes fonctionnent, il faut un a un les intégrer dasn votre programme principal.
Conseil :
ll est toujours conseillé de faire des programmes simples et de les tester souvent étape après étape.
Chaque programme doit être ecrit sous forme d'un sous programme void SousProgramme() :
void SousProgramme() :
Il est toujours difficile de trouver une ou plusieurs erreurs dans des programmes de plusieurs dizaines de lignes.
Il est aussi conseillé d'utiliser la fonction print("étape nX") pour déterminer la zone du programme qui ne fonctionnerait pas
Complément :
Voici une proposition de programme que l'on fera ensemble, en partant tous sur une système composé :
d'un capteur d'éclairement
d'un DHT11
d'un DS18B20
d'un pilotage de store remplacé par un bandeau de LED (allumé : soleil)
voici un exemple de programme, Nous verrons ensemble comment comprendre puis utiliser le programme.
'''programme ESP32 '''
#déclaration des bibliothèques nécessaires :
from machine import Pin,ADC
from time import sleep,sleep_ms
import dht, onewire, neopixel, esp_ds18x20 #il faut ajouter sur l'ESP32 le fichier esp_ds18x20
#déclaration des variables e/s
D4 = dht.DHT11(Pin(4))
D5 = Pin(5)
d5_sensor = esp_ds18x20.DS18X20(onewire.OneWire(D5))
roms = d5_sensor.scan() #pour connaitre l'adresse du capteur ds18B20
#print('Adresse du capteur: ', roms) #pour connaitre l'adresse pas nécessaire ici
D34 = ADC(Pin(34))
D34.atten(ADC.ATTN_11DB)
BarreLed = neopixel.NeoPixel(Pin(2), 10) # bandeau 10 Leds sur la broche 2
for x in range(10):
BarreLed[x] = (2, 2, 0)
BarreLed.write()
print("store ouvert")
#fonction par capteurs
#DHT11
def MesureTint():
try:
sleep(1)
# Le DHT11 renvoie au maximum une mesure toute les 1s
D4.measure()
# Récupère les mesures du capteur
T0=(D4.temperature())
#print("dht=",T0)
return T0
# Transmet la température sur la console de l'ordinateur
except OSError as e:
print('Echec reception')
# Si l'esp ne reçoit pas les mesures du capteur
#Ds18b20
def MesureText():
d5_sensor.convert_temp()#mesure la température
global roms #indique que la variable de cette fonction fait partie du prog principal
for rom in roms:
ds18 = d5_sensor.read_temp(rom)
#print("Ds18B20 = ", ds18)
return ds18
def MesureEclairement():
Ncapteur = D34.read()
Eclairement = (Ncapteur-900)/2.47
if Eclairement<0:
Eclairement=0
#print(Eclairement)
return Eclairement
def OUVRIR(r,g,b):# 0< r,g,b < 10
print("ouverture du store")
for x in range(10):
BarreLed[x] = (r, g, b)
BarreLed.write()
sleep(0.5)
def FERMER():
print("fermeture du store")
for x in range(9,-1,-1):
BarreLed[x] = (0,0,0)
BarreLed.write()
sleep(0.5)
while True:
#print(MesureTint(),MesureText())
#print(MesureEclairement())
sleep(1)
FERMER()
sleep(1)
OUVRIR(2,2,0)
Ce programme nécessite des programmes intégrés au microcontrôleur