This circuit is designed to interface a Raspberry Pi 5 with an Adafruit MLX90640 Thermal Camera, powered by a 24/12V buck converter and a 3S 10A Li-ion 18650 charger protection board module. The power is supplied by three 18650 batteries in holders, which are managed by the charger protection board and a lipo battery charger module. The Raspberry Pi 5 is responsible for processing the data from the thermal camera and is programmed to capture and output temperature readings from the camera's sensor array.
A module designed to charge LiPo batteries, featuring input/output connections for the battery and the power supply.
A powerful single-board computer with a variety of I/O options, including USB, Ethernet, HDMI, and a set of GPIO pins for interfacing with various peripherals like the Adafruit MLX90640 Thermal Camera.
An infrared thermal camera that connects to the Raspberry Pi via I2C, capable of capturing temperature readings over an array of pixels.
A voltage regulator that steps down the input voltage to a stable 5V output, used to power the Raspberry Pi 5.
A rechargeable lithium-ion battery in a holder, providing power to the circuit. Three of these are used in the circuit.
A protection module for the 18650 batteries, ensuring safe charging and discharging of the batteries.
Placeholder components that may represent annotations or notes within the circuit design, not physical parts.
#include <Wire.h>
#include <Adafruit_MLX90640.h>
Adafruit_MLX90640 mlx;
void setup() {
Serial.begin(9600);
while (!Serial); // Wait for Serial to be ready
Serial.println("MLX90640 test");
if (!mlx.begin()) {
Serial.println("Failed to initialize MLX90640!");
while (1);
}
Serial.println("MLX90640 initialized successfully");
}
void loop() {
float mlx90640Frame[32 * 24]; // Buffer to store temperature readings
// Capture the frame at the lowest resolution to increase the frame rate
mlx.setMode(MLX90640_INTERLEAVED);
// Request a frame capture
if (mlx.getFrame(mlx90640Frame) == 0) {
for (int i = 0; i < 24; i++) {
for (int j = 0; j < 32; j++) {
float temp = mlx90640Frame[i * 32 + j];
Serial.print(temp);
Serial.print(",");
}
Serial.println();
}
} else {
Serial.println("Failed to read frame");
}
delay(1000); // Wait for 1 second before capturing next frame
}
This code is designed to run on the Raspberry Pi 5, which is interfaced with the Adafruit MLX90640 Thermal Camera. The code initializes the camera and continuously captures frames of thermal data, printing the temperature readings to the serial output.