Internet of Things with ESP8266

4.7 (9 reviews total)
By Marco Schwartz
    Advance your knowledge in tech with a Packt subscription

  • Instant online access to over 7,500+ books and videos
  • Constantly updated with 100+ new titles each month
  • Breadth and depth in over 1,000+ technologies
  1. Getting Started with the ESP8266

About this book

The Internet of Things (IoT) is the network of objects such as physical things embedded with electronics, software, sensors, and connectivity, enabling data exchange. ESP8266 is a low cost WiFi microcontroller chip that has the ability to empower IoT and helps the exchange of information among various connected objects. ESP8266 consists of networkable microcontroller modules, and with this low cost chip, IoT is booming. This book will help deepen your knowledge of the ESP8266 WiFi chip platform and get you building exciting projects.

Kick-starting with an introduction to the ESP8266 chip, we will demonstrate how to build a simple LED using the ESP8266. You will then learn how to read, send, and monitor data from the cloud. Next, you’ll see how to control your devices remotely from anywhere in the world. Furthermore, you’ll get to know how to use the ESP8266 to interact with web services such as Twitter and Facebook. In order to make several ESP8266s interact and exchange data without the need for human intervention, you will be introduced to the concept of machine-to-machine communication.

The latter part of the book focuses more on projects, including a door lock controlled from the cloud, building a physical Bitcoin ticker, and doing wireless gardening. You’ll learn how to build a cloud-based ESP8266 home automation system and a cloud-controlled ESP8266 robot. Finally, you’ll discover how to build your own cloud platform to control ESP8266 devices.

With this book, you will be able to create and program Internet of Things projects using the ESP8266 WiFi chip.

Publication date:
July 2016
Publisher
Packt
Pages
226
ISBN
9781786468024

 

Chapter 1. Getting Started with the ESP8266

In this chapter, we are going to start by setting up the ESP8266 chip. We will learn how to choose the right module for your project and get all the additional hardware you need to use the chip. We will also see how to connect the ESP8266 to your computer, so you can program it using a USB cable.

Then, we are going to see how to configure and upload code to the ESP8266 chip. For that, we will be using the Arduino IDE. This makes using the ESP8266 much easier, as we will be using a well-known interface and language to configure the chip. We will also be able to use most of the already existing Arduino libraries for our projects. Let's start!

 

How to choose your ESP8266 module


We are first going to see how to choose the right ESP8266 module for your project. There are many modules available in the market and it is quite easy to get lost with all the choices available.

The first one that you have probably heard of is the small ESP8266 Serial Wireless Transceiver module:

This module is the most famous one, as it is really small and only costs $5. However, the number of accessible GPIO pins (input/output pins) is quite limited. It is also difficult to plug it into a standard breadboard.

If you choose this module, there are some projects in this book that you might not be able to do. For example, you won't be able to do the projects using analog sensors, as the analog input pin is not accessible.

You can find more information about this module at:

https://nurdspace.nl/images/e/e0/ESP8266_Specifications_English.pdf

But there are many other modules on the market that give you access to all the pins of the ESP8266. For example, I really like the ESP8266 Olimex module, which is also cheap (around $10):

This module can easily be mounted on a breadboard and you can easily access all the pins of the ESP8266. This is the one I will use for most of this book and therefore I also recommend that you use a similar module.

You can find additional details about this module at:

https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardware

One other choice is to use a board based on the ESP-12, which is a version of the ESP8266 made to be integrated on PCBs. This version also gives you access to all the pins of the ESP8266. It is relatively easy to find breakout boards for this chip. For example, this is a board that I bought on Tindie:

You can find more information about this module on:

http://www.seeedstudio.com/wiki/images/7/7d/ESP-12E_brief_spec.pdf

You can also get your hands on the Adafruit ESP8266 breakout board, which also integrates the ESP-12:

http://www.adafruit.com/product/2471

Another solution is to use the NodeMCU development kit, which is similar to the Olimex board but also has an integrated USB-to-Serial converter, as well as an onboard power supply. It is easier to use, but was hard to find at the time this book was written. You can get more information on the NodeMCU website:

http://nodemcu.com/index_en.html

Note that with the NodeMCU module, you will have to translate the pins from the module to the pins defined in the ESP8266 Arduino IDE, which we are going to use. You will find the correspondence between pins here:

https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_en#new_gpio_map

 

Hardware requirements


Let's now take a look at the things we need to make the ESP8266 chip work. It is usually, but incorrectly, assumed that you just need this little chip and nothing else to make it work, but we are going to see that it is not true.

First, you will need some way to program the ESP8266. You can use an Arduino board for that, but for me the really great thing about the ESP8266 is that it can function completely autonomously, using the onboard processor.

So to program the chip, I will use a USB FTDI programmer.

Note

Note that it has to be compatible with the logic level of the ESP8266 chip, so 3.3V.

I have used a module that can be switched between 3.3V and 5V:

You will also need a dedicated power supply to power the chip. This is a point that is often forgotten and leads to a lot of issues. If you are, for example, trying to power the ESP8266 chip from the 3.3V coming from the FTDI board or from an Arduino board, it simply won't work correctly.

Therefore, for most ESP8266 modules, you need a dedicated power supply that can deliver at least 300 mA to be safe. Some boards have an integrated micro-USB port and a voltage regulator that can provide the required current to the ESP8266, but that's not the case with the board we will use in this first chapter. I used a breadboard power supply that can deliver up to 500 mA at 3.3V:

This is a list of all the components that you will need to use the ESP8266 chip:

Hardware configuration

We are now going to take a look at the way to configure the hardware for the first use of your ESP8266 board. This is how we connect the different components:

Depending on the board you are using, the pins can have different names. Therefore, I created pictures to help you out with each module. These are the pins you will need on the small ESP board:

This is the same for the ESP-12 board mounted on a breadboard adapter:

Finally, this is the picture for the Olimex board:

This is what the Olimex board will look like at the end:

Make sure that you connect everything according to the schematics or you won't be able to continue.

Note

Also, make sure that all the switches of your components (FTDI module and power supply) are set to 3.3V, or it will damage your chip.

Also, connect one wire to the GPIO 0 pin of the ESP8266. Don't connect it to anything else for now, but you will need it later to put the chip in programming mode.

 

Installing the Arduino IDE for the ESP8266


Now that we have completely set up the hardware for the ESP8266, we are ready to configure it using the Arduino IDE.

The most basic way to use the ESP8266 module is to use serial commands, as the chip is basically a Wi-Fi/Serial transceiver. However, this is not convenient and this is not what I recommend doing.

What I recommend is simply using the Arduino IDE, which you will need to install on your computer. This makes it very convenient to use the ESP8266 chip, as we will be using the well-known Arduino IDE, so this is the method that we will use in the entire book.

We are now going to configure your ESP8266 chip using the Arduino IDE. This is a great way to use the chip, as you will be able to program it using the well-known Arduino IDE and also re-use several existing Arduino libraries.

If this is not done yet, install the latest version of the Arduino IDE. You can get it from http://www.arduino.cc/en/main/software.

Now, you need to take a follow steps to be able to configure the ESP8266 with the Arduino IDE:

  1. Start the Arduino IDE and open the Preferences window.

  2. Enter the following URL into the Additional Board Manager URLs field: http://arduino.esp8266.com/stable/package_esp8266com_index.json

  3. Open Boards Manager from the Tools | Board menu and install the esp8266 platform as shown here:

 

Connecting your module to your Wi-Fi network


Now, we are going to check whether the ESP8266 and the Arduino IDE are working correctly, and connect your chip to your local Wi-Fi network.

To do so, let's perform the following steps:

  1. First, we need to write the code and then upload it to the board. The code is simple; we just want to connect to the local Wi-Fi network and print the IP address of the board. This is the code to connect to the network:

    // Import required libraries
    #include <ESP8266WiFi.h>
    
    // WiFi parameters
    constchar* ssid = "your_wifi_name";
    constchar* password = "your_wifi_password";
    
    void setup(void)
    {  
    // Start Serial
    Serial.begin(115200);
    // Connect to WiFi
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
Serial.print(".");
      }
    Serial.println("");
    Serial.println("WiFi connected");
    // Print the IP address
    Serial.println(WiFi.localIP());
    }
    
    void loop() {
    
    }

    You can simply copy the lines of the preceding code and then paste them into the ESP8266 Arduino IDE that you downloaded earlier. Of course, put your own Wi-Fi name and password in the code. Save this file with a name of your choice.

  2. Now, navigate to Tools | Boards and select Generic ESP8266 Module. Also, select the correct Serial port that corresponds to the FTDI converter that your are using.

  3. After that, we need to put the board in the bootloader mode, so we can program it. To do so, connect the pin GPIO 0 to the ground, via the cable we plugged into GPIO 0. Then, power cycle the board by switching the power supply off and then on again.

  4. Now, upload the code to the board and open the Serial monitor when this is done. Set the Serial monitor speed to 115200. Now, disconnect the cable between GPIO 0 and GND and power cycle the board again. You should see the following message:

    WiFi connected
    192.168.1.103
    

If you can see this message and an IP, congratulations, your board is now connected to your Wi-Fi network! You are now ready to build your first projects using the ESP8266 chip.

 

Summary


In this first chapter of the book, we learned the fundamentals about the ESP8266. We first learned about all the different boards that are available for your ESP8266 projects. Then, we saw how to wire your ESP8266 modules. Finally, we saw how to install the Arduino IDE and to configure it for the ESP8266, and we ended the chapter by actually uploading a very simple sketch to the ESP8266.

In the next chapter, we are going to use the tools we set up and build some basic projects using the ESP8266 Wi-Fi chip.

About the Author

  • Marco Schwartz

    Marco Schwartz is an electrical engineer, entrepreneur, and blogger. He has a master's degree in electrical engineering and computer science from Supélec, France, and a master's degree in micro engineering from the Ecole Polytechnique Fédérale de Lausanne (EPFL), Switzerland.

    He has more than five years' experience working in the domain of electrical engineering. Marco's interests center around electronics, home automation, the Arduino and Raspberry Pi platforms, open source hardware projects, and 3D printing. He has several websites about the Arduino, including the Open Home Automation website, which is dedicated to building home automation systems using open source hardware.

    Marco has written another book on home automation and the Arduino, called Home Automation With Arduino: Automate Your Home Using Open-source Hardware. He has also written a book on how to build Internet of Things projects with the Arduino, called Internet of Things with the Arduino Yun, by Packt Publishing.

    Browse publications by this author

Latest Reviews

(9 reviews total)
It was a fast and easy purchase
Its a great title to quick start your project using IoT
Great value for the money!

Recommended For You

Book Title
Unlock this book and the full library for FREE
Start free trial