Wi-Fi GPIO Modules

32 Channel WiFi GPIO Module With Analog Inputs

542 views May 2, 2016 admin 0

Introduction

32ChannelWifiGPIO_1

Numato Lab’s 32 Channel WiFi GPIO Module is a versatile product for controlling electrical and electronic devices remotely from a PC through WiFi. This module equipped  with low power, 2.4 GHz, IEEE 802.11-compliant MRF24WG0MA WiFi radio transceiver module. It has an integrated PCB antenna, matching circuitry. Ease of use and wider operating system compatibility are the primary goals behind this product’s design. This simplicity allows use of off-the-shelf Terminal Emulation programs such as Hyper Terminal and Tera Term for controlling the module with a simple set of human readable commands through Telnet or through easy to use Web interface. For power users, this module can be controlled by writing programs in various programming languages.

Applications

  • Home Automation
  • Industrial Automation
  • Lighting Control
  • Garden Equipment Control
  • Consumer Electronics
  • Remote Device Management
  • Test Fixtures
  • DIY and Hobby

Board Features

  • Microcontroller: Microchip PIC32MX795F512L controller with 512K Flash.
  • Memory: Microchip 25LC1024 serial EEPROM provides 1024 Kbits of storage for both web pages and nonvolatile configuration.
  • WiFi: MRF24WG0MA, IEEE 802.11 b/g WiFi radio transceiver module with serialized unique MAC address.
  • Serial: FT234XD USB to serial UART interface for WiFi Configuration Settings and firmware upload.
  • LED indication for Power and Configuration.
  • Password protected Web console, Telnet and UART communication interface.
  • Individual DIP switch channels for Firmware upload, WiFi configuration, Factory reset and Network Reset.
  • The MRF24WG0MA module have radio regulation certification for United States (FCC), Canada (IC), and Europe (ETSI).
  • GPIO: 32 GPIOs, among 14 can be used as analog inputs with 10 bit resolution.
  • Board Dimension: 117.348 mm x 66.802 mm

How to Use 32 Channel WiFi GPIO Module

Components/Tools Required

Along with the module, you may need the items in the list below for easy and fast installation.

1. 12V 1A DC power supply.
2. Wireless Router.
3. Medium size screw driver.

Connection Diagram

Above image shows basic connection diagram that can be used in most of the situations. The following sections identify individual connections in detail.

WiFi Interface

The on-board WiFi supports up to 54 Mbps transmission speed that helps a computer/smart phone to communicate and control this module easily. This board can be connected to a network in two ways.

  1. Change the device’s SSID and Password to match that of the host wireless router.
  2. Change the host wireless router’s SSID and Password to match that of the device SSID and Password.

First method is always recommended since the second method could interrupt network availability to other connected users. Changing 32 Channel WiFi GPIO Module’s SSID and Password is explained in the section 3. Configuring 32 Channel WiFi GPIO Module.

The factory default WiFi settings of the board is given below.

WiFi SSIDnumato
WiFi Passwordadmin123
WiFi Security Mode2(WPA2 with Pass Phrase)
Telnet Authentication1(Enabled)
Telnet Port23
IP FilterDisabled
MAC FilterDisabled
GPIO Input Change Notify Disabled

DC Power Supply

32wifigpio-dcsupplyThis board can be operate with a single DC power supply. Use a 12V 1A DC power supply on DC jack(J1/Vin) on the Board for logic circuit.

DIP Switch Configuration

A 4 channel DIP switch(U4) on the board is used for selecting four different modes. Be careful and know what will happens when each channel position is turn ON.

DIP Switch Channel Operation
1 Firmware Upgrade
2 WiFi Configuration
3 Factory Reset
4 Network Settings Reset

By default the board will shipped with all switch channels in OFF position. WiFi configuration, Factory reset and Network settings reset are explained in folowing sections in detail.

GPIO/Analog Inputs

32wifigpio-gpioThe module has 32 General Purpose IO pins that can be used for various custom applications. Some of these pins can be used as Analog to Digital Converter inputs as well. All IO pins support 3.3V TTL signals and the ADC input range is 0 to +3.3V. The ADC can acquire analog signal at the resolution of 10 bits per sample. It is recommended to use a series resistor with the GPIO/ADC pins when interfacing with other circuits. In output mode, GPIOs can source up to 25mA. So no additional circuitry is needed to drive regular LEDs. A 470 Ohms series resistor is recommended for current limiting when connecting LED to a GPIO. The table below summarizes the GPIO and Analog to Digital Converter input positions on the Screw terminals.

GPIO ADC
IO0ADC0
IO1ADC1
IO2ADC2
IO3ADC3
IO4ADC4
IO5ADC5
IO6ADC6
IO7ADC7
GNDGND
IO7ADC7
IO8ADC8
IO9ADC9
IO10ADC10
IO11ADC11
IO12ADC12
IO13ADC13
IO14NA
IO15NA
IO16NA
IO17NA
IO18NA
IO19NA
IO20NA
IO21NA
IO22NA
IO23NA
GNDGND
IO24NA
IO25NA
IO26NA
IO27NA
IO28NA
IO29NA
IO30NA
IO31NA
GNDGND

Configuring 32 Channel WiFi GPIO Module

Follow the below steps for setting new wireless SSID and Password.

1. Connect power and USB micro cable to the module.
2. Open Hyper Terminal and connect corresponding COM port as shown below.

3. Change the Port Settings by clicking Restore Defaults. Then change the Bits per second to 19200 and select OK.

4. Change the DIP switch(U4 on board) 2nd channel to ON state. Then press the push button SW2 for a second, immediately the terminal window will refresh as follows.

5. The typed User name and Password will not be visible until login successfully. Type the User name as ‘admin‘ and press enter key.

6. Type the Password as ‘admin’ and press enter key. If both are typed correct, then window will refresh as below.

NOTE: User name and Password are case sensitive

7. Send the following commands on the table for factory default settings as below.

Command Description
wifissid getwifissid get reads the module SSID. Factory
default SSID is 'numato'
wifipass getwifipass get reads the module Password.
Factory default Password is 'admin123'
wifisec getwifisec get reads the module security mode. Factory default security is 2,
'WPA2 with Pass Phrase'
telnet auth gettelnet auth get command reads the current authentication setting. Factory default authentication is 'enabled'.
telnet port gettelnet port get command reads the current telnet port. Factory default telnet port is '23'.
access ip getaccess ip get command reads the IP filter is enabled or disabled. Factory default access IP status is 'disabled'. Using 'access ip' command group we can filter access to the module. When access ip is enabled, this command returns the stored 10 number of IPs, IP0 to IP9, if it is disabled then it will return the IPs as 255.255.255.255.
access mac getaccess mac get command reads the MAC filter is enabled or disabled. Factory default access MAC status is 'disabled'. Using 'access mac' command group we can filiter access to the module. When access MAC is enabled, this command returns stored 10 number of MAC, MAC0 to MAC9, if it is disabled then it will return the MAC as FF FF FF FF FF

8. The  configuration settings  can be set by the following commands.

Command Description
wifissid set xxxxxxxxwifissid set will assign a new SSID to the module. “x” stands for alphanumeric characters including symbols. The new User name can be 1 – 32 characters length. See the example below.

wifissid set 16channelgpio
wifipass set xxxxxxxxwifipass set will assign a new Password to the module. “x” stands for alphanumeric characters including symbols. The new Password can be 8 – 32 characters length. Minimum Password length is 8 characters. See the example below.

wifipass set 2345678
wifisec set xwifisec set x command will set different security modes. Here 'x' stands for the mode, 0 to 3.
0 represents Open
1 represents WPA with Pass Phrase.
2 represents WPA2 with Pass Phrase.
3 represents WPA/WPA2 with Auto Pass Phrase.
Eg: wifisec set 0
telnet auth on/offtelnet auth on/off command sets the authentication for telnet operation. 'telnet auth on' enable the authentication for Telnet connection, if the telnet authentication is enabled then user must enter the login credentials by default username and password is 'admin'. 'telnet auth off' disables the authentication for Telnet connection.
Eg: telnet auth off
telnet port set xxtelnet port set xx command sets the Telnet port. Here 'xx' stands for the port number in the range of 00 to 99. By default, port number is 23
Eg: telnet port set 45
access ip on/offaccess ip on/off command enable/disable the IP filter operation. If the access IP is enabled, then maximum 10 number of IPs can communicate with the module and we can set these IPs using 'access ip set N' command. By default, access IP is disabled
Eg: access ip on
access mac on/offaccess mac on/off command enable/disable the MAC filter operation.
If the access mac is enabled, then maximum 10 number of MAC can communicate with the module and we can set these MAC using 'access MAC set N' command.
By default, access MAC is disabled.
Eg: access mac on
access ip set N xxx.xxx.xxx.xxxaccess ip set N xxx.xxx.xxx.xxx commands adds the IP address to access IP filter table.
Here 'N' stands for the IP number 0 to 9 in the filter table. 'xxx.xxx.xxx.xxx' stands for IP address we can store in the filter table.
Eg: access ip set 0 192.168.000.005
access mac set N
xx xx xx xx xx xx
access mac set N xxx.xxx.xxx.xxx commands adds the MAC address to access MAC filter table. Here 'N' stands for the MAC number 0 to 9 in the filter table. 'xx.xx.xx.xx' stands for MAC address we can store in the filter table, only hex values are allowed.
Eg: access mac set 0 D2 7E 88 1E AD AA

9. Execute wifissid set, wifipass set, wifisec set, telnet auth set, telnet port set  as follows for the new configuration settings,  recommend to confirm the new settings saved using wifissid get, wifipass get, wifisec get, telnet auth get, telnet port get, access ip get,  access mac get commands.

10. Below image shows the IP filter and MAC filters are enabled and displays the filtered MAC and IP address.

11. If the new configuration settings are saved, change the DIP switch(U4 on board) second channel back to OFF state. Then press the reset push button SW2 for a second again. If everything is fine the terminal window will displays the configuration details, connection status and module’s IP.

12.If the status shows DHCP client successful as above, now the board is ready to use. Run Numato Lab Device Discoverer.jar. The window will displays the IP address, Host Name, MAC Address and Other information.

13. Now Power off the device and remove USB micro cable. Once  configuration is successfully completed , the USB cable is not necessary for the functioning of board. Powering up and accessing the module is explained in section 6. Powering Up 32 Channel WiFi GPIO Module.

Factory Reset

To execute factory reset, please follow the steps below.

  1. Connect the power and change the DIP switch(U4 on board) 3rd channel to ON state.
  2. Press the push button SW2 near the USB micro connector for a second and wait for 5-10 seconds until Led D2 blinks.
  3. Change the DIP switch(U4 on board) 3rd channel to OFF state. Then press the push button SW2 again for a second to reset the firmware.

This action will reset User name, Password, Device ID, WiFi SSID, Password and also other settings as well. After reset the board can be accessed using the default User name and Password. The factory default settings will be as below table.

Device ID 00000000
User name admin
Password admin
Wifi SSID numato
Wifi Password admin123
Wifi security mode2 ( WPA2 with Pass Phrase)
Telnet authenticationEnabled
Telnet port23
Access IPDisabled
Access MACDisabled
GPIO interrupt notifyDisabled

Network Settings Reset

To execute network settings reset, please follow the steps below.

  1. Connect the power and change the DIP switch(U4 on board) 4th channel to ON state.
  2. Press the push button SW2 near the USB micro connector for a second and wait for 5-10 seconds until Led D2 blinks.
  3. Change the DIP switch(U4 on board) 4th channel to OFF state. Then press the push button SW2 again for a second to reset the firmware.

This action will reset Network settings such as Host name and IP address. DHCP will also enabled after
network settings reset. The factory default network settings will be as below table.

Host Name WIFIGPIO32
IP Address DHCP Enabled

Powering Up 32 Channel WiFi GPIO Module

Connect a DC power supply and power up the device as mentioned DC Power Supply section above. The LED (D1) will glow which indicates active power. Connect the module in a network as explained in WiFi configuration settings. Then run Numato Lab Device Discoverer.jar (Java Runtime must be installed on the target machine), click on Discover Devices. The window will displays the IP address, Host Name, MAC Address and Other information.

10 - gpio32

IP Address and MAC Address can see in UART configuration window, Open Hyper Terminal and connect corresponding COM port as explained in the above section 3.Configuring 32 Channel WiFi GPIO module. Press the reset button ‘SW1’ check the results on the window.

IP Address and MAC Address can be found using arp  command  also, open the command prompt and type the command ‘arp -a‘. This will display the available network interfaces and connected devices along with the MAC address and IP address of each device. Look for the IP address that corresponds to your device’s MAC address.

Accessing the Module

The module can be controlled by using one of the two interfaces below.

1. Through HTML/Web Page served from the device.
2. Through a Serial terminal Emulator that supports TELNET (Eg: Hyper Terminal, Tera Term, PUTTY..).

Accessing the Module Using Web Interface

The easiest method for controlling the module is through web page served from the device. To open the administration web page, type in the IP address in to the address bar of any web browser and press enter.

16wifigpio-webinterface1

You will prompted to enter User name and Password. The default User name and Password is ‘admin‘. You may change the User name and Password once logged in.

16wifigpio-webinterface3

Enter the default User name and Password then click OK. You will be presented with the device home page that shows the status of GPIOs.

32wifigpio-webinterface1

NOTE: Web page, UART(WiFi configuration) and telnet shares the same User name and Password. Any changes to any of this will affect all these three security settings.

GPIO Status and Control

This board has 32 general purpose input/output’s among 14 multiplexed with analog input. Click on the GPIO/ADC link on the menu bar to access GPIO configuration page. The GPIOs can be turned on/off by clicking on the Toggle GPIO button next to the corresponding GPIO.

32wifigpio-gpiostat

Individual GPIO can be configured in three modes.

1. Digital Input(I/P)
2. Digital Output(O/P)
3. Analog Input

Digital Input(I/P)

To configure a GPIO as Digital Input, click on corresponding GPIOs Change Config button. Select Digital I/P radio and click the Submit button.

32wifigpio-digitalinput

Digital Output(O/P)

To configure a GPIO as Digital Output, click on corresponding GPIOs Change Config button. Select Digital O/P radio and click the Submit button.

32wifigpio-digitaloutput

Analog Input (I/P)

To configure a GPIO as Analog Input, click on corresponding GPIOs Change Config button. Select Analog I/P radio and click the Submit button.

Device Settings

Device Settings page displays the current firmware version, Device ID, Account Settings, Basic Network Settings and WiFi Setings. A logged in user can change and save the Device ID, User name, Password and network settings.

In the above image, firmware version is displayed as 00000001, default device ID 00000000, default User name and Password as ‘admin’. The user can change and save the Device ID, User name and Password as explained in command set (Page No.23) or changing the appropriate field on this page and clicking on the save button on the right side. The User name and Password can be reset to factory defaults via Factory Reset explained elsewhere in this document. The Basic Network Settings Shows the Device MAC address, Host Name and IP Address. The default host name and IP Address can also be changed according to the user wish. After saving changes the board will reboot with the new network settings. WiFi Setting can’t be changed from here.

Controlling the Module Through TELNET Interface

The simple set of ASCII based human readable command set supported by this module makes controlling GPIOs easy via TELNET protocol very easy. The following sections give examples of how to use the module with Hyper Terminal and Tera Term.

To use this module with Hyper Terminal, please follow the steps below.

  • Connect the module on a WiFi enabled network.
  • Open Hyper Terminal and enter the IP address corresponding to the module, leave the port number as 23.
  • Click OK.

  • If everything goes well, you should be presented with a screen as below.
  • Select the properties button and do as same as shown below, then press OK.

  • Type in the TELNET User name and Password when asked and press enter key.

  • Press ENTER key again and the command prompt should appear. Commands listed in the table below (please see section “Sending Commands”)can be entered here now. For example, here is the response for “ver” command.

Using the GPIO module with Tera Term is just as easy. Please follow the steps below.

Tera Term is an open source software. A free copy can be downloaded from http://en.sourceforge.jp/projects/ttssh2/releases/

  • Run Tera Term and type in the IP address corresponding to the module in the “New connection” dialog and click OK.

16wifigpio-telnet5

  • Then select the terminal setup from the setup button and make sure the settings are as shown below, and press OK.

16wifigpio-telnet6

  • Type the User name and Password when asked.

  • Press ENTER key and the command prompt should appear. Commands listed in the table below (please see section “Sending Commands”) can be entered here now. For example, here is the response for “ver” command.

Sending Commands

One of the most powerful features of this module is the simple easy to use command set it supports. This command set allows for a very simple interface to access the features of the module through TELNET protocol. The following sections give details of the command set and how to use the command set.

The command set

This product supports a very simple command set that is designed to be less cryptic and easy to use manually (using terminal emulation programs that support TELNET) or through a program written in one of the many supported languages.

List of currently supported commands.

No. Command Parameters Example Description
1ver None ver Returns firmware Version
2id get/set xxxxxxxx id get, id set 12345678 Reads/Sets id of the module
3usr get/set xxxxxxxx usr get, usr set admin Reads/Sets user name
4pass get/set xxxxxxxx pass get, pass set admin Reads/Sets password
5gpioset/clear/read,
gpio number
readall/writeall/
iomask/iodir
notify on/off/get
gpio set 0, gpio clear 0,
gpio read 0, gpio readall,
gpio writeall ffff,
gpio iomask ffff,
gpio iodir 0000,
gpio notify on,
gpio notify off,
gpio notify get
Control General Purpose
Input/Output
gpio notify enables and disables the interrupt functionality in inputs
6adc read, channeladc read 0Read Analog to Digital
Converter input
7wifimacgetwifimac getReads the MAC address of Device

The table below has more detailed information about available commands.

No. Command Example Description
1ver ver Returns current firmware version.
2id
id get
id set xxxxxxxx
Id get reads the module ID. Id set will assign a new ID to the module. “x” stands for alphanumeric characters including symbols. The new ID must be exactly 8 characters in length.
3usr usr get
usr set xxxxxxxx
usr get reads the default User name. usr set will assign a new usr name to the module. “x” stands for alphanumeric characters including symbols. The new User name can be 1 – 8 characters length.
4pass pass get
pass set xxxxxxxx
pass get reads the default Password. pass set will assign a new Password to the module. “x” stands for alphanumeric characters including symbols. The new Password can be 1 – 8 characters length.
5gpiogpio set x
Sets the GPIO output status to high. Here “x” is the number of the GPIO. This command accepts GPIO number from 0 -9 and A – F, total 16 values Please see examples below.
gpio set 0 – Sets GPIO 0 to high state
gpio set A – Sets GPIO 10 to high state
gpio clear xSets the GPIO output status to low. Here “x” is the number of the GPIO. This command accepts GPIO number from 0 -9 and A – F, total 16 values Please see examples below.

gpio clear 0 – Sets GPIO 0 to low state
gpio clear A – Sets GPIO 10to low state
gpio read xReads the digital status present at the input mentioned. Here “x” stands for the number of GPIO. This command accepts GPIO number from 0 -9 and A – F, total 16 values. The response will be either “on” or “off” depending on the current digital state of the GPIO. Please see examples below.

gpio read 0 – Reads GPIO 0 status
gpio read 4 – Reads GPIO 4 status
gpio iomask xxxxSet mask for selectively update multiple GPIOs with writeall/iodir command. A hexadecimal value(xxxx) must be specified with desired bit positions set to 0 or 1 with no “0x” prepended (eg 0002, 00ff). A 0 in a bit position mask the
corresponding GPIO and any update to that GPIO is ignored during writeall/iodir command. A 1 in a bit position will unmask that particular GPIO and any updates using writeall/iodir command will be applied to that GPIO. This mask does not affect the operation of set and clear commands.

gpio iomask ffff – Unmask all GPIOs.
gpio iomask 0000 – mask all GPIOs.
gpio iodir xxxxSets the direction of all GPIO in a single operation. A hexadecimal value(xxxx) must be specified with desired bit positions set to 0 or 1 with no “0x” prepended (eg 0002, 0045, 00ff). A 0 in a bit position configures that GPIO as output and 1
configures as input. Before using gpio readall/writeall commands, the direction of GPIO must be set using “gpio iodir xxxx” command. GPIO direction set by using iodir command will be modified with subsequent set/clear/read commands (only affects the GPIO accessed using these commands).

gpio iodir 0000 – Sets all GPIO to output
gpio readallReads the status of all GPIO in a single operation. The return value will a hexadecimal number with binary value 1 at bit positions for GPIO in ON state and 0 for GPIO in OFF state. Eg: a return value 0000 (binary 0000 0000 0000 0000 ) means all GPIO are OFF. A value ffff (binary 1111 1111 1111 1111) means all GPIO are ON.

gpio readall – Reads all GPIO status
gpio writeall xxxxControl all GPIO in a single operation. A hexadecimal value (xxxx) must be specified with desired bit positions set to 0 or 1. A value 0 at a bit position will turn off the corresponding GPIO. A value 1 at a bit position will turn on the corresponding GPIO.

gpio writeall ffff – Sets all GPIO to high state
gpio notify onEnables the interrupt operation. If it is on, then the change(logic High/Low) on any input pins display on Telnet. Format of the respnce is:
#
Present value = Hex value read before changing state on I/P pin.
Past value = Hex value read after changing state on I/P pin.
IODIR = current IODIR value in Hex.
Eg:- # FFFE FFFF FFFF ->Represents the IO0 is changed from HIGH to LOW and current iodir value is FFFF (i.e. all pins as input).
gpio notify offDisable the interrupt operation
gpio notify getReads the current status of interrupt notify command, whether it is enabled or disabled.
6adcadc read x
Reads the analog voltage present at the ADC input mentioned. “x” stands for the number of ADC input. The response will be a number that ranges from 0 – 1023. This command accepts adc number from 0 -9 and A – D, total 14 values. Please see examples below.

adc read 0 – Reads analog input 0
adc read D – Reads analog input 13
7wifimacwifimac getReads the MAC address of the device.
Eg: wifimac get - MAC: 78 CE ED 34 7C A3.

Additional Information

Analog to Digital Converter

32 Channel WiFi GPIO do support Analog to Digital Conversion on some of the GPIO terminals. A list of GPIOs that supports analog function in this product is listed elsewhere in this document. There is no special command required to execute to switch between analog and digital mode. Executing “adc” command will set the GPIO to analog mode and executing “gpio” command will set the GPIO back to digital mode on the fly. Resolution of the ADC is 10 bits unless otherwise noted. The input voltage range of the ADC is 0 – VDD (this product uses 3.3V power supply, so the range will be 0 – 3.3V). The result will be returned as a number starting at zero and ending at 1023. Zero indicates zero volts at the ADC input and 1023 indicates VDD (3.3V for this product) at ADC input.

Using GPIOs with Switches

It is possible to read the position of a switch that is connected to a GPIO. A SPST or SPDT switch is recommended to use with GPIOs. Push switches do maintain the contacts closed only for a very short time so using them is discouraged. The fundamental idea of using a switch with GPIO is to have the switch cause a voltage level change at the GPIO pin when pressed. Usually this is achieved by using an external pull-up resistor along with the switch. The pull up resistor is connected between the GPIO and VDD and the switch is connected between the GPIO and ground. When the switch is not pressed, the pull-up resistor will cause the GPIO to stay at VDD voltage level. When the switch is pressed, the GPIO is short circuited to ground and stays at zero voltage. This change in voltage and thus the position of the switch can be read using “gpio read” command.32wifigpio-switches

Technical Specifications

Parameter * Value Unit
Basic Specifications
Number of GPIOs 32

Number of analog inputs (Multiplexed with GPIOs) 14
Digital circuit power supply voltage (external)
7-12
V
Maximum current drawn by digital circuitry 200 mA
IO Specifications
Maximum IO source current IO0-IO3125 mA
Maximum IO sink current IO0-IO3125 mA
GPIO input low voltage
0.15 V
GPIO input high voltage 3.3 V
GPIO output low voltage 0 V
GPIO output high voltage 3.3 V
ADC Specifications
Resolution10 bits
Full scale range 0 – VDD V
Reference voltage VDDV
Recommended Impedance of Analog Voltage Source 2.5

Frequently Ask Question

Q. What is the connector marked as ICSP on this module?
A. This connector is used to program the on-board microcontroller. This connector is primarily intended for factory use.

Q. I need a customized version of this product, can Numato do the customization for me?
A. Yes, we can definitely do customization but there may be minimum order requirements depending on the level of customization required. Please write to [email protected] for a quote.

Q. Where can I buy this product?
A. All Numato products can be ordered directly from our web store http://www.numato.com. We accept major credit cards and Paypal and ship to almost all countries with a few exceptions. We do have distributors in many countries where you can place your order. Please find the current list of distributors at http://numato.com/distrib.

Mechanical Dimensions

Suggest Edit