El Sketch está basado en la demo de interpolación de la librería para el amg8833, pero con bastantes modificaciones. He cambiado: -El controlador de la pantalla al usar una diferente a la demo y su repercusión en el código -Gran parte de la matriz de la paleta de colores -Inversión del mapeo de color -Añadido temperaturas en pantalla -Seleccionar 6 rangos de medida. Uno de ajuste automático por defecto al encender el sistema. Se cambian con el botón izquierdo.
Abajo el sketch para esp8266. Además, necesita la librería de interpolación. Todo completo bajar de aquí.
Montaje de una cámara termográfica con el módulo amg8833. La resolución es modesta, 8x8 pixel pero el precio sube exponencialmente con la resolución. Como microprocesados he usado un Nodemcu D1 mini y una pantalla de 1,44 pulgadas. Dos micro pulsadores permiten seleccionar, uno la escala y el otro el encendido del sistema. La batería de 3,7v de litio es reciclada de una cámara fotográfica. El montaje queda muy compacto dentro de un contenedor plástico para componentes y una tapa recortada de policarbonato. Dos trozos de varilla roscada de 3mm sujetan todo. Creo que unas fotos serán suficientemente explicativas.
Las conexiones de amg8833, pantalla y esp8266 (Nodemcu D1 mini). También pongo las conexiones para esp32 por si alguien lo prefiere.
Disposición en placa de tiras. El display esta en un zócalo. La alimentación puede ser por la entrada usb del Nodemcu o externa con una batería de litio regulada a 3,3v con un integrado ams1117 soldado por el lado de las pistas, al igual que un puente de A0 a D3
El zócalo negro para la pantalla. Se ven dos condensadores, uno de 10µF a la salida del ams1117 y otro de 100nF a la entrada.
Los elementos usados, caja con tapa recortada de policarbonato, amg8833, Nodemcu, display 1,44, batería litio y dos micropulsadores (uno para encender y el otro para cambiar el rango de medida). Hay un módulo para cargar la batería de litio, pero aún no esta puesto en la caja.
//Sensor termico AMG8833 //OLED 1.44 //Nodemcu D1 Mini a 160Mhz //Joaquin Paredes 2021 www.jopapa.me
// default settings if (!amg.begin()) { Serial.println("Could not find a valid AMG88xx sensor, check wiring!"); while (1) { delay(1); } } Serial.println("-- Thermal Camera Test --"); limites(); //Inicia rango en gráfica tft.setTextSize(2); tft.setCursor(10, 100); }
void loop() { //read all the pixels amg.readPixels(pixels);