Motion
Interfacing Reed Switch Motion with Espressif ESP32
What is the Reed Switch?
Reed Switch practical reference
A reed switch is a simple electromechanical switch made of two ferromagnetic metal reeds sealed inside a glass tube. The reeds snap together to close the circuit whenever a magnet passes near them, and spring apart when the magnet moves away. With no power draw and no moving parts beyond the reeds themselves, it's the classic low-cost sensor for detecting whether a door or window is open or closed in DIY security systems, and for simple proximity or rotation-counting triggers.
Key specifications
- Switch type: Normally-open (NO) magnetic reed switch — normally-closed (NC) variants also exist
- Operating voltage: Passive component — rated for typical logic-level or low-voltage switching, commonly up to 100-200V depending on part
- Switching current: ~0.5A max typical for small glass reed switches
- Actuation distance: ~10-15mm typical, depends on magnet strength and reed sensitivity rating
- Response time: Sub-millisecond mechanical closure, effectively instantaneous for most microcontroller polling rates
- Interface: Simple digital I/O — read as a plain HIGH/LOW switch input with a pull-up or pull-down resistor
- Package: Often sold pre-wired in a two-part door/window sensor housing with the matching magnet included
Pinout and connection notes
Wire one lead to a digital input pin and the other to GND, then enable the microcontroller's internal pull-up resistor (INPUT_PULLUP) so the pin reads HIGH when open and LOW when the magnet closes the switch — this avoids needing an external resistor for a simple door/window sensor build.
- Lead 1: One side of the switch contact — wire to a digital input pin
- Lead 2: Other side of the switch contact — wire to GND (or VCC, depending on pull configuration)
Integration checklist
- Confirm the exact part number and breakout-board revision.
- Verify supply voltage, current demand, logic levels, and signal direction against the datasheet.
- Check controller pin assignments and bus address or interface mode against the example code.
- Power up with external loads disconnected, then test signals before full integration.
- If readings or communication fail, check power and ground first, then pin mapping, interface settings, and library initialization.
Troubleshooting and reproducibility
Record the board used, wiring, library/version, supply arrangement, and measured behavior. Use the selected board-specific wiring example as the source of truth. Never assume visually similar modules share identical voltage tolerance or pin order.
Setting Up Reed Switch with Espressif ESP32
Wiring
| Component pin | Espressif ESP32 pin | Note |
|---|---|---|
| Lead 1 | GPIO4 | Uses the internal pull-up — avoid input-only pins (34-39) here since they have no internal pull-up/down |
| Lead 2 | GND |
Swipe sideways to see every column →
- GPIO34-39 are input-only on the ESP32 and have no internal pull-up/pull-down — don't use them for a plain reed switch unless you add an external resistor.
- Same inverted LOW-means-closed logic as the Arduino Uno when using INPUT_PULLUP.
- For a battery-powered door/window sensor, pair this with light sleep and an interrupt on the CHANGE edge rather than polling in a loop — mechanical switches like this are a great fit for wake-on-interrupt designs.
Related Components
IR Obstacle Sensor
Short-range IR proximity sensor with an adjustable threshold — perfect for line-following robots.
RCWL 0516
Microwave radar motion sensor that detects movement through walls, glass, and plastic enclosures.
TTP223
Touch-sensitive pad for replacing mechanical buttons — perfect for clean, sealed enclosures.
Related Guides & Projects
AquaWatch: ESP8266 Water Level Monitor
Build AquaWatch, an ESP8266 water-level monitor with HC-SR04 ranging, OLED feedback, buzzer alerts, tank calibration, and local Wi-Fi status.
ESP32-CAM Photo Capture & microSD Storage
Capture JPEG photos with the ESP32-CAM and save them directly to a microSD card, with sequential file naming so nothing gets overwritten.
MicroPython vs Arduino on ESP32: Which Should You Learn First?
An honest comparison for beginners: where MicroPython is easier, where Arduino C++ is faster, how libraries and memory differ, and how to choose based on your project instead of hype.
MicroPython ESP32 Web Server: Control an LED or Relay from Your Browser
Create a working web server with the socket module, parse requests, serve a responsive control page for an LED or a relay, keep the displayed state truthful, choose a safe relay startup state and make the server survive bad or repeated requests.