qui<\/a>; il firmware non \u00e8 stato scritto da me, l’ho solo messo su GitHub per visualizzarlo meglio), diamogli un’occhiata insieme e cerchiamo di capire come funziona la lettura della temperatura.<\/p>\n\n\n\nAh! Ecco qui il problema! <\/p>\n\n\n\n
Il firmware originale cerca di fare una lettura analogica dal pin 0 di Arduino, anche inserendo un termometro digitale su quel pin non otterremo un granch\u00e8; in ogni caso, essendo il codice sorgente modificabile senza nessun problema, cerchiamo di adattarlo alle nostre esigenze!<\/p>\n\n\n\n
One fix to rule them all (oppure no)<\/h2>\n\n\n\n Mi piacerebbe, ma la verit\u00e0 \u00e8 che non esiste un unico fix per tutti i termometri in circolazione. Ogni termometro pu\u00f2 avere settaggi differenti, poi ci aggiungiamo digitale VS analogico, i pin dove li vogliamo mettere. Insomma, non esiste un modo unico per sistemare il firmware in modo che possa utilizzare tutti i sensori di temperatura presenti sul mercato, ma con un po’ di pazienza possiamo adattare il codice al termometro in nostro possesso.<\/p>\n\n\n\n
DS1820 – lo standard low cost per la temperatura<\/h2>\n\n\n\n In questo tutorial user\u00f2 il famoso DS18b20 che \u00e8 probabilmente il pi\u00f9 diffuso sul mercato, si trova a pochi euro in giro (o dalla Cina) e si pu\u00f2 acquistare sia in configurazione THT (con le tre gambette di metallo per intenderci) oppure gi\u00e0 con un cavetto come nel mio caso:<\/p>\n\n\n\n <\/figure>\n\n\n\nIn aggiunta c’\u00e8 bisogno di una resistenza da 4.7kOhm che verr\u00e0 utilizzata come pull-up. Iniziamo il circuito! Colleghiamo il cavetto rosso al 3.3V di Arduino, il nero al GND e il giallo a uno dei pin digitali, io sceglier\u00f2 il numero 7, inoltre dovrete inserire la resistenza tra il pin dati (giallo) e il 3.3V, ecco come dovrebbe essere lo schema completo fatto su una scheda per prototipi<\/p>\n\n\n
\n
Cablaggio sulla scheda per prototipi<\/figcaption><\/figure><\/div>\n\n\n
Cablaggio con Arduino uno<\/figcaption><\/figure><\/div>\n\n\nCablato il tutto possiamo passare alla modifica del firmware originale, apriamo Arduino IDE e come primissima cosa andiamo a scaricare due librerie aggiuntive da Tools -> Manage Libraries.<\/p>\n\n\n\n <\/figure>\n\n\n\nNel men\u00f9 di ricerca ricercare le librerie “dallas” e onewire, selezionare le stesse versioni delle immagini seguenti e installarle.<\/p>\n\n\n
\n
Cerchiamo e installiamo la libreria Dallas Temperatures<\/figcaption><\/figure><\/div>\n\n\n
E successivamente la OneWire<\/figcaption><\/figure><\/div>\n\n\nOra apriamo il firmware originale in Arduino IDE (potete fare semplicemente copia incolla dal primo link che ho riportato da github) e apportiamo le seguenti modifiche:<\/p>\n\n\n\n
Includiamo le librerie appena installate e aggiungiamo una nuova variabile che possiamo modificare a seconda del pin digitale utilizzato.<\/li><\/ul>\n\n\n\n <\/figure>\n\n\n\nAndiamo a modificare la sezione \/\/Temperature measeurement <\/mark>cancellando il vecchio contentuo e rendendola come da immagine.<\/li><\/ul>\n\n\n\n <\/figure>\n\n\n\nCerchiamo la funzione setup() e andiamo ad aggiungere sensors.begin(); come da immagine.<\/li><\/ul>\n\n\n\n
<\/figure><\/div>\n\n\nCerchiamo la funzione GetTemp(void), cancelliamone il contenuto e riscriviamola cos\u00ec.<\/li><\/ul>\n\n\n\n
<\/figure><\/div>\n\n\nCome ultimo step modifichiamo leggermente il case dove viene processato il comando di lettura della temperatura in questo modo.<\/li><\/ul>\n\n\n\n <\/figure>\n\n\n\nAbbiamo finito! Abbiamo apportato le modifiche necessarie al firmware, possiamo flasharlo su Arduino e fare partire ad esempio Ekos e provare a leggere la temperatura .<\/p>\n\n\n
\n
La temperatura dovrebbe segnare l’attuale temperatura registrata dal sensore<\/figcaption><\/figure><\/div>\n\n\nConclusioni<\/h2>\n\n\n\n Abbiamo visto insieme come “espandere” le funzionalit\u00e0 del firmware Moonlite aggiungendo la lettura della temperatura, come detto in precedenza questa in particolare dovebbe funzionare con tutti i dsXXXX, per gli altri sensori basta osservare la specifica e modificare di conseguenza la funziona GetTemp e otterremo gli stessi risultati!<\/p>\n\n\n\n
Non c’\u00e8 bisogno di modificare il firmware a mano se non volete, ho caricato una versione completa qui<\/a> che pu\u00f2 essere utilizzata direttamente (non dimenticatevi di installare le librerie per\u00f2!<\/strong>)<\/p>\n\n\n\nNon mi resta che augurarvi buon tinkering e tante letture corrette (insieme a cieli sereni!), come al solito, per ogni dubbio o domanda lasciate un commento, rimango a disposizione!<\/p>\n","protected":false},"excerpt":{"rendered":"
Questo articolo \u00e8 dedicato a tutti quelli che hanno seguito il tutorial sul focheggiatore Moonlite costruito con Arduino (lo trovate qui) e vorrebbero aggiungere la lettura della temperatura a esso.<\/p>\n","protected":false},"author":2,"featured_media":536,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[48,72,70,69,71],"yoast_head":"\n
Focheggiatore Arduino: aggiungiamo la temperatura! - AstroPills<\/title>\n \n \n \n \n \n \n \n \n \n \n \n \n \n\t \n\t \n\t \n \n \n \n\t \n\t \n\t \n