[Tuto] Extension du réseau GPIO par MCP23017 et/ou relais USR-R16

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
Elwinmage
Messages : 28
Inscription : 08 mars 2019, 10:08

[Tuto] Extension du réseau GPIO par MCP23017 et/ou relais USR-R16

Message par Elwinmage »

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...)
Gerber_MCP23017_Listener_v5_20190311142549.zip
Le PCB de la carte
(26.54 Kio) Téléchargé 571 fois


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
-----------
relay.plugin.py
Plugin python relay, à mettre dans le répertoire plugins/relay et à renommer plugin.py
(24.05 Kio) Téléchargé 436 fois
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
--------------
MCP23017.plugin.py
Plugin python MCP23017 listener, à mettre dans le répertoire plugins/MCP23017_Listener et à renommer plugin.py
(11.77 Kio) Téléchargé 486 fois
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.
nicoboy
Messages : 1
Inscription : 25 juin 2019, 17:42

Re: Extension du réseau GPIO par MCP23017 et/ou relais USR-R16

Message par nicoboy »

Bonjour,
je serai intéressé par ces fichiers mais ils ne sont plus en ligne :(
serai il possible de les re uploader?
Elwinmage
Messages : 28
Inscription : 08 mars 2019, 10:08

Re: Extension du réseau GPIO par MCP23017 et/ou relais USR-R16

Message par Elwinmage »

Voici les dernières versions
Pièces jointes
Relay.plugin.py
(24.22 Kio) Téléchargé 403 fois
MCP23017.plugin.py
(11.77 Kio) Téléchargé 432 fois
Elwinmage
Messages : 28
Inscription : 08 mars 2019, 10:08

Re: Extension du réseau GPIO par MCP23017 et/ou relais USR-R16

Message par Elwinmage »

Et la suite :D
Pièces jointes
Gerber_MCP23017_Listener_v5_20190311142549.zip
(26.54 Kio) Téléchargé 443 fois
mickaelr30
Messages : 210
Inscription : 29 août 2015, 15:57

Re: Extension du réseau GPIO par MCP23017 et/ou relais USR-R16

Message par mickaelr30 »

Pas mal du tout ça
Merci
Domoticz + Imperihome + Mydomoathome
1-wire : 12 DS18b20 + 3 DS2413
Z-Wave : 8 FGR221 + 3 FGS222 + 3 FGSD002
téléinfo : 2 modules ( consommation + production)
Mysensors+2 éclairages ws2812 et WLED
2 caméra IP +1 raspberry piscine + 1 nuc domoticz
bipbip59
Messages : 10
Inscription : 31 juil. 2020, 07:56

Re: Extension du réseau GPIO par MCP23017 et/ou relais USR-R16

Message par bipbip59 »

Sympa aussi, par contre j'ai par trouvé le schéma, en fait je connais pas trop le format des fichiers. Tu n'aurais pas en pdf stp ?
Elwinmage
Messages : 28
Inscription : 08 mars 2019, 10:08

Re: Extension du réseau GPIO par MCP23017 et/ou relais USR-R16

Message par Elwinmage »

La dernière version des plugins est sur Github: https://github.com/Elwinmage
et voici les images :
PCB_MCP23017_Listener_v5_2020-08-28_14-24-27.png
PCB_MCP23017_Listener_v5_2020-08-28_14-24-27.png (67.48 Kio) Consulté 6090 fois
Schematic_Listener_v4_2020-08-28_11-27-06.png
Schematic_Listener_v4_2020-08-28_11-27-06.png (107.6 Kio) Consulté 6104 fois
Elwinmage
Messages : 28
Inscription : 08 mars 2019, 10:08

Re: Extension du réseau GPIO par MCP23017 et/ou relais USR-R16

Message par Elwinmage »

J'ai corrigé le premier png avec la dernière version, c'est plus propre :-).
bipbip59
Messages : 10
Inscription : 31 juil. 2020, 07:56

Re: Extension du réseau GPIO par MCP23017 et/ou relais USR-R16

Message par bipbip59 »

Merci pour le partage, je vais étudier cela.
Ça me plait bien !!! J'ai déjà un 23017 que j'ai acheté sur ali mais je ne savais pas comment l'utiliser dans domoticz. Je vais essayer de le câbler sur le raspberry en volant, et utiliser ton plugin dans un premier temps. Et si j'y arrive, je m'inspirerais de ton schéma.... mais une chose à la fois !
bipbip59
Messages : 10
Inscription : 31 juil. 2020, 07:56

Re: Extension du réseau GPIO par MCP23017 et/ou relais USR-R16

Message par bipbip59 »

Je viens de tester avec ton module "relay" et c'est OK. Bravo.
J'ai juste du faire un
sudo apt-get install python3-smbus

pour que ce soit OK .

Merci
Répondre