For diagrams, visual examples and the full layout, open the handout above.
ESP32: SETUP + FIRST BLINK
GRADE 10 DESIGN • HARDWARE LAB 01
MISSION: Get your Windows computer talking to the ESP32, prove your code is running, then control a real LED.
| ✓ IDE READY | ✓ BOARD FOUND | ✓ SERIAL WORKS | ✓ LED BLINKS |
LAB RULE: USB power only today. Do not connect batteries, motors, relays, or unknown voltages. ESP32 GPIO uses 3.3 V logic.
| 2 | File → Preferences → Additional Boards Manager URLs. |
| 3 | Paste the URL below and click OK. |
| https://espressif.github.io/arduino-esp32/package_esp32_index.json |
| 4 | Tools → Board → Boards Manager → search "esp32". |
| 5 | Install "esp32 by Espressif Systems". |
| 1 | Plug the ESP32 into the computer with a USB-C DATA cable. |
| 2 | Tools → Board → ESP32 Arduino → ESP32 Dev Module. |
| 3 | Tools → Port → select the COM port that appears when your board is plugged in. |
TIP: unplug the board, check the port list, plug it back in. The new COM port is usually yours.
Upload this before wiring anything:
| void setup() { Serial.begin(115200);}void loop() { Serial.println("My ESP32 works!"); delay(1000);} |
Open Tools → Serial Monitor and set 115200 baud. You should repeatedly see:
| My ESP32 works!My ESP32 works!My ESP32 works! |
CHECKPOINT: Show this working before moving on.
| FROM | TO | NOTE |
| GPIO 23 | 220Ω / 330Ω resistor | limits current |
| resistor | LED long leg (+) | positive |
| LED short leg (−) | GND | negative |
| USB-C | computer | power |
LED polarity: LONG leg = + (anode). SHORT leg = − (cathode).
| const int LED = 23;void setup() { pinMode(LED, OUTPUT);}void loop() { digitalWrite(LED, HIGH); delay(1000); digitalWrite(LED, LOW); delay(1000);} |
| const int LED = 23; | Give GPIO 23 the name LED. |
| pinMode(LED, OUTPUT); | Make the pin an output. |
| digitalWrite(LED, HIGH); | Turn the output ON. |
| delay(1000); | Wait 1000 ms = 1 second. |
STOP FOLLOWING INSTRUCTIONS
| LEVEL 1 — FAST | Make the LED blink five times faster. |
| LEVEL 2 — HEARTBEAT | Make: flash-flash … pause … repeat. |
| LEVEL 3 — SOS | Signal ... --- ... with short and long flashes. |
| LEVEL 4 — YOUR SIGNAL | Invent your own repeating pattern. |
| 6 | TROUBLESHOOT LIKE AN ENGINEER |
| NO COM PORT | Unplug/replug → different USB port → different DATA cable → different ESP32 → Device Manager. |
| UPLOAD STUCK AT CONNECTING | Check board and COM port. If needed, hold BOOT as upload begins; release when it starts connecting. |
| LED DOESN'T LIGHT | Check LED direction → GPIO 23 → GND → resistor → breadboard row → try another LED. |
| SERIAL TEXT IS GARBLED | Set Serial Monitor to 115200 baud. |
EXIT CHECK
□ Arduino IDE + ESP32 board package installed
□ Correct board and COM port selected
□ Serial Monitor test works
□ External LED blinks
□ I completed at least one challenge
Is this IoT yet? NO — today you built an embedded system. Soon: sensor → ESP32 → Wi-Fi → service/user.
One thing I got working: ________________________________________________
One thing I want to try next: _____________________________________________