{"id":113938,"date":"2023-08-17T02:23:13","date_gmt":"2023-08-17T02:23:13","guid":{"rendered":"https:\/\/randomnerdtutorials.com\/?p=113938"},"modified":"2025-01-09T15:34:58","modified_gmt":"2025-01-09T15:34:58","slug":"esp8266-nodemcu-guides-sensors-modules","status":"publish","type":"post","link":"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-guides-sensors-modules\/","title":{"rendered":"ESP8266 NodeMCU: 25 Free Guides for Sensors and Modules"},"content":{"rendered":"\n<p>There is a wide variety of sensors, modules, and peripherals compatible with the ESP8266 NodeMCU boards. We have tutorials for the most popular components. This article is a compilation of 25 free guides for ESP8266 sensors and modules. Most guides cover programming the ESP8266 using the Arduino core, but we also have tutorials for MicroPython.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img data-recalc-dims=\"1\" fetchpriority=\"high\" decoding=\"async\" width=\"1200\" height=\"675\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/ESP8266-Free-Guides-Sensors-Modules.jpg?resize=1200%2C675&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP8266 NodeMCU 20 Free Guides for Sensors and Modules\n\" class=\"wp-image-113996\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/ESP8266-Free-Guides-Sensors-Modules.jpg?w=1280&amp;quality=100&amp;strip=all&amp;ssl=1 1280w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/ESP8266-Free-Guides-Sensors-Modules.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/ESP8266-Free-Guides-Sensors-Modules.jpg?resize=1024%2C576&amp;quality=100&amp;strip=all&amp;ssl=1 1024w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/ESP8266-Free-Guides-Sensors-Modules.jpg?resize=768%2C432&amp;quality=100&amp;strip=all&amp;ssl=1 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p class=\"rntbox rntclgray\">We have a similar guide for the ESP32: <a href=\"https:\/\/randomnerdtutorials.com\/esp32-guides-sensors-modules\/\" title=\"\">29 Free Guides for Sensors and Modules [ESP32]<\/a>.<\/p>\n\n\n\n<p>Here&#8217;s a quick list of the sensors\/modules:<\/p>\n\n\n\n<p><strong>Environmental Sensors:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"#ds18b20\">DS18B20 Temperature Sensor<\/a><\/li>\n\n\n\n<li><a href=\"#type-k-thermocouple\">Type-K Thermocouple Temperature Sensor<\/a><\/li>\n\n\n\n<li><a href=\"#dht11-dht22\">DHT11\/DHT22 Temperature and Humidity Sensor<\/a><\/li>\n\n\n\n<li><a href=\"#bme280\">BME280 Temperature, Humidity, and Pressure Sensor<\/a><\/li>\n\n\n\n<li><a href=\"#bme680\">BME680 Environmental Sensor (Gas, Pressure, Humidity, Temperature)<\/a><\/li>\n\n\n\n<li><a href=\"#bmp388\">BMP388 Altimeter Sensor (Pressure, Altitude, Temperature)<\/a><\/li>\n\n\n\n<li><a href=\"#bh1750\">BH1750 Light Sensor<\/a><\/li>\n\n\n\n<li><a href=\"#tds-sensor\">TDS Sensor (Total Dissolved Solids)<\/a><\/li>\n\n\n\n<li><a href=\"#anemometer\" title=\"\">Anemometer (wind speed sensor)<\/a><\/li>\n<\/ol>\n\n\n\n<p><strong>Motion Related Sensors:<\/strong><\/p>\n\n\n\n<ol start=\"10\"><li><a href=\"#pir\">PIR Motion Sensor<\/a><\/li><li><a href=\"#reed-switch\">Door Sensor (reed switch)<\/a><\/li><li><a href=\"#hc-sr04\">HC-SR04 Ultrasonic Sensor<\/a><\/li><li><a href=\"#mpu6050\">MPU6050 Accelerometer and Gyroscope<\/a><\/li><li><a href=\"#rcwl-0516\">RCWL-0516 Microwave Radar<\/a><\/li><li><a href=\"#neo-6m-gps\">NEO-6M GPS Module<\/a><\/li><\/ol>\n\n\n\n<p><strong>Other Sensors\/Modules\/Peripherals:<\/strong><\/p>\n\n\n\n<ol start=\"16\"><li><a href=\"#potentiometer\">Potentiometer<\/a><\/li><li><a href=\"#relay\">Relay Module<\/a><\/li><li><a href=\"#load-cell\">Load Cell with HX711 Amplifier<\/a><\/li><\/ol>\n\n\n\n<p><strong>Displays:<\/strong><\/p>\n\n\n\n<ol start=\"19\"><li><a href=\"#oled\">OLED Display (SSD1306)<\/a><\/li><li><a href=\"#lcd\">I2C LCD (Liquid Crystal Display)<\/a><\/li><li><a href=\"#led-strip\">RGB LED Strip<\/a><\/li><\/ol>\n\n\n\n<p><strong>Communication:<\/strong><\/p>\n\n\n\n<ol start=\"22\"><li><a href=\"#tca9548a\">I2C Multiplexer (TCA9548A)<\/a><\/li><li><a href=\"#rfid\">MFRC522 RFID Reader\/Writer<\/a><\/li><\/ol>\n\n\n\n<p><strong>Motors:<\/strong><\/p>\n\n\n\n<ol start=\"24\"><li><a href=\"#stepper-motor\">Stepper Motor<\/a><\/li><li><a href=\"#dc-motor\">DC Motor<\/a><\/li><\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Environmental Sensors<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ds18b20\">1. <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-ds18b20-temperature-sensor-web-server-with-arduino-ide\/\">DS18B20 Temperature Sensor<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-ds18b20-temperature-sensor-web-server-with-arduino-ide\/\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"210\" height=\"210\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/10\/ds18b20.png?resize=210%2C210&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"DS18B20 Temperature Sensor Tutorial for ESP32\" class=\"wp-image-28863\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/10\/ds18b20.png?w=210&amp;quality=100&amp;strip=all&amp;ssl=1 210w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/10\/ds18b20.png?resize=150%2C150&amp;quality=100&amp;strip=all&amp;ssl=1 150w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/10\/ds18b20.png?resize=80%2C80&amp;quality=100&amp;strip=all&amp;ssl=1 80w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/10\/ds18b20.png?resize=100%2C100&amp;quality=100&amp;strip=all&amp;ssl=1 100w\" sizes=\"(max-width: 210px) 100vw, 210px\" \/><\/a><\/figure><\/div>\n\n\n<p>The&nbsp;DS18B20 temperature sensor&nbsp;is a one-wire digital temperature sensor. This means that it just requires one data line (and GND) to communicate with your ESP8266 board. Each DS18B20 temperature sensor has a unique 64-bit serial code. This allows you to wire multiple sensors to the same data wire. So, you can get temperature from multiple sensors using just one GPIO. <\/p>\n\n\n\n<p>The DS18B20 temperature sensor is also available in&nbsp;waterproof version.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"390\" height=\"269\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/10\/ds18b20-waterproof.jpg?resize=390%2C269&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"DS18B20 Temperature Sensor Tutorial for ESP32\" class=\"wp-image-28865\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/10\/ds18b20-waterproof.jpg?w=390&amp;quality=100&amp;strip=all&amp;ssl=1 390w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/10\/ds18b20-waterproof.jpg?resize=150%2C103&amp;quality=100&amp;strip=all&amp;ssl=1 150w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/10\/ds18b20-waterproof.jpg?resize=300%2C207&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/10\/ds18b20-waterproof.jpg?resize=80%2C55&amp;quality=100&amp;strip=all&amp;ssl=1 80w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/10\/ds18b20-waterproof.jpg?resize=220%2C152&amp;quality=100&amp;strip=all&amp;ssl=1 220w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/10\/ds18b20-waterproof.jpg?resize=145%2C100&amp;quality=100&amp;strip=all&amp;ssl=1 145w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/10\/ds18b20-waterproof.jpg?resize=217%2C150&amp;quality=100&amp;strip=all&amp;ssl=1 217w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/10\/ds18b20-waterproof.jpg?resize=345%2C238&amp;quality=100&amp;strip=all&amp;ssl=1 345w\" sizes=\"(max-width: 390px) 100vw, 390px\" \/><\/figure><\/div>\n\n\n<p>To get started, you can follow the next tutorials:<\/p>\n\n\n\n<p><strong>Arduino core:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-ds18b20-temperature-sensor-web-server-with-arduino-ide\/\">ESP8266 DS18B20 Temperature Sensor with Arduino IDE (Single, Multiple, Web Server)<\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>MicroPython:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/micropython-ds18b20-esp32-esp8266\/\">MicroPython: DS18B20 Temperature Sensor with ESP32 and ESP8266<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/ds18b20-temperature-sensor-2\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get a DS18B20 Temperature Sensor<\/a>.<\/p>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/ds18b20-digital-temperature-sensor\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get a DS18B20 Temperature Sensor (waterproof version)<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"type-k-thermocouple\">2. <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-k-type-thermocouple-max6675\/\" title=\"Type-K Thermocouple Temperature Sensor\">Type-K Thermocouple Temperature Sensor<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-k-type-thermocouple-max6675\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"749\" height=\"553\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/01\/K-type-thermocouple-MAX6675-amplifier.png?resize=749%2C553&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"K-Type thermocouple with MAX6675 Amplifier Tutorial for ESP32\" class=\"wp-image-109050\" style=\"width:375px;height:277px\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/01\/K-type-thermocouple-MAX6675-amplifier.png?w=749&amp;quality=100&amp;strip=all&amp;ssl=1 749w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/01\/K-type-thermocouple-MAX6675-amplifier.png?resize=300%2C221&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 749px) 100vw, 749px\" \/><\/a><\/figure><\/div>\n\n\n<p>A K-type thermocouple is a type of temperature sensor with a wide measurement range like \u2212200 to 1260\u00baC (\u2212326 to 2300\u00baF). To get the temperature from the thermocouple we need a thermocouple amplifier. We use the MAX6675 amplifier that is sold together with the thermocouple, but you can use any other amplifier, like the MAX31855.<\/p>\n\n\n\n<p>To get started, follow the next tutorial:<\/p>\n\n\n\n<p><strong>Arduino core:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-k-type-thermocouple-max6675\/\">ESP8266 NodeMCU: K-Type Thermocouple with MAX6675 Amplifier<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/type-k-thermocouple-max6675-amplifier\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get the Type-K Thermocouple temperature sensor.<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"dht11-dht22\">3. <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-dht11dht22-temperature-and-humidity-web-server-with-arduino-ide\/\">DHT11\/DHT22 Temperature and Humidity Sensor<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-dht11dht22-temperature-and-humidity-web-server-with-arduino-ide\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"350\" height=\"335\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/dht11-dht22-sensors.jpg?resize=350%2C335&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"DHT11 and DHT22 Sensor Tutorial for ESP32\" class=\"wp-image-113650\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/dht11-dht22-sensors.jpg?w=350&amp;quality=100&amp;strip=all&amp;ssl=1 350w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/dht11-dht22-sensors.jpg?resize=300%2C287&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 350px) 100vw, 350px\" \/><\/a><\/figure><\/div>\n\n\n<p>The DHT11 and DHT22 sensors are used to measure temperature and relative humidity. These sensors contain a chip that does analog to digital conversion and spits out a digital signal with the temperature and humidity. This makes them very easy to use with any microcontroller.<\/p>\n\n\n\n<p>To get started, follow the next tutorials:<\/p>\n\n\n\n<p><strong>Arduino Core:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-dht11dht22-temperature-and-humidity-web-server-with-arduino-ide\/\">ESP8266 DHT11\/DHT22 Temperature and Humidity Web Server with Arduino IDE<\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>MicroPython:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-esp8266-dht11-dht22-micropython-temperature-humidity-sensor\/\">MicroPython: ESP32\/ESP8266 with DHT11\/DHT22 Temperature and Humidity Sensor<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/dht22-temperature-humidity-sensor\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get a DHT22 temperature and humidity sensor.<\/a><\/p>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/dht11-temperature-humidity-sensor\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get a DHT11 temperature and humidity sensor.<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"bme280\">4. <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-bme280-arduino-ide\/\">BME280 Temperature, Humidity, and Pressure Sensor<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-bme280-arduino-ide\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"365\" height=\"343\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/BME280-sensor.png?resize=365%2C343&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"BME280 Sensor Tutorial for ESP32\" class=\"wp-image-113656\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/BME280-sensor.png?w=365&amp;quality=100&amp;strip=all&amp;ssl=1 365w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/BME280-sensor.png?resize=300%2C282&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 365px) 100vw, 365px\" \/><\/a><\/figure><\/div>\n\n\n<p>The&nbsp;<a href=\"https:\/\/makeradvisor.com\/tools\/bme280-sensor-module\/\" target=\"_blank\" rel=\"noreferrer noopener\">BME280 sensor<\/a>&nbsp;module reads barometric pressure, temperature, and humidity. Because pressure changes with altitude, you can also estimate altitude. There are several versions of this sensor module: some can communicate using only I2C communication protocol, and others have the additional option to use the SPI communication protocol. We usually use the I2C protocol with this sensor. This sensor is very versatile and we use it in many of our tutorials.<\/p>\n\n\n\n<p>To get started, follow the next tutorials:<\/p>\n\n\n\n<p><strong>Arduino core:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-bme280-arduino-ide\/\">ESP8266 with BME280 using Arduino IDE (Pressure, Temperature, Humidity)<\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>MicroPython:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/micropython-bme280-esp32-esp8266\/\">MicroPython: BME280 with ESP32 and ESP8266 (Pressure, Temperature, Humidity)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/bme280-sensor-module\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get a BME280 temperature, humidity, and pressure sensor.<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"bme680\">5. <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-bme680-sensor-arduino\/\">BME680 Environmental Sensor (Gas, Pressure, Humidity, Temperature)<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-bme680-sensor-arduino\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"350\" height=\"270\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/BME680-Gas-sensor-humidity-barometric-pressure-ambient-temperature-gas-air-quality.jpg?resize=350%2C270&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"BME680 Sensor Tutorial for ESP32\" class=\"wp-image-113658\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/BME680-Gas-sensor-humidity-barometric-pressure-ambient-temperature-gas-air-quality.jpg?w=350&amp;quality=100&amp;strip=all&amp;ssl=1 350w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/BME680-Gas-sensor-humidity-barometric-pressure-ambient-temperature-gas-air-quality.jpg?resize=300%2C231&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 350px) 100vw, 350px\" \/><\/a><\/figure><\/div>\n\n\n<p>The BME680 is an environmental sensor that combines gas, pressure, humidity, and temperature sensors. The gas sensor can detect a broad range of gases like volatile organic compounds (VOC). For this reason, the BME680 can be used in indoor air quality control.<\/p>\n\n\n\n<p>To get started, follow the next tutorials:<\/p>\n\n\n\n<p><strong>Arduino core:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-bme680-sensor-arduino\/\">ESP8266 NodeMCU: BME680 Environmental Sensor using Arduino IDE (Gas, Pressure, Humidity, Temperature)<\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>MicroPython: <\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/micropython-bme680-esp32-esp8266\/\">MicroPython: BME680 with ESP32 and ESP8266 (Temperature, Humidity, Pressure, Gas)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/bme680-gas-sensor-module\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get a BME680 environmental sensor. <\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"bmp388\">6. <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-bmp388-arduino\/\">BMP388 Altimeter Sensor (Pressure, Altitude, Temperature)<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-bmp388-arduino\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"381\" height=\"344\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/BMP388-Sensor-Module-Temperature-Altitude-Pressure.jpg?resize=381%2C344&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"BMP388 Altimeter Tutorial for ESP32\" class=\"wp-image-113663\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/BMP388-Sensor-Module-Temperature-Altitude-Pressure.jpg?w=381&amp;quality=100&amp;strip=all&amp;ssl=1 381w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/BMP388-Sensor-Module-Temperature-Altitude-Pressure.jpg?resize=300%2C271&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 381px) 100vw, 381px\" \/><\/a><\/figure><\/div>\n\n\n<p>The&nbsp;<a href=\"https:\/\/makeradvisor.com\/tools\/bmp388-sensor-module\/\" target=\"_blank\" rel=\"noreferrer noopener\">BMP388<\/a>&nbsp;is a precise, low-power, low-noise absolute barometric pressure sensor that measures absolute pressure and temperature. Because pressure changes with altitude, we can also estimate altitude with great accuracy. For this reason, this sensor is handy for drone navigation and other applications like vertical velocity calculation; internet of things; weather forecast, and weather stations; health care applications; fitness applications; and much more.<\/p>\n\n\n\n<p>To get started, follow the next tutorial:<\/p>\n\n\n\n<p><strong>Arduino core:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-bmp388-arduino\/\">ESP8266 NodeMCU with BMP388 Barometric\/Altimeter Sensor (Arduino IDE)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/bmp388-sensor-module\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get a BMP388 altimeter sensor.<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"bh1750\">7. <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-bh1750-ambient-light-sensor\/\">BH1750 Light Sensor<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-bh1750-ambient-light-sensor\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"288\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/01\/BH1750-ambient-light-sensors.jpg?resize=750%2C288&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"BH1750 Light Sensor Tutorial for ESP32\" class=\"wp-image-108841\" style=\"width:563px;height:216px\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/01\/BH1750-ambient-light-sensors.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/01\/BH1750-ambient-light-sensors.jpg?resize=300%2C115&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/a><\/figure><\/div>\n\n\n<p>The BH1750 is a 16-bit ambient light sensor that communicates via I2C protocol. It outputs luminosity measurements in lux (SI-derived unit of illuminance). It can measure a minimum of 1 lux and a maximum of 65535 lux. It can be used in a wide variety of projects. For example: to detect if it is day or night; to adjust or turn on\/off LED\u2019s brightness accordingly to ambient light; to adjust LCDs and screen\u2019s brightness; to detect if an LED is lit; etc.<\/p>\n\n\n\n<p>To get started, follow the next tutorial:<\/p>\n\n\n\n<p><strong>Arduino core:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-bh1750-ambient-light-sensor\/\">ESP8266 NodeMCU with BH1750 Ambient Light Sensor<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/bh1750-ambient-light-sensor\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get a BH1750 ambient light sensor.<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"tds-sensor\">8. <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-tds-water-quality-sensor\/\">TDS Sensor (Total Dissolved Solids)<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-tds-water-quality-sensor\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"263\" height=\"263\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/03\/TDS-Sensor-263.jpg?resize=263%2C263&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"TDS Sensor Tutorial for ESP32\" class=\"wp-image-109708\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/03\/TDS-Sensor-263.jpg?w=263&amp;quality=100&amp;strip=all&amp;ssl=1 263w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/03\/TDS-Sensor-263.jpg?resize=150%2C150&amp;quality=100&amp;strip=all&amp;ssl=1 150w\" sizes=\"(max-width: 263px) 100vw, 263px\" \/><\/a><\/figure><\/div>\n\n\n<p>A TDS meter indicates the total dissolved solids like salts, minerals, and metals, in a solution. This parameter can be used to give you an idea of water quality and compare water from different sources. One of the main applications of a TDS meter is aquarium water quality monitoring.<\/p>\n\n\n\n<p>To get started, follow the next tutorial:<\/p>\n\n\n\n<p><strong>Arduino core:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-tds-water-quality-sensor\/\">ESP8266 NodeMCU with TDS Sensor (Water Quality Sensor)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/tds-sensor\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get a TDS (total dissolved solids) sensor.<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"anemometer\">9. <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-anemometer-wind-speed-arduino\/\" title=\"\">Anemometer (Wind Speed Sensor)<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-medium\"><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-anemometer-wind-speed-arduino\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"300\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2023\/08\/667px-Anemometre.jpg?resize=300%2C300&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Anemometer (wind sensor))\" class=\"wp-image-166486\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2023\/08\/667px-Anemometre.jpg?resize=300%2C300&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2023\/08\/667px-Anemometre.jpg?resize=150%2C150&amp;quality=100&amp;strip=all&amp;ssl=1 150w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2023\/08\/667px-Anemometre.jpg?w=686&amp;quality=100&amp;strip=all&amp;ssl=1 686w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/figure><\/div>\n\n\n<p>An anemometer is a device that allows us to measure wind speed. It is commonly used in weather stations. Learn how to use it with the ESP8266 board:<\/p>\n\n\n\n<p><strong>Arduino core:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-anemometer-wind-speed-arduino\/\">ESP8266 NodeMCU with an Anemometer: Measure Wind Speed (Arduino IDE)<\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>Micropython:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/micropython-esp32-esp8266-anemometer-wind-sensor\/\">MicroPython: ESP32\/ESP8266 with Anemometer (Wind Sensor)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/anemometer-wind-speed-sensor\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Get a wind speed sensor compatible with the ESP8266<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity is-style-wide\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Motion Related Sensors<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"pir\">10. <a href=\"https:\/\/randomnerdtutorials.com\/interrupts-timers-esp8266-arduino-ide-nodemcu\/\">PIR Motion Sensor<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/randomnerdtutorials.com\/interrupts-timers-esp8266-arduino-ide-nodemcu\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"251\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2014\/08\/pir.jpg?resize=300%2C251&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"PIR motion sensor with the ESP32 tutorial\" class=\"wp-image-29749\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2014\/08\/pir.jpg?w=300&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2014\/08\/pir.jpg?resize=150%2C126&amp;quality=100&amp;strip=all&amp;ssl=1 150w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2014\/08\/pir.jpg?resize=80%2C67&amp;quality=100&amp;strip=all&amp;ssl=1 80w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2014\/08\/pir.jpg?resize=220%2C184&amp;quality=100&amp;strip=all&amp;ssl=1 220w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2014\/08\/pir.jpg?resize=120%2C100&amp;quality=100&amp;strip=all&amp;ssl=1 120w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2014\/08\/pir.jpg?resize=179%2C150&amp;quality=100&amp;strip=all&amp;ssl=1 179w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2014\/08\/pir.jpg?resize=284%2C238&amp;quality=100&amp;strip=all&amp;ssl=1 284w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/figure><\/div>\n\n\n<p>The PIR motion sensor is ideal to detect movement. PIR stands for \u201cPassive Infrared\u201d and it measures infrared light from objects in its field of view. So, it can detect motion based on changes in infrared light in the environment. It is ideal to detect&nbsp;if a human or animal has moved in or out of the sensor range.<\/p>\n\n\n\n<p>Get started with the following tutorials:<\/p>\n\n\n\n<p><strong>Arduino core:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/interrupts-timers-esp8266-arduino-ide-nodemcu\/\">ESP8266 Interrupts and Timers using Arduino IDE (PIR Motion Sensor)<\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>MicroPython:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/micropython-interrupts-esp32-esp8266\/\">MicroPython: Interrupts with ESP32 and ESP8266 (PIR motion sensor)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/pir-motion-sensor-hc-sr501\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get a PIR Motion Sensor (HC-SR501).<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"reed-switch\">11. <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-door-status-telegram\/\">Door Sensor (reed switch)<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-door-status-telegram\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"350\" height=\"269\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/magnetic-reed-switch-white-img.jpg?resize=350%2C269&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Door Sensor (reed switch)\" class=\"wp-image-113684\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/magnetic-reed-switch-white-img.jpg?w=350&amp;quality=100&amp;strip=all&amp;ssl=1 350w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/magnetic-reed-switch-white-img.jpg?resize=300%2C231&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 350px) 100vw, 350px\" \/><\/a><\/figure><\/div>\n\n\n<p>A magnetic contact switch is a reed switch encased in a plastic shell so that you can easily apply it on a door, a window, or a drawer to detect if it is open or closed.<\/p>\n\n\n\n<p>We have several tutorials with the ESP32 that use a reed switch and send notifications when the door is opened or closed:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-door-status-telegram\/\">ESP8266 NodeMCU Door Status Monitor with Telegram Notifications<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/door-status-monitor-using-the-esp8266\/\">ESP8266 NodeMCU Door Status Monitor with Email Notifications (IFTTT)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/magnetic-reed-switch\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get a magnetic reed switch.<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"hc-sr04\">12. <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-hc-sr04-ultrasonic-arduino\/\">HC-SR04 Ultrasonic Sensor<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-hc-sr04-ultrasonic-arduino\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"350\" height=\"335\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/HC-SR04-ultrasonic-sensor.jpg?resize=350%2C335&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"HC-SR04 Ultrasonic Sensor tutorial with ESP32\" class=\"wp-image-113681\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/HC-SR04-ultrasonic-sensor.jpg?w=350&amp;quality=100&amp;strip=all&amp;ssl=1 350w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/HC-SR04-ultrasonic-sensor.jpg?resize=300%2C287&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 350px) 100vw, 350px\" \/><\/a><\/figure><\/div>\n\n\n<p>The HC-SR04 ultrasonic sensor uses sonar to determine the distance to an object. This sensor reads from 2cm to 400cm (0.8inch to 157inch) with an accuracy of 0.3cm (0.1inches), which is good for most hobbyist projects. In addition, this particular module comes with ultrasonic transmitter and receiver modules.<\/p>\n\n\n\n<p>Get started with one of the following tutorials:<\/p>\n\n\n\n<p><strong>Arduino core:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-hc-sr04-ultrasonic-arduino\/\">ESP8266 NodeMCU with HC-SR04 Ultrasonic Sensor with Arduino IDE<\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>MicroPython:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/micropython-hc-sr04-ultrasonic-esp32-esp8266\/\">MicroPython: HC-SR04 Ultrasonic Sensor with ESP32 and ESP8266 (Measure distance)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/ultrasonic-sensor-hc-sr04\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get an HC-SR04 ultrasonic sensor.<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"mpu6050\">13. <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-mpu-6050-accelerometer-gyroscope-arduino\/\">MPU6050 Accelerometer and Gyroscope<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-mpu-6050-accelerometer-gyroscope-arduino\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"350\" height=\"252\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/MPU-6050-sensor.jpg?resize=350%2C252&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"MPU6050 Accelerometer Gyroscope Tutorial for ESP32\" class=\"wp-image-113678\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/MPU-6050-sensor.jpg?w=350&amp;quality=100&amp;strip=all&amp;ssl=1 350w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/MPU-6050-sensor.jpg?resize=300%2C216&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 350px) 100vw, 350px\" \/><\/a><\/figure><\/div>\n\n\n<p>The MPU-6050 IMU (Inertial Measurement Unit) is a 3-axis accelerometer and 3-axis gyroscope sensor. The accelerometer measures the gravitational acceleration and the gyroscope measures the rotational velocity. Additionally, this module also measures temperature. This sensor is ideal to determine the orientation of a moving object.<\/p>\n\n\n\n<p>To get started, follow the next tutorial:<\/p>\n\n\n\n<p><strong>Arduino core:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-mpu-6050-accelerometer-gyroscope-arduino\/\">ESP8266 NodeMCU with MPU-6050 Accelerometer, Gyroscope and Temperature Sensor (Arduino)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/mpu-6050-3-axis-accelerometer-and-gyroscope-sensor\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get an MPU6050 accelerometer and gyroscope.<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"rcwl-0516\">14. <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-rcwl-0516-arduino\/\" title=\"\">RCWL-0516 Microwave Radar Sensor<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-rcwl-0516-arduino\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"263\" height=\"263\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2023\/08\/RCWL-0516-arduino-tutorial.jpg?resize=263%2C263&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"RCWL-0516 Microwave Radar Sensor\" class=\"wp-image-134338\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2023\/08\/RCWL-0516-arduino-tutorial.jpg?w=263&amp;quality=100&amp;strip=all&amp;ssl=1 263w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2023\/08\/RCWL-0516-arduino-tutorial.jpg?resize=150%2C150&amp;quality=100&amp;strip=all&amp;ssl=1 150w\" sizes=\"(max-width: 263px) 100vw, 263px\" \/><\/a><\/figure><\/div>\n\n\n<p>The RCWL-0516 is a small, inexpensive sensor that uses microwave radar to detect the presence of moving objects. The RCWL-0516 sensor has a single output pin that goes HIGH when it detects movement. It outputs LOW when no motion is detected. This sensor is many times used as an alternative to the PIR motion sensor.<\/p>\n\n\n\n<p>Get started with the following tutorial:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-rcwl-0516-arduino\/\">ESP8266 NodeMCU with RCWL-0516 Microwave Radar Proximity Sensor (Arduino IDE)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\">Get an <a href=\"https:\/\/makeradvisor.com\/tools\/rcwl-0516-microwave-radar\/\" target=\"_blank\" rel=\"noopener\" title=\"\">RCWL-0516 Microwave Radar Proximity Sensor<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"neo-6m-gps\">15. <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-neo-6m-gps-module-arduino\/\" title=\"\">NEO-6M GPS Module<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-neo-6m-gps-module-arduino\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"263\" height=\"263\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2023\/08\/NEO-6M-GPS-Module.jpg?resize=263%2C263&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" class=\"wp-image-134340\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2023\/08\/NEO-6M-GPS-Module.jpg?w=263&amp;quality=100&amp;strip=all&amp;ssl=1 263w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2023\/08\/NEO-6M-GPS-Module.jpg?resize=150%2C150&amp;quality=100&amp;strip=all&amp;ssl=1 150w\" sizes=\"(max-width: 263px) 100vw, 263px\" \/><\/a><\/figure><\/div>\n\n\n<p>The NEO-6M GPS module is a GPS receiver compatible with most microcontroller boards. It can get data about location, speed, altitude, and time.<\/p>\n\n\n\n<p><strong>Arduino core:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-neo-6m-gps-module-arduino\/\">ESP8266 NodeMCU with NEO-6M GPS Module (Arduino IDE)<\/a><\/li>\n<\/ul>\n\n\n\n<p><a href=\"https:\/\/makeradvisor.com\/tools\/neo-6m-gps-module\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Get a NEO-6M GPS Module.<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity is-style-wide\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Other Sensors\/Modules\/Peripherals<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"potentiometer\">16. <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-adc-reading-analog-values-with-nodemcu\/\">Potentiometer<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-adc-reading-analog-values-with-nodemcu\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"200\" height=\"207\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/potentiometer.jpg?resize=200%2C207&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"potentiometer tutorial for ESP32\" class=\"wp-image-113676\"\/><\/a><\/figure><\/div>\n\n\n<p>A potentiometer, also referred to as a pot, is a manually adjustable resistor that can be used in numerous applications: adjust the speed of a DC motor, adjust the position of a stepper or servo motor, adjust threshold values, adjust light intensity, and much more.<\/p>\n\n\n\n<p>To get a value from a potentiometer, you need to know how to read analog signals with the ESP8266. Get started with the following tutorials:<\/p>\n\n\n\n<p><strong>Arduino core:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-adc-reading-analog-values-with-nodemcu\/\">ESP8266 ADC \u2013 Read Analog Values with Arduino IDE<\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>MicroPython:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-esp8266-analog-readings-micropython\/\">ESP32\/ESP8266 Analog Readings with MicroPython<\/a><\/li>\n<\/ul>\n\n\n\n<p>To learn how a potentiometer works, we recommend taking a quick look at the following guide:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/electronics-basics-how-a-potentiometer-works\/\">Electronics Basics \u2013 How a Potentiometer Works<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/potentiometer-assortment-kit\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get a potentiometers assortment kit. <\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"relay\">17. <a href=\"https:\/\/randomnerdtutorials.com\/esp32-esp8266-relay-web-server\/\">Relay Module<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/randomnerdtutorials.com\/esp32-esp8266-relay-web-server\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"210\" height=\"197\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/03\/relay-module.jpg?resize=210%2C197&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"relay module with ESP32 tutorial\" class=\"wp-image-34718\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/03\/relay-module.jpg?w=210&amp;quality=100&amp;strip=all&amp;ssl=1 210w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/03\/relay-module.jpg?resize=150%2C141&amp;quality=100&amp;strip=all&amp;ssl=1 150w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/03\/relay-module.jpg?resize=80%2C75&amp;quality=100&amp;strip=all&amp;ssl=1 80w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/03\/relay-module.jpg?resize=107%2C100&amp;quality=100&amp;strip=all&amp;ssl=1 107w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/03\/relay-module.jpg?resize=160%2C150&amp;quality=100&amp;strip=all&amp;ssl=1 160w\" sizes=\"(max-width: 210px) 100vw, 210px\" \/><\/a><\/figure><\/div>\n\n\n<p>A relay is an electrically operated switch and like any other switch, it that can be turned on or off, letting the current go through or not. It can be controlled with low voltages, like the 3.3V provided by the ESP8266 GPIOs, and allows us to control high voltages like 12V, 24V, or mains voltage (230V in Europe and 120V in the US).<\/p>\n\n\n\n<p>Using a relay with the ESP8266 is a great way to control AC household appliances remotely. Get started with the following tutorials:<\/p>\n\n\n\n<p><strong>Arduino core:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-esp8266-relay-web-server\/\">ESP32\/ESP8266 Relay Module Web Server using Arduino IDE (1, 2, 4, 8, 16 Channels)<\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>MicroPython:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/micropython-relay-web-server-esp32-esp8266\/\">MicroPython: ESP32\/ESP8266 Relay Module Web Server (AC Appliances)<\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>Get a relay module<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/makeradvisor.com\/tools\/5v-2-channel-relay-module-optocoupler\/\" target=\"_blank\">5V 2-channel relay module<\/a>&nbsp;(with optocoupler)<\/li>\n\n\n\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/www.banggood.com\/2Pcs-5V-1-Channel-Level-Trigger-Optocoupler-Relay-Module-For-Arduino-p-1366337.html?p=MA240439985285201910\" target=\"_blank\">5V 1-channel relay module<\/a>&nbsp;(with optocoupler)<\/li>\n\n\n\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/www.banggood.com\/5V-8-Channel-Relay-Module-Board-For-Arduino-PIC-AVR-DSP-ARM-p-74110.html?p=MA240439985285201910\" target=\"_blank\">5V 8-channel relay module<\/a>&nbsp;(with optocoupler)<\/li>\n\n\n\n<li><a href=\"https:\/\/www.banggood.com\/BESTEP-16-Channel-5V-Relay-Module-LM2596-With-Optocoupler-Protection-Low-Level-Trigger-For-Auduino-p-1390338.html?p=MA240439985285201910&amp;cur_warehouse=CN\" target=\"_blank\" rel=\"noreferrer noopener\">5V 16-channel relay module<\/a>&nbsp;(with optocoupler)<\/li>\n\n\n\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/www.banggood.com\/BESTEP-1-Channel-3_3V-Low-Level-Trigger-Relay-Module-Optocoupler-Isolation-Terminal-For-Arduino-p-1355736.html?p=MA240439985285201910\" target=\"_blank\">3.3V 1-channel relay module<\/a>&nbsp;(with optocoupler)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"load-cell\">18. <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-load-cell-hx711\/\">Load Cell with HX711 Amplifier<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-load-cell-hx711\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"263\" height=\"186\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/load-cell-hx711-amplifier-product.png?resize=263%2C186&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Load cell with HX711 amplifier tutorial for ESP32\" class=\"wp-image-113670\"\/><\/a><\/figure><\/div>\n\n\n<p>The load cell you see in the picture above is a strain gauge load cell. A strain gauge is an electrical sensor that measures force or strain on an object. The resistance of the strain gauge varies when an external force is applied to an object, which results in a deformation of the object\u2019s shape (in this case, the metal bar). The change of the resistance is proportional to the load applied, which allows us to calculate the weight of objects.<\/p>\n\n\n\n<p>Get started with the following tutorial:<\/p>\n\n\n\n<p><strong>Arduino core:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-load-cell-hx711\/\">ESP8266 NodeMCU with Load Cell and HX711 Amplifier (Digital Scale)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/load-cell-hx711-amplifier\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get a load cell with the HX711 amplifier.<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity is-style-wide\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Displays<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"oled\">19. <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-0-96-inch-oled-display-with-arduino-ide\/\">OLED Display (SSD1306)<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-0-96-inch-oled-display-with-arduino-ide\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"530\" height=\"510\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/07\/oled.jpg?resize=530%2C510&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"OLED Display SSD1306\" class=\"wp-image-24336\" style=\"width:265px;height:255px\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/07\/oled.jpg?w=530&amp;quality=100&amp;strip=all&amp;ssl=1 530w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/07\/oled.jpg?resize=150%2C144&amp;quality=100&amp;strip=all&amp;ssl=1 150w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/07\/oled.jpg?resize=300%2C289&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/07\/oled.jpg?resize=80%2C77&amp;quality=100&amp;strip=all&amp;ssl=1 80w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/07\/oled.jpg?resize=220%2C212&amp;quality=100&amp;strip=all&amp;ssl=1 220w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/07\/oled.jpg?resize=104%2C100&amp;quality=100&amp;strip=all&amp;ssl=1 104w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/07\/oled.jpg?resize=156%2C150&amp;quality=100&amp;strip=all&amp;ssl=1 156w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/07\/oled.jpg?resize=247%2C238&amp;quality=100&amp;strip=all&amp;ssl=1 247w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/07\/oled.jpg?resize=431%2C415&amp;quality=100&amp;strip=all&amp;ssl=1 431w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2016\/07\/oled.jpg?resize=506%2C487&amp;quality=100&amp;strip=all&amp;ssl=1 506w\" sizes=\"(max-width: 530px) 100vw, 530px\" \/><\/a><\/figure><\/div>\n\n\n<p>The&nbsp;<em>organic light-emitting diode&nbsp;<\/em>(OLED) display is a monocolor display that doesn&#8217;t require backlight, which results in a very nice contrast in dark environments. Additionally, its pixels consume energy only when they are on, so the OLED display consumes less power when compared with other displays. It&#8217;s available with different drivers, but we recommend getting the one with the SSD1306 driver, which is the most supported. There is also a wide variety of OLED sizes. We usually use the 0.96-inch display with 128\u00d764 pixels.<\/p>\n\n\n\n<p><strong>Arduino core:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-0-96-inch-oled-display-with-arduino-ide\/\">ESP8266 0.96 inch OLED Display with Arduino IDE<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-esp8266-dht-temperature-and-humidity-oled-display\/\">ESP32\/ESP8266: DHT Temperature and Humidity Readings in OLED Display<\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>MicroPython:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/micropython-oled-display-esp32-esp8266\/\">MicroPython: OLED Display with ESP32 and ESP8266<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/micropython-ssd1306-oled-scroll-shapes-esp32-esp8266\/\">MicroPython: SSD1306 OLED Display Scroll Functions and Draw Shapes (ESP32\/ESP8266)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/oled-display-128x64-0-96-inch\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get an 0.96inch SSD1306 OLED display.<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"lcd\">20. <a href=\"https:\/\/randomnerdtutorials.com\/esp32-esp8266-i2c-lcd-arduino-ide\/\">I2C LCD (Liquid Crystal Display)<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/randomnerdtutorials.com\/esp32-esp8266-i2c-lcd-arduino-ide\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"350\" height=\"264\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/I2C-LCD-OLED-display.png?resize=350%2C264&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"LCD I2C tutorial for ESP32\" class=\"wp-image-113688\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/I2C-LCD-OLED-display.png?w=350&amp;quality=100&amp;strip=all&amp;ssl=1 350w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/I2C-LCD-OLED-display.png?resize=300%2C226&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 350px) 100vw, 350px\" \/><\/a><\/figure><\/div>\n\n\n<p>The simplest and cheapest display screen around is the liquid crystal display (LCD). LCDs are found in everyday electronics devices like vending machines, calculators, parking meters, and printers, and are ideal for displaying text or small icons. <\/p>\n\n\n\n<p>LCDs are measured according to the number of rows and columns of characters that fit on the screen.  You\u2019ll find sizes ranging from 8\u00d71 to 40\u00d74. A 16\u00d72 LCD can display 2 rows of 16 characters each and this is the one we use most in our projects. We recommend getting one that supports I2C because it makes wiring and coding even easier.<\/p>\n\n\n\n<p>Get started with the following tutorial:<\/p>\n\n\n\n<p><strong>Arduino core:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-esp8266-i2c-lcd-arduino-ide\/\">How to Use I2C LCD with ESP32 on Arduino IDE (ESP8266 compatible)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/i2c-lcd-16x2\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get an I2C LCD display.<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"led-strip\">21.<a href=\"https:\/\/randomnerdtutorials.com\/esp32-esp8266-rgb-led-strip-web-server\/\"> RGB LED Strip<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/randomnerdtutorials.com\/esp32-esp8266-rgb-led-strip-web-server\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"263\" height=\"263\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/rgb-led-strip.jpg?resize=263%2C263&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"RGB LED Strip ESP32 tutorial\" class=\"wp-image-113725\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/rgb-led-strip.jpg?w=263&amp;quality=100&amp;strip=all&amp;ssl=1 263w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/rgb-led-strip.jpg?resize=150%2C150&amp;quality=100&amp;strip=all&amp;ssl=1 150w\" sizes=\"(max-width: 263px) 100vw, 263px\" \/><\/a><\/figure><\/div>\n\n\n<p>LED strips are just amazing, and there are a wide variety of LED strips to choose from. They can be analog, or digital, and vary in the density and number of LEDs, power supply, etc. To learn more about the main differences between LED strips, I recommend taking a look at the following article: <a href=\"https:\/\/randomnerdtutorials.com\/best-led-strip-for-your-project\/\">What\u2019s the Best LED Strip For Your Project? <\/a><\/p>\n\n\n\n<p>Analog LED strips have their LEDs wired in parallel. The whole strip works as a giant RGB LED. So, you can light up your whole strip in many different colors, but you can\u2019t control LEDs individually. This means your strip can only be one color at a time. This type of LED strips are cheaper than the digital ones and easier to use. You can follow the next tutorial that shows how to use those LED strips:<\/p>\n\n\n\n<p><strong>Arduino core:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-esp8266-rgb-led-strip-web-server\/\">ESP32\/ESP8266 RGB LED Strip with Color Picker Web Server<\/a><\/li>\n<\/ul>\n\n\n\n<p>When it comes to digital LED strips, you can control each LED individually \u2013 these are also called addressable LED strips. You can chose each LED color, its brightness and when they should be on and off. This allows you to do all sorts of crazy and awesome effects. Our favorite addressable RGB LED strip is the WS2812B. We have a MicroPython guide showing how to control an addressable RGB LED strip and produce amazing effects.<\/p>\n\n\n\n<p><strong>MicroPython:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/micropython-ws2812b-addressable-rgb-leds-neopixel-esp32-esp8266\/\">MicroPython: WS2812B Addressable RGB LEDs with ESP32 and ESP8266<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/dc12v-rgb-led-strip-ir-remote-controlled\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get an Analog RGB LED Strip<\/a>.<\/p>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/ws2812b-addressable-rgb-led-strip\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get a WS2812B addressable RGB LED Strip<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity is-style-wide\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Communication<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"tca9548a\">22. <a href=\"https:\/\/randomnerdtutorials.com\/tca9548a-i2c-multiplexer-esp32-esp8266-arduino\/\">TCA9548A I2C Multiplexer<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/randomnerdtutorials.com\/tca9548a-i2c-multiplexer-esp32-esp8266-arduino\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"317\" height=\"313\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/TCA9548A-I2C-Multiplexer.jpg?resize=317%2C313&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"TCA9548A I2C Multiplexer Tutorial for ESP32\" class=\"wp-image-113729\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/TCA9548A-I2C-Multiplexer.jpg?w=317&amp;quality=100&amp;strip=all&amp;ssl=1 317w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/TCA9548A-I2C-Multiplexer.jpg?resize=300%2C296&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 317px) 100vw, 317px\" \/><\/a><\/figure><\/div>\n\n\n<p>The I2C communication protocol allows you to communicate with multiple I2C devices on the same I2C bus as long as each device has a unique I2C address. However, it will not work if you want to connect multiple I2C devices with the same address.<\/p>\n\n\n\n<p>The&nbsp;<a href=\"https:\/\/makeradvisor.com\/tools\/tca9548a-i2c-multiplexer\/\" target=\"_blank\" rel=\"noreferrer noopener\">TCA9548A I2C multiplexer<\/a>&nbsp;allows you to communicate with up to 8 I2C devices with the same I2C bus. The multiplexer communicates with a microcontroller using the I2C communication protocol. Then, you can select which I2C bus on the multiplexer you want to address.<\/p>\n\n\n\n<p>Get started with the following tutorial:<\/p>\n\n\n\n<p><strong>Arduino core:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/tca9548a-i2c-multiplexer-esp32-esp8266-arduino\/\">Guide for TCA9548A I2C Multiplexer: ESP32, ESP8266, Arduino<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/tca9548a-i2c-multiplexer\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get a TCA9584A I2C multiplexer<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"rfid\">23. MRFC522 RFID Reader\/Writer<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/randomnerdtutorials.com\/esp32-mfrc522-rfid-reader-arduino\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"263\" height=\"263\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2023\/08\/Arduino-RFID-Reader-MFRC522.jpg?resize=263%2C263&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" class=\"wp-image-134355\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2023\/08\/Arduino-RFID-Reader-MFRC522.jpg?w=263&amp;quality=100&amp;strip=all&amp;ssl=1 263w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2023\/08\/Arduino-RFID-Reader-MFRC522.jpg?resize=150%2C150&amp;quality=100&amp;strip=all&amp;ssl=1 150w\" sizes=\"(max-width: 263px) 100vw, 263px\" \/><\/a><\/figure><\/div>\n\n\n<p>RFID means radio-frequency identification. RFID uses electromagnetic fields to transfer data over short distances. RFID is useful for identifying people, making transactions, opening doors, and many other applications.<\/p>\n\n\n\n<p>Learn how to use the MFRC522 RFID Reader with the ESP8266:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-mfrc522-rfid-reader-arduino\/\">ESP8266 NodeMCU with MFRC522 RFID Reader\/Writer (Arduino IDE)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/mfrc522-rfid-reader\/\" title=\"\">Get a MFRC522 RFID Reader<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity is-style-wide\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Motors<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"stepper-motor\">24. <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-stepper-motor-28byj-48-uln2003\/\">Stepper Motor<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-stepper-motor-28byj-48-uln2003\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"372\" height=\"312\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/stepper-motor-28byj-48-and-ULN2003-motor-driver.jpg?resize=372%2C312&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32 with Stepper Motor (28BYJ-48 and ULN2003 Motor Driver)\" class=\"wp-image-113669\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/stepper-motor-28byj-48-and-ULN2003-motor-driver.jpg?w=372&amp;quality=100&amp;strip=all&amp;ssl=1 372w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/stepper-motor-28byj-48-and-ULN2003-motor-driver.jpg?resize=300%2C252&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 372px) 100vw, 372px\" \/><\/a><\/figure><\/div>\n\n\n<p>A stepper motor is a brushless DC electric motor that divides a full rotation into a number of steps. It moves one step at a time, and each step is the same size. This allows us to rotate the motor at a precise angle to a precise position. The stepper motor can rotate clockwise or counterclockwise.<\/p>\n\n\n\n<p>To get started, follow the next tutorial:<\/p>\n\n\n\n<p><strong>Arduino core:<\/strong><\/p>\n\n\n\n<ul><li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-stepper-motor-28byj-48-uln2003\/\"><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-stepper-motor-28byj-48-uln2003\/\">ESP8266 NodeMCU with Stepper Motor (28BYJ-48 and ULN2003 Motor Driver)<\/a><\/a><\/li><\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/28byj-48-stepper-motor-uln2003\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get a stepper motor (2BYJ-48).<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"dc-motor\">25. <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-dc-motor-l298n-motor-driver-control-speed-direction\/\" title=\"\">DC Motor<\/a><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-dc-motor-l298n-motor-driver-control-speed-direction\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"242\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/DC-motor-L298N-driver.jpg?resize=500%2C242&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"DC motor with 298N motor driver tutorial for ESP32\" class=\"wp-image-113741\" style=\"width:500px;height:242px\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/DC-motor-L298N-driver.jpg?w=500&amp;quality=100&amp;strip=all&amp;ssl=1 500w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/DC-motor-L298N-driver.jpg?resize=300%2C145&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><\/figure><\/div>\n\n\n<p>Learn how to control a DC motor (speed and direction) with the ESP8266 using the L298N motor driver. To get started, follow the next tutorial:<\/p>\n\n\n\n<p><strong>Arduino core:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-dc-motor-l298n-motor-driver-control-speed-direction\/\">ESP8266 NodeMCU with DC Motor and L298N Motor Driver \u2013 Control Speed and Direction (Arduino IDE)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/mini-dc-motor\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get a mini DC motor.<\/a><\/p>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/l298n-motor-driver\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get a L298N motor driver.<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wrapping Up<\/h2>\n\n\n\n<p>This was our compilation of tutorials for the most popular sensors, modules, and peripherals compatible with the ESP8266 NodeMCU boards.<\/p>\n\n\n\n<p>If you have a sensor\/module that you would like to be covered on our website, just write a comment below.<\/p>\n\n\n\n<p>We hope you find this article useful. Don&#8217;t forget to bookmark this page for the future and share it with a friend that also likes electronics.<\/p>\n\n\n\n<p>If you want to learn more about the ESP8266, check out the following resources:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/home-automation-using-esp8266\/\">Home Automation using ESP8266<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/build-web-servers-esp32-esp8266-ebook\/\">Build Web Servers with ESP32 and ESP8266<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/firebase-esp32-esp8266-ebook\/\">Firebase Web App with ESP32 and ESP8266<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/projects-esp8266\/\">Free ESP8266 Projects and Tutorials<\/a><\/li>\n<\/ul>\n\n\n\n<p>Thanks for reading<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>There is a wide variety of sensors, modules, and peripherals compatible with the ESP8266 NodeMCU boards. We have tutorials for the most popular components. This article is a compilation of &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"ESP8266 NodeMCU: 25 Free Guides for Sensors and Modules\" class=\"read-more button\" href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-guides-sensors-modules\/#more-113938\" aria-label=\"Read more about ESP8266 NodeMCU: 25 Free Guides for Sensors and Modules\">CONTINUE READING \u00bb<\/a><\/p>\n","protected":false},"author":5,"featured_media":113996,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[214,265,246,240,300,264],"tags":[],"class_list":["post-113938","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-esp8266","category-esp8266-project","category-esp8266-arduino-ide","category-esp8266-projects","category-0-esp8266","category-project"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/ESP8266-Free-Guides-Sensors-Modules.jpg?fit=1280%2C720&quality=100&strip=all&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/113938","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/comments?post=113938"}],"version-history":[{"count":24,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/113938\/revisions"}],"predecessor-version":[{"id":166508,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/113938\/revisions\/166508"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/media\/113996"}],"wp:attachment":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/media?parent=113938"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/categories?post=113938"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/tags?post=113938"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}