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.

We have similar articles for the ESP32, ESP8266, and Arduino boards:
- ESP32: 29 Free Guides for Sensors and Modules
- ESP8266 NodeMCU: 25 Free Guides for Sensors and Modules
- Arduino: 39 Free Guides for Sensors and Modules
New to the Raspberry Pi Pico? Check out our getting started guide: Getting Started with Raspberry Pi Pico (and Pico W).
Table Of Contents
Here’s a list of the sensors, modules, and peripherals included in this guide:
Environmental Sensors:
- 1) DS18B20 Temperature Sensor
- 2) BME280 Pressure, Temperature, and Humidity Sensor
- 3) BME680 Environmental Sensor (Gas, Temperature, Humidity, Pressure)
- 4) DHT11/DHT22 Humidity and Temperature Sensor
- 5) Raspberry Pi Pico Internal Temperature Sensor
- 6) BH1750 Light Sensor
- 7) Anemometer (Wind Sensor)
Motion-Related Sensors
- 8) PIR Motion Sensor
- 9) RCWL-0516 Microwave Radar Proximity Sensor
- 10) NEO-6M GPS Module
- 11) NEO-M8N GPS Module
Motors
- 12) Stepper Motor
- 13) Servo Motor
- 14) DC Motor
Displays
- 15) LCD
- 16) OLED Display
Other Sensors/Modules/Peripherals
- 17) DS1307 Real Time Clock Module
- 18) DS3231 Real Time Clock Module
- 19) microSD Card Module
- 20) Potentiometer
Environmental Sensors
1) DS18B20 Temperature Sensor

The DS18B20 temperature sensor 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).
The DS18B20 temperature sensor is also available in a waterproof version.

To get started, you can follow the next tutorials—we have a guide for MicroPython and Arduino IDE:
- Raspberry Pi Pico: DS18B20 Temperature Sensor (MicroPython) – Single and Multiple
- Raspberry Pi Pico: DS18B20 Temperature Sensor (Arduino IDE) – Single and Multiple
Get a DS18B20 Temperature Sensor.
Get a DS18B20 Temperature Sensor (waterproof version).
2) BME280 Pressure, Temperature, and Humidity Sensor

The BME280 sensor 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.
To get started, follow the next tutorials:
- Raspberry Pi Pico: BME280 Get Temperature, Humidity, and Pressure (MicroPython)
- Raspberry Pi Pico: BME280 Get Temperature, Humidity, and Pressure (Arduino IDE)
Get a BME280 temperature, humidity, and pressure sensor.
3) BME680 Environmental Sensor (Gas, Temperature, Humidity, Pressure)

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.
To get started, follow the next tutorials
- Raspberry Pi Pico: BME680 Environmental Sensor (MicroPython)
- Raspberry Pi Pico: BME680 Environmental Sensor (Arduino IDE)
Get a BME680 environmental sensor.
4) DHT11/DHT22 Humidity and Temperature Sensor

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.
We have tutorials using MicroPython and Arduino IDE:
- Raspberry Pi Pico: DHT11/DHT22 Temperature and Humidity Sensor (MicroPython)
- Raspberry Pi Pico: DHT11/DHT22 Temperature and Humidity Sensor (Arduino IDE)
Get a DHT22 temperature and humidity sensor.
Get a DHT11 temperature and humidity sensor.
5) Raspberry Pi Pico Internal Temperature Sensor

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.
Learn how to read the Raspberry Pi Pico internal temperature with the following tutorials:
- Raspberry Pi Pico: Read the Internal Temperature Sensor (MicroPython)
- Raspberry Pi Pico: Read the Internal Temperature Sensor (Arduino IDE)
6) BH1750 Light Sensor

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’s brightness according to ambient light; to adjust LCDs and screen’s brightness; to detect if an LED is lit; etc.
To get started, follow the next tutorial:
Get a BH1750 ambient light sensor.
7) Anemometer (Wind Speed Sensor)

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:
- Raspberry Pi Pico with Anemometer: Measure Wind Speed (MicroPython)
- Raspberry Pi Pico with Anemometer: Measure Wind Speed (Arduino IDE)
Get an anemometer (wind speed sensor).
Motion-Related Sensors
8) PIR Motion Sensor

The PIR motion sensor is ideal for detecting movement. PIR stands for “Passive Infrared” 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 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.
Get started with the following tutorials:
- Raspberry Pi Pico: Detect Motion using a PIR Sensor (MicroPython)
- Raspberry Pi Pico: Detect Motion using a PIR Sensor (Arduino IDE)
Get a HC-SR501 PIR motion sensor.
Get a AM312 PIR motion sensor.
9) RCWL-0516 Microwave Radar Proximity Sensor

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.
Get started with the following tutorials:
- Raspberry Pi Pico: RCWL-0516 Microwave Radar Proximity Sensor (MicroPython)
- Raspberry Pi Pico: RCWL-0516 Microwave Radar Proximity Sensor (Arduino IDE)
Get a RCWL-0516 Microwave Radar Proximity Sensor.
10) NEO-6M GPS Module

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:
11) NEO-M8N GPS Module

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.
Learn how to get started with the NEO-M8N with our tutorial:
Motors
12) Stepper Motor

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.
To get started, follow the next tutorial:
Get a stepper motor (2BYJ-48).
13) Servo Motor

Learn how to control a servo motor with the Raspberry Pi Pico:
14) DC Motor and L298N Motor Driver

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:
Displays
15) Liquid Cristal Display (LCD)

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.
LCDs are measured according to the number of rows and columns of characters that fit on the screen. You’ll find sizes ranging from 8×1 to 40×4. A 16×2 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.
Get started with the following tutorial:
16) OLED Display

The organic light-emitting diode (OLED) display is a monocolor display that doesn’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’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Ă—64 pixels.
- Raspberry Pi Pico: SSD1306 OLED Display (MicroPython)
- Raspberry Pi Pico: SSD1306 OLED Display (Arduino IDE)
Get an 0.96 inch SSD1306 OLED display.
Other Sensors/Modules/Peripherals
17) DS1307 Real Time Clock Module

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. 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.
Learn how to interface the DS1307 RTC Module with the Raspberry Pi Pico:
Get a DS1307 Real Time Clock Module.
18) DS3231 Real Time Clock Module

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.
Learn how to get started with the DS3231 RTC module with our guide:
Get a DS3231 Real Time Clock Module.
19) MicroSD Card Module

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.
Get started with the following tutorial:
20) Potentiometer

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.
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:
- Raspberry Pi Pico: Read Analog Inputs—Potentiometer (MicroPython)
- Raspberry Pi Pico: Read Analog Inputs—Potentiometer (Arduino IDE)
To learn how a potentiometer works, we recommend taking a quick look at the following guide:
Get a potentiometer assortment kit.
Wrapping Up
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’t forget to bookmark this page for the future and share it with a friend that also likes electronics.
To learn more about the Raspberry Pi Pico, check out our resources:
- Learn Raspberry Pi Pico/Pico W with MicroPython (eBook)
- All our Raspberry Pi Pico Tutorials and Guides
Thanks for reading.