J'ai repris mon script Python ce matin, afin qu'il soit présentable (voir la pièce jointe). C'est pratiquement le même que j'avais au début, sans l'arrêt dans le comptage (level_limit).
Le titre de cette discussion était "Capteur de lumière: mesure pour faible intensité". En fait c'est plus de déterminer un certain niveau de lumière pour en faire quelque chose et en utilisant une photorésistance sans convertisseur analogique/numérique (voir "La conversion analogique-numérique avec Raspberry Pi").
Il suffit ensuite de modifier:
Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 #Définition du pin sur la broche 13 pin_to_circuit = 13 level_limit = 800 nbloop = 10 nbignore = 2
Il faudra sans doute changer d'abord les deux premières.
Ici nous aurons 10 lectures et les 2 premières et dernières valeurs triées seront ignorées.
Nous pourrons ensuite couvrir avec un chapeau noir notre circuit, mettre level_limit très très grand, aller nous préparer un ou deux cafés et nous convaincre qu'une réaction si lente serait inutilisable avec un capteur de mouvement. Donc level_limit doit être ajusté.
La suite sera sans doute de retirer tous les prints (sauf le dernier) de notre script copié dans un autre nom et d'y introduire sans doutes des paramètres d'entrées ou alors de passer, pour moi, à une implémentation dans un autre langage pour une intégration dans une vraie application.
Si on se réfère à la solution analogique-numérique indiquée ci-dessus, il ne faudra ici qu'une photo-résistance (bien choisi laquelle) et un condensateur.
C'est évidemment meilleur marché et beaucoup plus simple pour les maker débutants.
Si nous désirons convertir cette valeur en Lux, il faudra faire une calibration correcte et considérer que les valeurs à basse lumière sont inutilisables.
Dans le cas de mon application, je définis level_limit 30% plus grand pour avoir une certaine marge de flexibilité (je termine la calibration fine avec la valeur retournée par mon serveur Web).
Je montre ici quelques lignes qui viennent de mon serveur Web:
La lumière actuelle ce matin à presque 10:00 est de 797.
(out) Mvt for at: Tue Aug 13 09:28:33 CEST 2019
Relay is OFF from 130 minutes 8 secs
On/Off/Mvt: 310 50 92 secs
Light limit and value: 2100 797
Temperature: 20.8 degrees
Le 2100 sera vite atteint si on a de gros nuages et en fin de journée.
Il y a eu un mouvement à 9:28 mais la lumière était suffisante. Le relais ne s'est pas enclenché pour 92 secs.
Le relais est OFF depuis plus de deux heures (soit un mouvement à basse lumière, soit ma période du matin de simulation de présence)
Les 310 et 50 sont les périodes en secondes de l'enclenchement et déclenchement de mon luminaire pour simuler une présence.
Ces deux valeurs sont soumises à une variation légèrement aléatoire.
Si je veux changer le 2100, par exemple, pas de re-compilation. C'est dans un fichier de configuration.
Oui, 20.8 degrés, c'est frais: on a ouvert toutes les fenêtres ce matin! Logique cet été.
Je m'amuse bien!








Répondre avec citation
Partager