<?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>Impianto idrico Archives - Esperimenti con logiche programmabili</title>
	<atom:link href="https://logicaprogrammabile.it/tag/impianto-idrico/feed/" rel="self" type="application/rss+xml" />
	<link>https://logicaprogrammabile.it/tag/impianto-idrico/</link>
	<description>Tutorial in italiano per imparare a programmare usando Arduino, Raspberry PI, Netduino</description>
	<lastBuildDate>Mon, 29 Mar 2021 07:34:01 +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>Impianto idrico Archives - Esperimenti con logiche programmabili</title>
	<link>https://logicaprogrammabile.it/tag/impianto-idrico/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Nuova centralina per impianto di microirrigazione</title>
		<link>https://logicaprogrammabile.it/nuova-centralina-impianto-microirrigazione/</link>
					<comments>https://logicaprogrammabile.it/nuova-centralina-impianto-microirrigazione/#comments</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Mon, 11 Sep 2017 16:00:06 +0000</pubDate>
				<category><![CDATA[Tutorial Arduino]]></category>
		<category><![CDATA[Elettrovalvola]]></category>
		<category><![CDATA[Goccia a Goccia]]></category>
		<category><![CDATA[Impianto idrico]]></category>
		<category><![CDATA[Irrrigazione]]></category>
		<category><![CDATA[Microirrigazione]]></category>
		<category><![CDATA[RTC]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=5550</guid>

					<description><![CDATA[<p>Come costruire una centralina di irrigazione a goccia con Arduino In alcuni miei articoli ho parlato della realizzazione di un impianto di micro irrigazione tramite una centralina autocostruita. Questa centralina aveva il compito di pilotare una elettrovalvola bistabile utilizzando una coppia di relè. Nel tempo...</p>
<p>The post <a href="https://logicaprogrammabile.it/nuova-centralina-impianto-microirrigazione/">Nuova centralina per impianto di microirrigazione</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Come costruire una centralina di irrigazione a goccia con Arduino</h1>
<h1><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-5593" src="https://logicaprogrammabile.it/wp-content/uploads/2017/09/CentralinaMicroIrrigazione_3.jpg" alt="Centralina Micro Irrigazione" width="717" height="446" srcset="https://logicaprogrammabile.it/wp-content/uploads/2017/09/CentralinaMicroIrrigazione_3.jpg 717w, https://logicaprogrammabile.it/wp-content/uploads/2017/09/CentralinaMicroIrrigazione_3-300x187.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2017/09/CentralinaMicroIrrigazione_3-600x373.jpg 600w" sizes="(max-width: 717px) 100vw, 717px" /></h1>
<p>In alcuni miei articoli ho parlato della realizzazione di un impianto di micro irrigazione tramite una <a href="https://logicaprogrammabile.it/come-costruire-fai-da-te-centralina-impianto-microirrigazione/">centralina autocostruita</a>. Questa centralina aveva il compito di pilotare una elettrovalvola bistabile utilizzando una <a href="https://logicaprogrammabile.it/come-pilotare-elettrovalvola-bistabile-usando-2-rele/">coppia di relè</a>.</p>
<p>Nel tempo ho modificato questo prototipo per renderlo più efficiente e facile da gestire, e soprattutto perché la vecchia centralina aveva dei consumi di corrente elevati e quindi non efficiente con alimentazione a batteria.</p>
<p>Il circuito di questo articolo è attualmente installato nel mio giardino e in quello di alcuni miei amici.</p>
<p>La decisione di realizzare una nuova centralina nasce per via di alcune esigenze:<br />
la prima è quella dovuta alla scarsità di piogge di questi ultimi anni e di conseguenza la crescente esigenza di irrigare in modo sostenibile utilizzando sistemi ad ala gocciolante o linee autocostruite con micro gocciolatori.<br />
La seconda è dovuta alla mia passione per il fai da te e per la convinzione che i circuiti autocostruiti, benché inizialmente siano più costosi, possano essere una valida alternativa al modello <a href="https://it.wikipedia.org/wiki/Usa_e_getta">usa e getta</a> e dell&#8217;<a href="https://it.wikipedia.org/wiki/Obsolescenza_programmata">obsolescenza programmata,</a> infatti conoscendo schema elettrico e codice del progetto possiamo, in caso di rottura di qualche componente, ripararlo o riadattarlo per ulteriori esigenze.</p>
<p>Questa mia nuova centralina permette di utilizzare sia elettrovalvole bistabili sia valvole motorizzate.</p>
<p>Le elettrovalvole bistabili sono consigliate per impianti alimentati a batteria in quanto, tramite un breve impulso elettrico di qualche millisecondo, è possibile aprire o chiudere il passaggio dell&#8217;acqua.<br />
L&#8217;uso di una elettrovalvola nel nostro impianto di irrigazione comporta, il più delle volte, l&#8217;impiego di un filtro che privi l&#8217;acqua delle impurità che potrebbero comprometterne il funzionamento dell&#8217;elettrovalvola; le impurità dell&#8217;acqua, col tempo, possono ostruire il piccolo canale che porta l&#8217;acqua nella camera del solenoide.</p>
<p>Quando l&#8217;acqua possiede una torbidità elevata e non possiamo permetterci un sistema filtrante di qualità possiamo optare per una valvola motorizzata (Escludendo però il sistema di irrigazione a gocciolatori ma a irrigazione diretta).<br />
La valvola motorizzata assorbe più corrente perché il tempo necessario per aprirla o chiuderla è maggiore rispetto all&#8217;elettrovalvola (circa3-5 secondi).</p>
<h3>Caratteristiche nuova centralina di micro irrigazione</h3>
<ul>
<li>Basso assorbimento di corrente in standby (circa 0.3uA)</li>
<li>Open Source e Open Hardware</li>
<li>Calendario con RTC</li>
<li>Memorizzazione dati su SD</li>
<li>Interfaccia seriale</li>
<li>Programmazione tempi di irrigazione tramite jumper</li>
<li>Programmazione intervalli di irrigazione tramite jumper</li>
<li>Led di stato</li>
</ul>
<p><span id="more-5550"></span></p>
<h3>Schema elettrico a blocchi</h3>
<p>Lo schema elettrico è stato suddiviso in blocchi. Analizzeremo ognuno di essi con immagini separate per capirne meglio il funzionamento.</p>
<p>La figura seguente riguarda il sistema di alimentazione del circuito. Il connettore JP1 è collegato alla batteria (da 9 a 12v dc) e permette di alimentare l&#8217;elettrovalvola tramite un filtro a larga banda (FILT) e il resto del circuito tramite regolatore a 3.3v (MIC2940A-3.3WT).</p>
<figure id="attachment_5559" aria-describedby="caption-attachment-5559" style="width: 600px" class="wp-caption aligncenter"><img decoding="async" class="wp-image-5559 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2017/08/Alimentazione.png" alt="Alimentazione centralina micro irrigazione" width="600" height="462" srcset="https://logicaprogrammabile.it/wp-content/uploads/2017/08/Alimentazione.png 600w, https://logicaprogrammabile.it/wp-content/uploads/2017/08/Alimentazione-300x231.png 300w" sizes="(max-width: 600px) 100vw, 600px" /><figcaption id="caption-attachment-5559" class="wp-caption-text">Sezione di alimentazione</figcaption></figure>
<p>Il regolatore che ho scelto è un convertitore DC/DC LDO della Microchip. La scelta è ricaduta su questo componente perché assorbe una corrente molto bassa.<br />
Il componete di nome sky2 è un diodo <a href="https://it.wikipedia.org/wiki/Transil">transil</a> bidirezionale da 15v che permette di smorzare le extratensioni generate della commutazione del solenoide dell&#8217;elettrovalvola.<br />
Se non adeguatamente filtrate, le extratensioni possono resettare il microcontrollore rendendo il circuito instabile ed inutilizzabile.</p>
<p>Il partitore di tensione costituito dalle resistenze R12 e R13 serve per monitorare la carica della batteria e di conseguenza arrestare i cicli di irrigazione quando la tensione della batteria non assicura la commutazione dell&#8217;elettrovalvola.</p>
<p>Lo schema seguente riguarda invece il circuito RTC:</p>
<figure id="attachment_5562" aria-describedby="caption-attachment-5562" style="width: 633px" class="wp-caption aligncenter"><img decoding="async" class="wp-image-5562 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2017/08/RealTimeClock.png" alt="Real time clock" width="633" height="345" srcset="https://logicaprogrammabile.it/wp-content/uploads/2017/08/RealTimeClock.png 633w, https://logicaprogrammabile.it/wp-content/uploads/2017/08/RealTimeClock-300x164.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2017/08/RealTimeClock-600x327.png 600w" sizes="(max-width: 633px) 100vw, 633px" /><figcaption id="caption-attachment-5562" class="wp-caption-text">Real Time Clock</figcaption></figure>
<p>questo circuito ha il compito sia di gestire la data e l&#8217;ora, ma anche di generare un segnale di allarme (programmato via software), collegato ad un pin di interrupr del microcontrollore, questo sistema mi permette di risvegliare il microcontrollore dallo stato di ibernazione, necessario per garantire bassi assorbimenti del circuito.</p>
<p>Il cuore della centralina è basato sul microcontrollore ATMEGA328P-PU:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5565" src="https://logicaprogrammabile.it/wp-content/uploads/2017/08/Processore_SDcard.png" alt="Centralina microirrigazione goccia a goccia" width="915" height="544" srcset="https://logicaprogrammabile.it/wp-content/uploads/2017/08/Processore_SDcard.png 915w, https://logicaprogrammabile.it/wp-content/uploads/2017/08/Processore_SDcard-300x178.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2017/08/Processore_SDcard-768x457.png 768w, https://logicaprogrammabile.it/wp-content/uploads/2017/08/Processore_SDcard-600x357.png 600w" sizes="auto, (max-width: 915px) 100vw, 915px" /></p>
<p>al micro è collegato lo slot SD (la comunicazione avviene usando la SPI). Osserviamo anche il connettore connettore ISP, e il connettore UART per la comunicazione seriale.<br />
L&#8217;elettrovalvola viene pilotata tramite un ponte ad H realizzato con dei transistors; lo schema è il seguente:</p>
<figure id="attachment_5567" aria-describedby="caption-attachment-5567" style="width: 751px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-5567" src="https://logicaprogrammabile.it/wp-content/uploads/2017/08/PonteH.png" alt="Ponte ad h" width="751" height="519" srcset="https://logicaprogrammabile.it/wp-content/uploads/2017/08/PonteH.png 751w, https://logicaprogrammabile.it/wp-content/uploads/2017/08/PonteH-300x207.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2017/08/PonteH-600x415.png 600w" sizes="auto, (max-width: 751px) 100vw, 751px" /><figcaption id="caption-attachment-5567" class="wp-caption-text">Circuito per pilotare l&#8217;elettrovalvola</figcaption></figure>
<p>&nbsp;</p>
<p>l&#8217;ultimo blocco dello schema elettrico riguarda la selezione del tempo di irrigazione e dell&#8217;intervallo di tempo tra una irrigazione e la successiva:</p>
<figure id="attachment_5568" aria-describedby="caption-attachment-5568" style="width: 670px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-5568" src="https://logicaprogrammabile.it/wp-content/uploads/2017/08/TempoCalendario.png" alt="Gestione calendario irrigazione" width="670" height="564" srcset="https://logicaprogrammabile.it/wp-content/uploads/2017/08/TempoCalendario.png 670w, https://logicaprogrammabile.it/wp-content/uploads/2017/08/TempoCalendario-300x253.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2017/08/TempoCalendario-600x505.png 600w" sizes="auto, (max-width: 670px) 100vw, 670px" /><figcaption id="caption-attachment-5568" class="wp-caption-text">Sezione gestione tempo di irrigazione e gestione intervallo tra una irrigazione e la successiva</figcaption></figure>
<p>Il segnale TMR_TIME e TMR_DATE sono collegati a due ingressi analogici del microcontrollore.</p>
<p>Di seguito il circuito elettrico della centralina di micro irrigazione:</p>
<figure id="attachment_5574" aria-describedby="caption-attachment-5574" style="width: 900px" class="wp-caption aligncenter"><a href="https://logicaprogrammabile.it/wp-content/uploads/2017/09/CentralinaMicroirrigazione.png"><img loading="lazy" decoding="async" class="wp-image-5574 " src="https://logicaprogrammabile.it/wp-content/uploads/2017/09/CentralinaMicroirrigazione-1024x619.png" alt="Schema Completo centralina micro irrigazione" width="900" height="544" srcset="https://logicaprogrammabile.it/wp-content/uploads/2017/09/CentralinaMicroirrigazione-1024x619.png 1024w, https://logicaprogrammabile.it/wp-content/uploads/2017/09/CentralinaMicroirrigazione-300x181.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2017/09/CentralinaMicroirrigazione-768x464.png 768w, https://logicaprogrammabile.it/wp-content/uploads/2017/09/CentralinaMicroirrigazione-600x363.png 600w" sizes="auto, (max-width: 900px) 100vw, 900px" /></a><figcaption id="caption-attachment-5574" class="wp-caption-text">Schema Completo centralina micro irrigazione &#8211; CLICCARE PER INGRANDIRE</figcaption></figure>
<h3>Descrizione dello schema elettrico</h3>
<p>Il microcontrollore ha il compito di gestire tutte le periferiche collegate alle sue line GPIO. La caratteristica principale di una centralina di questo tipo è il bassissimo assorbimento di corrente; supponendo di alimentare il circuito con una batteria (tipicamente una 9v o nel mio caso 8 batterie stilo alcaline tipo AA) dobbiamo garantire la durata di funzionamento per diversi mesi (naturalmente questo dato dipende dalla capacità della batteria).</p>
<p>Per garantire un basso assorbimento il microcontrollore andrà messo in modalità basso consumo quando non esegue nessuna operazione. Una volta entrato in questa modalità il micro potrà essere risvegliato tramite watchdog oppure tramite interrupt esterno. Nel mio progetto il risveglio è gestito da un interrupt esterno, generato dall&#8217;RTC, perché in questo modo posso gestire tempi di standby molto più prolungati rispetto al watchdog.</p>
<p>L&#8217;interrupt è generato dalla funzione alarm del modulo rtc MCP7940N. In pratica sul piedino 7 (sqw/MFP) viene generato un cambio di stato logico ogni volta che l&#8217;orario dell&#8217; RTC corrisponde all&#8217;orario settato sul registro interno ALARM.</p>
<p>Il pilotaggio dell&#8217;elettrovalvola avviene utilizzando un ponte ad H costruito con dei transistors discreti. Lo schema permette di essere comandato tramite le uscite digitali del microcontrollore. I diodi schottky posti al centro del ponte H garantiscono l&#8217;eliminazione delle sovratensioni generate dalla commutazione del solenoide.</p>
<p>La selezione della durata dell&#8217;irrigazione e dell&#8217;intervallo tra una irrigazione e la successiva avviene utilizzando dei semplici jumper. I jumper sono posizionati in un partitore di tensione. L&#8217;uscita del partitore di tensione è collegata ad un ingresso analogico del microcontrollore. A seconda della posizione del jumper otterremo sull&#8217;ingresso analogico tensioni differenti. Dato che il partitore assorbe una cerca corrente, ho utilizzato dei transistor per alimentare il partitore solo quando voglio leggere la posizione dei jumper. I due transistors vengono pilotati da due uscite digitali del microcontrollore.</p>
<h3>Assemblaggio e test della centralina</h3>
<p>Ho dapprima realizzato il progetto utilizzando una basetta millefori, questo perché prima di realizzare il pcb volevo assicurarmi che tutto funzionasse come da progetto. Dopo qualche giorno di test ed aver avuto la certezza che lo schema non presentasse anomalie ho deciso di produrre il pcb.</p>
<p>Dopo aver montato i componenti sul pcb ho sistemato il circuito in una cassetta ermetica per impianti elettrici. Nella cassetta ho inserito anche la batteria. L&#8217;unico foro praticato è quello per fare uscire i due fili del solenoide dell&#8217;elettrovalvola.</p>
<p>Ho tenuto in osservazione il funzionamento della centralina per circa 2 mesi e mezzo e non ho avuto nessun problema. La posizione del circuito era abbastanza critica perchè rimaneva molto tempo esposta al sole. questa è stata una scelta voluta perché avevo bisogno di sotto porre il circuito a condizioni termiche estreme (giorni con temperature anche superiori ai 40°c). L&#8217;unico cosa che ho osservato è una deriva dell&#8217;orario dell&#8217;RTC, probabilmente perchè non ho eseguito la calibrazione.</p>
<p>In definitiva sono molto contento di questo lavoro perchè ho ottenuto bassi assorbimenti, un costo contenuto del progetto e una grande flessibilità nella programmazione delle irrigazioni.</p>
<p>The post <a href="https://logicaprogrammabile.it/nuova-centralina-impianto-microirrigazione/">Nuova centralina per impianto di microirrigazione</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/nuova-centralina-impianto-microirrigazione/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Netduino, centralina per impianto di microirrigazione</title>
		<link>https://logicaprogrammabile.it/come-costruire-fai-da-te-centralina-impianto-microirrigazione/</link>
					<comments>https://logicaprogrammabile.it/come-costruire-fai-da-te-centralina-impianto-microirrigazione/#comments</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Wed, 25 May 2011 08:56:53 +0000</pubDate>
				<category><![CDATA[Tutorial Netduino]]></category>
		<category><![CDATA[Impianto idrico]]></category>
		<category><![CDATA[Microirrigazione]]></category>
		<category><![CDATA[Netduino]]></category>
		<category><![CDATA[Orto]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=1393</guid>

					<description><![CDATA[<p>Come realizzare centralina di microirrigazione con Netduino Eccoci giunti alla parte più interessante dell&#8217;impianto di microirrigazione proposto negli articoli precedenti. Per il primo prototipo ho deciso di utilizzare il Netduino per eseguire velocemente tutti i test  dell&#8217;impianto e per poter adattare il software alle mie...</p>
<p>The post <a href="https://logicaprogrammabile.it/come-costruire-fai-da-te-centralina-impianto-microirrigazione/">Netduino, centralina per impianto di microirrigazione</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Come realizzare centralina di microirrigazione con Netduino</h1>
<p>Eccoci giunti alla parte più interessante dell&#8217;impianto di microirrigazione proposto negli articoli precedenti. Per il primo prototipo ho deciso di utilizzare il Netduino per eseguire velocemente tutti i test  dell&#8217;impianto e per poter adattare il software alle mie esigenze di irrigazione.</p>
<p>Lo schema elettrico del circuito è il seguente</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1494 size-full" title="CentralinaElettronica" src="https://logicaprogrammabile.it/wp-content/uploads/2011/05/CentralinaElettronica.gif" alt="Schema elettrico centralina microirrigazione" width="686" height="683" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/05/CentralinaElettronica.gif 686w, https://logicaprogrammabile.it/wp-content/uploads/2011/05/CentralinaElettronica-150x150.gif 150w, https://logicaprogrammabile.it/wp-content/uploads/2011/05/CentralinaElettronica-300x298.gif 300w" sizes="auto, (max-width: 686px) 100vw, 686px" /></p>
<p>Il circuito sembra complesso ma molti componenti sono stati utilizzati negli articoli precedenti.<br />
<span id="more-1393"></span>Questo circuito sfrutta maggiormente gli ingressi analogici del Netduino. Sul pin <strong>A0</strong> è collegata la fotoresistenza mentre sul pin <strong>A1 </strong>è collegato il sensore di temperatura. Sia la fotoresistenza che il sensore di temperatura sono alimentati con la <strong>3.3V</strong>.<br />
Gli altri ingressi analogici vengono utilizzati per le tre sonde che verificano l&#8217;umidità del terreno. Ho visto alcuni schemi elettrici che, per misurare la conducibilità del terreno, utilizzando una tensione continua. Questo approccio è molto semplice ma può dare problemi di elettrolisi, e conseguente ossidazione delle sonde poste nel terreno, con conseguente imprecisione della misura.<br />
Per evitare questo problema, possiamo utilizzarne una tensione alternata, in questo caso però dobbiamo successivamente trasformarla in una tensione continua per poterla inviare agli ingressi analogici del Netduino.</p>
<p>Vediamo nel dettaglio il funzionamento della centralina, alcuni argomenti sono stati già esposti e quindi vi rimando alla lettura tramite questi link:</p>
<p>Per il sensore di temperature potete leggere <a title="MCP9700A Netduino e sensore di temperatura analogico" href="https://logicaprogrammabile.it/mcp9700a-netduino-sensore-temperatura-analogico/">questo articolo</a>.<br />
Per il sensore di luminosità tramite fotoresistenza potete fare riferimento a <a title="Usare gli ingressi analogici del Netduino" href="https://logicaprogrammabile.it/netduino-usare-ingressi-analogici/">questo articolo</a>.</p>
<p>La parte nuova da descrivere riguarda il <strong>sensore di umidità</strong>. Come ho detto prima, preferisco alimentare le sonde con un segnale alternato; la soluzione migliore è quella di utilizzare la funzione <strong>PWM</strong> del <strong>Netduino </strong>disponibile sul <strong>pin5</strong>.<br />
Il segnale PWM viene inviato a tre ingressi dell&#8217;integrato 74HC244 (Line Driver) per avere un po più di corrente e disaccoppiare il Netduino delle sonde. Il <strong>duty cycle</strong> del pwm è del 50% e la sua frequenza è di 10Khz, naturalmente questi parametri possono essere variati in base alle esigenze e alla tipologia del terreno.</p>
<p>Quindi, il segnale si propaga nel terreno relativamente alla quantità di acqua presente. L&#8217;altro polo della sonda riceve questo segnale e lo invia al raddrizzatore che provvederà a fornire una tensione continua proporzionale al livello di umidità del terreno.<br />
Il raddrizzatore è composto semplicemente da un diodo e da un condensatore. I diodi contrassegnati con il nome <strong>DP</strong> servono a limitare eventuali extra-tensioni captate dalla sonda.<br />
Il partitore resistivo composto dalle resistenze <strong>R</strong> (da 27Kohm) serve a limitare la tensione sui pin analogici, dato che, il valore massimo applicabile non deve <span style="text-decoration: underline;">essere superiore</span> a 3.3Vdc.</p>
<p>La parte che pilota il solenoide è composta da due relè, questa scelta può sembrare confusa ma penso che sia quella più economica e per capirla, è necessario conoscere  il funzionamento di una elettrovalvola (vedi riquadro)</p>
<blockquote><p>Principalmente esistono due tipi di elettrovalvola, quella monostabile e quella bistabile. L&#8217;elettrovalvola monostabile è alimentata con una tensione alternata mentre quella bistabile con una continua.</p>
<p>Quelle <strong>monostabili </strong>possiedono un posizione stabile che è quella di chiusura della valvola, per aprirla dobbiamo alimentarla costantemente, se l&#8217;alimentazione viene a mancare la valvola ritorna nella sua posizione stabile. Il vantaggio è che se dovesse mancare l&#8217;alimentazione al circuito, mentre l&#8217;irrigazione è in atto, la valvola si chiude e quindi non ci sono problemi di allagamento.<br />
Lo svantaggio è un maggior consumo elettrico poiché le valvole devono essere alimentate per tutto il tempo dell&#8217;irrigazione.</p>
<p>Quelle <strong>bistabili </strong>possiedono due stati stabili, uno per la valvola chiusa e uno per la valvola aperta. Alimentando il solenoide la valvola si apre e rimane aperta anche togliendo l&#8217;alimentazione. Per chiuderla dobbiamo alimentare il solenoide invertendo le polarità, anche in questo caso togliendo l&#8217;alimentazione la valvola rimane chiusa.<br />
Il vantaggio principale e un consumo minimo in termini elettrici, dato che per aprire e chiudere la valvola basta alimentarla per qualche secondo, questo permette di creare automatismi a batteria .<br />
Lo svantaggio è che se succede qualche problema al circuito o all&#8217;alimentazione, mentre la valvola è aperta, questa rimarrà in questo stato creando problemi di allagamento.</p></blockquote>
<p>Nel mio caso, per la realizzazione del circuito, ho utilizzato una piccola basetta mille-fori dove ho alloggiato tutti i componenti del circuito. Per scopi prototipali, potete montare il circuito, anche su una breadboard.</p>
<p>La costruzione delle sonde richiede del comune filo elettrico e due elementi metallici da inserire nel terreno.</p>
<p>Una volta assemblato il circuito e le sonde, possiamo passare allo sviluppo del software. Avendo a disposizione vari input possiamo gestire il nostro <strong>impianto di microirrigazione</strong> adattando diversi algoritmi.</p>
<p>Per una irrigazione efficace dovremmo attivare l&#8217;elettrovalvola nel tardo pomeriggio, quando il sole inizia a tramontare. L&#8217;irrigazione deve avvenire se le sonde indicano una scarsa umidità del terreno. Il sensore di temperature serve per eseguire, ad esempio, una irrigazione aggiuntiva o prolungata, quando le giornate sono più calde.</p>
<p>Comunque sia, l&#8217;algoritmo può variare a seconda delle proprie esigenze, dal tipo di coltura e dalla posizione geografica dell&#8217;orto. Quello che mi interessa ora non è creare un algoritmo perfetto ma spiegare come utilizzare la centralina. Ognuno potrà poi, creare e personalizzare il proprio algoritmo.</p>
<p>La prima cosa da fare è assicurarsi che tutti i sensori del circuito funzionino a dovere. Il codice seguente acquisisce i segnali dagli ingressi analogici.</p>
<blockquote><p>Nota: gli ingressi analogici potrebbero non rispettare la sequenza dello schema elettrico in quanto il prototipo è stato realizzato precedentemente allo schema elettrico</p></blockquote>
<pre class="lang:c# decode:true ">PWM pwmSondeUmidita = new PWM(Pins.GPIO_PIN_D5); //uscita pwm su pin5

AnalogInput SondaTerreno1 = new AnalogInput(Pins.GPIO_PIN_A0);
AnalogInput SondaTerreno2 = new AnalogInput(Pins.GPIO_PIN_A1);
AnalogInput SondaTerreno3 = new AnalogInput(Pins.GPIO_PIN_A2);
AnalogInput FotoSensor = new AnalogInput(Pins.GPIO_PIN_A3);
AnalogInput TempSensor = new AnalogInput(Pins.GPIO_PIN_A4);

//10Khz 50% duty cycle
pwmSondeUmidita.SetPulse(100, 50);

while (true)
{
Debug.Print("SondaTerreno1= " + SondaTerreno1.Read().ToString());
Debug.Print("SondaTerreno2= " + SondaTerreno2.Read().ToString());
Debug.Print("SondaTerreno3= " + SondaTerreno3.Read().ToString());
Debug.Print("SensoreLuce= " + FotoSensor.Read().ToString());
Debug.Print("SensoreTemperatura= " + TempSensor.Read().ToString());

Debug.Print("\n");

//attendo 1 secondo
Thread.Sleep(1000);
}</pre>
<p>&nbsp;</p>
<p>Le sonde <strong>S1</strong>, <strong>S2</strong> ed <strong>S3</strong> devono essere distanziate di qualche decina di centimetri cosi che il segnale di una sonda non interferisca con l&#8217;altra. Per verificarle ho immerso le sonde in 3 bicchieri di acqua diversi.<br />
Nella finestra debug otterremo qualcosa di simile</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1467 size-full" title="Finestra Output" src="https://logicaprogrammabile.it/wp-content/uploads/2011/05/Output.png" alt="Dati relativi ai sensori" width="442" height="302" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/05/Output.png 442w, https://logicaprogrammabile.it/wp-content/uploads/2011/05/Output-300x204.png 300w" sizes="auto, (max-width: 442px) 100vw, 442px" /></p>
<p>Le sonde per il rilevamento dell&#8217;umidità hanno un valore di circa 650-700 quando sono in corto circuito, quando invece non conducono il valore tenderà a 0.<br />
Il sensore di luminosità ha un valore elevato in presenza di forte luce mentre tenderà a 0 in presenza di poca luce.<br />
Il sensore di temperatura ha un valore proporzionale alla temperatura misurata, per ottenere il valore in gradi centigradi vi rimando all&#8217;<a title="MCP9700A Netduino e sensore di temperatura analogico" href="https://logicaprogrammabile.it/mcp9700a-netduino-sensore-temperatura-analogico/">articolo dedicato al sensore</a>.</p>
<p>Eccovi un semplice esempio che può darvi un&#8217;idea di come utilizzare la centralina</p>
<pre class="lang:c# decode:true ">Int32 LumDato = 0;
Int32 TempDato = 0;
Int32 UmSens1Dato = 0;
Int32 UmSens2Dato = 0;
Int32 UmSens3Dato = 0;

Boolean AttivaIrrigazione = false;
Int32 Ciclo = 0;

//Configurazione PWM
PWM pwmSondeUmidita = new PWM(Pins.GPIO_PIN_D5); //uscita pwm su pin5
//Configurazione attuatori (relè)
OutputPort AlimentazioneValvola = new OutputPort(Pins.GPIO_PIN_D7, false);
OutputPort PolarizzazioneValvola = new OutputPort(Pins.GPIO_PIN_D6, false);
//Configuraziobe Ingressi analogici
AnalogInput SondaTerreno1 = new AnalogInput(Pins.GPIO_PIN_A0);
AnalogInput SondaTerreno2 = new AnalogInput(Pins.GPIO_PIN_A1);
AnalogInput SondaTerreno3 = new AnalogInput(Pins.GPIO_PIN_A2);
AnalogInput FotoSensor = new AnalogInput(Pins.GPIO_PIN_A3);
AnalogInput TempSensor = new AnalogInput(Pins.GPIO_PIN_A4);

//10Khz 50% duty cycle
pwmSondeUmidita.SetPulse(100, 50);

while (true)
{
//leggo dal sensore fotosensibile
LumDato = FotoSensor.Read();
//leggo dal sensore 9700a
TempDato = TempSensor.Read();
//leggo dalle sonde
UmSens1Dato = SondaTerreno1.Read();
UmSens2Dato = SondaTerreno2.Read();
UmSens3Dato = SondaTerreno3.Read();

//attendi il tramonto
if (LumDato &lt; 200 &amp;&amp; AttivaIrrigazione == true)
{
//Questa variabile serve per attivare l'irrigazione
//una sola volta dopo che la luminosità scende sotto 200
AttivaIrrigazione = false;

//controllo l'umidità nelle tre sonde
 //Avvia l'irrigazione solo se necessaria (terreno secco)
 if (UmSens1Dato &lt; 300 &amp;&amp; UmSens2Dato &lt; 300 &amp;&amp; UmSens3Dato &lt; 300)
{
//se la temperatura ha un valore elevato irriga
//per un tempo superiore
if (TempDato &gt; 350)
{
//Irrigazione prolungata per alta temperatura

//attivo l'elettrovalvola per un secondo
AlimentazioneValvola.Write(true);
Thread.Sleep(1000);
AlimentazioneValvola.Write(false);

//l'elettrovalvola è attiva
//attendo 40 minuti prima di disattivarla
for (Ciclo = 0; Ciclo &lt;= 2400; Ciclo++)
{
Thread.Sleep(100);
}

//Inverto le polarità del solenoide
//e poi l'alimento per 1 secondo
PolarizzazioneValvola.Write(true);
AlimentazioneValvola.Write(true);
Thread.Sleep(1000);
AlimentazioneValvola.Write(false);
PolarizzazioneValvola.Write(false);
}
else
 {
//Irrigazione Normale
//attivo l'elettrovalvola per un secondo
AlimentazioneValvola.Write(true);
Thread.Sleep(1000);
AlimentazioneValvola.Write(false);

//l'elettrovalvola è attiva
//attendo 15 minuti prima di disattivarla
for (Ciclo = 0; Ciclo &lt;= 900; Ciclo++)
{
Thread.Sleep(1000);
}

//Inverto le polarità del solenoide
//e l'alimento per 1 secondo
PolarizzazioneValvola.Write(true);
AlimentazioneValvola.Write(true);
Thread.Sleep(1000);
AlimentazioneValvola.Write(false);
PolarizzazioneValvola.Write(false);
}
}
}
else if (LumDato &gt; 200)
{
//Rispristina la variabile quando la luminosità
//risale sopra i 200
AttivaIrrigazione = true;
}

Thread.Sleep(500);
}</pre>
<p>&nbsp;</p>
<p>Appena alimentiamo il circuito, Netduino esegue il codice creando gli oggetti per l&#8217;acquisizione dagli ingressi analogici, per generare il segnale pwm e per comandare i due relè, successivamente esegue un ciclo infinito acquisendo i dati dai sensori ogni 500 millisecondi.</p>
<p>Durante il giorno, in presenza di una buona luminosità, il sistema rimane nella fase di acquisizione; appena la luminosità inizia a diminuire, presumibilmente per il calar del sole, il valore acquisito dal pin analogico <strong>A0</strong>, collegato alla fotoresistenza, diminuisce.<br />
Quando questo valore scende sotto la soglia di 200 (variabile in funzione del vostro sistema),  Netduino entra nel primo blocco <strong>if</strong>, dato che, <strong>AttivaIrrigazione</strong> è uguale a True.<br />
Se le tre sonde indicano una bassa umidità del terreno (dato inferiore a 300), Netduino entra nel secondo blocco <strong>if</strong>. A questo punto troviamo un&#8217;altra istruzione <strong>if</strong> che permette di eseguire il codice per attivare l&#8217;elettrovalvola a seconda della temperatura misurata dal sensore 9700a.<br />
Quindi se la temperatura è elevata verrà eseguito il primo blocco <strong>if</strong>, altrimenti verrà eseguito il codice del blocco <strong>else</strong>.<br />
Il codice di questi blocchi è identico, tranne per il ciclo <strong>for </strong>che, per una temperatura elevata, dura maggiormente.</p>
<p>Analizziamo meglio il codice che pilota l&#8217;elettrovalvola</p>
<pre class="lang:c# decode:true ">//Irrigazione Normale
//attivo l'elettrovalvola per un secondo
AlimentazioneValvola.Write(true);
Thread.Sleep(1000);
AlimentazioneValvola.Write(false);

//l'elettrovalvola è attiva
//attendo 15 minuti prima di disattivarla
for (Ciclo = 0; Ciclo &lt;= 900; Ciclo++)
{
Thread.Sleep(1000);
}

//Inverto le polarità del solenoide
//e l'alimento per 1 secondo
PolarizzazioneValvola.Write(true);
AlimentazioneValvola.Write(true);
Thread.Sleep(1000);
AlimentazioneValvola.Write(false);
PolarizzazioneValvola.Write(false);</pre>
<p>&nbsp;</p>
<p>Le istruzioni comandano direttamente i due relè. In condizioni iniziali il <strong>relè2 </strong>permette di alimentare il solenoide per aprire l&#8217;elettrovalvola. Le prime istruzioni attivano il <strong>relè1, </strong>per alimentare per un secondo il solenoide.<br />
Il ciclo <strong>for</strong> serve per creare un ritardo software di diversi minuti (tempo di irrigazione).<br />
Una volta che il ciclo <strong>for</strong> termina, dobbiamo attivare il <strong>relè2</strong> per invertire le polarità di alimentazione del solenoide. Una volta invertite viene attivato il <strong>relè1</strong> per fornire nuovamente tensione al solenoide per circa 1 secondo il quale chiude la valvola, interrompendo l&#8217;irrigazione.<br />
Le ultime istruzioni diseccitano il <strong>relè1</strong> e il <strong>relè2</strong>.</p>
<p>Le illustrazioni seguenti mostrano come avviene la sequenza di azionamento dei relè.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1485 size-full" title="AlimentazioneElettrovalvola" src="https://logicaprogrammabile.it/wp-content/uploads/2011/05/AlimentazioneElettrovalvola.gif" alt="Schema di alimentazione elettrovalvola bistabile" width="533" height="446" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/05/AlimentazioneElettrovalvola.gif 533w, https://logicaprogrammabile.it/wp-content/uploads/2011/05/AlimentazioneElettrovalvola-300x251.gif 300w" sizes="auto, (max-width: 533px) 100vw, 533px" /></p>
<p>Infine la variabile AttivaIrrigazioneviene utilizzata per irrigare una sola volta, altrimenti il ciclo di irrigazione dura finché le sonde S1, S2 ed S3 rilevano una elevata umidità del terreno.</p>
<p>Il codice è molto esemplificativo, serve per dare una linea guida su come utilizzare la centralina. Nulla vieta di utilizzare un algoritmo differente, o di utilizzare codice più efficiente.</p>
<p>Non ci resta che montare il circuito ed andarlo a sperimentare sul campo.</p>
<p>The post <a href="https://logicaprogrammabile.it/come-costruire-fai-da-te-centralina-impianto-microirrigazione/">Netduino, centralina per impianto di microirrigazione</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/come-costruire-fai-da-te-centralina-impianto-microirrigazione/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
	</channel>
</rss>
