Overview

Heat-Vision Arduino Camera!

In this project we’ll show you how to build simple a thermal camera. This mini thermal camera can sense the surface temperature of things and display them as a colorful heatmap. Temperatures are rendered in real-time and displayed as different colors to form a heat map.

Fun & Useful Tool

Thermographic cameras can be used for finding hidden problems from heating and cooling issues. They’re a neat tool for doing thermal home inspections and troubleshooting. It’s fun to take it in the garage to reveal embedded electrical systems and looking at automobiles. Maybe make a game out of spotting hidden features.

DIY Thermal Camera

Thermographic Cameras normally have low resolution and the higher performance ones can be quite expensive. The AMG8833 thermal camera sensors are easier to come-by and easy to use with Arduino with the Adafruit Library and demo code.

Enclosure Design

Inspired by the classic Diana Toy Camera, the enclosure features a kawaii aesthetic thats both simplistic and stylish. The IR thermal sensor is secured to the faux lens assembly while the TFT display and micro-controller are secured to the back cover.

IR Thermal Camera Sensor

The Adafruit AMG8833 breakout features an IR thermal camera sensor from Panasonic. It uses an 8x8 array of IR thermal sensors. It's like those fancy thermal cameras, but compact and simple enough for easy integration. When connected to your microcontroller (or raspberry Pi) it will return an array of 64 individual infrared temperature readings over I2C.

Arduino Thermal Camera

To make a cool thermal camera, we can add a small 2.4in TFT display,  500mAh battery and a Feather HUZZAH32. In this project, we're using the demo code included with the Adafruit AMG8833 Library for Arduino. This simple thermal camera displays a range of different colors that represent temperature readings. i.e, hot is red and cold is blue. 

Prerequisite Guides

If your new to electronics and the Adafruit Feather, I suggest you walk through the following guides to get the basics. The Adafruit Feather HUZZAH32 guide will walk you through setting it up with the Arduino IDE. See the AMG8833 IR Thermal Camera guide for more information.

Electronic Components

The HUZZAH32 Feather, IR Thermal Camera breakout and TFT FeatherWing are the main electronic components used in this project.

1 x Thermal Camera
Adafruit AMG8833 IR
1 x Adafruit HUZZAH32
ESP32 Feather Board
1 x TFT FeatherWing
2.4" 320x240 Touchscreen
1 x 500mAh Battery
Lithium Ion Polymer Battery - 3.7v 500mAh
1 x Slide Switch
Breadboard-friendly SPDT

Hardware and Supplies

Just a few screws, stickers and wires. 

6 x M2.5 x .45 x 5mm
Flat Phillips Machine Screws
1 x Pimonoi Super Sticker Selection!
The cuttest, nerdiest stickers!!
1 x 30AWG Wire
Silicone Covered Stranded
1 x Solder Wire
Solder Spool - 1/4 lb SAC305 RoHS lead-free / 0.031" rosin-core - 0.25 lb / 100 g
1 x Heat Shrink Tubing
Multi-Colored Heat Shrink Pack - 3/32" + 1/8" + 3/16" Diameters
1 x Mounting Putty Tack
Loctite Fun-Tak Mounting Putty 2-Ounce

Cool Tools!

These help make the project a smooth building experience. You don't need them all of them, but I recommend them.

1 x Ultimaker 3
3D Printer
1 x Wire Strippers
Hakko Professsional Quality 20-30 AWG Wire Strippers - CSP-30-1
1 x Wire Cutters
Flush diagonal cutters - CHP170
1 x Soldering Iron
Adjustable 30W 110V soldering iron - XY-258 110V
1 x Panavise
Panavise Jr. - PV-201
1 x Helping Third Hands
Helping Third Hand Magnifier W/Magnifying Glass Tool - MZ101

Software

Adafruit HUZZAH32 Arduino IDE Setup

We'll upload the thermal camera demo sketch to the HUZZAH32 using the Arduino IDE. We'll need to install the board profile and libraries installed before uploading the code. Let's start with setting up the Feather board. Click the link below and follow the setup instruction from the HUZZAH32 guide. Once complete, come back here to continue.

Installing Libraries in Arduino

With the board profile, we can then install the dependencies. We'll use Arduino's built-in Library Manage to install the libraries. Goto Sketch > Include Library  and select Manage Libraries. Here, we'll search for the following libraries and install the latest version.

Uploading Code

With the HUZZAH32 Feather board profile and Arduino libraries installed, in Arduino IDE select the thermal_cam_interpolate sketch under the File > Examples > Adafruit_AMG88xx menu. Connect the Feather board to your computer via microUSB cable and select the SiLABS under the Tools > Port menu (Option might be named different using Windows OS).

Upload the code to the Feather using the Upload command, Cmd+U or clicking the arrow icon.

Arduino Sketch

If you need to reference the arduino sketch outside of the Arduino library, you can download the sketch (and the libraries) directly from the Adafruit Github pages.

Circuit Diagram

Circuit Diagram

This provides a visual reference for wiring of the components. They aren't true to scale, just meant to be used as reference. The Feather ESP32 is designed to snap onto the back of the TFT FeatherWing.

  • 3V from AMG to 3V on TFT Feather
  • GND from AMG to GND on TFT Feather
  • SDA from AMG to SDA on TFT Feather
  • SCL from AMG to SCL on TFT Feather
  • Switch to GND on Feather ESP32
  • Switch to EN on Feather ESP32

Battery Power

The 500mAh lithium polymer battery connects directly to the JST connector on the Adafruit Feather ESP32.

3D Printing

What If I Don't Have A 3D Printer?

Not to worry! You can use a 3D printing service such as 3DHubs or MakeXYZ to have a local 3D printer operator 3D print and ship you parts to you. This is a great way to get your parts 3D printed by local makers. You could also try checking out your local Library or search for a Maker Space.

3D Printed Parts

All of the parts are 3D printed with FDM type 3D printers using various colored filaments. All of the parts are separated into pieces to make 3D printing easier. Assembly is pretty easy and straight forward. Use the links below to download the STLs files.

Funky Fresh Colors!

Most of the filaments are from MeltInk3D – They come in different diameters and flavors of PLA. Heres a list of the filaments used in this project.

Design Source Files

The camera body assembly was designed in Fusion 360. This can be downloaded in different formats like STEP, SAT and more. Electronic components like the AMG8833, ESP32, and TFT Feather Wing can be extracted from the Fusion 360 Archive.

Slice Settings

These parts have been tested and 3D printed on an Ultimaker 2+ and 3 using PLA filament. The parts were sliced using CURA 3.x with the following slice settings.

  • 220C extruder temp
  • 65c bed temp
  • 0.2 layer height
  • 0.38 line width
  • 2 Wall Line Count – 0.4 nozzle
  • 20% infill
  • 50mm/s print speed

For good bed plate adhesion, a 3-4mm width Brim might be necessary to 3D print the frame of the camera body.

Camera Lens Assembly

The lens is fitted through the hole from inside the camera body. Press the lens through until the flange is flush with the surface. The flange has two tabs with mounting holes. Line those up with the ones in the camera body.

Secure Lens to Camera Body

While holding the assembly together, insert and fasten two M2.5 x 6mm machine screws into the mounting holes and fully tighten. 

Attach Lens Cover Details

Use superglue to adhere the faux focusing ring to the lens cover. This gear looking part doesn't actually do anything functional, its purely for atheistic.  

Slide Switch

Wires for Slide Switch

This little slide switch is great for embedding in small projects. We'll be wiring this up directly to the Feather HUZZAH32. Measure and cut two pieces of wire, about 6cm (2in) in length.

Tinning Wires

30AWG wires are great because they're both flexible and durable. To prevent the strands of wire from fraying, it's a good idea to tin them with a bit of solder. 

Tinning Slide Switch Pins

The slide switch has three pins on it, we only need two of them. Snip off either the far left or right, but not the middle! Add a bit of solder to the remaining two. They're a bit long and can be trimmed shorter. 

Connect Wires to Switch

Now we can attach the two wires to the pins on the slide switch. A set of third helping hands are great for holding the switch in place while soldering the wires.

Connect Switch to Feather

Solder one wire from the switch to the EN pin on top of the Adafruit Feather HUZZAH32. Solder the other wire to the GND pin. It may be helpful to add a small bit of solder to the pin to make it easier to attach a wire. 

AMG8833

Wires for AMG8833

Four wired connections are necessary to connect the thermal camera sensor to the Adafruit Feather HUZZAH32. These can be about 10cm (4in) in length. Different colored wires are helpful at telling connections apart.

Heat Shrink

A bit of heat shrink tubing can help keep these wires bundled together.

Third Helping Hand

A handy way to tin a set of wires is to prop them up on one of the little grabbers. Separate the wires and tin them up with a bit of solder.

Wire Tinning

Don't forget the opposite ends of each wire. Commence soldering!

Tinning Pins

Add a bit of solder to the pins on the thermal camera sensor breakout board. A panavise jr. can hold the PCB in place while soldering.

Connect Wires to AMG8833

Carefully solder the wires into the pins on the thermal camera breakout. Heat up the soldered pin with the tip of the soldering iron and insert a wire while the solder is molten. 

Header Pins

To make the wiring a bit easier, we're going to solder wires to male headers. Grab a strip of header pins and tin the short ends with a bit of solder – Be careful not to melt the plastic! Third helping helps are really useful here, do not try to hold headers while soldering – It'll burn the tips of your fingers!

If the tip of the soldering iron is held on a strip of headers too long, it will melt the plastic housing and damage the alignment of the pins.

Connect Wires to Header

Attach the wires from the thermal camera sensor by soldering them to the tinned ends.

Separate Header Pins

Use a pair of flush cutters to snip away the excess header pins and separate the wires from each other.

TFT FeatherWing

Install HUZZAH32 to TFT FeatherWing

The Adafruit Feather snap onto the back of the TFT FeatherWing with the header pins inserting into the female headers.

Flush Headers

If the header pins are visible they may need to be trimmed short. The plastic housing of the male headers ought to be flush with the female headers. Use a pair of flush diagonal cutters to trim the header pins short. 

Be careful not to trim the header pins too short! About half their total length is suffice.

Connect Wires from AMG8833

Now you can plug in the male header pins from the thermal camera sensor to the spare headers on the back of the TFT FeatherWing. You can also trim the header pins short to fully seat them flush with the female headers.

Assembly

Install AMG to Lens

Lay the PCB of the sensor over the standoffs on the camera lens cover. Turn it over and see if the lens of the sensor lines up with the small hole in the cover. Rotate to orient the PCB so it's centered with the hole. 

Secure Sensor to Mount

While holding the PCB onto the lens cover, insert four of the M2.5 x 5mm machine screws to the mounting holes and fasten until fully tightened.

Connect Battery

The 500mAh lipo battery can be directly plugged into the female JST connector on the Adafruit Feather HUZZAH32 board.

Install Switch to Cover

The on/off switch can be press fitted into the little housing on the side of the back cover part. It should be able to snap in at an angle and held in place with friction.

TFT Installation

The TFT FeatherWing features mounting holes on each corner and will be secured to the back cover part of the case with four M2.5 x 5mm machine screws.

Install TFT

Place the PCB of display over the four standoffs and flip the assembly over to see if the screen cut is properly lined up. Orient the display so they're correctly positioned. Insert and fasten four M2.5 x 5mm machine screws into the mounting holes.

Mounting The Battery

The 500mAh lipo battery can be secured to the back of the TFT display with a bit of mounting tack. Just make sure it's not touching the reset button.

Secured Battery

I would rerouting the cable of the battery in between the Feather and TFT display. Also make sure the battery isn't able to actuate the reset button, or else bad things can happen!

Orientation Sync

The orientation of the thermal camera sensor and the display need to be setup correctly before installing the circuit into the camera body. Play around with the arrangement to determine the correct orientation of the components.

Install Camera Sensor to Lens

Now that you got a firm understanding of the orientation, press fit the lens cover through the back of the camera lens frame. You'll need to determine which way is up, down, left and right.

Check Orientation

Before fitting the back cover part onto the camera body, double check the circuit to see if the orientation is still in sync. Turn it on and use your finger to see if it's following expect movement on the display.

Final Assembly

Joining Parts Together

If everything is lined up, fit the camera body over the back cover. Be sure to fit the groves on the cover onto the edges of the camera body.

Align Features

The back cover part features a sliding rail on each side. The camera body features edges that mate with the rail.

Body Assembled

Before closing it up, look inside the case and see if any wires are being kinked. Turn on the circuit to see if everything is working properly.

Snap-On Covers

If everything looks good, fit the top and bottom cover parts over the camera body. Make sure they're properly lined up before pressing them fully in. The opening in bottom cover should be lined up with the microUSB port of the Feather.

Assembled Camera Body

Check and inspect the camera body to see if everything is fully seated, connected and intact. Shouldn't hear any rattling when shaking – It should be pretty solid!

Stickers!

The camera body felt a little bit too plain for me so I added these cute stickers from Pimoronoi