How to program the ESP8266 WiFi processor

March 24, 2015

Lang: cs en de es

ESP8266 is a 32 bit microprocessor with integrated WiFi chip and TCP/IP stack.

esp8266-esp-03

The ESP8266 chip can be purchased as a ready-to-use module. Usually under the designation ESP-01 ESP-02 ESP-03 etc. where only the way of implementation differs. These modules contain a crystal, a few passive components, the ESP8266 chip and a flash memory chip which is connected via SPI and the program is loaded in this memory.
The available modules have a program loaded in them that can be used to control the chip using AT commands similar to telephone modems. The device (e.g. microprocessor) is connected to the module via a serial line (RS232 TTL 3,3V). The device is then connected to the Internet via WIFI using such a module.

The fundamental problem the developer encounters with these modules sold with the ESP8266 chip is power supply. The chip operates at 3.3V and needs up to 300mA at peak. This very low voltage and at not entirely negligible current is not entirely normal and there is no stabilizer on the module. Therefore, you need to get some suitable 3.3V power supply or stabilizer. The 3.3V output from Arduino or USB-UART converters is not enough!

The serial link not only communicates with the module, but also allows firmware updates to be uploaded to the module.
Thanks to the fact that the manufacturer provides documentation and a complete SDK it is possible to develop and upload your own program to the module! Therefore, several very interesting porting programs and even new programs were soon introduced:

  • nodemcu is a virtual machine for esp8266 that executes programs written in Lua.
  • micropython for esp8266 Python can also be used to program microcomputers just by having micropython on the device.
  • frankeinsten is a program that allows you to configure the microcontroller from the command line, much like you would if you were logged into a Unix system.
  • esphttpd is an HTTP server that runs directly on the microprocessor, and you can modify processor states or read data via the web.
This makes the modules a development platform in their own right and can be used completely independently. The ESP8266 chip itself has several input/output pins and can, for example, load a program from an SD card using SPI. All the capabilities of the ESP8266 chip are described in the documentation.

Illustration of the solution: the ESP8266 SoC is battery powered and has a temperature and humidity sensor attached to it. It runs a web server and provides the measured value via a web page. Just connect to it with a mobile phone via WiFi - here OpenMoko Neo Freerunner, but of course Android and iOS phones can also be used.

esp8266 webserver freerunner

The ESP8266 chip is an excellent solution for a true IoT (Internet of Things) solution - meaning that every device is connected to the Internet. The microprocessor is also cheap and very powerful. Thanks to the aforementioned projects, no great programming knowledge is needed. Therefore, IoT is really coming....

Články na podobné téma

Python program to control Docker using the API
How to use MailCatcher to test emails
Python OpenAI API
Creating a WebSocket web application and setting up a proxy
Project management: agile software development
How to run old PHP applications
What a good programmer should know
Rust programming language
NodeJS: development, server configuration
Nette security bug CVE-2020-15227
REST API: platform API
Custom web and mail hosting with ISP Config software
Programming in SQL: PostgreSQL, MySQL/MariaDB
HTTPS: secure web
NoSQL database Mongo DB
Connecting to Microsoft SQL Server from Linux
What is the job description of a programmer
Python application localization
Which mail and web hosting to choose
Digispark - Program Atmel ATtiny microcontroller with Arduino IDE
Development for ARM processors with Arduino IDE
Open smartphone with Linux - Openmoko Neo FreeRunner

Newsletter

If you are interested in receiving occasional news by email.
You can register by filling in your email news subscription.


+