ESP8266: Difference between revisions
No edit summary |
|||
Line 1: | Line 1: | ||
= IoThursday = | = IoThursday = | ||
The ESP8266 has been discussed quite a bit in the regular [[IoThursday]] meetings. | The ESP8266 has been discussed quite a bit in the regular [[IoThursday]] meetings. | ||
= ESP8266 = | = ESP8266 = |
Revision as of 15:55, 1 April 2016
IoThursday
The ESP8266 has been discussed quite a bit in the regular IoThursday meetings.
ESP8266
The ESP8266 is a microcontroller that has WiFi built in, making it a great starting device for all things IoT.
Useful Links
Find more links on the Bookmarks page
Everything ESP8266 - Forum, lots of stuff, not always reliable (check posting dates - a lot of stuff may be out-of-date) http://www.esp8266.com/
Deep Sleep - what GPIO to connect, internal firmware issues (Jun2015) http://bbs.espressif.com/viewtopic.php?t=562
Lots of useful information here: https://nurdspace.nl/ESP8266
Complete starter tutorial, including programming via Arduino, AT-mode operation, etc. http://rancidbacon.com/files/kiwicon8/ESP8266_WiFi_Module_Quick_Start_Guide_v_1.0.4.pdf
If YouTube's your thing, try: https://www.youtube.com/watch?v=qU76yWHeQuw
Wiki pages - work in progress http://www.esp8266.nu/index.php/Main_Page
Flash, fancy, UK seller - not so much useful information though. http://esp8266.co.uk/
ESP8266: "It don't come easy!" - Using the ESP8266 as a serial-slave to a Zpuino http://www.xess.com/blog/esp8266-it-dont-come-easy/
NodeMCU Quickstart http://benlo.com/esp8266/esp8266QuickStart.html
Re-flashing firmware http://www.xess.com/blog/esp8266-reflash/
Limitations
As of 2016-04-01 it is not currently possible to route traffic between multiple clients connected to the ESP8266 when it is acting as an Access Point (AP).
To the clients it appears they are in a "client isolation mode" in that they can talk to the ESP8266 but no other devices on that particular WiFi network. Forum posts and questions asked on [1] suggest this may be a limitation of the firmwares currently on offer, and that it may be possible (if someone were willing to spend the time and effort) to develop a routable firmware, however it's not clear if the limited hardware of the modules would be a limiting factor.
Getting Started
A section for useful information on getting started with an ESP8266 module
Modules
A subsection to explain the different modules and what differs between them
List of modules on the ESP8266 community wiki: http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family
NodeMCU v2
An open hardware board (costing about £3.50) that combines the ESP-12-E core (32Mbits(4MBytes) flash) with a CP2102 USB-UART so you can connect it directly to a PC USB with a standard USB micro cable. It comes flashed with a Lua core but that can easily be replaced with an Arduino core with all the Lua core features plus anything vanilla that works with Arduino.
- Official site: http://nodemcu.com/index_cn.html
- Open hardware schematics, PCB layouts, Gerbers, etc: https://github.com/nodemcu/nodemcu-devkit-v1.0
- NB: hype of version numbers when sold by various sellers on ebay! See http://frightanic.com/iot/comparison-of-esp8266-nodemcu-development-boards/ for the lowdown at time of writing.
- Wikipedia page: https://en.wikipedia.org/wiki/NodeMCU
- Michael's initial investigations page at NodeMCU_v2
Connecting to an ESP8266 module
What you'll need:
- An ESP8266 module with
- A breadboard and suitable cables
- A USB to TTL Serial adapter
- A computer to connect to the ESP8266 with
Firmware
A subsection to explain the different firmwares available for the ESP8266 and how they differ
Page with links to different firmwares http://www.electrodragon.com/w/Category:ESP8266_Firmware_and_SDK
Espressif
The default firmware
Article describing the process of re-flashing firmware http://www.allaboutcircuits.com/projects/update-the-firmware-in-your-esp8266-wi-fi-module/
Current RTOS SDK Latest Version: 1.4.0 Release date: Feb 28, 2016 http://bbs.espressif.com/viewtopic.php?f=46&t=1827
Firmware flash download tools (version 2.4 at 31 Mar 31 2016) http://bbs.espressif.com/viewtopic.php?f=57&t=433
NodeMCU
Uses the Lua scripting/programming language to control the ESP8266
See http://nodemcu.readthedocs.org/en/dev/en/ for the documentation.
Page describing the process for flashing NodeMCU firmware into a device, with links to Flasher programs for Win32 and Win64 http://randomnerdtutorials.com/flashing-nodemcu-firmware-on-the-esp8266-using-windows/
Programming
There are a couple of different programs that can be used to upload code and files to an ESP8266 with NodeMCU firmware:
Arduino
The ESP8266 Arduino core brings support for ESP8266 boards and modules to the Arduino environment. It lets you write sketches using familiar Arduino functions and libraries, and run them directly on ESP8266 with no external microcontroller required. ESP8266 Arduino core comes with libraries to communicate over WiFi using TCP and UDP, set up HTTP, mDNS, SSDP, and DNS servers, do OTA updates, use a file system in flash memory, work with SD cards, servos, SPI and I2C peripherals.
Installation into Arduino is simple with recent versions by using the Boards Manager: see http://esp8266.github.io/Arduino/versions/2.1.0/doc/installing.html for a walkthrough guide.
Projects
A section for Hackspace members to fill up with links to their ESP8266 related projects
- Michael's Status_Boards project for Hackspace infrastructure status reporting
- Toby's WiFi-enabled Banjo