Salut Dap5QFs.
Dap5QFs a écrit :je pense prototyper avec l'ADA3251, et faire le programme
Oui, pourquoi pas, mais ce ADA3251 n'a rien à voir avec le SEN0227.
Bien que la communication se fasse par le bus I2C dans les deux cas, rien n'indique que tu trouveras les mesures aux mêmes endroits.
Dap5QFs a écrit :ce qui me laissera largement le temps de recevoir la sonde élue
Il faut compter une bonne semaine si tu commandes chez GoTronic.
Dap5QFs a écrit :Si vous avez une idée de comment je peux coder ça en python
Je ne pratique pas Python, mais 'C/C++'.
Dap5QFs a écrit :en particulier pour structurer une boucle, sans doute "while" pour gérer l'humidité
Ce n'est pas un bonne idée d'utiliser une boucle. Il faut utiliser un timer. Pourquoi ?
Avec une boucle et un sleep(), tu vas monopoliser la cpu.
Tandis qu'avec un timer, ta CPU reste disponible pour d'autres traitement.
Un timer, c'est un thread, et donc, c'est un programme qui s'exécute en parallèle.
Si je devais faire un tel programme, j'utiliserai un timer pour chaque composant que je désire manipuler :
--> 1 pour le capteur d'humidité.
--> 1 pour le ralais.
--> 1 pour un afficheur LCD.
Tu communiques entre les trois timers par une structure où tu passes les informations dont tu as besoin :
--> lecture de la sonde d'humidité
--> valeur min du démarrage du relais
--> valeur max de l'arrêt du relais
--> (1) variable indiquant si le relais fonctionne ou à l'arrêt.
--> (2) variable indiquant le changement à faire dans l'affichage du LCD.
Les timers peuvent fonctionner à des vitesses différentes.
Le plus important est d'utiliser un mutex pour chaque timer (ou thread) afin de ne pas avoir de recouvrement dans les traitements.
C'est le timer de la sonde humidité qui pilote les deux autres timers.
Tu fais un mesure de l'humidité.
Si la valeur ne change pas, tu laisses la variable (2) à non.
Si le relais est éteint et que la mesure est < min, alors tu allumes le relais.
Si le relais est allumé et que la mesure est > max, alors tu éteins le relais.
Quand tu es entre ] min ; max[, tu ne fais rien.
Pour l'affichage, si (2) est à oui, tu affiches la mesure, sinon tu ne fais rien.
Dap5QFs a écrit :je suis entre autres un cours Python en ligne sur sololearn)
Si tu es débutant, c'est plutôt compliqué à mettre au point comme traitement.
En cherchant sur le net, je pense qu'il doit exister des exemples python pouvant te satisfaire.
@+