Parte 1 - La scheda relèPer prima cosa descrivo il relè che ho utilizzato.
Il prerequisito è che offra un'interfaccia usb: ci sono diversi chip che convertono un segnale RS-232 in usb, tra questi il chip della FTDI
https://www.ftdichip.com/Products/ICs/FT232R.htmTale chip viene ad esempio montato sulla scheda relè TOSR02 della TinySine, che è la scheda relè da me qui utilizzata

Tale scheda è possibile acquistarla direttamente sul sito della TinySine
http://www.tinyosshop.com/index.php?route=product/product&filter_name=tosr02&filter_description=true&filter_sub_category=true&product_id=365anche se personalmente l'ho trovata ad un'asta ebay ad un prezzo più basso
Vi è anche la versione predisposta per il sensore di temperatura:
http://www.tinyosshop.com/index.php?route=product/product&filter_name=tosr02&filter_description=true&filter_sub_category=true&product_id=647
Tali schede usano i relè della Omron
https://www.tinyosshop.com/datasheet/G5LA%20datasheet.pdf che reggono una corrente fino a 10A e 250VAC, cioè un assorbimento di 2,5 kW; quindi con tali relè si può pilotare praticamente qualsiasi elettrodomestico di casa.
La scheda può essere alimentata tramite l'apposito connettore da 5V, oppure direttamente (come ho optato) mediante la usb, prelevando l'alimentazione dal modem, il che è più semplice e pratico. Per ottenere ciò è sufficiente spostare il 'Power Jumper' sulla schedina selezionando la opportuna alimentazione.
Riassumendo: per realizzare il progetto va bene qualsiasi scheda relè, l'importante è che monti il chip FTDI come convertitore usb-UART, perché il corrispondente driver verrà installato sul DGA 4130/4132. Io ho optato per la scheda a 2 relè TOSR02 della TinySine, che è la versione più economica tra tutte le schede che offrono, ma ce ne sono di tutti i modelli e per tutte le tasche: a 4, 8, 12 relè, con sensore di temperatura, ecc.
Parte 2 - Installazione del driver FTDI sul modem e configurazione della serialeVeniamo ora alla parte di installazione del driver FTDI sul modem DGA4130/4132 e alla successiva configurazione della porta seriale.
Grazie a
@roleo , che ha compilato il modulo ftdi, andiamo ad installare il relativo modulo sul modem.
Avendo configurato opkg a puntare sul repository di roleo, digitiamo da shell i seguenti comandi:
opkg update
opkg install kmod-usb-serial-ftdiIl modulo del kernel è stato installato, ora, per caricarlo, effettuiamo il reboot del modem:
rebootDobbiamo quindi configurare la comunicazione seriale, andando ad installare il tool
sttycd /tmp
wget https://repository.ilpuntotecnico.com/files/roleo/public/agtef/1.1.0/brcm63xx-tch/packages/packages/coreutils_8.23-1_brcm63xx-tch.ipk
opkg install coreutils_8.23-1_brcm63xx-tch.ipk
wget https://repository.ilpuntotecnico.com/files/roleo/public/agtef/1.1.0/brcm63xx-tch/packages/packages/coreutils-stty_8.23-1_brcm63xx-tch.ipk
opkg install coreutils-stty_8.23-1_brcm63xx-tch.ipkOra, prima di configurare la seriale, colleghiamo la scheda relè alla porta usb1: la scheda relè si illuminerà perché alimentata dalla usb ma i due relè saranno in posizione off (e quindi il relativo led sarà spento).
Andiamo a configurare la comunicazione seriale sulla porta usb1:
stty -F /dev/ttyUSB0 speed 9600 cs8 -parenb -cstopbSe avessimo invece collegato la scheda relè sulla usb2, avremmo dovuto dare il seguente comando:
stty -F /dev/ttyUSB1 speed 9600 cs8 -parenb -cstopbParte 3 - Comunicazione con la scheda relèAbbiamo aperto e configurato un canale seriale con la scheda relè, ora possiamo iniziare a comunicare.
Ma quali sono i comandi che possiamo inviare alla scheda?
I comandi sono elencati nella tabella seguente:

Dalla tabella notiamo che, ad esempio, per attivare il relè numero 1 bisogna inviare il carattere 'e' sulla seriale.
Per disattivarlo invece, dovremmo inviare il carattere 'o' sulla seriale.
Per aprire una comunicazione bidirezionale, al momento sarà sufficiente creare due canali separati: uno per il flusso in entrata ed il secondo per il flusso in uscita.
Riguardo il canale in entrata, poichè dalla scheda non vengono trasmessi segnali di
EOL nè di
EOF, dovremmo eseguire il comando in background, altrimenti bloccherebbe la shell.
Il comando che useremo sarà:
cat /dev/ttyUSB0&Sul flusso in uscita invieremo invece i comandi che abbiamo visto prima.
Per l'attivazione del relè:
echo e > /dev/ttyUSB0E per la disattivazione del relè:
echo o > /dev/ttyUSB0Potremmo giocare alternando l'uno all'altro: sentiremo il click del relè e vedremo il led che si accenderà o spengerà.
(to be continued)