The Adafruit AMG8833 is an 8x8 infrared thermal sensor array capable of detecting temperature distributions in its field of view. This module is particularly useful for creating thermal imaging solutions, enabling applications such as human presence detection, temperature measurement, and thermal mapping. It is a popular choice for hobbyists and professionals alike due to its ease of use and integration with platforms like Arduino.
Explore Projects Built with Adafruit AMG8833
Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
This circuit features an Adafruit QT Py microcontroller interfaced with an Adafruit MPU6050 6-axis accelerometer/gyroscope and an Adafruit VL6180X Time of Flight (ToF) distance sensor, both connected via I2C communication. The QT Py also controls a Servomotor SG90, likely for physical actuation based on sensor inputs. The embedded code initializes the sensors, reads their data, and outputs the readings to a serial monitor, with the potential for motion control based on the sensor feedback.
This circuit features an Adafruit QT Py RP2040 microcontroller interfaced with an APDS9960 proximity sensor, an MPU6050 accelerometer and gyroscope, and an OLED display via I2C communication. It also includes a buzzer controlled by the microcontroller and is powered by a 3.7V LiPo battery with a toggle switch for power control.
This circuit is a portable, battery-powered system featuring an Adafruit QT Py RP2040 microcontroller that interfaces with an OLED display, a proximity sensor, an accelerometer, and an RGB LED strip. The system is powered by a lithium-ion battery with a step-up boost converter to provide 5V for the LED strip, and it includes a toggle switch for power control. The microcontroller communicates with the sensors and display via I2C.
This circuit is a sensor and display system powered by a 3.7V LiPo battery with a boost converter. It uses an ESP8266 NodeMCU to read data from an MPU-6050 accelerometer/gyroscope and display information on a 0.96" OLED screen, while also controlling an RGB LED.
To use the AMG8833 with an Arduino, follow these steps:
Connect the Module:
Connect VDD to the 3.3V or 5V output on the Arduino.
Connect GND to one of the Arduino's ground pins.
Connect SDA and SCL to the Arduino's SDA and SCL pins, respectively.
The INT pin can be left unconnected if the interrupt feature is not used.
Install the Adafruit AMG8833 Library:
Open the Arduino IDE.
Go to Sketch > Include Library > Manage Libraries....
Search for "Adafruit AMG8833" and install the library.
Sample Code:
#include <Wire.h>
#include <Adafruit_AMG88xx.h>
Adafruit_AMG88xx amg;
void setup() {
Serial.begin(9600);
Serial.println(F("AMG8833 thermal camera"));
bool status = amg.begin();
if (!status) {
Serial.println("Could not find a valid AMG8833 sensor, check wiring!");
while (1);
}
// Default settings are fine for basic temperature readings.
}
void loop() {
// Read the thermal sensor values.
float pixels[AMG88xx_PIXEL_ARRAY_SIZE];
amg.readPixels(pixels);
// Output the array of temperatures.
for (int i = 0; i < AMG88xx_PIXEL_ARRAY_SIZE; i++) {
Serial.print(pixels[i]);
Serial.print(", ");
if ((i + 1) % 8 == 0) Serial.println();
}
Serial.println();
// Delay between readings.
delay(100);
}
Important Considerations and Best Practices
Ensure that the power supply voltage matches the module's requirements.
Use pull-up resistors on the I2C lines if they are not included on the breakout board.
Avoid placing heat-generating components or surfaces near the sensor to prevent false readings.
For accurate temperature measurements, calibrate the sensor for the specific application environment.
Troubleshooting and FAQs
Common Issues
Sensor Not Detected: Check the wiring and ensure that the correct I2C address is used in the code.
Inaccurate Temperature Readings: Ensure that the sensor is not exposed to rapid temperature changes and that there is no heat source close to the sensor.
No Data on Serial Monitor: Confirm that the correct baud rate is set in the serial monitor.
Solutions and Tips for Troubleshooting
Double-check the connections and solder joints.
Use the I2C scanner sketch to verify that the Arduino is communicating with the sensor.
Make sure that the Arduino library for the AMG8833 is up to date.
If using long wires for I2C communication, consider using shielded cables to prevent noise.
FAQs
Q: Can the AMG8833 be used to measure the temperature of liquids?
A: The AMG8833 is designed for detecting infrared radiation from solid surfaces. It is not suitable for measuring the temperature of liquids directly.
Q: How can I increase the frame rate of the sensor?
A: The frame rate can be adjusted using the library functions provided by Adafruit. However, the maximum frame rate is limited to 10 Hz.
Q: Is it possible to connect multiple AMG8833 sensors to a single Arduino?
A: Yes, it is possible if each sensor has a unique I2C address. You may need to use an I2C multiplexer if the addresses are not configurable.
Q: What is the field of view (FOV) of the AMG8833 sensor?
A: The AMG8833 has a horizontal and vertical FOV of approximately 60 degrees each.
For further assistance, consult the Adafruit AMG8833 datasheet and the Adafruit support forums.