Book Image

Developing IoT Projects with ESP32

By : Vedat Ozan Oner
Book Image

Developing IoT Projects with ESP32

By: Vedat Ozan Oner

Overview of this book

Developing IoT Projects with ESP32 provides end-to-end coverage of secure data communication techniques from sensors to cloud platforms that will help you to develop production-grade IoT solutions by using the ESP32 SoC. You'll learn how to employ ESP32 in your IoT projects by interfacing with different sensors and actuators using different types of serial protocols. This book will show you how some projects require immediate output for end-users, and cover different display technologies as well as examples of driving different types of displays. The book features a dedicated chapter on cybersecurity packed with hands-on examples. As you progress, you'll get to grips with BLE technologies and BLE mesh networking and work on a complete smart home project where all nodes communicate over a BLE mesh. Later chapters will show you how IoT requires cloud connectivity most of the time and remote access to smart devices. You'll also see how cloud platforms and third-party integrations enable endless possibilities for your end-users, such as insights with big data analytics and predictive maintenance to minimize costs. By the end of this book, you'll have developed the skills you need to start using ESP32 in your next wireless IoT project and meet the project's requirements by building effective, efficient, and secure solutions.
Table of Contents (18 chapters)
1
Section 1: Using ESP32
7
Section 2: Local Network Communication
12
Section 3: Cloud Communication

Developing a GATT server

When we want to share sensor data with client applications, we need more than a simple beacon. In this example, we will develop a Bluetooth temperature sensor that we can connect to and receive temperature readings by using a mobile application, such as nRF Connect. One interesting feature is that the sensor will be able to push data to the client application when a new reading is available.

The hardware preparation is easy. We will only use a DHT11 connected to GPIO17 of ESP32. After the hardware setup, we configure a new project:

  1. Let's start with a new PlatformIO project with the following platformio.ini:
    [env:az-delivery-devkit-v4]
    platform = espressif32
    board = az-delivery-devkit-v4
    framework = espidf
    monitor_speed = 115200
    lib_extra_dirs =
        ../../common/esp-idf-lib/components

    esp-idf-lib contains the driver for DHT11. The source code is located here:

  2. Then we need to add two files, app.h and app.c, into the project...