Pilotare un relay tramite lo Smart Modem Evolution od il TIM HUB

  • 14 Risposte
  • 6462 Visite

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline puandr

  • Membro Anziano
  • ***
  • 309
    • Riconoscimi
E' possibile pilotare da remoto un relay collegato alla porta usb del DGA4130/4132



A seguire fornirò le specifiche per replicare il progetto.

Ringrazio @roleo per aver compilato i package necessari per ottenere ciò.

Offline puandr

  • Membro Anziano
  • ***
  • 309
    • Riconoscimi
Re:Pilotare un relay tramite lo Smart Modem Evolution od il TIM HUB
« Risposta #1 il: 19 Febbraio 2019, 22:44 »
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.htm

Tale 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=365
anche 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 seriale

Veniamo 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:

Codice: [Seleziona]
opkg update
opkg install kmod-usb-serial-ftdi

Il modulo del kernel è stato installato, ora, per caricarlo, effettuiamo il reboot del modem:

Codice: [Seleziona]
reboot
Dobbiamo quindi configurare la comunicazione seriale, andando ad installare il tool stty

Codice: [Seleziona]
cd /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.ipk

Ora, 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:

Codice: [Seleziona]
stty -F /dev/ttyUSB0 speed 9600 cs8 -parenb -cstopb
Se avessimo invece collegato la scheda relè sulla usb2, avremmo dovuto dare il seguente comando:

Codice: [Seleziona]
stty -F /dev/ttyUSB1 speed 9600 cs8 -parenb -cstopb
Parte 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à:

Codice: [Seleziona]
cat /dev/ttyUSB0&
Sul flusso in uscita invieremo invece i comandi che abbiamo visto prima.

Per l'attivazione del relè:

Codice: [Seleziona]
echo e > /dev/ttyUSB0
E per la disattivazione del relè:

Codice: [Seleziona]
echo o > /dev/ttyUSB0
Potremmo giocare alternando l'uno all'altro: sentiremo il click del relè e vedremo il led che si accenderà o spengerà.

(to be continued)
« Ultima modifica: 27 Febbraio 2019, 23:08 da puandr »

Offline puandr

  • Membro Anziano
  • ***
  • 309
    • Riconoscimi

Offline puandr

  • Membro Anziano
  • ***
  • 309
    • Riconoscimi
Re:Pilotare un relay tramite lo Smart Modem Evolution od il TIM HUB
« Risposta #3 il: 23 Febbraio 2019, 00:10 »
ho aggiunto sopra una descrizione del relè che ho usato

Offline puandr

  • Membro Anziano
  • ***
  • 309
    • Riconoscimi
Re:Pilotare un relay tramite lo Smart Modem Evolution od il TIM HUB
« Risposta #4 il: 23 Febbraio 2019, 11:33 »
Ho modificato la descrizione della parte uno ed aggiunto la parte due: l'installazione del driver FTDI sul dga e la successiva configurazione della seriale.

Offline puandr

  • Membro Anziano
  • ***
  • 309
    • Riconoscimi
Re:Pilotare un relay tramite lo Smart Modem Evolution od il TIM HUB
« Risposta #5 il: 23 Febbraio 2019, 20:27 »
Ho aggiunto la parte tre: Comunicazione con la scheda relè

Offline puandr

  • Membro Anziano
  • ***
  • 309
    • Riconoscimi
Re:Pilotare un relay tramite lo Smart Modem Evolution od il TIM HUB
« Risposta #6 il: 01 Marzo 2019, 08:11 »
Nel frattempo il progetto sta andando avanti: ora riesco a pilotare la scheda tramite web, digitando l'url

http://ip_del_modem/switchon
http://ip_del_modem/switchoff

Ma la soluzione tecnica individuata non mi soddisfa ancora pienamente

Offline puandr

  • Membro Anziano
  • ***
  • 309
    • Riconoscimi
Re:Pilotare un relay tramite lo Smart Modem Evolution od il TIM HUB
« Risposta #7 il: 02 Marzo 2019, 19:46 »
Abbastanza soddisfatto della soluzione.

Riesco a pilotare la scheda via web inviando comandi http GET,
avendo opportunamente configurato il server web (nginx) sul modem:


Offline Plasmodium

  • Nuovo Iscritto
  • *
  • 30
  • Sesso: Maschio
Re:Pilotare un relay tramite lo Smart Modem Evolution od il TIM HUB
« Risposta #8 il: 03 Marzo 2019, 19:22 »
Ottimo lavoro  :clap: , quando avevo letto che volevi pilotare un relay pensavo che li mettevi al posto dei led  :D ; non vedo l ora quando posterai il codice che hai illustrato nel video   8)
Grazie di tutto saluti, spero di non disturbare scrivendo qui    :worry:
« Ultima modifica: 03 Marzo 2019, 19:24 da Plasmodium »

Offline puandr

  • Membro Anziano
  • ***
  • 309
    • Riconoscimi
Re:Pilotare un relay tramite lo Smart Modem Evolution od il TIM HUB
« Risposta #9 il: 04 Marzo 2019, 07:59 »
Citazione
Grazie di tutto saluti, spero di non disturbare scrivendo qui    :worry:
Prego, ma non ti devi giustificare, siamo in un forum, intervenire è apprezzato.  ;)

Comunque, pubblicherò tutto il codice su github.

Offline zoomx

  • Esperto
  • ****
  • 589
Re:Pilotare un relay tramite lo Smart Modem Evolution od il TIM HUB
« Risposta #10 il: 05 Marzo 2019, 12:39 »
Per curiosità, il chip quadrato nella scheda riporta la scritta MEGA328P?


Offline zoomx

  • Esperto
  • ****
  • 589
Re:Pilotare un relay tramite lo Smart Modem Evolution od il TIM HUB
« Risposta #12 il: 06 Marzo 2019, 11:01 »
Diavolo! Mi sa che ha un firmware fatto con Arduino. Visti i comandi pensavo di clonarla con Arduino, sono andato a vedere la pagina di acquisto e ho notato che la MCU sembrava quella di Arduino, ma la foto non era chiarissima.

Non ci sono degli header apposta ma forse quelli per lo Zigbee magari comprendono i pin 11 12 13 (di Arduino, 15,16 e 17 sul chip) e quello di reset (29 sul chip), se si si può riprogrammare e anche fare il backup del firmware esistente. Ma la presenza dello switch sulla seriale mi fa sospettare che lo zigbee non venga comandato dall'Atmega ma direttamente dalla seriale.

Io ho realizzato una cosa uguale ma con Arduino, lo shield con 4 relè, lo shield Ethernet e un firmware con un serverino web e l'autenticazione di base.
Però è più comodo il Wifi per cui sono passato ad usare le MCU ESP8266 (ma come un Arduino!).

La tua scheda però monta dei relè miglior, credo.

Ulteriore domanda
echo e > /dev/ttyUSB0 manda anche return e linefeed oppure il solo carattere 'e'?

Offline puandr

  • Membro Anziano
  • ***
  • 309
    • Riconoscimi
Re:Pilotare un relay tramite lo Smart Modem Evolution od il TIM HUB
« Risposta #13 il: 06 Marzo 2019, 20:02 »
Dovrebbe mandare anche un line feed ('echo -n' per non inviarlo)
Ma per la scheda è indifferente: esegue il comando a prescindere

Quanto verrebbe a costare un Arduino con shield wifi ed un relè?

Offline zoomx

  • Esperto
  • ****
  • 589
Re:Pilotare un relay tramite lo Smart Modem Evolution od il TIM HUB
« Risposta #14 il: 06 Marzo 2019, 21:30 »
La soluzione più economica wifi, ma comprando in Cina, dovrebbe essere questa, 2 euro compreso spedizione
https://www.aliexpress.com/item/ESP8266-5V-WiFi-relay-module-Things-smart-home-remote-control-switch-phone-APP-ESP-01/32821721218.html
In realtà ce ne sono 2 tipi diversi: uno ha a bordo una MCU più piccina (STM8 oppure un clone 8051) e una sorta di firmware precaricato che pressappoco ha comportamento equivalente alla tua soluzione,
l'altra non ha MCU e non ha firmware che bisogna scriversi da se in C++, io ti ho linkato questa versione.

LA prima versione però, grazie alla MCU, esiste anche per 4 relè
https://www.aliexpress.com/item/DC-12V-ESP8266-Four-Channel-Relay-Module-ESP-01-WIFI-Module-for-Smart-Home-Intelligent-Furniture/32950217718.html
Questo perché l'ESP8266 è montato su una schedina molto economica che espone pochissimi pin (o GPIO).

Ma se ti va di farti il firmware date è meglio iniziare dai Wemos D1 mini, che montano sempre gli ESP8266 ma espongono tutti i GPIO
https://www.aliexpress.com/item/DHT-Pro-Shield-for-WeMos-D1-mini-DHT22-Single-bus-digital-temperature-and-humidity-sensor-module/32648082692.html
Questo perché ci sono i cosiddetti shield, altre schedine che si montano sopra, c'è quella con il rele, e quelle con sensori temperatura e umidità.
Io uso un affare di questo per comandare a distanza un riscaldamento e contemporaneamente controllare che effettivamente la temperatura cambia sia leggendo dal minisito web che andando a vedere lo storico dei dati che viene caricato su ThingSpeak. Wemos e scheda relè siamo sui 6 euro.

Arduino con scheda relè dovrebbe essere sui 10 euro ma la scheda WiFi potrebbe essere costosa a seconda di come è realizzata, se è fatta con un ESP8266 diventa economica.
Con la Ethernet siamo sui 15 euro ma sulla qualità dei rele non saprei dirti, io non piloto carichi importanti, sempre sotto i 100W.

La linea domotica SONOFF è basata su ESP8266 con firmware proprietario, trovi il pezzo base, che da un lato si collega alla 220V e dall'altro va all'oggetto da alimentare, sui 6-10 euro. E' possibile flashare un proprio firmware in quanto dentro ci sono i piedini che servono.

Per finire ESP8266 e Tim Hub sono per adesso incompatibili, io ho dovuto montare un Access Point apposta per loro.

L'ESP32 è il successore, più potente e funziona con il Tim Hub. Per meno di 10 euro hai una scheda con una piccola camera in grado di effettuare uno streaming (io ho provato con una USB camera e la Vodafone Station, 1 fotogramma al secondo a 320x200)
https://www.aliexpress.com/item/ESP32-CAM-WiFi-Bluetooth-Module-Camera-Module-Development-Board-ESP32-with-Camera-Module-OV2640-2MP/32958807758.html