Check out the project video here:
https://www.youtube.com/watch?v=Mw_FFcj0x6E

The basics are this:

  • 1x BME680 sensor which measures temperature, humidity, pressure, and volatile organic compounds in the air (basically air quality).
  • 1x AMG8833 IR Thermal Camera. This is a thermal camera with an 8x8 array of thermal sensors. That isn’t great resolution, but with some fancy math (see the code) you can interpolate a better resolution for the display.
  •  1x 128x32 OLED for the environment sensor
  •  1x 1.44 in LCD display for the thermal camera
  • 1x Raspberry Pi Zero (W)
  • 2x Red LEDs (One for power, one for boot finished)
  • 4x Green LEDs (indicates human temperature).

The code for this is all written in Python and it’s fairly straightforward. The environment code just takes the raw values from the sensor and spits a formatted version onto the oled display. The thermal camera code is more complicated as it interpolates that 8x8 grid into a larger grid which makes it seems like the resolution of the thermal camera is higher than it is.

The case was designed in Onshape. My basic design process was measuring and mocking up all the components so that the cutouts and screw holes would line up correctly. I then mocked up a case and used the components to shape the supports and cutouts of the screens. I also added a little door which will be attached with magnets so you have easy access to the sd card of the pi without unscrewing the face plate. I realized after making it that it would have been way easier to mount everything to the faceplate and have a removable back plate instead of making supports so that all the components were flush to the underside of the faceplate. But I’m pretty proud of myself for getting the tolerances pretty spot on anyway.

It’s powered by an external source, like a battery pack because that’s just easier and it keeps the cost down. It takes a while to boot up (any tips on speeding up boot times?), and records the output every 30 seconds to a csv file.