Differenze
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 | ||
sensori_vari_ds18b20 [2018/08/27 13:52] flane [Avvio script al boot] |
sensori_vari_ds18b20 [2024/04/15 15:54] flane [Caratteristiche tecniche] |
||
---|---|---|---|
Linea 11: | Linea 11: | ||
- | Il sensore DS18B20 è un sensore di temperatura 1-Wire della Maxim IC. Questo sensore ha la capacità di rilevare temperature con precisione da 9-bit a 12-bit in un range di temperature fra un minimo di -55°C ed un massimo di +125°C con un'approssimazione di +/-0.5°C. | + | Il **sensore DS18B20** è un sensore di temperatura **1-Wire** della Maxim IC. Questo sensore ha la capacità di rilevare temperature con precisione da 9-bit a 12-bit in un range di temperature fra un minimo di -55°C ed un massimo di +125°C con un'approssimazione di +/-0.5°C. |
| {{ :img_metern:ds18b20:ds18b20_package_1.jpg?nolink&200 |}} | {{ :img_metern:ds18b20:ds10b20_package_2.jpg?nolink&200 |}} | | | {{ :img_metern:ds18b20:ds18b20_package_1.jpg?nolink&200 |}} | {{ :img_metern:ds18b20:ds10b20_package_2.jpg?nolink&200 |}} | | ||
- | La particolarità di questi sensori di temperatura è rappresentata dal fatto che ciascun sensore ha numero seriale unico di 64-bit che lo identifica memorizzato all'interno di una ROM presente al loro interno. Questa caratteristica permette di poter utilizzare un vasto numero di sensori su di un unico bus di dati; caratteristica di fondamentale importanza nella maggior parte di progetti di data-logging e di progetti basati sul controllo della temperatura. | + | La particolarità di questi sensori di temperatura è rappresentata dal fatto che **ciascun sensore ha numero seriale unico di 64-bit** che lo identifica memorizzato all'interno di una ROM presente al loro interno. Questa caratteristica permette di poter utilizzare un vasto numero di sensori su di un unico bus di dati; caratteristica di fondamentale importanza nella maggior parte di progetti di data-logging e di progetti basati sul controllo della temperatura. |
Il protocollo utilizzato da questi sensori è lo **Unique 1-Wire**®; questa interfaccia richiede l'utilizzo di un unico pin per la comunicazione. Inoltre, per poter funzionare nelle applicazioni tipiche questi sensori di temperatura non necessitano di alcun altro componente esterno. Possono essere alimentati direttamente dalla linea dati ed il range di alimentazione supportato è da 3.0V a 5.5V. | Il protocollo utilizzato da questi sensori è lo **Unique 1-Wire**®; questa interfaccia richiede l'utilizzo di un unico pin per la comunicazione. Inoltre, per poter funzionare nelle applicazioni tipiche questi sensori di temperatura non necessitano di alcun altro componente esterno. Possono essere alimentati direttamente dalla linea dati ed il range di alimentazione supportato è da 3.0V a 5.5V. | ||
Linea 24: | Linea 24: | ||
• Accuratezza: ±0.5°C (nel range -10°C / 85°C)\\ | • Accuratezza: ±0.5°C (nel range -10°C / 85°C)\\ | ||
• Risoluzione del sensore: da 9-bit a 12-bit (impostabile dall'utente)\\ | • Risoluzione del sensore: da 9-bit a 12-bit (impostabile dall'utente)\\ | ||
- | • Tempo di conversione di temperature in 12-bit word: 750ms\\ | + | • Tempo di conversione di temperature a 12-bit : 750ms\\ |
• Ogni sensore ha un indirizzo univoco a 64-bit memorizzato in una ROM interna\\ | • Ogni sensore ha un indirizzo univoco a 64-bit memorizzato in una ROM interna\\ | ||
\\ | \\ | ||
Linea 47: | Linea 47: | ||
{{ :img_metern:ds18b20:ds18b20_schema1.jpg?nolink&600 |}} | {{ :img_metern:ds18b20:ds18b20_schema1.jpg?nolink&600 |}} | ||
\\ | \\ | ||
- | Se la resistenza da 4,7K non dovesse funzionare, provate con una da 10K.\\ | + | <WRAP center round tip 60%> |
+ | Se la resistenza da 4,7K non dovesse funzionare, provate con una da 10K. | ||
+ | </WRAP> | ||
+ | \\ | ||
+ | <WRAP center round important> | ||
+ | Nel caso i sensori siano connessi al Raspberry con **cavi lunghi (oltre ~10m)**,per avere delle letture corrette è meglio utilizzare una **resistenza di pull-up da 2,2kohm** | ||
+ | </WRAP> | ||
\\ | \\ | ||
Nel caso dei sensori stagni con cappuccio, una soluzione pratica per effettuare il collegamento e per collegare la resistenza di pull-up è la seguente: | Nel caso dei sensori stagni con cappuccio, una soluzione pratica per effettuare il collegamento e per collegare la resistenza di pull-up è la seguente: | ||
Linea 63: | Linea 70: | ||
echo "options w1_gpio gpiopin=24" > /etc/modprobe.d/w1</code> | echo "options w1_gpio gpiopin=24" > /etc/modprobe.d/w1</code> | ||
\\ | \\ | ||
- | 2. __Per Raspberry 2 e 3:__\\ | + | 2. __Per Raspberry 2 e successivi:__\\ |
E’ necessario editare il file /boot/config.txt e modificare la seguente riga:\\ | E’ necessario editare il file /boot/config.txt e modificare la seguente riga:\\ | ||
Linea 76: | Linea 83: | ||
\\ | \\ | ||
Da terminale è necessario modificare il file /etc/modules | Da terminale è necessario modificare il file /etc/modules | ||
- | <code>nano /etc/modules</code> | + | <code>sudo nano /etc/modules</code> |
aggiungendo le righe | aggiungendo le righe | ||
Linea 84: | Linea 91: | ||
Da terminale | Da terminale | ||
- | <code>nano /boot/config.txt</code> | + | <code>sudo nano /boot/config.txt</code> |
ed inserire il fondo la stringa | ed inserire il fondo la stringa | ||
Linea 106: | Linea 113: | ||
<code>28-000005b8a78e</code> | <code>28-000005b8a78e</code> | ||
\\ | \\ | ||
- | Annotatevi il numero che vi restituirà (parte in rosso) in quanto è il numero seriale del vostro sensore e servirà in seguito per la lettura dei dati. \\ | + | Annotatevi il numero che vi restituirà (parte dopo 28-) in quanto è il numero seriale del vostro sensore e servirà in seguito per la lettura dei dati. \\ |
\\ | \\ | ||
Creare il file **/usr/local/bin/ds18b20.py**\\ | Creare il file **/usr/local/bin/ds18b20.py**\\ | ||
Linea 126: | Linea 133: | ||
<code>sudo chmod +x /usr/local/bin/ds18b20.py</code> | <code>sudo chmod +x /usr/local/bin/ds18b20.py</code> | ||
- | Testiamo ora se il sensore risponde correttamente (sostituire la parte in rosso con il vostro seriale): | + | Testiamo ora se il sensore risponde correttamente (sostituire il numero seriale 000005b8a78e con quello del vostro sensore): |
<code>ds18b20.py 000005b8a78e | <code>ds18b20.py 000005b8a78e | ||
26.38</code> | 26.38</code> | ||
Linea 205: | Linea 212: | ||
WantedBy=multi-user.target</code> | WantedBy=multi-user.target</code> | ||
Premere ctrl+O per salvare e ctrl+X per uscire\\ | Premere ctrl+O per salvare e ctrl+X per uscire\\ | ||
+ | \\ | ||
+ | Il servizio eseguirà la lettura una sola volta (Type=oneshot) per creare il file temporaneo appena avviato il raspberry. Per le successive letture ci penserà cron ad eseguirle con la frequenza preimpostata.\\ | ||
\\ | \\ | ||
Nel caso aveste __più sensori di questo tipo da leggere__, sarà necessario inserire nel service una riga ExecStart per ogni sensore, con il rispettivo seriale e ID di MeterN, ed esempio: | Nel caso aveste __più sensori di questo tipo da leggere__, sarà necessario inserire nel service una riga ExecStart per ogni sensore, con il rispettivo seriale e ID di MeterN, ed esempio: | ||
Linea 279: | Linea 288: | ||
\\ | \\ | ||
**Dashboard live pooling**\\ | **Dashboard live pooling**\\ | ||
- | Live command: reqsdm tempDS1 | + | Live command: reqsdm tempDS1\\ |
+ | \\ | ||
+ | <WRAP center round info> | ||
+ | Per chi volesse approfondire il funzionamento del bus 1-wire ecco una interessante [[https://www.issgreppi.gov.it/corsi/claroline/backends/download.php?url=L0xvd19MZXZlbF9CdXMvMS13aXJlLnBkZg%3D%3D&cidReset=true&cidReq=VIL_TEC_3TA_002|guida in italiano]] | ||
+ | </WRAP> | ||