<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DS3231 Archives - Esperimenti con logiche programmabili</title>
	<atom:link href="https://logicaprogrammabile.it/tag/ds3231/feed/" rel="self" type="application/rss+xml" />
	<link>https://logicaprogrammabile.it/tag/ds3231/</link>
	<description>Tutorial in italiano per imparare a programmare usando Arduino, Raspberry PI, Netduino</description>
	<lastBuildDate>Mon, 09 Aug 2021 20:22:27 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>

<image>
	<url>https://logicaprogrammabile.it/wp-content/uploads/2017/11/cropped-logicaprogrammabile-logo-02-32x32.png</url>
	<title>DS3231 Archives - Esperimenti con logiche programmabili</title>
	<link>https://logicaprogrammabile.it/tag/ds3231/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Aggiungere un RTC al Raspberry PI</title>
		<link>https://logicaprogrammabile.it/aggiungere-rtc-ds3231-ds1307-raspberry-pi-offline/</link>
					<comments>https://logicaprogrammabile.it/aggiungere-rtc-ds3231-ds1307-raspberry-pi-offline/#comments</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Mon, 18 Jan 2021 07:00:35 +0000</pubDate>
				<category><![CDATA[Tutorial Raspberry PI]]></category>
		<category><![CDATA[Clock]]></category>
		<category><![CDATA[DS1307]]></category>
		<category><![CDATA[DS3231]]></category>
		<category><![CDATA[RTC]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=6461</guid>

					<description><![CDATA[<p>RTC per applicazioni offline Data e ora del nostro Raspberry vengono sincronizzate all&#8217;avvio del sistema operativo tramite server NTP. In tutte le altre applicazioni dove non avete un accesso ad internet la data e l&#8217;ora sono impostate di default ma non corrisponderanno a valori corretti....</p>
<p>The post <a href="https://logicaprogrammabile.it/aggiungere-rtc-ds3231-ds1307-raspberry-pi-offline/">Aggiungere un RTC al Raspberry PI</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>RTC per applicazioni offline</h1>
<p>Data e ora del nostro Raspberry vengono sincronizzate all&#8217;avvio del sistema operativo tramite server NTP. In tutte le altre applicazioni dove non avete un accesso ad internet la data e l&#8217;ora sono impostate di default ma non corrisponderanno a valori corretti. In questi casi una soluzione è utilizzare un rtc che in caso di spegnimento della scheda tenga sempre aggiornato il dato di data e tempo.</p>
<p>Vediamo come fare.</p>
<p>La prima cosa è procurarci un modulo rtc pronto all&#8217;uso oppure realizzarne uno partendo dai singoli componenti. Nel mio caso visto il costo e la praticità di installazione ho scelto un rtc già assemblato. Il modello si basa sul chip DS3231 è ha un pratico connettore che permette l&#8217;installazione connettendolo direttamente sui pin header del raspberry;</p>
<p><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-6469" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/rtc_pi.jpg" alt="RTC Raspberry PI" width="481" height="460" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/rtc_pi.jpg 481w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/rtc_pi-300x287.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/rtc_pi-150x143.jpg 150w" sizes="(max-width: 481px) 100vw, 481px" /></p>
<p style="text-align: center;"><a href="https://amzn.to/3qk1W70">DS3231 ad Alta precisione modulo di Memoria Orologio RTC per Arduino Raspberry Pi</a></p>
<p>Nell&#8217;immagine seguente potete osservare come deve essere installato il modulo rtc ds3231. </p>
<p><img decoding="async" class="aligncenter size-full wp-image-6491" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/raspi_rtc.jpg" alt="" width="703" height="355" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/raspi_rtc.jpg 703w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/raspi_rtc-300x151.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/raspi_rtc-150x76.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/raspi_rtc-585x295.jpg 585w" sizes="(max-width: 703px) 100vw, 703px" /></p>
<p><span id="more-6461"></span></p>
<h2>Configurazione del dispositivo</h2>
<p>La comunicazione tra il DS3231 e il Raspberry avviene utilizzando il bus I2C. Procediamo alla sua attivazione eseguendo il comando:</p>
<pre>sudo raspi-config</pre>
<p>Viene avviata la schermata del <strong>Raspberry PI Software Configuration Tool</strong>.  Portiamoci sulla voce <strong>Interface Options</strong> e premiamo invio, nella schermata successiva selezioniamo la voce <strong>I2C</strong>. Confermiamo rispondendo affermativamente e attendiamo l&#8217;attivazione del bus I2C:</p>
<figure id="attachment_6477" aria-describedby="caption-attachment-6477" style="width: 661px" class="wp-caption aligncenter"><img decoding="async" class="wp-image-6477 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Raspi_Config.jpg" alt="" width="661" height="418" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Raspi_Config.jpg 661w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Raspi_Config-300x190.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Raspi_Config-150x95.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Raspi_Config-420x265.jpg 420w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Raspi_Config-585x370.jpg 585w" sizes="(max-width: 661px) 100vw, 661px" /><figcaption id="caption-attachment-6477" class="wp-caption-text">Interfaccia Raspi-Config</figcaption></figure>
<figure id="attachment_6473" aria-describedby="caption-attachment-6473" style="width: 661px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6473 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable.jpg" alt="Seleziona voce I2C" width="661" height="418" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable.jpg 661w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable-300x190.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable-150x95.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable-420x265.jpg 420w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable-585x370.jpg 585w" sizes="auto, (max-width: 661px) 100vw, 661px" /><figcaption id="caption-attachment-6473" class="wp-caption-text">Seleziona voce I2C</figcaption></figure>
<figure id="attachment_6474" aria-describedby="caption-attachment-6474" style="width: 661px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6474 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm.jpg" alt="Conferma attivazione bus i2c" width="661" height="418" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm.jpg 661w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm-300x190.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm-150x95.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm-420x265.jpg 420w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm-585x370.jpg 585w" sizes="auto, (max-width: 661px) 100vw, 661px" /><figcaption id="caption-attachment-6474" class="wp-caption-text">Conferma attivazione bus i2c</figcaption></figure>
<figure id="attachment_6475" aria-describedby="caption-attachment-6475" style="width: 661px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6475 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm_ok.jpg" alt="Conferma attivazione bus i2c" width="661" height="418" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm_ok.jpg 661w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm_ok-300x190.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm_ok-150x95.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm_ok-420x265.jpg 420w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm_ok-585x370.jpg 585w" sizes="auto, (max-width: 661px) 100vw, 661px" /><figcaption id="caption-attachment-6475" class="wp-caption-text">Conferma attivazione bus i2c</figcaption></figure>
<figure id="attachment_6476" aria-describedby="caption-attachment-6476" style="width: 661px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6476 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_finish.jpg" alt="Termina procedura guidata attivazione bus I2C" width="661" height="418" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_finish.jpg 661w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_finish-300x190.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_finish-150x95.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_finish-420x265.jpg 420w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_finish-585x370.jpg 585w" sizes="auto, (max-width: 661px) 100vw, 661px" /><figcaption id="caption-attachment-6476" class="wp-caption-text">Termina procedura guidata attivazione bus I2C</figcaption></figure>
<p>Dopo aver terminato l&#8217;attivazione del bus, riavviamo il sistema operativo con il comando seguente:</p>
<pre>sudo reboot</pre>
<p>Dopo il riavviamo apriamo una nuova finestra terminale e utilizzando programma i2cdetect possiamo verificare che il modulo rtc e il bus I2C stiano funzionando:</p>
<pre>i2cdetect -y 1</pre>
<p>dovremmo avere una schermata simile alla seguente:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6479" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2cdetect.jpg" alt="programma i2cdetect" width="661" height="418" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2cdetect.jpg 661w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2cdetect-300x190.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2cdetect-150x95.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2cdetect-420x265.jpg 420w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2cdetect-585x370.jpg 585w" sizes="auto, (max-width: 661px) 100vw, 661px" /></p>
<p>il programma i2cdetect non fa altro che scansionare il bus I2C alla ricerca di dispositivi collegati. Nel nostro caso ha trovato un dispositivo all&#8217;indirizzo 0x68 che corrisponde all&#8217;unico dispositivo collegato al raspberry, ovvero il modulo DS3231.</p>
<p>Per sicurezza possiamo verificare sul datasheet dell&#8217;rtc l&#8217;indirizzo del dispositivo.</p>
<p>A questo punto possiamo caricare sul kernel linux il modulo rtc ds3232 (compatibile con il DS3231) eseguendo il seguente commando:</p>
<pre>sudo modprobe rtc-ds3232</pre>
<p>premiamo invio per eseguire il commando:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6481" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/modprobe.jpg" alt="modprobe ds3231" width="661" height="418" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/modprobe.jpg 661w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/modprobe-300x190.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/modprobe-150x95.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/modprobe-420x265.jpg 420w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/modprobe-585x370.jpg 585w" sizes="auto, (max-width: 661px) 100vw, 661px" /></p>
<p>a questo punto dobbiamo creare un nuovo device con indirizzo 0x68 ed inserirlo nel bus I2C. Per eseguire questa serie di commandi dobbiamo loggarci come utente root digitando il comando seguente:</p>
<pre>su</pre>
<p>inseriamo la password per l&#8217;utente root.</p>
<blockquote>
<p>Nel caso in cui non si disponga di una pssword per l&#8217;utente root è necessario crearla digitando il comando:</p>
<p>sudo passwd root</p>
<p>Digitiamo una nuova password per l&#8217;utente root e confermiamo ripetendola nuovamente.</p>
</blockquote>
<p>Ora che abbiamo i privilegi del superuser digitiamo il seguente commando:</p>
<pre>echo ds3232 0x68 &gt; /sys/class/i2c-adapter/i2c-1/new_device</pre>
<p>premiamo invio. Digitiamo il comando <strong>exit</strong> per ritornare all&#8217;utente <strong>pi</strong>:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6482" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/new_device.jpg" alt="add new device to bus i2c" width="741" height="418" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/new_device.jpg 741w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/new_device-300x169.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/new_device-150x85.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/new_device-585x330.jpg 585w" sizes="auto, (max-width: 741px) 100vw, 741px" /></p>
<h2>Impostare data e ora dell&#8217;RTC</h2>
<p>Dopo le precedenti istruzioni il sistema carica automaticamente i dati correnti di data e ora sull&#8217;RTC. Se questi dati corrispondono ai valori corretti non dobbiamo far altro che leggere i dati con il seguente comando:</p>
<pre>sudo hwclock -r</pre>
<p>in alternativa possiamo settare i valori come desideriamo eseguendo questo comando:</p>
<pre>sudo hwclock --set --date "Fri Jan 1 15:00:00 CET 2021"</pre>
<p>Tutte queste impostazioni non rimangono memorizzate al successivo riavvio del sistema operativo e quindi necessario inserire queste istruzioni su un file che viene lanciato durante le fasi di boot come ad esempio il file rc.local, quindi procediamo ad eseguire le seguenti istruzioni:</p>
<p>Modifichiamo il files modules per caricare sul kernel il modulo rtc-ds3232</p>
<pre>sudo nano /etc/modules</pre>
<p>inseriamo alla fine del file la seguente stringa:</p>
<pre>rtc-ds3232</pre>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6484" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/modules.jpg" alt="file modules" width="661" height="418" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/modules.jpg 661w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/modules-300x190.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/modules-150x95.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/modules-420x265.jpg 420w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/modules-585x370.jpg 585w" sizes="auto, (max-width: 661px) 100vw, 661px" /></p>
<p>salviamo il file con la combinazione di tasti <strong>crtl+o</strong>  e usciamo con <strong>ctrl+x</strong></p>
<p>Ora apriamo il file <strong>rc.local</strong>:</p>
<pre>sudo nano /etc/rc.local</pre>
<p>portiamoci con puntatore prima dell&#8217;istruzione <strong>exit 0</strong> e aggiungiamo le seguenti istruzioni:</p>
<pre>echo ds3232 0x68 &gt; /sys/class/i2c-adapter/i2c-1/new_device</pre>
<p>inseriamo subito dopo anche l&#8217;istruzione seguente:</p>
<pre>sudo hwclock -s</pre>
<p>in modo da sincronizzare la data e l&#8217;ora del sistema operativo con quella del modulo RTC.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6486" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/rc_local.jpg" alt="file rc.local" width="661" height="562" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/rc_local.jpg 661w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/rc_local-300x255.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/rc_local-150x128.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/rc_local-585x497.jpg 585w" sizes="auto, (max-width: 661px) 100vw, 661px" /></p>
<p>disconnettiamo il Raspberry dalla rete cablata o WiFi, riavviamo e verifichiamo con il comando <strong>date</strong> che le impostazioni del sistema siano coerenti con quelle impostate precedentemente nell&#8217;rtc.</p>
<p>The post <a href="https://logicaprogrammabile.it/aggiungere-rtc-ds3231-ds1307-raspberry-pi-offline/">Aggiungere un RTC al Raspberry PI</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/aggiungere-rtc-ds3231-ds1307-raspberry-pi-offline/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
