[Tuto] Extension du réseau GPIO par MCP23017 et/ou relais USR-R16
Publié : 11 mars 2019, 15:04
J'ai développé une carte électronique à base de MCP23017 permettant d'étendre le nombre de port IO sous raspberry.
On peut l'utiliser sous différentes formes:
- pour commander 16 relais
- pour récupérer le statu de 16 entrées (interrupteur, capteur de courant, capteur de fuite d'eau, capteur à effet de Hal...)
- ou mixer 8 relais et 8 entrées.
Cette carte dispose aussi d'une extension pour le W1 DS18B20.
On peut en utiliser plusieurs piloteés par un seul RPI, en plus des composants i2C et le tout avec la possibilité d'étendre le bus i2C à 30m (P82B715P/ testé sur 25m)
Ci-après le schéma du circuit. Si cela vous intéresse n'hésitez pas à me contacter je vous expliquerais comment la mettre en ouvre suivant vos besoins (DSB18B20 ou non, extension à 30m ou non, mode hybride...)
Côté logiciel j'ai donc développé deux plugins: relay et listener pour gérer tout ça. On peut les utiliser pour n'importe quelle communication avec un MCP23017 et pas forcément avec ma carte.
Il faut au minimum du python 3 et la version 4.9788 de Domoticz.
A] RELAY
----------- Pour les relais on peut définir des on/off, des systèmes à impulsion (pour des télérupteurs ou contacts secs par exemple), des sélecteurs (va et viens, à coupler avec un retour du courant donc avec un listener ci-aprés) ou gérer un ou des chauffage par PID (intégrer au plugin) avec couplage automatique à la température de la pièce quand elle existe.
Le plugin prends également en compte les cartes relais ethernet USR-R16.
B] LISTENER
-------------- Le listener permet de lire une entrée qui peut être:
- un capteur de courant (par exemple: https://fr.aliexpress.com/item/1-road-2 ... 91300.html)
- un détecteur de fuite (un circuit ouvert posé au sol)
- un interrupteur
- un capteur à effet de hal
- ...
bref tout ce qui retourne un signal 0 ou +VCC.
On peut utiliser les interruptions pour pouvoir notifier au plus vite d'un changement d'état ou se contenter de polling avec fréquence modifiable.
Le plugin gère également l'inversion de l'interprétation logique au niveau PIN.
On peut l'utiliser sous différentes formes:
- pour commander 16 relais
- pour récupérer le statu de 16 entrées (interrupteur, capteur de courant, capteur de fuite d'eau, capteur à effet de Hal...)
- ou mixer 8 relais et 8 entrées.
Cette carte dispose aussi d'une extension pour le W1 DS18B20.
On peut en utiliser plusieurs piloteés par un seul RPI, en plus des composants i2C et le tout avec la possibilité d'étendre le bus i2C à 30m (P82B715P/ testé sur 25m)
Ci-après le schéma du circuit. Si cela vous intéresse n'hésitez pas à me contacter je vous expliquerais comment la mettre en ouvre suivant vos besoins (DSB18B20 ou non, extension à 30m ou non, mode hybride...)
Côté logiciel j'ai donc développé deux plugins: relay et listener pour gérer tout ça. On peut les utiliser pour n'importe quelle communication avec un MCP23017 et pas forcément avec ma carte.
Il faut au minimum du python 3 et la version 4.9788 de Domoticz.
A] RELAY
----------- Pour les relais on peut définir des on/off, des systèmes à impulsion (pour des télérupteurs ou contacts secs par exemple), des sélecteurs (va et viens, à coupler avec un retour du courant donc avec un listener ci-aprés) ou gérer un ou des chauffage par PID (intégrer au plugin) avec couplage automatique à la température de la pièce quand elle existe.
Le plugin prends également en compte les cartes relais ethernet USR-R16.
B] LISTENER
-------------- Le listener permet de lire une entrée qui peut être:
- un capteur de courant (par exemple: https://fr.aliexpress.com/item/1-road-2 ... 91300.html)
- un détecteur de fuite (un circuit ouvert posé au sol)
- un interrupteur
- un capteur à effet de hal
- ...
bref tout ce qui retourne un signal 0 ou +VCC.
On peut utiliser les interruptions pour pouvoir notifier au plus vite d'un changement d'état ou se contenter de polling avec fréquence modifiable.
Le plugin gère également l'inversion de l'interprétation logique au niveau PIN.