{"id":165146,"date":"2025-02-20T12:39:35","date_gmt":"2025-02-20T12:39:35","guid":{"rendered":"https:\/\/randomnerdtutorials.com\/?p=165146"},"modified":"2025-02-20T12:39:39","modified_gmt":"2025-02-20T12:39:39","slug":"raspberry-pi-pico-guides-sensors-modules","status":"publish","type":"post","link":"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-guides-sensors-modules\/","title":{"rendered":"Raspberry Pi Pico: 20 Free Guides for Sensors and Modules"},"content":{"rendered":"\n<p>This article is a compilation of 20 free guides for different sensors, modules, and peripherals compatible with the Raspberry Pi Pico. Most guides cover programming the RPi Pico using MicroPython firmware, but we also have some guides using Arduino IDE.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"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\/2025\/01\/RPi-Pico-Free-Guides-Sensors.jpg?resize=1200%2C675&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Raspberry Pi Pico Free Guides for Sensors and Modules\" class=\"wp-image-166867\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/01\/RPi-Pico-Free-Guides-Sensors.jpg?w=1920&amp;quality=100&amp;strip=all&amp;ssl=1 1920w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/01\/RPi-Pico-Free-Guides-Sensors.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/01\/RPi-Pico-Free-Guides-Sensors.jpg?resize=1024%2C576&amp;quality=100&amp;strip=all&amp;ssl=1 1024w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/01\/RPi-Pico-Free-Guides-Sensors.jpg?resize=768%2C432&amp;quality=100&amp;strip=all&amp;ssl=1 768w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/01\/RPi-Pico-Free-Guides-Sensors.jpg?resize=1536%2C864&amp;quality=100&amp;strip=all&amp;ssl=1 1536w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure><\/div>\n\n\n<p>We have similar articles for the ESP32, ESP8266, and Arduino boards:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-guides-sensors-modules\/\" title=\"\">ESP32: 29 Free Guides for Sensors and Modules<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-guides-sensors-modules\/\">ESP8266 NodeMCU: 25 Free Guides for Sensors and Modules<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/arduino-free-guides-sensors-modules\/\">Arduino: 39 Free Guides for Sensors and Modules<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgreen\"><strong>New to the Raspberry Pi Pico?<\/strong> Check out our getting started guide: <a href=\"https:\/\/randomnerdtutorials.com\/getting-started-raspberry-pi-pico-w\/\" title=\"\">Getting Started with Raspberry Pi Pico (and Pico W)<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Table Of Contents<\/h2>\n\n\n\n<p>Here&#8217;s a list of the sensors, modules, and peripherals included in this guide:<\/p>\n\n\n\n<p><strong>Environmental Sensors:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>1) <a href=\"#ds18b20\" title=\"\">DS18B20 Temperature Sensor<\/a><\/li>\n\n\n\n<li>2) <a href=\"#bme280\" title=\"\">BME280 Pressure, Temperature, and Humidity Sensor<\/a><\/li>\n\n\n\n<li>3) <a href=\"#bme680\" title=\"\">BME680 Environmental Sensor (Gas, Temperature, Humidity, Pressure)<\/a><\/li>\n\n\n\n<li>4) <a href=\"#dht11-dht22\" title=\"\">DHT11\/DHT22 Humidity and Temperature Sensor<\/a><\/li>\n\n\n\n<li>5) <a href=\"#pico-internal-temp-sensor\" title=\"\">Raspberry Pi Pico Internal Temperature Sensor<\/a><\/li>\n\n\n\n<li>6) <a href=\"#bh1750\" title=\"\">BH1750 Light Sensor<\/a><\/li>\n\n\n\n<li>7) <a href=\"#anemometer\" title=\"\">Anemometer (Wind Sensor)<\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>Motion-Related Sensors<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>8) <a href=\"#pir-motion-sensor\" title=\"\">PIR Motion Sensor<\/a><\/li>\n\n\n\n<li>9) <a href=\"#RCWL-0516\" title=\"\">RCWL-0516 Microwave Radar Proximity Sensor<\/a><\/li>\n\n\n\n<li>10) <a href=\"#neo-6m-gps\" title=\"\">NEO-6M GPS Module<\/a><\/li>\n\n\n\n<li>11) <a href=\"#neo-m8n-gps\" title=\"\">NEO-M8N GPS Module<\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>Motors<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>12) <a href=\"#stepper-motor\" title=\"\">Stepper Motor<\/a><\/li>\n\n\n\n<li>13) <a href=\"#servo-motor\" title=\"\">Servo Motor<\/a><\/li>\n\n\n\n<li>14) <a href=\"#dc-motor\" title=\"\">DC Motor<\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>Displays<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>15) <a href=\"#LCD\" title=\"\">LCD<\/a><\/li>\n\n\n\n<li>16) <a href=\"#oled\" title=\"\">OLED Display<\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>Other Sensors\/Modules\/Peripherals<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>17) <a href=\"#ds1307\" title=\"\">DS1307 Real Time Clock Module<\/a><\/li>\n\n\n\n<li>18) <a href=\"#ds3231\" title=\"\">DS3231 Real Time Clock Module<\/a><\/li>\n\n\n\n<li>19) <a href=\"#micro-sd-card\" title=\"\">microSD Card Module<\/a><\/li>\n\n\n\n<li>20) <a href=\"#potentiometer\" title=\"\">Potentiometer<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Environmental Sensors<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ds18b20\">1) DS18B20 Temperature Sensor<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><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\" \/><\/figure><\/div>\n\n\n<p>The&nbsp;DS18B20 temperature sensor&nbsp;is a one-wire digital temperature sensor. It requires just one data line (and GND) to communicate with your RPi Pico. Each DS18B20 temperature sensor has a unique 64-bit serial code. This allows you to wire multiple sensors to the same data wire (using just a single GPIO).<\/p>\n\n\n\n<p>The DS18B20 temperature sensor is also available in&nbsp;a 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\u2014we have a guide for MicroPython and Arduino IDE:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-ds18b20-micropython\/\">Raspberry Pi Pico: <strong>DS18B20<\/strong> Temperature Sensor (<strong>MicroPython<\/strong>) \u2013 Single and Multiple<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-ds18b20-arduino\/\">Raspberry Pi Pico: <strong>DS18B20<\/strong> Temperature Sensor (<strong>Arduino IDE<\/strong>) \u2013 Single and Multiple<\/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=\"bme280\">2) BME280 Pressure, Temperature, and Humidity Sensor<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-medium\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"282\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/BME280-sensor.png?resize=300%2C282&#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?resize=300%2C282&amp;quality=100&amp;strip=all&amp;ssl=1 300w, 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\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n<p>The\u00a0BME280 sensor\u00a0module 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<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-bme280-micropython\/\">Raspberry Pi Pico: <strong>BME280 <\/strong>Get Temperature, Humidity, and Pressure (<strong>MicroPython<\/strong>)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-bme280-arduino\/\">Raspberry Pi Pico: <strong>BME280 <\/strong>Get Temperature, Humidity, and Pressure (<strong>Arduino IDE<\/strong>)<\/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\">3) BME680 Environmental Sensor (Gas, Temperature, Humidity, Pressure)<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><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\" \/><\/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 various 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<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-bme680-micropython\/\">Raspberry Pi Pico: <strong>BME680 <\/strong>Environmental Sensor (<strong>MicroPython<\/strong>)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-bme680-arduino\/\">Raspberry Pi Pico: <strong>BME680 <\/strong>Environmental Sensor (<strong>Arduino IDE<\/strong>)<\/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=\"dht11-dht22\">4) DHT11\/DHT22 Humidity and Temperature Sensor<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><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\" \/><\/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>We have tutorials using MicroPython and Arduino IDE:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-dht11-dht22-micropython\/\">Raspberry Pi Pico: <strong>DHT11\/DHT22<\/strong> Temperature and Humidity Sensor (<strong>MicroPython<\/strong>)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-dht11-dht22-arduino\/\">Raspberry Pi Pico: <strong>DHT11\/DHT22<\/strong> Temperature and Humidity Sensor (<strong>Arduino IDE<\/strong>)<\/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=\"pico-internal-temp-sensor\">5) Raspberry Pi Pico Internal Temperature Sensor<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"345\" height=\"213\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/01\/RPi-Pico-Internal-Temperature-Sensor-f.jpg?resize=345%2C213&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" class=\"wp-image-166852\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/01\/RPi-Pico-Internal-Temperature-Sensor-f.jpg?w=345&amp;quality=100&amp;strip=all&amp;ssl=1 345w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/01\/RPi-Pico-Internal-Temperature-Sensor-f.jpg?resize=300%2C185&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 345px) 100vw, 345px\" \/><\/figure><\/div>\n\n\n<p>The Raspberry Pi Pico comes with a built-in temperature sensor connected to one of its analog pins. Reading its internal temperature is as easy as reading the analog signal on the specified pin and making the necessary calculations.<\/p>\n\n\n\n<p>Learn how to read the Raspberry Pi Pico internal temperature with the following tutorials:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-internal-temperature-micropython\/\" title=\"\">Raspberry Pi Pico: Read the Internal Temperature Sensor (MicroPython)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-internal-temperature-arduino\/\">Raspberry Pi Pico: Read the Internal Temperature Sensor (Arduino IDE)<\/a><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"bh1750\">6) BH1750 Light Sensor<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><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\" \/><\/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 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 according 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<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-bh1750-micropython\/\">Raspberry Pi Pico: BH1750 Ambient Light Sensor (MicroPython)<\/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=\"anemometer\">7) Anemometer (Wind Speed Sensor)<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-medium\"><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\" \/><\/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 Raspberry Pi Pico:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-anemometer-micropython\/\">Raspberry Pi Pico with <strong>Anemometer<\/strong>: Measure Wind Speed (<strong>MicroPython<\/strong>)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-anemometer-arduino\/\">Raspberry Pi Pico with <strong>Anemometer<\/strong>: Measure Wind Speed (<strong>Arduino IDE<\/strong>)<\/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 an anemometer (wind speed sensor)<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Motion-Related Sensors<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"pir-motion-sensor\">8) PIR Motion Sensor<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><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\" \/><\/figure><\/div>\n\n\n<p>The PIR motion sensor is ideal for detecting 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. We usually use the HC-SR501 model or the mini AM312 PIR motion sensor.<\/p>\n\n\n\n<p>Get started with the following tutorials:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-motion-pir-micropython\/\">Raspberry Pi Pico: Detect Motion using a <strong>PIR Sensor<\/strong> (<strong>MicroPython<\/strong>)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-motion-pir-arduino\/\">Raspberry Pi Pico: Detect Motion using a <strong>PIR Sensor<\/strong> (<strong>Arduino IDE<\/strong>)<\/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=\"noopener\" title=\"\">Get a HC-SR501 PIR motion sensor<\/a>.<\/p>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/mini-hc-sr505-pir-motion-sensor\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Get a AM312 PIR motion sensor<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"RCWL-0516\">9) RCWL-0516 Microwave Radar Proximity Sensor<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><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 Proximity 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\" \/><\/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 often used as an alternative to the PIR motion sensor.<\/p>\n\n\n\n<p>Get started with the following tutorials:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-rcwl-0516-micropython\/\">Raspberry Pi Pico: RCWL-0516 Microwave Radar Proximity Sensor (MicroPython)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-rcwl-0516-arduino\/\">Raspberry Pi Pico: RCWL-0516 Microwave Radar Proximity Sensor (Arduino IDE)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/rcwl-0516-microwave-radar\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Get a RCWL-0516 Microwave Radar Proximity Sensor<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"neo-6m-gps\">10) NEO-6M GPS Module<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><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=\"NEO-6M GPS Module\" 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\" \/><\/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. Get started with the following tutorial:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-neo-6m-micropython\/\">Raspberry Pi Pico: NEO-6M GPS Module \u2013 Get Location and Time (MicroPython)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><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<h3 class=\"wp-block-heading\" id=\"neo-m8n-gps\">11) NEO-M8N GPS Module<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"263\" height=\"220\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/01\/NEO-M8N-GPS-Module-f.jpg?resize=263%2C220&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"NEO-M8N GPS Module\" class=\"wp-image-166855\"\/><\/figure><\/div>\n\n\n<p>The NEO-M8N GPS module is similar to the NEO-6M, but it supports multiple satellite systems, including GPS, Galileo, GLONASS, and BeiDou. It offers better satellite tracking than the NEO-6M, making it more reliable in challenging conditions.<\/p>\n\n\n\n<p>Learn how to get started with the NEO-M8N with our tutorial:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-neo-m8n-gps-micropython\/\">Raspberry Pi Pico with NEO-M8N GPS Module: GPS Logger and Display on Google Earth (MicroPython)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/neo-m8n-gps-module\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Get a NEO-M8N GPS Module<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Motors<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"stepper-motor\">12) Stepper Motor<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><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\" \/><\/figure><\/div>\n\n\n<p>A stepper motor is a brushless DC electric motor that divides a full rotation into several 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<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-stepper-motor-micropython\/\">Raspberry Pi Pico: Control a Stepper Motor with MicroPython<\/a><\/li>\n<\/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=\"servo-motor\">13) Servo Motor<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"385\" height=\"290\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/micro-Servo-motor.jpg?resize=385%2C290&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Servo Motor\" class=\"wp-image-113740\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/micro-Servo-motor.jpg?w=385&amp;quality=100&amp;strip=all&amp;ssl=1 385w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/08\/micro-Servo-motor.jpg?resize=300%2C226&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 385px) 100vw, 385px\" \/><\/figure><\/div>\n\n\n<p>Learn how to control a servo motor with the Raspberry Pi Pico:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-servo-motor-micropython\/\">Raspberry Pi Pico: Control a Servo Motor (MicroPython)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/micro-servo-motor-tool\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get a micro servo motor<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"dc-motor\">14) DC Motor and L298N Motor Driver<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><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\" \/><\/figure><\/div>\n\n\n<p>Learn how to control a DC motor (speed and direction) with the Raspberry Pi Pico using the L298N motor driver. To get started, follow the next tutorial:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-dc-motor-micropython\/\">Raspberry Pi Pico: Control DC Motor with L298N Motor Driver (MicroPython)<\/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\">Displays<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"lcd\">15) Liquid Cristal Display (LCD)<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><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\" 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\" \/><\/figure><\/div>\n\n\n<p>The simplest and cheapest display screen around is the liquid crystal display (LCD). LCDs are found in everyday electronic 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<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-i2c-lcd-display-micropython\/\">Raspberry Pi Pico with I2C LCD Display (MicroPython)<\/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=\"oled\">16) OLED Display<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><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\" 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\" \/><\/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<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-ssd1306-oled-micropython\/\">Raspberry Pi Pico: SSD1306 OLED Display (MicroPython)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-ssd1306-oled-arduino\/\">Raspberry Pi Pico: SSD1306 OLED Display (Arduino IDE)<\/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.96 inch SSD1306 OLED display.<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Other Sensors\/Modules\/Peripherals<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ds1307\">17) DS1307 Real Time Clock Module<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"263\" height=\"263\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/01\/DS1307-RTC-Module.jpg?resize=263%2C263&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"DS1307 RTC Module\" class=\"wp-image-166861\" style=\"width:263px;height:auto\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/01\/DS1307-RTC-Module.jpg?w=263&amp;quality=100&amp;strip=all&amp;ssl=1 263w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/01\/DS1307-RTC-Module.jpg?resize=150%2C150&amp;quality=100&amp;strip=all&amp;ssl=1 150w\" sizes=\"(max-width: 263px) 100vw, 263px\" \/><\/figure><\/div>\n\n\n<p>The DS1307 RTC Module comes with the DS1307 chip (to keep track of time) and the AT24C32 EEPROM (to save data permanently). It can also be programmed to output square waves with different frequencies.&nbsp;RTC modules, such as the DS3231 and DS1307, have their own tiny clock inside to keep track of time by themselves. Usually, they come with a battery holder to connect a battery so that they keep working even if they reset or lose power. <\/p>\n\n\n\n<p>Learn how to interface the DS1307 RTC Module with the Raspberry Pi Pico:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-ds1307-rtc-micropython\/\" title=\"\">Raspberry Pi Pico: DS1307 RTC Module \u2013 Keep Track of Time (MicroPython)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/real-time-clock-module-ds1307\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Get a DS1307 Real Time Clock Module<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ds3231\">18) DS3231 Real Time Clock Module<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"263\" height=\"263\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/01\/DS3231-RTC-Module.jpg?resize=263%2C263&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"DS3231 RTC module\" class=\"wp-image-166862\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/01\/DS3231-RTC-Module.jpg?w=263&amp;quality=100&amp;strip=all&amp;ssl=1 263w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/01\/DS3231-RTC-Module.jpg?resize=150%2C150&amp;quality=100&amp;strip=all&amp;ssl=1 150w\" sizes=\"(max-width: 263px) 100vw, 263px\" \/><\/figure><\/div>\n\n\n<p>The DS3231 is an RTC module like the DS1307, but it is more accurate because it comes with a temperature sensor and gives temperature-compensated results. Additionally, it also allows you to set up alarms.<\/p>\n\n\n\n<p>Learn how to get started with the DS3231 RTC module with our guide:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-ds3231-rtc-micropython\/\">Raspberry Pi Pico with DS3231 RTC (Real-Time Clock): Getting Time and Setting Alarms (MicroPython)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/ds3231-rtc-module\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Get a DS3231 Real Time Clock Module<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"micro-sd-card\">19) MicroSD Card Module<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"317\" height=\"288\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/02\/microSD-card-module-ESP32-ESP8266-Arduino.png?resize=317%2C288&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"microSD card module tutorial\" class=\"wp-image-102297\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/02\/microSD-card-module-ESP32-ESP8266-Arduino.png?w=317&amp;quality=100&amp;strip=all&amp;ssl=1 317w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/02\/microSD-card-module-ESP32-ESP8266-Arduino.png?resize=300%2C273&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 317px) 100vw, 317px\" \/><\/figure><\/div>\n\n\n<p>The microSD card module allows you to interface the Raspberry Pi Pico with a microSD card. You can use the microSD card with the Pico to create, write, read, and delete files. It can be very useful for datalogging, saving configuration files, or saving files to serve to clients via a web server.<\/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\/raspberry-pi-pico-microsd-card-micropython\/\">Raspberry Pi Pico: MicroSD Card Guide with Datalogging Example (MicroPython)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"rntbox rntclgray\"><a href=\"https:\/\/makeradvisor.com\/tools\/sd-card-module\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get a microSD card module.<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"potentiometer\">20) Potentiometer<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><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\" class=\"wp-image-113676\"\/><\/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 Raspberry Pi Pico. Check out the following tutorials:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-analog-inputs-micropython\/\">Raspberry Pi Pico: Read Analog Inputs\u2014Potentiometer (MicroPython)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-analog-inputs-arduino\/\">Raspberry Pi Pico: Read Analog Inputs\u2014Potentiometer (Arduino IDE)<\/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 potentiometer assortment kit. <\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wrapping Up<\/h2>\n\n\n\n<p>This was our compilation of free guides for sensors and modules with the Raspberry Pi Pico. If you have a sensor\/module that you would like to be covered on our website, just write a comment below. Don\u2019t forget to bookmark this page for the future and share it with a friend that also likes electronics.<\/p>\n\n\n\n<p>To learn more about the Raspberry Pi Pico, check out our resources:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-w-micropython-ebook\/\" title=\"\">Learn Raspberry Pi Pico\/Pico W with MicroPython (eBook)<\/a><\/li>\n\n\n\n<li><strong><a href=\"https:\/\/randomnerdtutorials.com\/projects-raspberry-pi-pico\/\" title=\"\">All our Raspberry Pi Pico Tutorials and Guides<\/a><\/strong><\/li>\n<\/ul>\n\n\n\n<p>Thanks for reading.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article is a compilation of 20 free guides for different sensors, modules, and peripherals compatible with the Raspberry Pi Pico. Most guides cover programming the RPi Pico using MicroPython &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"Raspberry Pi Pico: 20 Free Guides for Sensors and Modules\" class=\"read-more button\" href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-guides-sensors-modules\/#more-165146\" aria-label=\"Read more about Raspberry Pi Pico: 20 Free Guides for Sensors and Modules\">CONTINUE READING \u00bb<\/a><\/p>\n","protected":false},"author":5,"featured_media":166867,"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":[324,325,326],"tags":[],"class_list":["post-165146","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-raspberry-pi-pico","category-raspberry-pi-pico-arduino-ide","category-raspberry-pi-pico-micropython"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/01\/RPi-Pico-Free-Guides-Sensors.jpg?fit=1920%2C1080&quality=100&strip=all&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/165146","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=165146"}],"version-history":[{"count":17,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/165146\/revisions"}],"predecessor-version":[{"id":167537,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/165146\/revisions\/167537"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/media\/166867"}],"wp:attachment":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/media?parent=165146"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/categories?post=165146"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/tags?post=165146"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}