Bonjour les vacanciers,
Sur mes Raspberry Pi 3, j'utilise un capteur de lumière avec une photorésistance.
Je n'utilise pas de convertisseur analogique-numérique, mais une simple capacité de 1 μF.
Je charge avec GPIO.OUT, fait une pause de 100ms et passe ensuite en GPIO.IN pour compter en Python:
Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 while (GPIO.input(pin_to_circuit) == GPIO.LOW): count += 1
Les valeurs retournées sont tout à fait utilisables, comme 2000 en haute lumière, 20'000 en fin de journée et 140'000 lorsque le soleil se couche.
J'ai un script Python qui lit 8 fois la valeur, ignore les deux plus grandes et petites, et fait une moyenne des 4 valeurs triées restantes.
Ce mécanisme marche parfaitement et est suffisamment rapide.
Mon application Java, qui utilise cette valeur, peut réagir tout à fait correctement au passage d'une personne devant mon capteur de présence, et si l'intensité de la lumière n'est pas trop élevée, pour allumer une lampe installée sur mon armoire au rez.
Où la chose se gâte: au milieu de la nuit, j'obtiens des valeurs de count dépassant le million, et c'est normal.
Mon script Python détermine si la valeur retournée devient trop grande et je lis alors moins de valeurs en réduisant les lectures par exemple de 8 à 4.
Mais cela ne suffit pas. Avec des valeurs de count élevées, la réaction est beaucoup trop lente, aussi pour ignorer les changements d'intensité, dans le script Python, lorsque mon ampoule s'allume ou s'éteint (c'est un processus parallèle). Ces dernières valeurs doivent être ignorées comme lorsque le relais est actif.
La nuit je désactive le contrôle de lumière et n'utilise que le capteur de présence pour éclairer l'escalier qui descend au rez.
Ce logiciel fait partie d'un simulateur de présence qui active des lampes tôt le matin et en soirée, avec de courtes périodes éteintes, des valeurs légèrement aléatoires et évidemment saisonnières en calculant le lever et le coucher du soleil.
L'extension que j'écris à présent permet d'activer le relais en pleine journée si la lumière est faible. C'est le même cas de figure, que je vais tester ces prochains jours, lors des couchers ou levers de soleil en périodes nuageuses.
Je teste cette application Java sous Eclipse, où le GPIO et les capteurs sont simulés avec des valeurs fixes ou alléatoires et avec des printouts supplémentaires dans la console Eclipse. Le Debug mode d'Eclipse est essentiel.
Donc ma question: y a-t-il un moyen d'imaginer un circuit, un peu plus élaboré que ma capacité et ma photorésistance, sans convertisseur analogique-numérique, pour détecter ces cas de très basses lumières ... comme la nuit totale!?
Merci d'avance pour de nouvelles idées
Partager