

The Adafruit AMG8833 (Manufacturer Part ID: 3538) is an advanced 8x8 thermal imaging sensor capable of detecting infrared radiation and providing temperature readings for each of its 64 pixels. This sensor is ideal for applications requiring thermal monitoring, human detection, and environmental sensing. Its compact design and high sensitivity make it a popular choice for projects involving thermal cameras, motion detection, and temperature mapping.








The Adafruit AMG8833 is a high-performance sensor with the following key specifications:
| Parameter | Value |
|---|---|
| Operating Voltage | 3.3V (logic and power) |
| Operating Current | ~4.5mA |
| Temperature Range | 0°C to 80°C |
| Accuracy | ±2.5°C |
| Resolution | 8x8 pixels (64 pixels total) |
| Field of View (FoV) | 60° x 60° |
| Communication Protocol | I²C |
| I²C Address | 0x69 (default), configurable to 0x68 |
| Frame Rate | 10 FPS (frames per second) |
| Dimensions | 17.8mm x 17.8mm x 5.0mm |
The Adafruit AMG8833 has a simple pinout for easy integration into your projects:
| Pin Name | Description |
|---|---|
| VIN | Power input (3.3V recommended) |
| GND | Ground connection |
| SDA | I²C data line |
| SCL | I²C clock line |
| INT | Interrupt output (optional, for motion detection) |
To use the Adafruit AMG8833 with an Arduino UNO, follow these steps:
Wiring:
VIN pin of the AMG8833 to the 3.3V pin on the Arduino.GND pin of the AMG8833 to the GND pin on the Arduino.SDA pin of the AMG8833 to the A4 pin on the Arduino (I²C data line).SCL pin of the AMG8833 to the A5 pin on the Arduino (I²C clock line).Install Required Libraries:
Sketch > Include Library > Manage Libraries.Example Code: Use the following example code to read temperature data from the AMG8833:
#include <Wire.h>
#include <Adafruit_AMG88xx.h>
// Create an instance of the AMG8833 sensor
Adafruit_AMG88xx amg;
// Array to store temperature readings for all 64 pixels
float pixels[64];
void setup() {
Serial.begin(9600);
Serial.println("Adafruit AMG8833 Thermal Camera Test");
// Initialize the sensor
if (!amg.begin()) {
Serial.println("Failed to initialize AMG8833 sensor!");
while (1); // Halt execution if initialization fails
}
Serial.println("AMG8833 initialized successfully.");
}
void loop() {
// Read temperature data from the sensor
amg.readPixels(pixels);
// Print the temperature readings for all 64 pixels
for (int i = 0; i < 64; i++) {
Serial.print(pixels[i]);
Serial.print(", ");
if ((i + 1) % 8 == 0) {
Serial.println(); // Print a new line after every 8 pixels
}
}
Serial.println();
delay(100); // Delay to control the frame rate
}
INT pin can be used for motion detection, but it is optional and not required for basic temperature readings.Sensor Not Detected:
Incorrect Temperature Readings:
I²C Communication Errors:
Q: Can the AMG8833 detect humans?
A: Yes, the AMG8833 can detect humans based on their thermal signature. It is commonly used for human presence detection and motion sensing.
Q: What is the maximum distance for accurate readings?
A: The sensor is most effective at distances of up to 7 meters, but accuracy may vary depending on environmental conditions.
Q: Can I use the AMG8833 with a 5V microcontroller?
A: Yes, but you must use a logic level shifter to convert the 5V signals to 3.3V to avoid damaging the sensor.
Q: How can I increase the frame rate?
A: The AMG8833 has a fixed frame rate of 10 FPS. This cannot be increased, but you can optimize your code to process data more efficiently.
By following this documentation, you can successfully integrate the Adafruit AMG8833 into your projects and leverage its powerful thermal imaging capabilities.