Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| Entrambe le parti precedenti la revisione Revisione precedente Prossima revisione | Revisione precedente | ||
|
raspberry:i2c [2017/09/24 23:26] stefano |
raspberry:i2c [2023/04/17 14:25] (versione attuale) |
||
|---|---|---|---|
| Linea 1: | Linea 1: | ||
| Il bus I2C e i relativi sensori.\\ | Il bus I2C e i relativi sensori.\\ | ||
| La mia prima esperienza è stata con il sensore INA219 che effettuala misurazione della corrente di un carico.\\ | La mia prima esperienza è stata con il sensore INA219 che effettuala misurazione della corrente di un carico.\\ | ||
| + | Diciamo che per cominciare dobbiamo abilitare l' | ||
| + | raspi-config | ||
| + | e nel menù interfacce abilitare l' | ||
| + | riavviare\\ | ||
| + | Poi installare i tools:\\ | ||
| + | apt-get install i2c-tools | ||
| + | |||
| Ho fatto un po di ricerca per capire come fare a leggere i valori del sensore tramite il set dei comandi messi a disposizione da i2c-tools, ma non è stata fruttuosa.\\ | Ho fatto un po di ricerca per capire come fare a leggere i valori del sensore tramite il set dei comandi messi a disposizione da i2c-tools, ma non è stata fruttuosa.\\ | ||
| Avrei voluto | Avrei voluto | ||
| Quindi installare il pyton-pip\\ | Quindi installare il pyton-pip\\ | ||
| - | apt-get install python-pip | + | apt-get install python-pip |
| poi\\ | poi\\ | ||
| pip install pi-ina219 | pip install pi-ina219 | ||
| Linea 14: | Linea 21: | ||
| Questa pagina web va a leggere, importare i valori non direttamente dal sensore o da una qualche script python ma dai file scritti dallo script python.\\ | Questa pagina web va a leggere, importare i valori non direttamente dal sensore o da una qualche script python ma dai file scritti dallo script python.\\ | ||
| Questo script dovrà essere poi messo all' | Questo script dovrà essere poi messo all' | ||
| - | Di seguito un primo script\\ | + | Di seguito un primo script |
| + | <file python ina219.py> | ||
| + | from ina219 import INA219, DeviceRangeError | ||
| + | from time import sleep | ||
| + | |||
| + | SHUNT_OHMS = 0.1 | ||
| + | MAX_EXPECTED_AMPS = 2.0 | ||
| + | ina = INA219(SHUNT_OHMS, | ||
| + | ina.configure(ina.RANGE_16V) | ||
| + | |||
| + | def read_ina219(): | ||
| + | try: | ||
| + | print(' | ||
| + | print(' | ||
| + | print(' | ||
| + | print(' | ||
| + | except DeviceRangeError as e: | ||
| + | # Current out of device range with specified shunt resister | ||
| + | print(e) | ||
| + | |||
| + | while 1: | ||
| + | read_ina219() | ||
| + | sleep(1) | ||
| + | </ | ||
| + | |||
| + | Di seguito lo stesso script modificato in modo tale da poter andare a scrivere continuamente in un altro file che poi sarà letto dalla pagina web esposta da apache\\ | ||
| + | <file python ina219wr.py> | ||
| + | from ina219 import INA219, DeviceRangeError | ||
| + | from time import sleep | ||
| + | |||
| + | SHUNT_OHMS = 0.1 | ||
| + | MAX_EXPECTED_AMPS = 2.0 | ||
| + | ina = INA219(SHUNT_OHMS, | ||
| + | ina.configure(ina.RANGE_16V) | ||
| + | |||
| + | def read_ina219(): | ||
| + | try: | ||
| + | print(' | ||
| + | print(' | ||
| + | print(' | ||
| + | print(' | ||
| + | out_file = open("/ | ||
| + | out_file.write (' | ||
| + | # | ||
| + | out_file.close() | ||
| + | except DeviceRangeError as e: | ||
| + | # Current out of device range with specified shunt resister | ||
| + | print(e) | ||
| + | while 1: | ||
| + | read_ina219() | ||
| + | sleep(1) | ||
| + | </ | ||
| + | Ora la pagina in php che si aggiorna automaticamente ogni 2 secondi e che va a leggere il file scritto continuamente dallo script di prima\\ | ||
| + | <file php codice.php> | ||
| + | <?php | ||
| + | header(" | ||
| + | echo " | ||
| + | include ("/ | ||
| + | echo " | ||
| + | ?> | ||
| + | </ | ||
| + | Ovviamente con questo sistema è possibile avere una pagina costantemente aggiornata con i dati e i valori di cui ho bisogno.\\ | ||