Impianto di irrigazione con Raspberry Pi: GPIO ed altre connessioni (quarta parte)

Impianto Irrigazione Raspberry Pi Gpio

Dopo un lungo periodo di assenza torno a parlare in questa quarta parte della realizzazione di un impianto di irrigazione automatizzato grazie al Raspberry Pi. Per la precisione vedremo le connessioni da eseguire sulle porte GPIO e gli altri pin presenti sulla nostra board.

Tutto il progetto è stato realizzato utilizzato un Raspberry Pi “modello B” di prima generazione e quindi tutte le connessione che indicherò faranno riferimento alla pedinatura di questo modello specifico. Niente vieta però di utilizzare un Raspberry Pi diverso da quello indicato o di eseguire le connessioni dei vari apparati a porte gpio diverse da quelle qui specificate. Infatti nello script di gestione che illustrerò nel prossimo articolo, sarà possibile rimappare ogni elemento andando a definire gli ingressi/uscite in un apposito file di configurazione.

Nella tabella che segue sono riepilogate le connessioni gpio eseguite e le connessioni per fornire l’alimentazione ai vari moduli/sensori. La colonna Physical indica la numerazione fisica corrispondente ai vari piedini presenti sul Raspberry Pi, mentre la colonna BCM indica l’id con cui vengono identificate le porte gpio. Questi id verranno poi utilizzati nel file di configurazione dello script per mappare i vari elementi.

PhysicalDescrizioneBCM
13.3V
Alimentazione sensore pioggia
25V
Alimentazione modulo switch 1 (MSW1 VCC)
3GPIO 2
Deviatore 1 alimentazione (MSW1 IN1)
2
45V
Alimentazione modulo switch 2 (MSW2 VCC)
5GPIO 3
Deviatore 2 alimentazione (MSW1 IN2)
3
6GND
Massa modulo switch 1 (MSW1 GND)
9GND
Massa sensore pioggia)
11GPIO 17
Elettrovalvola 1 (MSW1 IN3)
17
12GPIO 18
Elettrovalvola 4 (MSW2 IN2)
18
13GPIO 27
Elettrovalvola 2 (MSW1 IN4)
27
15GPIO 22
Elettrovalvola 3 (MSW2 IN1)
22
16GPIO 23
Elettrovalvola 5 (MSW2 IN3)
23
18GPIO 24
Elettrovalvola 6 (MSW2 IN4)
24
22GPIO 25
Digital Output (DO) sensore pioggia
25
25GND
Massa modulo switch 2 (MSW2 GND)

Ogni elemento della tabella può essere ritrovato nello schema elettrico riportato qui sotto.

Schema centralina di irrigazione (Raspberry PI)

Per eseguire eventuali verifiche del corretto collegamento dei vari pin sul Raspberry Pi è possibile utilizzare da shell il comando gpio con il quale, oltre a programmare e impostare lo stato delle varie porte, è anche possibile visualizzarne lo stato. Questa utility non è direttamente presente ma deve essere installata mediante la libreria wiringPi, la quale sarà anche necessaria per il corretto funzionamento dello script di gestione.

L’installazione può essere eseguita impartendo i seguenti comandi da shell direttamente dalla propria home:

sudo apt-get install git-core
sudo apt-get update
sudo apt-get upgrade
git clone git://git.drogon.net/wiringPi
cd wiringPi
git pull origin
./build

Una volta eseguiti installato wiringPi è possibile utilizzare il comando gpio readall per visualizzare lo stato di tutte le porte gpio, che nel mio caso sono come segue:

+-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
 |   2 |   8 |   SDA.1 |  OUT | 1 |  3 || 4  |   |      | 5V      |     |     |
 |   3 |   9 |   SCL.1 |  OUT | 1 |  5 || 6  |   |      | 0v      |     |     |
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT0 | TxD     | 15  | 14  |
 |     |     |      0v |      |   |  9 || 10 | 1 | ALT0 | RxD     | 16  | 15  |
 |  17 |   0 | GPIO. 0 |  OUT | 1 | 11 || 12 | 1 | OUT  | GPIO. 1 | 1   | 18  |
 |  27 |   2 | GPIO. 2 |  OUT | 1 | 13 || 14 |   |      | 0v      |     |     |
 |  22 |   3 | GPIO. 3 |  OUT | 1 | 15 || 16 | 1 | OUT  | GPIO. 4 | 4   | 23  |
 |     |     |    3.3v |      |   | 17 || 18 | 1 | OUT  | GPIO. 5 | 5   | 24  |
 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |
 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 1 | IN   | GPIO. 6 | 6   | 25  |
 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 |  28 |  17 | GPIO.17 |   IN | 0 | 51 || 52 | 0 | IN   | GPIO.18 | 18  | 29  |
 |  30 |  19 | GPIO.19 |   IN | 0 | 53 || 54 | 0 | IN   | GPIO.20 | 20  | 31  |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+

Bene, anche per questa volta è tutto.

Nel prossimo post descriverò lo script che ho creato per gestire l’impianto di irrigazione.

A presto.

11 pensieri su “Impianto di irrigazione con Raspberry Pi: GPIO ed altre connessioni (quarta parte)

  1. Ciao, post interessante, grazie. Ho qualche problema con una piface, con il pi che in chiusura di un contatto deve chiamare un sito web, ma non va quasi mai … non è che posso chiederti una consulenza? 😛

  2. Ciao Stefano,
    non ho esperienza con piface ma se posso esserti di aiuto più che volentieri.
    Dammi qualche dettaglio in più per capire come posso aiutarti,

  3. è possibile collegare una coppia di schede relè da 8 relè cadauno? Se si potresti dirmi come? Grazie

  4. Ciao @Mario,
    direi di si che puoi collegare due schede relay da 8 moduli. Per collegare 16 relay probabilmente dovrai usare almento un Raspberry Pi 2 dove ci sono abbastanza gpio per collegare tutti i ralay.

  5. Ciao scusate dopo tanto ho dovuto reinstallare pigarden, e magari mi sono perso qualcosa,ho seguito questa guida ma non mi è possibile intallare wiringpi mi da errore,ma cmq ho visto che nel sistema è presente,riesco a fare gpio readall e visualizzare la schermata delle porte,posso anche comandare i vari relay a mano, ma non riesco a for comunicare pigardeweb con i gpio,da interfaccia web qualsiasi cosa faccia non mi apre i relay.

  6. Ciao Stefano,
    se facendo aprire l’irrigazione direttamente da shell con piGarden.sh funziona vul dire che wiringpi è ok.
    Probabilmente hai un problema di comunicazione tra piGarden e piGardenWeb.
    PiGardenWeb ti da qualche messaggio di errore quando provia ad aprire l’irrigazione?
    Eventualmente prova a controllare i nomi che hai dato alle varie zonem, non devono contenere spazio, punti, virgole o carettarei strani. Sono ammessi solo caratteri alfanumericio l’underscore.

  7. Ciao ho piallato tutto é reinstallato ora funziona tutto, probabilmente sarà andato storto qualcosa nella precedente installazione, ho visto che nel file manager di pigardenweb ci sono delle icone da poter usare per i switch, come posso cambiare icona?

  8. Buonasera,
    volendo inserire un comando per attivare la pompa dedicata all’irrigazione, cosa si deve fare? Ovvero, un gpio out che si attiva e resta attivo per tutto il tempo di irrigazione di tutte le zone.

  9. Ciao @Paolo,
    puoi definire una nuova elettrovalvola monostabile fittizia su cui collegare la pompa.
    Per indicare che l’elettrovalvola è monostabile devi impostare il paramentro
    EVx_MONOSTABLE=1
    dove x sta ad indicare il numero dell’elettrovalvola, esempio:
    EV3_MONOSTABLE=1

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.