ESP32 Built-In Hall Effect Sensor

The ESP32 development board features a built-in hall effect sensor that detects changes in the magnetic field in its surroundings. This tutorial shows how to use the ESP32 hall effect sensor with Arduino IDE.

Watch the Video Tutorial

You can watch the video tutorial or keep reading this page for the written instructions to learn about the ESP32 hall effect sensor.

The ESP32 Hall Effect Sensor

The ESP32 features a built-in hall effect sensor located behind the metal lid of the ESP32 chip as shown in the following figure.

A hall effect sensor can detect variations in the magnetic field in its surroundings. The greater the magnetic field, the greater the sensor’s output voltage.

The hall effect sensor can be combined with a threshold detection to act as a switch, for example. Additionally, hall effect sensors are mainly used to:

  • Detect proximity;
  • Calculate positioning;
  • Count the number of revolutions of a wheel;
  • Detect a door closing;
  • And much more.

Read Hall Effect Sensor

Reading the hall effect sensor measurements with the ESP32 using the Arduino IDE is as simple as using the hallRead() function.

In your Arduino IDE, go to File > Examples > ESP32 > HallSensor sketch:

This is our complete guide to program the ESP32 with Arduino IDE, including projects, tips, and tricks!  SIGN UP NOW »

This is our complete guide to program the ESP32 with Arduino IDE, including projects, tips, and tricks! SIGN UP NOW »

// Simple sketch to access the internal hall effect detector on the esp32.
// values can be quite low. 
// Brian Degger / @sctv  

int val = 0;

void setup() {
  Serial.begin(9600);
}

// put your main code here, to run repeatedly
void loop() {
  // read hall effect sensor value
  val = hallRead();
  // print the results to the serial monitor
  Serial.println(val); 
  delay(1000);
}

View raw code

This example simply reads the hall sensor measurements and displays them on the Serial monitor.

val = hallRead();
Serial.println(val);

Add a delay of one second in the loop, so that you can actually read the values.

delay(1000);

Upload the code to your ESP32 board:

Demonstration

Once the upload is finished, open the Serial Monitor at a baud rate of 9600. Approximate a magnet to the ESP32 hall sensor and see the values increasing…

Or decreasing depending on the magnet pole that is facing the sensor:

The closer the magnet is to the sensor, the greater the absolute values are.

Wrapping Up

Throughout this tutorial you’ve learned that:

  • The ESP32 features a built-in hall effect sensor
  • The hall effect sensor can detect magnetic field changes in its surroundings
  • The measurements from the sensor can increase or become negative depending on the magnet pole facing the sensor.

We hope you’ve found this tutorial useful. For more projects with the ESP32 you can check our project’s compilation: 20+ ESP32 Projects and Tutorials.

This tutorial is a preview of the “Learn ESP32 with Arduino IDE” course. If you like this project, make sure you take a look at the ESP32 course page where we cover this and a lot more topics with the ESP32.


Learn how to program and build projects with the ESP32 and ESP8266 using MicroPython firmware DOWNLOAD »

Learn how to program and build projects with the ESP32 and ESP8266 using MicroPython firmware DOWNLOAD »


Enjoyed this project? Stay updated by subscribing our weekly newsletter!

Leave a Comment

Download our Free eBooks and Resources

Get instant access to our FREE eBooks, Resources, and Exclusive Electronics Projects by entering your email address below.