Page 2 sur 4

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

Publié : 03 sept. 2020, 14:04
par Elwinmage
Super, ravi pour toi. Oui je devrait mettre les prérequis python :D

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

Publié : 03 sept. 2020, 14:13
par bipbip59
Je ne suis pas un pro linux... python je ne connais pas et je découvre Domoticz depuis 2 mois !

Je me suis débrouillé avec google. Je peux partager ce que j'ai trouvé pour aider les autres :

Il faut activer IC2
sudo raspi-config

Select “Interfacing Options”
Highlight the “I2C” option and activate “<Select>”
Select and activate “<Yes>” :
Puis quitter

Installer l'I2C

sudo apt-get update
sudo apt-get install -y python-smbus i2c-tools

sudo reboot

Pour vérifier :

lsmod | grep i2c_
i2c_bcm2835 16384 0
i2c_dev 16384 0
i2c_bcm2708 16384 0

Pour tester le Hard
sudo i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

On a bien un module à l'adresse 0x20 (32 en décimal).


Pour Tester le MCP2307 sans domoticz

Pour configurer le port A pins GPA0-6 en sortie et GPA7 en input. (10000000 en binaire et 0x80 en hexa) :

sudo i2cset -y 1 0x20 0x00 0x80

Pour mettre la sortie di GPA0 à 1:
sudo i2cset -y 1 0x20 0x14 0x01

Pour mettre la sortie di GPA0 à 1:
sudo i2cset -y 1 0x20 0x14 0x00

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

Publié : 03 sept. 2020, 16:20
par bipbip59
Pour info pour le listener j'ai du faire :

sudo apt-get install rpi.gpio
et ça fonction en polling merci.

Mais petite question pour le mode IT, comme j'utilise que le port B j'ai configuré qu'une IT, mais ça marche pas y a une astuce ?

listener.jpg
listener.jpg (266.57 Kio) Consulté 5133 fois
020-09-03 16:12:16.325 (Listener) Creating New devices: []
2020-09-03 16:12:16.325 (Listener) IO Direction: 0000000011111111
2020-09-03 16:12:16.326 (Listener) Init port: 1
2020-09-03 16:12:16.327 (Listener) Set inverion mask for port 1: 00000000
2020-09-03 16:12:16.328 (Listener) Enable interrupt for port 1
2020-09-03 16:12:16.329 (Listener) Status for port 1: 11111110
2020-09-03 16:12:16.330 (Listener) Update port 1 : 11111110
2020-09-03 16:12:16.330 (Listener) New values for port 1 are 11111110
2020-09-03 16:12:16.342 (Listener) In transition! {}
2020-09-03 16:12:16.385 (Listener) Activate Interruption on GPIO 21
2020-09-03 16:12:16.406 (Listener) Disable pooling

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

Publié : 03 sept. 2020, 18:29
par Elwinmage
As-tu bien connecté le pin ITB (N°19) du MCP23017 au PIN N°21 du raspberry? Attention, de mémoire il y a 3 numérotations différentes des PIN, et il me semble que c'est le nom BCM lorsque tu lances la commande "gpio readall" qu'il faut utiliser.
Sinon essaye de passer "Mirror Port A and B" ou de définir 2 ITs: 20;21( même si j'y crois pas).

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

Publié : 04 sept. 2020, 16:22
par bipbip59
Bien vu, je me suis planté de modèle de Raspberry (Model B Rev2) et donc le schéma du connecteur n’était pas le bon... j'ai même pas de GPIO 20 et 21. J'ai mis le le 17 et tout est OK !!!
Merci encore pour ton plugin c'est top, et d'exploiter les IT c'est pas à la porté de tout le monde Bravo!

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

Publié : 08 sept. 2020, 21:17
par gaston
Elo,

super projet qui correspond en presque tous les points à ce que je souhaite faire pour ma maison.
Par contre, j'ai plusieurs questions, qui, je pense, en intéresseront surement plus d'un ;)

1- ta carte communique via I2C donc elle est pilotable par EspEasy qui gère un plugin pour le MCP23017?
2- mon projet est aussi un thermostat, donc le 1Wire m'intéresse. Je ne comprend pas ce que sont le connecteurs H1 et H5, ça passe par le P82B715P qui semble être "l'ampli" pour le bus I2C ? Sinon, je vois que tu met une résistance de 4.7K (ce qui est préconisé) mais suivant la longueur du bus, il peut être intéressant de mettre un 0-10K à la place ?
3- possible de mettre tes fichiers sur ton Github, une BOM et une photo de la carte montée ?
4- je pense avoir compris le schéma de la carte, à part les points ci-dessus.
5-la question bonus, as tu des PCB en trop à vendre ?

Merci d'avance,

Gaston

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

Publié : 12 sept. 2020, 14:09
par Elwinmage
1- oui c'est une carte à base de MCP23017 donc pilotable par i2c. je connais pas ESPEasy
2- c'est le connecteur pour mettre plusieurs cartes en réseau sur le même i2c mais potentiellement distant de plusieurs mètres. En gros tu as une carte qui est reliée à une seconde via le H1 (ou h5)par exemple et on peut en relier une autre sur le H5 (ou le H1), tu peux donc avoir une architecture physique i2C en étoile ou en ligne. Perso j'ai deux cartes proches de mon RPI, +3 distantes en série.
Mon archi à la maison :
- un RPI branché à ma carte L1 sur le H2. L1 gère 16 entrées numérique.
- une carte L2 branchée également sur le L1/H2 qui gère 16 relais.
Ces deux cartes son locales situées à 30cm du RPI c'est pour cela que je les branches en H2

Les suivantes sont situées à 15, 30 et 55m du RPI.
- une carte D1 reliéé à L1 : L1/H5 connecté à D1/H1 qui possède 8 entrées et 8 relais
- une carte D2 reliée à D1: D1/H5 connecté à D2/H1 qui possède 8 entrées et 8 relais
- une carte D3 relée à D2: D2/H5 connecté à D3/H1 qui possède 8 entrées et 8 relais.
sur ma carte D3 j'ai également une autre carte D3L1 qui est connecté à D3/H2 et gère 16 relais ainsi qu'un capteur I2C.
Tu peux donc rajouter localement à chaque carte distante des capteurs ou carte supplémentaires à condition de pas dépasser les 2m. Pour cela tu utilises H2.

Tout ce petit monde partage le même bus w1 pour la température (une 20aine de sondes DS18B20 dans mon cas).
Le pin W1 me permet d'avoir un seul bus w1, c'est le pin des données, l'alim et le neutre se font sur les cartes.
oui le P82B715P est l'ampli I2C.
Pour les résistances les valeurs sont différentes si ta carte est en fin de ligne ou au milieu, c'est bien expliqué dans la spec, j'ai pris les valeurs préconisées.

3- oui je vais le faire, en attendant
C'est ma L1, sur le GPB 8 capteurs de courant, sur le GPA 8 capteurs type porte ouverte, fuite d'eau ou niveau d'eau
C'est ma L1, sur le GPB 8 capteurs de courant, sur le GPA 8 capteurs type porte ouverte, fuite d'eau ou niveau d'eau
20200912_133646.jpg (6.58 Mio) Consulté 5037 fois
Avec extension de bus i2C (Carte distante)
Avec extension de bus i2C (Carte distante)
20200912_132933.jpg (7.46 Mio) Consulté 5037 fois
Sans extension de bus i2C (Carte locale), alimentation paratgée avec l'autre carte à proximité via les connecteurs VCC/GND du haut.
Sans extension de bus i2C (Carte locale), alimentation paratgée avec l'autre carte à proximité via les connecteurs VCC/GND du haut.
20200912_132914.jpg (7.26 Mio) Consulté 5037 fois
5- il m'en reste 2, mais c'est une révision 1:
- les THERM1/4 sont très rapprochés, ça marche pour du dupont mais par pour les connecteurs avec détrompeur et
- les labels en haut VCC et GND sont décalés vers le bas ce qui peut prêter à confusion...
Les v1 qui me reste
Les v1 qui me reste
20200912_133915.jpg (7.57 Mio) Consulté 5037 fois
Et pour info j'ai finalement mis du 5V partout...

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

Publié : 13 sept. 2020, 17:36
par bipbip59
Avec les photos, c'est vraiment plus parlant, on se rend bien compte de la modularité de ton module.

En plus je vois que tu utilises des composants traversants, c'est vraiment plus pratique (pour moi). Je vais peut être abuser de ta générosité, mais pourrais-tu partager le projet directement sous easyEDA,? Ca permet de faire 2/3 modifs et de commander directement chez eux...

Merci et sinon merci quand même !

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

Publié : 13 sept. 2020, 17:49
par Elwinmage
Après je ne suis pas électronicien mais informaticien donc il y a surement des choses à améliorer.
Dans l'idée je voulais aussi rajouter des entrées analogiques, mais finalement je suis passé sur un ADS115 sur i2C en local (h2)

Et pour info les trous dans la carte c'est pour stacker sur RPI ou RPI zero

Voici le projet : https://easyeda.com/moranderic31/mcp23017_v5

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

Publié : 14 sept. 2020, 17:10
par bipbip59
Merci, pour le partage. Pareil je suis informaticien, et j'ai un peu de mal à me lancer dans la conception électronique.
J'aimerai essayer d'ajouter des optocoupleurs pour 8 entrées. Je vais essayer de partir de ton schéma