IoT Hub

Connect anything with ESP32.

Choose the right ESP32 board, learn the pins, upload your first code, power it from a battery, connect sensors, and build real projects for home, school and farm.

An ESP32 development board sending Wi-Fi signals. Each part links to its chapter. ESP32 WROOM-32 WI-FI · BLUETOOTH CP2102 EN BOOT 07 Wi-Fi antenna 01 ESP32 chip 02 GPIO pins 03 USB driver 04 Blink LED 09 BOOT button 05 Power in
BoardESP32 30-pin DevKit ProcessorDual-core 240 MHz RadioWi-Fi + Bluetooth
01Choose a board

One chip family, eight good starting points.

Every ESP32 is a small computer with Wi-Fi built in, so it can read sensors, switch things and talk to your phone or the internet. The boards differ in speed, memory, radios and size. Tell us what you want to make and we will point you to the right one.

What do you want to make?

Not sure? Start with the ESP32 30-pin DevKit. Almost every tutorial uses it, it is low-cost, and everything you learn on it works on the other boards.

ESP32 30-pin DevKit

start here

The board most ESP32 tutorials are written for. It plugs into a breadboard, programs over USB-C, and has Wi-Fi and Bluetooth built in.

Chip
ESP32-WROOM-32, 2 cores at 240 MHz
Memory
520 KB RAM, 4 MB flash
Radio
Wi-Fi 2.4 GHz, Bluetooth Classic + BLE
Pins
25 usable GPIO, 15 ADC, 9 touch, 2 DAC
Best for
Web dashboards, home sensors, Bluetooth projects, learning

Need screw terminals? Pair it with an ESP32 expansion board from the boards shelf.

ESP32 38-pin DevKit

more pins

The same ESP32 chip with a few more pins broken out, including GPIO 0. Drop it into a 38-pin expansion board and wire sensors with screw terminals instead of a breadboard.

Chip
ESP32-WROOM-32, 2 cores at 240 MHz
Memory
520 KB RAM, 4 MB flash
Radio
Wi-Fi 2.4 GHz, Bluetooth Classic + BLE
Pins
30+ GPIO on headers
Best for
Permanent builds, school projects, many sensors

The expansion board adds screw terminals and a power jack.

ESP32-S3 N16R8

the powerful one

The newest dual-core ESP32 with 16 MB flash and 8 MB PSRAM. It has native USB (it can act as a keyboard or mouse) and extra instructions for AI, so it handles cameras, colour screens and voice.

Chip
ESP32-S3, 2 cores LX7 at 240 MHz
Memory
512 KB RAM + 8 MB PSRAM, 16 MB flash
Radio
Wi-Fi 2.4 GHz, Bluetooth 5 LE
USB
Native USB OTG + USB-serial port
Best for
Cameras, touch screens, TinyML, USB gadgets

Want a camera on it? There are S3 boards with an OV3660 or OV5640 camera fitted.

ESP32-CAM

see and stream

A small ESP32 board with a 2 MP camera and a microSD slot. It streams video over Wi-Fi, takes photos on motion, and can read QR codes. It has no USB port, so add the MB base board to program it.

Chip
ESP32 + 4 MB PSRAM
Camera
OV2640 / OV3660, 2 MP
Storage
microSD slot
Pins
About 10 free GPIO
Best for
Door and security cameras, time-lapse, bird feeders

Add the ESP32-CAM MB base board for USB programming.

ESP32-C3 Super Mini

thumb-sized

A board about the size of a thumbnail with a RISC-V core, Wi-Fi and Bluetooth 5. It programs straight over USB-C with no extra chip, and suits wearables and small battery sensors.

Chip
ESP32-C3, 1 RISC-V core at 160 MHz
Memory
400 KB RAM, 4 MB flash
Radio
Wi-Fi 2.4 GHz, Bluetooth 5 LE
Size
About 22 × 18 mm
Best for
Wearables, small sensors, BLE beacons

An expansion board for the C3 Super Mini is also in stock.

ESP32-C6 Super Mini

smart home ready

The first ESP32 with Wi-Fi 6 and an 802.15.4 radio for Zigbee and Thread. That makes it a good base for Matter smart-home devices that talk to Alexa, Google Home and Home Assistant.

Chip
ESP32-C6, RISC-V 160 MHz + low-power core
Memory
512 KB RAM, 4 MB flash
Radio
Wi-Fi 6, Bluetooth 5 LE, Zigbee, Thread
Pins
About 20 GPIO
Best for
Smart plugs, Zigbee sensors, Matter devices

Bigger C6 boards with a colour display are in the ESP32 shelf.

ESP32 LoRa board

farms and fields

An ESP32 with a LoRa radio and a small OLED screen. LoRa sends small messages over several kilometres in open land, so it suits farms, water tanks and places with no Wi-Fi. It also runs Meshtastic for off-grid text messaging.

Chip
ESP32-S3 + SX1262 LoRa
Range
2–5 km in the open, more with line of sight
Screen
0.96″ OLED
Band
Check the band before you buy. India uses 865–867 MHz for LoRaWAN
Best for
Farm sensors, tank levels, Meshtastic

You need two boards to talk to each other, or one board and a gateway.

NodeMCU ESP8266

budget classic

The chip that started cheap Wi-Fi projects. It is still fine for a simple Wi-Fi switch or sensor, but it has one analog pin, fewer GPIO and no Bluetooth. For new projects, an ESP32 costs a little more and does much more.

Chip
ESP8266, 1 core at 80/160 MHz
Memory
About 80 KB RAM free, 4 MB flash
Radio
Wi-Fi 2.4 GHz only
Pins
About 11 usable GPIO, 1 ADC
Best for
Simple Wi-Fi relays and sensors, old tutorials

Running an old ESP8266 tutorial? Most of the code also works on ESP32 with small changes.

Compare the ESP32 chips
ChipProcessorRAMWi-FiBluetoothOther radioUSBGPIO
ESP322 × 240 MHz520 KBWi-Fi 4Classic + BLE 4.2–Via USB-serial chip3418 ADC · 10 touch · 2 DAC
ESP32-S32 × 240 MHz512 KB + PSRAMWi-Fi 4BLE 5–Native USB OTG4520 ADC · 14 touch
ESP32-C31 × 160 MHz RISC-V400 KBWi-Fi 4BLE 5–Built-in USB serial226 ADC
ESP32-C61 × 160 MHz RISC-V512 KBWi-Fi 6BLE 5Zigbee, ThreadBuilt-in USB serial307 ADC
ESP82661 × 80/160 MHz~80 KB freeWi-Fi 4––Via USB-serial chip171 ADC
02Pinout

Most pins are safe. Seven need care.

This is the 30-pin ESP32 DevKit, antenna at the top. Tap any pin to see what it does. Green pins are safe for anything, blue pins are input only, and orange pins change how the board starts, so wire them last.

Safe Input only Use with care Power
Rule

ESP32 pins are 3.3 V. Never connect a 5 V signal straight to a GPIO. Use a voltage divider or a logic level converter for 5 V sensors such as the HC-SR04. Each pin can safely give about 20 mA, enough for an LED but not a motor or relay coil.

03Set up

From box to blinking LED in fifteen minutes.

You need the board, a USB cable that carries data (not a charge-only cable), and a computer. The Arduino IDE is free and is the easiest place to start.

  1. Install the Arduino IDE

    Download Arduino IDE 2 from arduino.cc for Windows, Mac or Linux.

  2. Add the ESP32 boards

    Open File → Preferences and paste this link into "Additional boards manager URLs":

    https://espressif.github.io/arduino-esp32/package_esp32_index.json

  3. Install "esp32 by Espressif"

    Open Tools → Board → Boards Manager, search for esp32, and install the package by Espressif Systems.

  4. Install the USB driver

    Look at the small chip next to the USB port. CP2102 needs the Silicon Labs CP210x driver, CH340 needs the WCH driver. S3, C3 and C6 boards with native USB usually need no driver.

  5. Pick the board and port

    Choose ESP32 Dev Module for the 30 and 38-pin boards (or your exact board, such as ESP32S3 Dev Module), then the COM port that appears when you plug it in.

  6. Upload

    Open the Blink example from chapter 04 and press Upload. If it stops at "Connecting…", hold the BOOT button until the upload starts.

    Upload stuck? See chapter 09
Also

Prefer Python? Flash MicroPython onto the board with Thonny and write code line by line. Building smart-home devices? ESPHome lets you set up sensors with a short text file and no code, and connects straight to Home Assistant.

Breadboards & prototyping

See all →

Jumper wires & headers

See all →
04First code

Three sketches that teach almost everything.

Blink proves your setup works. The Wi-Fi switch puts a web page on your board that any phone at home can open. Deep sleep is how a battery sensor lasts for months. Copy one, paste it into the Arduino IDE and upload.

// Blink the blue on-board LED (GPIO 2)
const int LED = 2;

void setup() {
  pinMode(LED, OUTPUT);
  Serial.begin(115200);
  Serial.println("Hello from IHC!");
}

void loop() {
  digitalWrite(LED, HIGH);
  delay(500);
  digitalWrite(LED, LOW);
  delay(500);
}
// Turn the LED on and off from your phone's browser
#include <WiFi.h>
#include <WebServer.h>

const char* ssid = "YOUR_WIFI";
const char* pass = "YOUR_PASSWORD";
const int LED = 2;
WebServer server(80);

void page() {
  String s = "<meta name='viewport' content='width=device-width'>";
  s += "<h1>IHC ESP32</h1><p>LED is ";
  s += digitalRead(LED) ? "ON" : "OFF";
  s += "</p><a href='/on'>ON</a> | <a href='/off'>OFF</a>";
  server.send(200, "text/html", s);
}

void setup() {
  Serial.begin(115200);
  pinMode(LED, OUTPUT);
  WiFi.begin(ssid, pass);
  while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); }
  Serial.println();
  Serial.println(WiFi.localIP());   // open this address on your phone
  server.on("/", page);
  server.on("/on",  []() { digitalWrite(LED, HIGH); page(); });
  server.on("/off", []() { digitalWrite(LED, LOW);  page(); });
  server.begin();
}

void loop() {
  server.handleClient();
}
// Wake every 10 minutes, do the work, then sleep
#define uS_TO_S 1000000ULL
RTC_DATA_ATTR int wakes = 0;   // kept during deep sleep

void setup() {
  Serial.begin(115200);
  wakes++;
  Serial.printf("Wake number %d\n", wakes);

  // Read your sensor and send the reading here

  esp_sleep_enable_timer_wakeup(10 * 60 * uS_TO_S);
  esp_deep_sleep_start();
}

void loop() {
  // never runs: the board restarts from setup() after each sleep
}

Upload, then open the Serial Monitor at 115200 baud. The blue LED blinks once a second.

05Power

Wi-Fi is hungry. Sleep is how batteries last.

An ESP32 uses about 100–250 mA with Wi-Fi on, with short peaks near 500 mA. In deep sleep the chip itself uses only about 10 µA. So a battery project wakes up, does its job in a few seconds, and goes back to sleep.

aUSB or 5 V adapter

The simplest choice for anything near a socket. Use a 5 V 1 A (or bigger) supply into the USB port or VIN. Cheap phone chargers can be noisy; a good SMPS adapter avoids random resets.

bBattery

One 18650 Li-ion cell (3.7 V) with a charging board and a low-dropout 3.3 V regulator, or a board with a battery socket built in. Two AA cells are too weak once they run down. Always use a protected cell or a BMS.

cSolar

A 6 V solar panel, a solar charging module and an 18650 cell will run a deep-sleep sensor outdoors for years. Size the panel for the cloudy months, not the sunny ones.

Battery life calculator

Estimate how long a battery runs your project when it wakes, works and sleeps.

One 18650 cell is about 2,000–3,000 mAh
Wi-Fi on: 100–250 mA
0 means it never sleeps
Bare ESP32 module: about 10 µA. Dev boards draw more because of the USB chip, regulator and power LED, often 1,000–10,000 µA. Measure yours with a multimeter.

Turn on JavaScript to use the calculator. Battery hours ≈ capacity in mAh × 0.8 ÷ average current in mA.

–days

Estimated running time on one charge.

Average current
–
Energy per day
–
Time awake
–
–

Battery charging & power modules

See all →

Li-ion cells

See all →

Buck, boost & regulators

See all →
06Sensors & modules

Two wires for I²C, any pin for the rest.

Most sensor modules connect in one of three ways. I²C uses two shared wires (SDA 21, SCL 22) for many sensors at once. SPI is faster and suits screens and SD cards. Simple sensors just need one digital or analog pin. Here is how to wire the common ones.

How to connect common modules to an ESP32
ModuleESP32 pinsPowerGood to know
Temperature & humidityDHT11 / DHT22Data → GPIO 43.3 VAdd a 10 kΩ pull-up if your module has none.
Weather (temp, humidity, pressure)BME280 / BMP280SDA 21, SCL 223.3 VI²C address 0x76 or 0x77.
0.96″ OLED screenSSD1306SDA 21, SCL 223.3 VShares the I²C pins with other sensors.
Motion and tiltMPU6050SDA 21, SCL 223.3 VGyro and accelerometer.
Soil moistureCapacitive sensor v1.2Analog → GPIO 343.3 VUse an ADC1 pin (32–39) so it works with Wi-Fi on.
DistanceHC-SR04 ultrasonicTrig 5, Echo 185 VEcho is 5 V: use a 1 kΩ / 2 kΩ divider or the 3.3 V HC-SR04P.
Motion detectorHC-SR501 PIROut → GPIO 275 V (VIN)The output is already 3.3 V.
Relay1–4 channel relay moduleIN → GPIO 265 V (VIN)Pick an opto-isolated module that triggers at 3.3 V. Mains wiring needs an electrician.
ServoSG90 / MG996RSignal → GPIO 135 V, separate supplyUse the ESP32Servo library and join the grounds.
DC motorsTB6612FNG / L298N driverPWM 25, 26 + direction pinsMotor batteryTB6612 works best at 3.3 V logic.
RGB LED stripWS2812BData → GPIO 165 V, separate supplyA 74HCT125 level shifter makes long strips reliable.
RFID readerRC522SPI 18, 19, 23 · SS 5 · RST 273.3 VNever power the RC522 from 5 V.
GPSNEO-6M / NEO-M8NTX → 16, RX → 173.3–5 VUses the second serial port (UART2).
Tip

Join every ground. When a sensor, motor or LED strip has its own power supply, connect its GND to the ESP32's GND. Most "it reads nonsense" problems are a missing ground wire.

Temperature, humidity & gas

See all →

Distance, IR & PIR

See all →

OLED screens

See all →

Relay modules

See all →
07Wireless

Pick the radio by distance and data.

Wi-Fi is the default, but it is not always the best choice. A short hop to your phone, a robot remote, a farm a kilometre away and a tracker on the road all need different radios.

Wi-Fi

home and internet

Connects to your router and the internet. Use it for web dashboards, MQTT, Telegram alerts and cloud apps. Built into every ESP32.

RangeData

Bluetooth LE

talk to a phone

Low-power link to a phone app, fitness band or beacon. The original ESP32 also has Bluetooth Classic for serial apps and audio; S3, C3 and C6 have BLE only.

RangeData

ESP-NOW

board to board, no router

ESP32s send short messages straight to each other in a few milliseconds. Perfect for remotes, robots and sensors that report to one hub board.

RangeData

LoRa

kilometres, tiny data

Sends a few bytes over 2–5 km, more with a clear view. Needs a LoRa board or an SX1276 / SX1262 module. Choose the 865–867 MHz band for LoRaWAN in India.

RangeData
LoRa modules →

GSM & 4G

anywhere with a SIM

Works wherever a phone works: trackers, remote pumps, SMS alerts. SIM800L boards use 2G, so check your operator still runs 2G where you are. SIM7000 and SIM7600 modules use 4G.

RangeData
GSM, 4G & GPS →

Zigbee & Thread

smart-home mesh

Low-power mesh networks used by smart bulbs and sensors. The ESP32-C6 speaks both, and with Thread it can build Matter devices for Alexa, Google Home and Home Assistant.

RangeData
Apps

Where does the data go? Start with a web page on the board itself. Then try Blynk or Arduino Cloud for a phone app, ThingSpeak for graphs, a Telegram bot for alerts, or Home Assistant with ESPHome or MQTT to run it all at home without the cloud.

Wi-Fi & Bluetooth modules

See all →

LoRa, RF & NRF24

See all →

GSM, 4G & GPS

See all →
08Projects

Twelve projects, from first blink to farm sensor.

Each project lists the parts you need, linked to the shelf. Start with a beginner one, then pick whatever solves a problem at home, school or work.

01Beginner

Wi-Fi LED switch

About 1 hour

Control an LED from your phone. It is the Wi-Fi switch code from chapter 04, and the base for every remote-control project.

02Beginner

Room weather display

About 2 hours

Show temperature, humidity and pressure on a small OLED, and on a web page you can open from any phone at home.

03Beginner

Plant watering alert

About 2 hours

A soil sensor checks the pot every hour and sends a Telegram message when the plant needs water.

04Intermediate

Smart home switch board

About 1 day

Switch lights and fans from your phone or by voice, with ESPHome and Home Assistant. Mains wiring must be done by an electrician.

05Intermediate

Wi-Fi security camera

About half a day

Stream live video, save photos to a microSD card when the PIR sensor sees motion, and send them to your phone.

09Advanced

LoRa farm sensor

About 2 days

Send soil and tank readings across fields several kilometres away, with no Wi-Fi or SIM card.

School

Science fair or final-year project? Send us your idea on WhatsApp and we will suggest a parts list that fits your budget.

Sensor kits

See all →

Robot kits

See all →
09Fix it

The error says what. Here is why.

Nearly every ESP32 problem is one of these. Find the message you see and open it.

Failed to connect to ESP32: Timed out waiting for packet header

The board did not enter upload mode. Hold the BOOT button when the IDE shows "Connecting…", and let go once the upload starts. If you have to do this every time, solder a 10 µF capacitor between EN and GND.

No COM port appears

Install the USB driver for the chip next to the USB port: CP210x (CP2102) or CH340. Many cheap USB cables only carry power, so try a different cable that you know carries data.

Brownout detector was triggered

The board is not getting enough power when Wi-Fi switches on, which needs up to 500 mA for a moment. Use a better cable or a 5 V 1 A supply, and add a 100–470 µF capacitor across 5 V and GND.

Board restarts in a loop after wiring

Something is holding a strapping pin (GPIO 0, 2, 5, 12 or 15) in the wrong state at boot. Unplug your wires, check it boots, then move the part to a safe pin from chapter 02.

analogRead() always gives 0 or 4095 with Wi-Fi on

You are using an ADC2 pin, which Wi-Fi takes over. Move the sensor to an ADC1 pin: GPIO 32, 33, 34, 35, 36 or 39.

Wi-Fi will not connect

The ESP32 only works on 2.4 GHz Wi-Fi. Check the network name and password (they are case-sensitive), move closer to the router, or use a board with an external antenna.

Sketch too big

In the Tools menu, choose a larger Partition Scheme such as "Huge APP (3MB No OTA)", or use a board with more flash, like the S3 N16R8.

Random resets when a relay or motor switches

Motors and relay coils cause voltage spikes. Power them from a separate supply, join the grounds, use opto-isolated relay modules, and add a flyback diode across DC motors and coils.

Strange characters in the Serial Monitor

Set the Serial Monitor to the same speed as Serial.begin(), usually 115200 baud. A few strange characters right after reset are normal.

Questions makers ask us

What is an ESP32, and how is it different from an Arduino UNO?

An ESP32 is a small microcontroller board with Wi-Fi and Bluetooth built in. Compared with an Arduino UNO it is about 15 times faster, has far more memory and can connect to the internet on its own. You can program it with the same Arduino IDE and most Arduino code. The main difference is that its pins work at 3.3 V instead of 5 V.

Should I buy an ESP32 or an ESP8266?

For a new project, choose the ESP32. It costs a little more but has two cores, Bluetooth, many more pins and 15 analog inputs instead of one. The ESP8266 is still fine for a simple Wi-Fi switch or sensor, or to follow an older tutorial.

Which ESP32 board should I buy first?

The ESP32 30-pin DevKit with USB-C. It fits a breadboard, almost every tutorial uses it, and everything you learn carries over to the S3, C3 and C6 boards. Add a breadboard, jumper wires and a couple of sensors and you are ready to start.

Can I program the ESP32 in Python or without code?

Yes. The Arduino IDE (C++) is the most common way, but you can also flash MicroPython and write Python with the free Thonny editor. ESPHome lets you set up sensors and switches with a short text file and no code, and connects to Home Assistant.

Can I use 5 V sensors with an ESP32?

You can power many 5 V modules from the VIN pin, but the signal going into the ESP32 must be 3.3 V or less. Use a voltage divider or a logic level converter for 5 V outputs, such as the echo pin of an HC-SR04. Sensors that work at 3.3 V, like the BME280, DHT22 and SSD1306 OLED, connect directly.

How far can an ESP32 send data?

Wi-Fi and Bluetooth reach about 10–50 m indoors, depending on walls. ESP-NOW between two boards reaches about 100–200 m in the open. For kilometres, use a LoRa board, and for anywhere with mobile coverage, use a GSM or 4G module.

Can you help with my school or college project?

Yes. Send your idea or circuit on WhatsApp at 82499 31161 or email info@indianhobbycenter.com, and we will help you choose a board, sensors and power supply that work together.

How much is shipping?

Standard shipping is a flat ₹75 and express is ₹120, with no minimum order. Orders above ₹1,999 ship free with the code FREESHIPPING.

Have an IoT idea? Send it to us.

Tell us what you want to build and we will help you choose a board, sensors and power that work together.

Learn. Shop. Share.