Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
sensori_vari_ds18b20 [2018/08/26 23:25]
flane [Installazione e configurazione sensore]
sensori_vari_ds18b20 [2024/04/15 15:54] (versione attuale)
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 ​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 184: Linea 191:
 ==== Avvio script al boot ==== ==== Avvio script al boot ====
 \\ \\
-Per fare in modo che lo script venga eseguito anche all’avvio del Raspberry (e quindi creato all’avvio del Raspberry il file temporaneo con la lettura del sensore) è necessario anche creare un apposito servizio:+Per fare in modo che lo script venga eseguito anche all’avvio del Raspberry (e quindi creato all’avvio del Raspberry il file temporaneo con la lettura del sensore) è necessario anche creare un apposito servizio ​che chiameremo **ds18b20.service**:
  
 Utilizzando Putty, colleghiamoci al Raspberry ed eseguiamo quanto segue. Utilizzando Putty, colleghiamoci al Raspberry ed eseguiamo quanto segue.
Linea 194: Linea 201:
 <code bash /​etc/​systemd/​system/​ds18b20.service>​[Unit] <code bash /​etc/​systemd/​system/​ds18b20.service>​[Unit]
 Description=DS18B20 sensor service Description=DS18B20 sensor service
 +Requires=local-fs.target
 +Requires=network-online.target
 After=multi-user.target After=multi-user.target
  
Linea 203: 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:
 <code bash /​etc/​systemd/​system/​ds18b20.service>​[Unit] <code bash /​etc/​systemd/​system/​ds18b20.service>​[Unit]
 Description=DS18B20 sensor service Description=DS18B20 sensor service
 +Requires=local-fs.target
 +Requires=network-online.target
 After=multi-user.target After=multi-user.target
  
Linea 275: 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>​
  
  • sensori_vari_ds18b20.1535318715.txt.gz
  • Ultima modifica: 2018/08/26 23:25
  • da flane