Your cart is empty
GainSpan WiFi Shield for Arduino - GS1011MIP

GainSpan WiFi Shield for Arduino - GS1011MIP

$52.95

Description:

This is the WiFi adapter board that compiles with Arduino and STM32 Spruce developed by Solid Digital. The GS1011 module is a highly integrated ultra low power wireless single chip which contains an 802.11b radio, media access controller (MAC) and baseband processor, on-chip flash memory and SRAM, and an applications processor all on a single package. Along with its embedded software stack it offers a highly scalable, reliable, manageable and secure wireless link to meet the growing demand of wireless sensor networks utilizing the broadly accepted IEEE 802.11b,g,n standards infrastructure.

Features:

  • Supports IEEE 802.11
  • Seamlessly integrates with existing 802.11b/g infrastructure and utilizes the 802.11 security, manageability, ease-of-use, and quality of service
  • 802.11i/WPA2 Authentication, AES Hardware encryption
  • Optimized for battery powered application with very low power consumption for multiple years of battery life
  • PCB antenna: Range 200-300M+ Outdoor (Typical Estimate)
  • Two 32-bit ARM7 CPU @44MHz, 1 for applications (APP) : 1 dedicated to radio (WLAN)
  • 2 UART , I2C, 2 SPI, 2 ADC, 3 PWM, and 32 GPIO
  • Operates at 3.3V

Notes

  1. As WiFi shares the Arduino hardware ports with FT232, when you download the programs, remove the WiFi module first.
  2. More details see: GS1011datasheet, Serial_to_WiFi_Command_Reference, Schematic and samples.
  3. Applications will be listed in https://www.soliddepot.com/forum/ . Please attention to that.

Application for example:

1. Download the arduino sample code below:

#include <NewSoftSerial.h>

#include <string.h>

int number;
char Receive_data[100];
NewSoftSerial wifi(2,3);//2:rx   3:tx
void setup() {
  pinMode(3, OUTPUT);
  Serial.begin(9600);
  wifi.begin(9600);
  delay(1000);
  WIFI_INIT();
}

void loop() {

wifi.print("S0");                                                //Befor S0 is not space, it is ASCII of esc key, 0x1b

wifi.println("Hello");                                           // send "Hello"

delay(1000);
if(Serial.available())
{
  number=Serial.available();
  for(char i=0;i<number;i++)
  {
    Receive_data[i]=Serial.read();
    Serial.print(Receive_data[i]);
  }
}

delay(1000);
}
void WIFI_INIT(void)
{
AT:
wifi.println("AT");
delay(1000);
if(Serial.available())
{
  number=Serial.available();
  for(char i=0;i<number;i++)
  {
    Receive_data[i]=Serial.read();
    Serial.print(Receive_data[i]);
  }
  if(Receive_data[number-7]=='O' && Receive_data[number-6]=='K')
  {
    Serial.println("ATWD");
    goto ATWD;
  }
  else
  {
    Serial.println("ATAT");
    goto AT;
  }
}
ATWD:
wifi.println("AT+WD");
delay(1000);
wifi.println("AT+DGPIO=31,0");
delay(1000);
if(Serial.available())
{
  number=Serial.available();
  for(char i=0;i<number;i++)
  {
    Receive_data[i]=Serial.read();
    Serial.print(Receive_data[i]);
  }
  if(Receive_data[number-7]=='O' && Receive_data[number-6]=='K')
  {
    Serial.println("ATNDHCP");
    goto ATNDHCP;
  }
  else
  {
    Serial.println("ATATWD");
    goto AT;
  }
}

ATNDHCP:
wifi.println("AT+NDHCP=1");
delay(1000);
if(Serial.available())
{
  number=Serial.available();
  for(char i=0;i<number;i++)
  {
    Receive_data[i]=Serial.read();
    Serial.print(Receive_data[i]);
  }
  if(Receive_data[number-7]=='O' && Receive_data[number-6]=='K')
  {
    Serial.println("AT+wwpa");
    goto ATWWPA;
  }
  else
  {
    Serial.println("ATATNDHC");
    goto AT;
  }
}
ATWWPA:
wifi.println("AT+WWPA=wxst2010");
delay(1000);
if(Serial.available())
{
  number=Serial.available();
  for(char i=0;i<number;i++)
  {
    Receive_data[i]=Serial.read();
    Serial.print(Receive_data[i]);
  }
  if(Receive_data[number-7]=='O' && Receive_data[number-6]=='K')
  {
    //Serial.println("AT+WA");
    goto ATWA;
  }
  else
  {
    Serial.println("ATATWPA");
    goto AT;
  }
}

ATWA:
wifi.println("AT+WA=WuXi-Suteng");
delay(1000);
if(Serial.available())
{
  number=Serial.available();
  for(char i=0;i<number;i++)
  {
    Receive_data[i]=Serial.read();
     //Serial.print('t');
    Serial.print(Receive_data[i]);
  }
}
do{}
while(Serial.available()==0);                     // do{}while() wait for the return value of AT+WA command
delay(1000);                                       // This delay is important,

number=Serial.available();                       

Serial.println(number);
if(Serial.available())
{
  number=Serial.available();
  for(char i=0;i<number;i++)
  {
    Receive_data[i]=Serial.read();
    Serial.print(Receive_data[i]);
  }
  if(Receive_data[number-7]=='O' && Receive_data[number-6]=='K')
  {
    Serial.println("connecd");
    goto ATDGPIO;
  }
  else
  {
    Serial.println("ATATWA");
    goto AT;
  }
}
 
ATDGPIO:
wifi.println("AT+DGPIO=31,1");
delay(1000);
if(Serial.available())
{
  number=Serial.available();
  for(char i=0;i<number;i++)
  {
    Receive_data[i]=Serial.read();
    Serial.print(Receive_data[i]);
  }
}

Serial.println("test");
/************** wifi as master of TCP/IP protocol ************************/
/*
ATNSTCP:
wifi.println("AT+NSTCP=8010");
delay(1000);
if(Serial.available())
{
  number=Serial.available();
  for(char i=0;i<number;i++)
  {
    Receive_data[i]=Serial.read();
    Serial.print(Receive_data[i]);
  }
}
*/
/************** wifi as slave of TCP/IP protocol ************************/
ATNSTCP:
wifi.println("AT+NCTCP=192.168.2.102,8010");     //when the other wifi modules connected, it will available. Otherwise show FHello ERROR: INVALID INPUT 

//delay(1000);
if(Serial.available())
{
  number=Serial.available();
  for(char i=0;i<number;i++)
  {
    Receive_data[i]=Serial.read();
    Serial.print(Receive_data[i]);
  }
}
}

Note: Due to downloading programs takes arduino hardware serial ports, so when download programs, you need to pull out the connection jump J5 of wifi module and the arduino hardware serial.

2. Open the serial port debug tool and then open the arduino port, you can see:

At this time wifi module is as client, connected to the server whose IP address is 192.168.2.102 and the port is 8010, but the server is not opened, so the connection fails.

3. Open the PC as the server,  then wifi module will cinnect it

You can see that PC will receive the data (Hello) from wifi module, see below:

Downloads:


Add to Cart:

  • Model: GS_WIFI_SHIELD_ARDUINO
  • 100 Units in Stock
  • Manufactured by: SOLID Technologies