Kit Introduction
This is the Myduino IoT Maker Kit, designed specifically for beginners and enthusiasts who want to explore the world of IoT (Internet of Things). The kit includes a comprehensive selection of NodeMCU ESP32 most popular and versatile electronic components, ideal for building smart projects.
Additionally, we provide detailed tutorials that feature project descriptions, step-by-step instructions, and source code. Working through these projects gives you hands-on experience and a solid foundation in IoT concepts. With this kit, you’ll unlock the ability to interact with and control the physical world through smart devices and sensors.
Kit Contents


Introduction to NodeMCU ESP32 Boards
The term ESP32 technically refers to the bare microcontroller chip. However, it’s also commonly used to describe ESP32 development boards. Working with bare ESP32 chips is challenging and impractical, especially for beginners or when testing and prototyping projects. In most cases, it’s much easier and more convenient to use an ESP32 development board.

These development boards include all the essential circuitry needed to power and program the ESP32 chip. They provide a USB connection to your computer, accessible pins for connecting peripherals, built-in LEDs for power and status indicators, a Wi-Fi antenna, and other helpful features. Some boards even come with additional hardware, such as sensors, displays, or a camera, like the ESP32-CAM.
What is the best ESP32 development board for beginners?
For beginners, we recommend using an ESP32 board that has a wide range of available GPIOs and lacks any unnecessary hardware features. It’s also important that it includes a voltage regulator and a USB input for powering the device and uploading code.
In many of our ESP32 projects, we use the ESP32 DEVKIT DOIT board, which we recommend for beginners. There are different versions of this board with various numbers of available pins, including 30, 36, and 38. All versions of the board function similarly.
ESP32 DEVKIT DOIT
We’ll be using the ESP32 DEVKIT DOIT board as a reference. If you have a different board, don’t worry. The information on this page is also compatible with other ESP32 development boards.
The picture below shows the ESP32 DEVKIT DOIT V1 board, version with 30 GPIO pins.

Specifications – ESP32 DEVKIT V1 DOIT
The following table shows a summary of the ESP32 DEVKIT V1 DOIT board features and specifications:
| Number of cores | 2 (dual core) |
| Wi-Fi | 2.4 GHz up to 150 Mbits/s |
| Bluetooth | BLE (Bluetooth Low Energy) and legacy Bluetooth |
| Architecture | 32 bits |
| Clock frequency | Up to 240 MHz |
| RAM | 512 KB |
| Pins | 30, 36, or 38 (depending on the model) |
| Peripherals | Capacitive touch, ADC (analogue to digital converter), DAC (digital to analog converter), I2C (Inter-Integrated Circuit), UART (universal asynchronous receiver/transmitter), CAN 2.0 (Controller Area Network), SPI (Serial Peripheral Interface), I2S (Integrated Inter-IC Sound), RMII (Reduced Media-Independent Interface), PWM (pulse width modulation), and more. |
| Built-in buttons | RESET and BOOT buttons |
| Built-in LEDs | built-in blue LED connected to GPIO2; built-in red LED that shows the board is being powered |
| USB to UART bridge | CP2102 |

This board has a microUSB port that lets you connect it to your computer to upload code or power it up.
It utilises a CP2102 chip (USB-to-UART) to communicate with your computer via a COM port. Some boards use a CH340 chip instead. You’ll need to install the correct driver depending on the chip your board uses so your computer can detect it.
There are also two buttons on the board:
- RESET (EN): Restarts the board.
- BOOT: Puts the board into upload mode (some boards may not have this button).
It also has:
- A blue LED connected to GPIO 2 — useful for testing or debugging.
- A red power LED that turns on when the board is powered.
ESP32 GPIOs Pinout Guide
The ESP32 chip comes with 48 pins with multiple functions. Not all pins are exposed in all ESP32 development boards, and some pins should not be used. The ESP32 DEVKIT V1 DOIT board usually comes with 30 exposed GPIOs that you can use to connect peripherals.
Power Pins
Most boards have these power pins:
- 3V3 – gives 3.3V power
- GND – ground
- VIN – can be used to power the board (if not using USB), or give power to other components (if the board is powered by USB)
GPIO Pins (General Purpose Input/Output)
Each GPIO pin has a number (like GPIO 2, GPIO 4, etc.)—use these numbers in your code. With ESP32, you can choose which pins to use for:
- UART
- I2C
- SPI
This is possible because of a feature called multiplexing, which lets you assign different functions to the same pin through code. Some pins have special functions or limitations, so not all pins are safe to use for every project.

Programming ESP32 with Arduino IDE

To program your boards, you need an IDE to write your code. For beginners, we recommend using Arduino IDE. While it’s not the best IDE, it works well and is simple and intuitive to use for beginners. After getting familiar with Arduino IDE and starting to create more complex projects, you may find it useful to use VS Code with the Platformio extension instead.
If you’re just getting started with the ESP32, start with Arduino IDE.Installing Arduino IDE
To run Arduino IDE, you need to install JAVA on your computer. If you don’t, go to the following website to download and install the latest version: http://java.com/download.
Downloading and Installing Arduino IDE
To download the Arduino IDE, visit the following URL:
Go to the Arduino website and download the version for your operating system.

- Windows: run the file downloaded and follow the instructions in the installation guide.
- Mac OS X: copy the downloaded file into your application folder.
- Linux: extract the downloaded file, and open the arduino-ide file that will launch the IDE.

If you have doubts, you can go to the Arduino Installation Guide.
Installing the ESP32 in Arduino IDE
To install the ESP32 board in your Arduino IDE, follow these instructions:
1. In your Arduino IDE 2, go to File > Preferences.

2. Copy and paste the following line to the Additional Boards Manager URLs field.
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

Note: if you already have the ESP8266 boards URL, you can separate the URLs with a comma, as follows:
http://arduino.esp8266.com/stable/package_esp8266com_index.json, https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
3. Open the Boards Manager. You can go to Tools > Board > Boards Manager… or you can simply click the Boards Manager icon in the left-side corner.

4. Search for ESP32 and press the install button for esp32 by Espressif Systems version 3.X.

That’s it. It should be installed after a few seconds. After this, restart your Arduino IDE.
Then, go to Tools > Board and check that you have ESP32 boards available.

Now, you’re ready to start programming your ESP32 using Arduino IDE.
Testing the Installation and Uploading Code to the ESP32
Now, let’s check if the installation was successful and if we can upload new code to the ESP32 board. We’ll simply upload an example sketch from the library of available examples.
Connect your ESP32 development board to your computer using a USB cable. If you have an ESP32 DEVKIT DOIT board, the built-in red LED will turn on. This indicates the board is receiving power.

With your Arduino IDE open, follow these steps:
1) Select your Board in Tools > Board menu or on the top drop-down menu, click on “Select other board and port…“

A new window, as shown below, will open. Search for your ESP32 board model.

Select the board model you’re using and the COM port. In our example, we’re using the DOIT ESP32 DEVKIT V1. Click OK when you’re done.

2) Open the following example— it searches for wi-fi networks within the range of your board.
- ESP32: File > Examples > WiFi (ESP32) > WiFiScan
3) A new sketch opens in your Arduino IDE:

4) Press the Upload button in the Arduino IDE. Wait a few seconds while the code compiles and uploads to your board.

Note: if you see a lot of dots on the debugging window, followed by an upload error, that means your board doesn’t go into flashing mode automatically. Click the Upload button again, and when you start seeing the dots on the debugging window, press the onboard BOOT button for a couple of seconds.
5) If everything went as expected, it will upload successfully after a few seconds. You’ll get a similar message:
6) Open the Arduino IDE Serial Monitor at a baud rate of 115200:

7) Press the ESP32 on-board Enable/RESET button and you should see the networks available near your board.

If you’re having issues uploading code to your ESP32 board, we recommend taking a quick look at the following troubleshooting guide: ESP32 Troubleshooting Guide by randomnerdtutorials.com
ESP32 Examples
In your Arduino IDE, you can find multiple examples for the ESP32. First, make sure you have an ESP32 board selected in Tools > Boards. Then, go to File > Examples and check out the examples under the ESP32 section.

Project Details
Project 1: ESP32 DHT11/DHT22 Web Server – Temperature and Humidity using Arduino IDE
Introduction
In this project, you’ll learn how to build an asynchronous ESP32 web server with the DHT11 sensor that displays temperature and humidity using Arduino IDE.

The web server we’ll build updates the readings automatically without the need to refresh the web page.
With this project you’ll learn:
- How to read temperature and humidity from DHT sensors;
- Build an asynchronous web server using the ESPAsyncWebServer library;
- Update the sensor readings automatically without the need to refresh the web page.
Parts Required
Resources
- ESP32 DHT11/DHT22 Web Server – Temperature and Humidity using Arduino IDE, by Random Nerd Tutorials
Project 2: ESP32 Relay Module – Control AC Appliances (Web Server)
Introduction
Using a relay with the ESP32 is a great way to control AC household appliances remotely. This tutorial explains how to control a relay module with the ESP32. We’ll take a look at how a relay module works, how to connect the relay to the ESP32 and build a web server to control a relay remotely (or as many relays as you want).

Parts Required
Resources
- ESP32 Relay Module – Control AC Appliances (Web Server), by Random Nerd Tutorials
Project 3: How to make a plant watering system with ESP32 board and Blynk app
Introduction
Gardening is a very gratifying hobby. However, because of our busy lifestyles, plants in our gardens might not always get the attention they deserve. What if we could remotely monitor their conditions and give them the care they need? There is a way! In this tutorial, we are going to create an IoT-based smart gardening system using the Blynk App.
This smart garden project is a plant environment monitoring system that monitors soil moisture level, air temperature, humidity, and water level. Then, depending on the conditions, the system allows users to deliver what is needed remotely through a mobile app. Moreover, this system can be scaled and expanded to automate the entire gardening process!

Parts Required
- NodeMCU ESP32 CP2102 board
- 1 Channel Low-Level Trigger Relay Module 5V
- Jumper wires
- DHT11 Temperature and Humidity Sensor
- Water Level Sensor
- Soil Moisture Sensor
- Breadboard 400 Holes
Resources
- How to Create an IoT Smart Garden Using ESP32 and Blynk, by Maker.pro
Project 4: Smart Density Based Traffic Light Control System with ESP32 & Blynk
Introduction
In this project, you’ll learn how to create a Density-Based 4-way Traffic Light Controller project using an ESP32 microcontroller and ultrasonic sensors, with integration into the Blynk IoT platform for real-time monitoring and control.
The primary goal of this project is to develop a smart traffic management system that optimises signal timing based on traffic density. Rather than following a fixed timing schedule, this system dynamically adjusts the signal changes, ensuring that if no vehicles are present at a signal, it will be skipped in favour of the next one, thereby reducing unnecessary waiting times and improving traffic flow.

Parts Required
Resources
- Smart Density Based Traffic Light Control System with ESP32 & Blynk, by how2electronics.com
Project 5: Smart trashcan
Introduction
This project revolves around the concept of a smart trash can. The primary aim is to have the trash can’s lid automatically open when an object approaches within a set distance (20cm in this case). The functionality is achieved by using an ultrasonic distance sensor paired with a servo motor. The distance between the object and the sensor is continually measured. If the object is close enough, the servo motor is triggered to open the lid.

Parts Required
Resources
- Smart trashcan, by docs.sunfounder.com
Project 6: NodeMCU ESP32 with Ultrasonic Sensor and buzzer
Introduction
This project uses an ESP32 with an HC-SR04 ultrasonic sensor and a active buzzer to detect the presence of an object. When an object is within a certain distance (for example, less than 50 cm), the buzzer is activated to either produce a simple beep. The ultrasonic sensor measures distance by sending a signal through the TRIG pin and receiving the echo through the ECHO pin, while the buzzer is connected to one of the ESP32’s digital pins. The code also displays the measured distance in the Serial Monitor and can be customized as needed, such as changing the distance threshold or the type of sound produced. This project is suitable for a basic motion detection or warning system.

Parts Required
Resources
- NodeMCU ESP32 with Ultrasonic Sensor and buzzer, by esp32io.com
Buy from
- Myduino IoT Maker Kit NodeMCU ESP32 from Myduino.com






