giovedì 18 agosto 2011

Una scheda di I/O controllata via Wi-Fi

L'applicazione descritta in questo articolo mostra come collagare la scheda di espansione SX16 al modulo OpenPicus FlyPort per realizzare un nodo con ingressi ed uscite a relè controllabile via LAN Wi-Fi.

In questo articolo vediamo come collegare una scheda di espansione ingressi/uscite SX16 ad un modulo FlyPort della serie OpenPicus, per realizzare un sistema che ci permette: di controllare tramite relè fino a sei carichi (48V/2A), di sorvegliare lo stato di 24 linee di cui 8 optoisolate e di rilevare la temperatura; tramite una semplice interfaccia WEB o una applicazione desktop il tutto su una connessione LAN Wi-Fi.

Hardware e collegamenti elettrici

Realizzare il dispositivo descritto è necessario disporre di: una scheda espansione I/O SX16B (SX16B - Scheda di espansione IN/OUT) nella versione stand alone e di un modulo FlyPort (Modulo openpicus FlyPort con interfaccia Wi-Fi 802.11 certificata b/g/n) completo di SDK Nest.
La scheda SX16B stand alone, a differenza della versione base, è equipaggiata con il blocco di alimentazione ed un micro PIC. Il PIC 16F628 montato sullo zoccolo U9 andrà rimosso in quanto il programma di controllo delle linee I/O verrà fatto girare sul micro PIC 24F256FJ106GA presente sul FlyPort.

Nella tabella che segue vengono riportati i 10 collegamenti da effettuare tra la scheda SX16 e il modulo FlyPort montato sull'SDK Nest e il modulo FlyPort da solo.

SX16B - EXPANDER IN FlyPort su NEST FlyPort SEGNALE
JP2 PIN 1 JP9 SDA PIN 3 I2C SDA
JP2 PIN 2 JP9 SCL PIN 1 I2C SCL
JP2 PIN 3 JP2 IN5 PIN 2 IN CLOCK
JP2 PIN 4 JP1 IN2 PIN 7 IN DATA
JP2 PIN 5 JP1 IN1 PIN 5 IN STROBE
JP2 PIN 6 JP2 IN5 PIN 2 OUT CLOCK
JP2 PIN 7 JP1 IN3 PIN 9 OUT STROBE
JP2 PIN 8 JP2 IN4 PIN 11 OUT DATA
JP2 PIN 9 JP10 +5V PIN 16 Vcc +5V
JP2 PIN 10 JP10 GND PIN 22 GND

Il sistema SX16 & FlyPort può essere alimentato direttamente a 5V se il FlyPort è montato sulla Nest o da 9V a 12V AC/DC (corrente 500mA) se si passa dalla SX16B (PWR JP13)

Programmare il modulo FlyPort

In questo articolo vengono forniti, nella sezione download, due firmware per il FlyPort. Il primo programma, presente nel file FLYPORT_SX16_BASE.zip, contiene le funzioni base per interfacciare il FlyPort alla SX16, il cui unico funzionamento consiste nel legge ciclicamente: ingressi, temperatura e attiva i sei relè.
Il secondo programma, contenuto nel file FLYPORT_SX16_PRO.zip, trasforma il binomio FlyPort & SX16 in un vero e proprio nodo input/output controllabile tramite interfaccia WEB (integrata nel modulo FlyPort) o socket TCP/IP. Oltre a poter monitorare lo stato dei 24 ingressi, la temperatura tramite il sensore DS1621 presente sulla SX16, e controllare i 6 relè;


tramite interfaccia WEB è possibile impostare i parametri di rete LAN del modulo FlyPort:

e i parametri necessari al FlyPort per collegarsi alla rete Wi-Fi:


Per caricare uno dei due programmi nella memoria del FlyPort è necessario scaricare ed installare su un PC Windows l'IDE OpenPicus Ambiente di sviluppo IDE per il FlyPort Wi-Fi.
Successivamente decomprimere il file FLYPORT_SX16_BASE.zip o FLYPORT_SX16_PRO.zip sul proprio hard disk. Montare il FlyPort sulla scheda Nest e collegarla via USB al PC (Se richiesti i driver : CDM 2.04.16 WHQL Certified.zip). Dall'IDE cliccare OpenProject e selezionare il file .conf contenuto nella path in cui è stato precedentemente decompresso il file Zip. Se non vogliamo modificare nulla nel progetto, compilarlo cliccando sul tasto CompileProject e trasferirlo sul FlyPort cliccando sul tasto DownloadFirmware. Dalla finestra Picus - Brutus Bootloader selezionare la porta COM assegnata dal sistema operativo alla Nest e cliccare su download.



Al primo avvio il FlyPort partirà con la configurazione Wi-Fi ad-hoc con: ssid AREASX, nessuna protezione e DHCP server (192.168.1.100) che assegna un unico IP. Per riconfigurare il sistema sarà necessario collegarsi da un PC con scheda wireless Wi-Fi al nodo FlyPort & SX16, accedere tramite browser (Firefox o Chrome) all'indirizzo http://192.168.1.100 ed effettuare i settaggi necessari per accedere alla propria rete wireless.

Software di controllo desktop

Per controllare apparato così realizzato via TCP possiamo utilizzare qualsiasi tipo di linguaggio che ci consenta che ci consenta di gestire dei socket TCP/IP come per esempio: python, C, Visual Basic, PHP e così via.
L'applicazione di esempio distribuita sia in formato sorgente che in pacchetto autoinstallante, esegue poche semplici operazioni.
Una volta aperto un socket TCP/IP all'indirizzo IP del modulo FlyPort (porta tcp/ip 1470) in ascolto sulla rete, invia comandi composti da pacchetti di sei byte.
Il programma in esecuzione sul FlyPort, una volta riconosciuto ed eseguito il comando, restituisce un pacchetto di risposta composto sempre da sei byte; tale pacchetto effettua il percorso inverso rispetto al precedente fino ad arrivare all'applicazione client in VB6 che lo interpreta e ne mostra a video il risultato.

Protocollo di comunicazione con la SX16B & FlyPort

Nelle tabelle che seguono vengono riassunti i comandi da inviare e le risposte ricevute dal FlyPort collegato alla scheda SX16B.

Acquisizione della temperatura

Comando da inviare alla SX16

Byte Descrizione Esadecimale
1 START 0x66
2 INDIRIZZO 0x01
3 COMANDO 0x02
4 ZERO 0x00
5 ZERO 0x00
6 ZERO 0x00

Risposta dalla SX16

Byte Descrizione Esadecimale
1 SOR 0x55
2 INDIRIZZO 0x01
3 COMANDO 0x02
4 TEMPERATURA da 0x00 a 0xC9
5 TEMPERATURA 0x00 o 0x80
6 ZERO 0x00

Comando per il controllo dei relè

Comando da inviare alla SX16

Byte Descrizione Esadecimale
1 START 0x66
2 INDIRIZZO 0x01
3 COMANDO 0x03
4 RELE' da 0x01 a 0x06
5 STATO 0x00 OFF - 0x01 ON
6 ZERO 0x00

Risposta dalla SX16

Byte Descrizione Esadecimale
1 SOR 0x55
2 INDIRIZZO 0x01
3 COMANDO 0x03
4 STATO RELE' da 0x00 a 0x63
5 ZERO 0x00
6 ZERO 0x00

Acquisizione dello stato dei 24 ingressi

Comando da inviare alla SX16

Byte Descrizione Esadecimale
1 START 0x66
2 INDIRIZZO 0x01
3 COMANDO 0x01
4 ZERO 0x00
5 ZERO 0x00
6 ZERO 0x00

Risposta dalla SX16

Byte Descrizione Esadecimale
1 SOR 0x55
2 INDIRIZZO 0x01
3 COMANDO 0x01
4 INPUT CTC da 0x00 a 0xFF
5 INPUT TTL da 0x00 a 0xFF
6 INPUT OPT da 0x00 a 0xFF

Link utili

Articolo: Modulo openpicus FlyPort con interfaccia Wi-Fi 802.11 certificata b/g/n
Articolo: Ambiente di sviluppo IDE per il FlyPort Wi-Fi

Download

Download Programma per FlyPort versione base
Download Programma per FlyPort versione estesa

Download Sorgente programma di controllo in VB6: LAN2Sx16_Sorgente.zip
Download Programma di controllo: LAN2Sx16_Setup.zip

Nessun commento:

Posta un commento