Perform facial detection and provide thermal measurement for humans. Put in bathroom for automated and touchless temperature estimation.
- Use
raspi-config
to enableI2C
interface - Connect display, camera, and thermal sensor
- Install
docker
andgit
- Clone this repository
- Change directory and run
make
- RaspberryPi Model 3/4
- 1.5" RGB OLED module; 3-pack at Amazon
v2
camera moduleMLX90640
IR thermal cameraSTEMMA
cable
The serial connection may need to be enabled; use the raspi-config
command-line program; for example:
% sudo raspi-config
A terminal-based interface will launch and provide menu options to enable the I2C
interface; for example:
The thermal sensor has standard GPIO
labeled connections as well as small receivers on either side of the board.
![](https://raw.githubusercontent.com/dcmartin/feeva/master/docs/mlx90640-front.png)
![](https://raw.githubusercontent.com/dcmartin/feeva/master/docs/mlx90640-rear.png)
The thermal sensor connects to the GPIO
pins on the RaspberryPi using a STEMMA
cable.
![](https://raw.githubusercontent.com/dcmartin/feeva/master/docs/stemma-cable.png)
This cable connects to the RaspberryPi using four (4) GPIO pins; the recommended connections are:
Raspberry Pi | PIN | Color | Termal |
---|---|---|---|
3.3V current | 1 | RED | VCC |
Serial data | 3 | BLUE | SDA |
Serial clock | 5 | YELLOW | SCL |
Ground | 9 | BLACK | GND |
The OLED display connects to the GPIO
pins on the RaspberryPi using the provided cable which attaches the side of the OLED display; see table and image below.
Raspberry Pi | PIN | Color | RGB OLED |
---|---|---|---|
3.3V current | 17 | RED | VCC |
GPIO24 |
18 | GREEN | DC |
MOSI |
19 | BLUE | DIN |
Ground | 20 | BLACK | GND |
GPIO25 |
22 | WHITE | RST |
SCLK |
23 | YELLOW | CLK |
CE0 |
24 | ORANGE | CS |
Install the Raspberry Pi Camera module by inserting the cable into the Raspberry Pi.
The cable slots into the connector situated between the Ethernet and HDMI ports, with the silver connectors facing the HDMI port.
Setup a RaspberryPi 3/4 with Raspbian Buster
and access using ssh
over the WiFi or wired Ethernet connection; once connected, run the following commands:
# appropriate for older devices which may need firmware upgrade
sudo rpi-update
# enable I2C interface
sudo raspi-config
# update and upgrade everything
sudo apt update -qq -y
sudo apt full-upgrade -qq -y
# install minimal tooling
sudo apt install -qq -y git curl jq make
# install docker
curl -fsSL https://get.docker.com -o get-docker.sh
chmod 755 get-docker.sh
sudo ./get-docker.sh
# create local repository clone
mkdir -p ~/GIT/feeva
cd ~/GIT
git clone http://github.com/dcmartin/feevat.git
# build it
cd ~/GIT/feeva
make
# start it
make start
Releases are based on Semantic Versioning, and use the format
of MAJOR.MINOR.PATCH
. In a nutshell, the version will be incremented
based on the following:
MAJOR
: Incompatible or major changes.MINOR
: Backwards-compatible new features and enhancements.PATCH
: Backwards-compatible bugfixes and package updates.
David C Martin (github@dcmartin.com)
Language | files | blank | comment | code |
---|---|---|---|---|
C | 25 | 1305 | 1744 | 18279 |
Bourne Shell | 11 | 1792 | 2941 | 15879 |
C/C++ Header | 13 | 439 | 1383 | 4904 |
m4 | 2 | 114 | 28 | 1082 |
Python | 3 | 118 | 28 | 428 |
Markdown | 2 | 69 | 0 | 206 |
make | 4 | 23 | 5 | 66 |
-------- | -------- | -------- | -------- | -------- |
SUM: | 60 | 3860 | 6129 | 40844 |