In this example we connect a PIR module up to our Raspberry PI Pico, this is quite a simple module to connect as it requires only 3v3, Gnd and the output is ok to connect to a Pico and does not require any level shifting.
A passive infrared sensor (PIR sensor) is an electronic sensor that measures infrared (IR) light radiating from objects in its field of view. They are most often used in PIR-based motion detectors.
Here is a typical collection of PIR detectors which can be commonly found on the internet and can be used in many projects. They all should work Ok, I have tested the bigger one at the top and the SR602 one at the bottom with the same results.
Interestingly the sensor can be adjusted using the 2 pots on it which you can see underneath
Adjust the distance potentiometer clockwise rotation, increased sensing distance (about 7 meters), on the contrary, the sensing distance decreases (about 3 meters).
Adjust the delay potentiometer clockwise rotation sensor the delay lengthened (300S), on the contrary, shorten the induction delay (5S).
Induction module needs a minute or so to initialize. During initializing time, it will output 0-3 times. One minute later it comes into standby.
Parts Required
The PIR is low cost and you should be able to get one for under $1
Name | Link |
Pico | Raspberry Pi Pico Development Board |
PIR | HC-SR501 HC-SR505 SR602 AM312 PIR Motion Sensor Detector Module |
Connecting cables | Aliexpress linkAmazon.com link |
Schematic/Connection
Black for GND
Red for V+
Yellow for Output
So color coded for ease of use, this layout shows a connection to the module
Code Example
I used Thonny for development, you can use any GPIO pin but you would need to alter the code below.
[codesyntax lang=”python”]
from machine import Pin import utime from time import sleep # Connect GP16 to PIR sensor's OUT pin), please use 3.3V connect to VCC on PIR sensor. pir = Pin(16, Pin.IN, Pin.PULL_UP) while True: print(pir.value()) sleep(0.1)
[/codesyntax]
This has a simple output, if no object is detected then 0 is output, if an object is detected then a 1 will be outputted
Here is an adapted example with easier to read output
[codesyntax lang=”python”]
from machine import Pin import utime from time import sleep # Connect GP16 to PIR sensor's OUT pin), please use 3.3V connect to VCC on PIR sensor. pir = Pin(16, Pin.IN, Pin.PULL_UP) while True: if pir(): print('Motion detected!') sleep(5) if not pir(): print('Motion stopped')
[/codesyntax]
Output
Here is what I saw in Thonny REPL window
Motion detected!
Motion stopped
Motion detected!
Motion stopped
Links