ESP32 S3 - IoT

This tutorial instructs you how to use the ESP32 S3 for IoT projects. You will learn how to connect the ESP32 S3 to the Internet and explore the wide range of IoT applications it can power.

What you'll build:

  1. Understand the fundamentals of IoT and how the ESP32 S3 fits in
  2. Learn the available methods to connect the ESP32 S3 to the Internet
  3. Explore common ESP32 S3 IoT application categories
  4. Build two simple IoT devices that communicate with each other via the Internet
ESP32 S3 IoT (Internet of Things) - send sensor data to the cloud and monitor it in a web browser

Hardware

About the ESP32 S3

The ESP32 S3 is a powerful, dual-core microcontroller from Espressif with built-in Wi-Fi and Bluetooth 5 (LE), making it an ideal platform for IoT development. It features generous flash and PSRAM in the N16R8 variant, enabling complex networked applications that smaller boards cannot easily support.

Key Specifications

What is IoT?

The Internet of Things (IoT) is a network of physical devices that connect to the Internet to send, receive, and exchange data. These connected devices — called IoT devices — can monitor the environment with sensors, respond to remote commands, and interact autonomously with other systems, all through standard Internet protocols. The ESP32 S3's built-in Wi-Fi and Bluetooth capabilities make it an excellent choice for building both consumer and industrial IoT products.

Key Specifications

Feature Detail
Connectivity Wi-Fi, Bluetooth 5 LE
Processor Dual-core LX7 @ 240 MHz
Flash / PSRAM 16 MB / 8 MB
USB USB Type-C (native USB OTG)

Pinout

The ESP32 S3 WROOM N16R8 exposes a wide set of GPIO pins suitable for IoT wiring. Consult the full pinout before connecting peripherals:

  1. GPIO 1–18: General-purpose digital I/O
  2. GPIO 35–45: Additional GPIO (some input-only)
  3. GPIO 19, 20: USB D-, D+ (reserved for USB OTG)
  4. GPIO 4, 5, 6, 7: Recommended SPI bus pins
  5. GPIO 8, 9: Default I2C SDA / SCL

Wiring

For the two-device IoT demo, connect a push button to the first ESP32 S3 and an LED to the second ESP32 S3, then both boards communicate via the Internet. Use current-limiting resistors on the LED output and ensure both boards are powered through their USB Type-C ports.

Safety Notes

Use a 220–330 Ω resistor in series with any LED to protect the GPIO pins from overcurrent. Never connect inductive loads (relays, motors) directly to GPIO — always use an appropriate driver or module, and ensure shared grounds between all components in the circuit.

Component ESP32 S3 Pin
Button GPIO 4
LED (via 330Ω resistor) GPIO 5

Detailed Instructions

  1. New to ESP32 S3? Complete our Getting Started with ESP32 S3 guide first.
  2. Wire the button to the first ESP32 S3 and the LED (with resistor) to the second ESP32 S3 as shown in the wiring table above.
  3. Open the Arduino IDE and install the ESP32 board package (Espressif) via the Boards Manager if you have not done so already.
  4. Open the sender sketch and update the Wi-Fi SSID, password, and server address to match your network.
  5. Select ESP32S3 Dev Module as the target board and choose the correct COM port.
  6. Upload the sender sketch to the first ESP32 S3 board.
  7. Open the receiver sketch, update the Wi-Fi credentials, then upload it to the second ESP32 S3 board.
  8. Open the Serial Monitor at 115200 baud on each board and observe the connection messages.
  9. Press the button on board #1 and watch the LED on board #2 respond in real time.
  10. Pro Tip: Move both ESP32 S3 boards to different Wi-Fi networks (or use mobile hotspots) to confirm they truly communicate over the public Internet rather than a local network.

Serial Monitor

After uploading, open the Serial Monitor at 115200 baud. You should see output similar to the readings below:

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 09:00:01] Connecting to Wi-Fi... OK [2026-06-16 09:00:03] IP address: 192.168.1.42 [2026-06-16 09:00:05] Waiting for button press... [2026-06-16 09:00:12] Button pressed — sending command to peer device
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Applications

The ESP32 S3's combination of dual-core processing, ample memory, and native Wi-Fi makes it suitable for a broad spectrum of IoT applications across home, commercial, and industrial settings:

  1. Smart Home Automation: Control lights, fans, and appliances remotely via smartphone or voice assistant.
  2. Remote Monitoring: Stream sensor readings (temperature, humidity, air quality) to a cloud dashboard in real time.
  3. Industrial Data Logging: Collect machine data and push it to a database or IoT cloud platform for analysis.
  4. Security and Alerts: Detect motion, door opening, or water leaks and send instant email or SMS notifications.
  5. Voice Assistant Integration: Interact with Amazon Alexa or Google Home to enable voice-controlled device operation.
  6. Device-to-Device Communication: Link multiple ESP32 S3 boards so they coordinate actions automatically without human intervention.
  7. Gateway Applications: Use the ESP32 S3 as a bridge between Bluetooth/Zigbee/LoRa sensors and the broader Internet.

Video

Watch the step-by-step video walkthrough for this ESP32 S3 project below.

...VIDEO

Challenges

Building the basic IoT connection is just the beginning — the real learning comes from extending and hardening the project. Try the challenges below to deepen your understanding:

  1. Beginner: Modify the receiver sketch so the LED blinks three times when it receives a command instead of just toggling once.
  2. Intermediate: Add a second button on board #1 that controls a second LED on board #2, requiring you to encode multiple commands in your messages.
  3. Advanced: Secure the communication by switching from plain HTTP to HTTPS or MQTT over TLS, and add device authentication so only your two boards can exchange messages.

※ OUR MESSAGES

  • As freelancers, We are AVAILABLE for HIRE. See how to outsource your project to us
  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!