01/02/2019, 10:33
Buongiorno,
fino ad un mese fa ho usato il mio rpi per domotizzare le luci in modo da poterle usare sia dai pulsanti di casa che davano un input al rpi che a sua volta dava un input a dei relay, sia tramite homebridge e comandati dall'App Casa di iPhone tutto senza alcun problema, se non qualche rarissima accensione automatica di una luce che molto raramente soffriva di interferenza dal frigorifero. Ed avevo 3 DHT22 per avere la temperatura e l'umidità esterna, e di 2 stanze di casa.
Ora mi sono trasferito e sto rimontando tutto nella nuova casa, dove però non mi bastano i gpio integrati e comunque non mi passano tutti i cavi necessari nel corrugato finale dove ho messo il rpi, quindi ho deciso di ampliare il sistema tramite MCP23017 che erano già in mio possesso.
So già che il protocollo i2c teoricamente soffre della distanza, ma nel mio caso non sembra essere quello il problema, poiché finché il sistema lo uso solo tramite homebridge tutto è stabile, quando invece avvio lo script che attiva i tasti, o comunque basta che avvio un file che contenga un ciclo "while:" i 16 pin del mcp cominciano a cambiare stato e livello senza una logica, passano da input ad outpup e da high a low casualmente e senza motivo. Ho controllato questa cosa anche dall'interfaccia grafica di WebIOPi, i gpio del rpi restano stabili, quelli del mcp impazziscono. Come interrompo l'esecuzione di quello script tutto torna stabile.
All'inizio avevo pensato che le resistenze interne del mcp non riuscissero a tenere alti i pin, ho messo le resistenze di pull-up in maniera fisica da 1 KOhm pensando che riuscissero a tenere stabili i pin del mcp ma non cambia nulla.
Nello script dei tasti ho impostato di non accettare input sotto un certo tempo, (una specie di antirimbalzo via software) e sembrava avessi risolto, ma poi mi sono reso conto che all'inizio impazziscono solo i 4 pin dei tasti, e con l'antirimbalzo non fanno scattare i relay, ma dopo qualche minuto anche gli altri 12 pin impostati come output in fase di avvio del rpi cominciano a variare casualmente.
La cosa assurda è che e nonostante di quel mcp io uso solamente 8 pin, 4 input e 4 output, gli altri 8 gpio impostati in avvio come output e che non vengono proprio menzionati in quello script, anche loro variano di stato e livello casualmente.
Ho usato tutti cavi per allarme, quindi altamente schermati e con lo shield del cavo posto a massa.
Ho provato anche a fare un file di test con un ciclo while solamente che legge lo stato di un tasto (sempre con antirimbalzo) e se lo rileva premuto mi scrive luce accesa, senza far scattare relay ne altro, e nonostante questo dopo qualche minuto tutti e 16 i gpio impazziscono e le luci diventano casuali.
Qualcuno di voi ha mai avuto problemi del genere? Non posso nel caso in cui mi vengono ospiti a casa fargli comandare la luce del bagno solo a voce o dal cel, oppure avere le luci delle stanze che si accendono e spengono casualmente tipo albero di Natale
Ringrazio tutti coloro che mi aiuteranno!
fino ad un mese fa ho usato il mio rpi per domotizzare le luci in modo da poterle usare sia dai pulsanti di casa che davano un input al rpi che a sua volta dava un input a dei relay, sia tramite homebridge e comandati dall'App Casa di iPhone tutto senza alcun problema, se non qualche rarissima accensione automatica di una luce che molto raramente soffriva di interferenza dal frigorifero. Ed avevo 3 DHT22 per avere la temperatura e l'umidità esterna, e di 2 stanze di casa.
Ora mi sono trasferito e sto rimontando tutto nella nuova casa, dove però non mi bastano i gpio integrati e comunque non mi passano tutti i cavi necessari nel corrugato finale dove ho messo il rpi, quindi ho deciso di ampliare il sistema tramite MCP23017 che erano già in mio possesso.
So già che il protocollo i2c teoricamente soffre della distanza, ma nel mio caso non sembra essere quello il problema, poiché finché il sistema lo uso solo tramite homebridge tutto è stabile, quando invece avvio lo script che attiva i tasti, o comunque basta che avvio un file che contenga un ciclo "while:" i 16 pin del mcp cominciano a cambiare stato e livello senza una logica, passano da input ad outpup e da high a low casualmente e senza motivo. Ho controllato questa cosa anche dall'interfaccia grafica di WebIOPi, i gpio del rpi restano stabili, quelli del mcp impazziscono. Come interrompo l'esecuzione di quello script tutto torna stabile.
All'inizio avevo pensato che le resistenze interne del mcp non riuscissero a tenere alti i pin, ho messo le resistenze di pull-up in maniera fisica da 1 KOhm pensando che riuscissero a tenere stabili i pin del mcp ma non cambia nulla.
Nello script dei tasti ho impostato di non accettare input sotto un certo tempo, (una specie di antirimbalzo via software) e sembrava avessi risolto, ma poi mi sono reso conto che all'inizio impazziscono solo i 4 pin dei tasti, e con l'antirimbalzo non fanno scattare i relay, ma dopo qualche minuto anche gli altri 12 pin impostati come output in fase di avvio del rpi cominciano a variare casualmente.
La cosa assurda è che e nonostante di quel mcp io uso solamente 8 pin, 4 input e 4 output, gli altri 8 gpio impostati in avvio come output e che non vengono proprio menzionati in quello script, anche loro variano di stato e livello casualmente.
Ho usato tutti cavi per allarme, quindi altamente schermati e con lo shield del cavo posto a massa.
Ho provato anche a fare un file di test con un ciclo while solamente che legge lo stato di un tasto (sempre con antirimbalzo) e se lo rileva premuto mi scrive luce accesa, senza far scattare relay ne altro, e nonostante questo dopo qualche minuto tutti e 16 i gpio impazziscono e le luci diventano casuali.
Qualcuno di voi ha mai avuto problemi del genere? Non posso nel caso in cui mi vengono ospiti a casa fargli comandare la luce del bagno solo a voce o dal cel, oppure avere le luci delle stanze che si accendono e spengono casualmente tipo albero di Natale
Ringrazio tutti coloro che mi aiuteranno!