1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/tests/drivers/pir
2024-07-29 11:45:58 +02:00
..
main.c treewide: remove THREAD_CREATE_STACKTEST from thread creation 2024-07-29 11:45:58 +02:00
Makefile tests/drivers: move all driver tests into own folder 2023-05-04 12:45:07 +02:00
Makefile.ci examples, tests: update Makefile.ci for AVR8 2023-12-01 19:37:05 +01:00
README.md tests/drivers: move all driver tests into own folder 2023-05-04 12:45:07 +02:00

About

This is a manual test application for the PIR motion sensor driver.

In order to build this application, you need to add the board to the Makefile's WHITELIST first and define a pin mapping (see below).

Usage

There are two ways to test this. You can either actively poll the sensor state, or you can register a thread which receives messages for state changes.

Interrupt driven

Connect the sensor's "out" pin to a GPIO of your board that can be configured to create interrupts. Compile and flash this test application like:

CFLAGS="-DPIR_PARAM_GPIO=name_of_your_pin -DPIR_PARAM_ACTIVE_HIGH=if_gpio_pin_is_high_or_low_when_pir_is_active" make BOARD=your_board clean all-interrupt flash

Ideally, the above configuration passed via CFLAGS should be in "board.h"

The output should look like:

kernel_init(): jumping into first task...

PIR motion sensor test application

Initializing PIR sensor at GPIO_8... [OK]

Registering PIR handler thread...     [OK]
PIR handler got a message: the movement has ceased.
PIR handler got a message: something started moving.
PIR handler got a message: the movement has ceased.

Polling Mode

Connect the sensor's "out" pin to any GPIO pin of you board. Compile and flash this test application like:

CFLAGS="-DPIR_PARAM_GPIO=name_of_your_pin -DPIR_PARAM_ACTIVE_HIGH=if_gpio_pin_is_high_or_low_when_pir_is_active" make BOARD=your_board make clean all-polling flash

Ideally, the above configuration passed via CFLAGS should be in "board.h"

The output should look like this:

kernel_init(): jumping into first task...
PIR motion sensor test application

Initializing PIR sensor at GPIO_10... [OK]

Printing sensor state every second.
Status: lo
...
Status: lo
Status: hi
...