ESP8266: Difference between revisions

From Nottinghack Wiki
Jump to navigation Jump to search
Sid351 (talk | contribs)
No edit summary
 
(13 intermediate revisions by 2 users not shown)
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 =


The ESP8266 is a microcontroller that has WiFi built in, making it a great starting device for all things IoT.
The ESP8266 is a microcontroller that has WiFi built in, making it a great starting device for all things IoT.
== 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 [http://www.esp8266.com/] 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.
=== Pulse Width Modulation (PWM) ===
While it's possible to use PWM on most of the GPIO pins, and in fact most documentation reads "any of the GPIO pins", with NodeMCU 0.9.6 build 20150704 firmware it is not possible to use PWM on GPIO 16 (I/O interrupt 0).
=== Analogue Reading ===
Only the ADC0 pin is capable of Analogue reading and reads a max of 1V with a 10 bit reading (0(min)->1023(max))


== Useful Links ==
== Useful Links ==
[[ESP8266/Bookmarks|Find more links on the Bookmarks page]]
[http://www.instructables.com/id/Get-Started-with-ESP8266-Using-AT-Commands-NodeMCU/step3 Instructibles Getting Started]
[http://www.instructables.com/id/Get-Started-with-ESP8266-Using-AT-Commands-NodeMCU/step3 Instructibles Getting Started]


Line 33: Line 49:


Re-flashing firmware http://www.xess.com/blog/esp8266-reflash/
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 [http://www.esp8266.com/] 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 ==
== Getting Started ==
Line 44: Line 55:
=== Modules ===
=== Modules ===
A subsection to explain the different modules and what differs between them
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


[http://l0l.org.uk/2014/12/esp8266-modules-hardware-guide-gotta-catch-em-all/ ESP8266 Modules Explained]
[http://l0l.org.uk/2014/12/esp8266-modules-hardware-guide-gotta-catch-em-all/ ESP8266 Modules Explained]


=== NodeMCU v2 ===
=== NodeMCU v2 ===
[https://wiki.nottinghack.org.uk/wiki/NodeMCU_v2 NodeMCU_v2 Page]


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.
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.
Line 82: Line 94:
==== NodeMCU ====
==== NodeMCU ====
Uses the Lua scripting/programming language to control the ESP8266
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/
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/
Line 92: Line 106:
#[http://esp8266.ru/esplorer/ ESPlorer]
#[http://esp8266.ru/esplorer/ ESPlorer]
#[https://nodelua.org/ NodeLua], an open source web based IDE (Integrated Development Environment)
#[https://nodelua.org/ NodeLua], an open source web based IDE (Integrated Development Environment)
#[https://studio.zerobrane.com/ ZeroBrane Studio - A (general) Lua IDE for writing scripts in]
##NOTE: This IDE is not specific to the NodeMCU implementation, but can be used to write general Lua code.


==== Arduino ====
==== Arduino ====
An Arduino based firmware.
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.
<gallery>
File:Nodemcu-ard-boardsman.png
</gallery>


== Projects ==
== Projects ==
Line 101: Line 122:
* Michael's [[Status_Boards]] project for Hackspace infrastructure status reporting
* Michael's [[Status_Boards]] project for Hackspace infrastructure status reporting
* Toby's [[WiFi-enabled Banjo]]
* Toby's [[WiFi-enabled Banjo]]
* Owen's [https://github.com/sid351/ESP8266-CameraController Timelapse Camera Controller]
* Owen's [https://github.com/sid351/ESP8266-RGB-Controller RGB LED Strip Controller]
[[Category:Microcontroller]]

Latest revision as of 12:41, 12 February 2019

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.

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.

Pulse Width Modulation (PWM)

While it's possible to use PWM on most of the GPIO pins, and in fact most documentation reads "any of the GPIO pins", with NodeMCU 0.9.6 build 20150704 firmware it is not possible to use PWM on GPIO 16 (I/O interrupt 0).

Analogue Reading

Only the ADC0 pin is capable of Analogue reading and reads a max of 1V with a 10 bit reading (0(min)->1023(max))

Useful Links

Find more links on the Bookmarks page

Instructibles Getting Started

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/

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

ESP8266 Modules Explained

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.

Connecting to an ESP8266 module

What you'll need:

  1. An ESP8266 module with
  2. A breadboard and suitable cables
  3. A USB to TTL Serial adapter
  4. 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:

  1. LuaLoader
  2. ESPlorer
  3. NodeLua, an open source web based IDE (Integrated Development Environment)
  4. ZeroBrane Studio - A (general) Lua IDE for writing scripts in
    1. NOTE: This IDE is not specific to the NodeMCU implementation, but can be used to write general Lua code.

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