Arduino ESP8266 WiFi Shield

This is a common ESP8266 Arduino shield with the following markings:
WiFi 2.4 GHz
802.11 b/g/n
Designed in
Beijing
P.R.China
Moer info $ tech
support Please go
to elecshop.ml
Arduino ESP8266 WiFi
Shield Version 1.0
by WangTongze
The voltage switching circuitry on this shield doesn't work properly as it
arrives, so you'll have to modify it slightly if you intend it to work as
a shield (with SW1 and SW2 set to ON).
The DIP switches are:
| Switch | Function |
|---|---|
| SW1 | Connect ESP8266 TX to pin D0 |
| SW2 | Connect ESP8266 RX to pin D1 |
| SW3 | Enable bootloader mode |
| SW4 | Use DFU LED to show serial activity (?) |
Power is drawn from the 5v pin (not Vin) so if connecting to Pixl.js
ensure that Vin and 5V are shorted on the solder jumper
unless you plan to power the shield separately.
Using as-is
- Ensure
SW1andSW2areOFF - Connect a jumper lead from the
TXDpin onDebug PorttoD0on the Arduino header - Connect a jumper lead from the
RXDpin onDebug PorttoD1on the Arduino header
Rewiring

- Unsolder all the surface mount components to the right-hand side of the ESP8266
- Short across the two transistor outlines from the right pad to the bottom-left pad
- Ensure
SW1andSW2areON TXDandRXDshould now be available onD0andD1at 3.3v levels
Pixl.js
If connecting to Pixl.js you should be aware that when if Pixl.js detects a
connection on D0 at boot, it'll start using Serial1
as a console device rather than the LCD.
To avoid this you'll need to explicitly set the console back to the LCD at boot time:
function onInit() {
Terminal.setConsole();
}
Software
Note: your module may not come with ESP8266 AT firmware installed. To fix this,
see the the ESP8266 page. If you're using Pixl.js
you can now update the firmware on the ESP8266 module via the Flasher section of the Web IDE.
Client
To connect to a WiFi access point.
var WIFI_NAME = "WiFi_Name";
var WIFI_PASS = "WPA2_Key";
var wifi;
function getPage() {
require("http").get("http://www.pur3.co.uk/hello.txt", function(res) {
console.log("Response: ",res);
res.on('data', function(d) {
console.log("--->"+d);
});
});
}
function go() {
Serial1.setup(115200,{rx:D0,tx:D1});
wifi = require("ESP8266WiFi_0v25").connect(Serial1, function(err) {
if (err) throw err;
console.log("Connecting to WiFi");
wifi.connect(WIFI_NAME, WIFI_PASS, function(err) {
if (err) throw err;
console.log("Connected");
// Now you can do something, like an HTTP request
getPage();
});
});
}
Access point
To set up as an access point called ESP123 with password HelloWorld
that serves up a webpage on address 192.168.4.1:
var wifi;
function pageHandler(req, res) {
res.writeHead(200);
res.end("Hello World");
}
function go() {
Serial1.setup(115200,{rx:D0,tx:D1});
wifi = require("ESP8266WiFi_0v25").connect(Serial1, function(err) {
if (err) throw err;
console.log("Connecting to WiFi");
wifi.createAP("ESP123","HelloWorld",5,"wpa2_psk", function(err) {
if (err) throw err;
console.log("Connected!");
require("http").createServer(pageHandler).listen(80);
});
});
}
See the ESP8266 page for more information on how to use the ESP8266, and the Internet page for more examples of things you can do on Espruino with an Internet connection.
Buying
- eBay - the boards mentioned on this page are the ones with the red DIP switch on.
This page is auto-generated from GitHub. If you see any mistakes or have suggestions, please let us know.