Wireless Wifi ESP8266 ESP-12E Module

£ 4.65

FREE DELIVERY

Bringing the internet of things a step closer we have the fantastic ESP8266. This tiny little module has WiFi, TCP/IP stack, and all the required bits to get a microcontroller on the Internet. The ESP8266 is a UART to WiFi module, allowing nearly anything to get on the Internet.

The ESP8266 offers a complete and self-contained Wi-Fi networking solution, allowing it to either host the application, or to offload all Wi-Fi networking functions from another application processor. It has powerful on-board processing and storage capabilities that allow it to be integrated with the sensors and other application specific devices through its GPIOs with minimal development up-front and minimal loading during runtime.

The on-board user-programmable microcontroller comes complete with a SDK with sources for an SSL, JSON, and lwIP library. The LX106 core has example code for using the spare pins on this board as GPIOs, I2C and SPI busses, and a UART.

Please note that this is a 3.3V module. Applying 5V will destroy it. To drive this module from an Arduino you would need a logic level converter.

  • SDIO 2.0, SPI, UART
  • 32-pin QFN package
  • Integrated RF switch, balun, 24dBm PA, DCXO, and PMU
  • Integrated RISC processor, on-chip memory and external memory interfaces
  • Integrated MAC/baseband processors
  • Quality of Service management
  • I2S interface for high fidelity audio applications
  • On-chip low-dropout linear regulators for all internal supplies
  • Proprietary spurious-free clock generation architecture
  • Integrated WEP, TKIP, AES, and WAPI engines
  • 802.11 b/g/n
  • Wi-Fi Direct (P2P), soft-AP
  • Integrated TCP/IP protocol stack
  • Integrated TR switch, balun, LNA, power amplifier and matching network
  • Integrated PLLs, regulators, DCXO and power management units
  • +19.5dBm output power in 802.11b mode
  • Power down leakage current of <10uA
  • Integrated low power 32-bit CPU could be used as application processor
  • SDIO 1.1/2.0, SPI, UART
  • STBC, 1×1 MIMO, 2×1 MIMO
  • A-MPDU & A-MSDU aggregation & 0.4ms guard interval
  • Wake up and transmit packets in < 2ms
  • Standby power consumption of < 1.0mW (DTIM3)
  • 1 x ESP8266 module

Wireless Wifi ESP8266 ESP-12E Module

Bringing the internet of things a step closer. Plug and play if your microcontroller is 3.3V and requiring a Logic level shifter if you are using a 5V microcontroller.

image image
  • 1 x ESP8266 Wireless Wifi Module
  • 1 x Logic Level Shifter
  • jumper Wire
  • Breadboard
  • Arduino
image

Basic Arduino Example Sketch



#include 
#define SSID "linksys"      //your wifi ssid here
#define PASS "ffffffffff"   //your wifi wep key here
 
#define DST_IP "220.181.111.85" //baidu.com
#define HOST "www.baidu.com"
 
SoftwareSerial dbgSerial(10, 11); // RX, TX
 
char myChar;
 
void setup()
{
  pinMode(9, OUTPUT);
  pinMode(13, OUTPUT);
 
  //blink led13 to indicate power up
  for(int i = 0; i<15; i++)
  {
   digitalWrite(13,HIGH);
   delay(50);
   digitalWrite(13,LOW);
   delay(50);
  }
 
  // Open serial communications for WiFi module:
  Serial.begin(115200);
  // Set time to wait for response strings to be found
  Serial.setTimeout(5000);
 
  //Open software serial for debugging - must use serial to usb (FTDI) adapter
  //dbgSerial.begin(19200); //can't be faster than 19200 for softserial
  dbgSerial.begin(38400);   //38400 softserial works fine for me
 
  dbgSerial.println("ESP8266 Demo");
  delay(100);
 
  //test if the module is ready
  Serial.println("AT+RST");    
  if(Serial.find("ready"))
  {
    dbgSerial.println("Module is ready");
    delay(1000);
    //connect to the wifi
    boolean connected=false;
    for(int i=0;i<5;i++)
    {
      if(connectWiFi())
      {
        connected = true;
        break;
      }
    }
    if (!connected)
    {
      //die
      while(1);
    }
 
    delay(5000);
    //set the single connection mode
    Serial.println("AT+CIPMUX=0");
  }
  else
  {
    dbgSerial.println("Module didn't respond.");
    delay(100);
   
    //serial loop mode for diag
    while(1){
      while (dbgSerial.available()) {
        myChar = dbgSerial.read();
        Serial.print(myChar);
      }
 
      while (Serial.available()) {
        myChar = Serial.read();
        delay(25);
        dbgSerial.print(myChar);
      }
    }
  }
}
 
void loop()
{
  String cmd = "AT+CIPSTART=\"TCP\",\"";
  cmd += DST_IP;
  cmd += "\",80";
  Serial.println(cmd);
  dbgSerial.println(cmd);
  if(Serial.find("Error")) return;
  cmd = "GET /status HTTP/1.0\r\nHost: ";
  cmd += HOST;
  cmd += "\r\n\r\n";
 
  Serial.print("AT+CIPSEND=");
  Serial.println(cmd.length());
  if(Serial.find(">"))
  {
    dbgSerial.print(">");
  }
  else
  {
    Serial.println("AT+CIPCLOSE");
    dbgSerial.println("connect timeout");
    delay(1000);
    return;
  }
 
  Serial.print(cmd);
 
  delay(500);
  //Serial.find("+IPD");
  while (Serial.available())
  {
   char c = Serial.read();
   dbgSerial.write(c);
   if(c=='\r') dbgSerial.print('\n');
   delay(50);
  }
 
 dbgSerial.println();
 dbgSerial.println("====");
 delay(1000);
}
 
 
boolean connectWiFi()
{
  Serial.println("AT+CWMODE=1");
  String cmd="AT+CWJAP=\"";
  cmd+=SSID;
  cmd+="\",\"";
  cmd+=PASS;
  cmd+="\"";
  dbgSerial.println(cmd);
  Serial.println(cmd);
  delay(2000);
  if(Serial.find("OK"))
  {
    dbgSerial.println("OK, Connected to WiFi.");
    return true;
  }
  else
  {
    dbgSerial.println("Can not connect to the WiFi.");
    return false;
  }            
}