MicroPython Pyboard au Pays du NCD - traversera t'il la rivière sans se mouiller :-)
Bonjour à tous,
Je travaille beaucoup sur le développement de pilotes MicroPython et je ne cache pas mon intérêt pour le connecteur I2C de NCD (ncd.io) et adaptateur NCD pour Pyboard et Adaptateur NCD pour ESP qui permet des raccordement facile et rapide.
Cette fois, je me suis penché sur le détecteur d'eau + Buzzer permettant de détecter des fuites et éventuellement de lancer une alerte sonore (buzzer I2C).
Contrairement à ce que l'on pourrait penser au premier abord, ce capteur fonctionne vraiment bien... une grosse goutte de café (le breuvage du développeur) et le capteur s'active. Le buzzer (aussi commandé en I2C) est vraiment pénible, un véritable supplice pour les oreilles. Il fait donc son taf.
Après l'avoir raccordé sur le notre Pyboard... avec le câble ad-hoc... click-click.
Et comme c'est du MicroPython, le code reste est limpide.
Les plus attentifs remarquerons que le code inclus un bloc try - finally. C'est qu'il faut absolument couper le buzzer lorsque le script est interrompu (avec un Ctrl-C) parce qu'il est incroyablement bruyant!
Ressource
MicroPython utilisant un capteur NCD pour détecter la présence d'eau |
Je travaille beaucoup sur le développement de pilotes MicroPython et je ne cache pas mon intérêt pour le connecteur I2C de NCD (ncd.io) et adaptateur NCD pour Pyboard et Adaptateur NCD pour ESP qui permet des raccordement facile et rapide.
Cette fois, je me suis penché sur le détecteur d'eau + Buzzer permettant de détecter des fuites et éventuellement de lancer une alerte sonore (buzzer I2C).
Water Detect Sensor de National Control Device |
Après l'avoir raccordé sur le notre Pyboard... avec le câble ad-hoc... click-click.
Source: ncd-water-sensor sur le GitHub ESP8266-uPy |
from machine import Pin, I2C from time import sleep from wdetect import WaterDetect # Creer le bus I2C en fonction de votre plateforme. # Pyboard: SDA sur Y9, SCL sur Y10. Voir le branchement NCD sur https://github.com/mchobby/pyboard-driver/tree/master/NCD # La vitesse du bus à été reduite à 100 Khz. # Ne pas hésité à descendre à 10 KHz (10000) durant les tests. i2c = I2C( 2, freq=100000 ) # Feather ESP8266 & Wemos D1: sda=4, scl=5. # i2c = I2C( sda=Pin(4), scl=Pin(5) ) # ESP8266-EVB # i2c = I2C( sda=Pin(6), scl=Pin(5) ) wd = WaterDetect( i2c ) buz = False try: while True: if wd.has_water: print( "EAU DETECTEE!" ) # Change l'état du buzzer 1 SEULE FOIS pour éviter de charger le bus I2C if not buz: buz = True wd.buzzer( True ) else: print( '...') # Change l'état du buzzer 1 SEULE FOIS if buz: buz = False wd.buzzer( False ) sleep( 1 ) finally: # Etre certain que le buzzer est désactivé # ... avant que quelqu'un ne pète un câble :-) if buz: wd.buzzer( False )
Les plus attentifs remarquerons que le code inclus un bloc try - finally. C'est qu'il faut absolument couper le buzzer lorsque le script est interrompu (avec un Ctrl-C) parce qu'il est incroyablement bruyant!
Ressource
- GitHub avec le code MicroPython pour le capteur (GitHub, MCHobby)
- GitHub avec le pilote MicroPython pour le PCA9536 GPIO Extender (GitHub, MCHobby)
- Adaptateur NCD pour Pyboard et Adaptateur NCD pour ESP (GitHub, MCHobby)
- Water Dectection Sensor with Buzzer (sur le site de NCD.io)
- Les produits MicroPython Pyboard (chez MCHobby)
Écrire un commentaire