Skip to content

Instantly share code, notes, and snippets.

@Craigson
Created September 10, 2015 21:02
Show Gist options
  • Select an option

  • Save Craigson/b842eaaa9af34c8d0e5e to your computer and use it in GitHub Desktop.

Select an option

Save Craigson/b842eaaa9af34c8d0e5e to your computer and use it in GitHub Desktop.
Arduino sketch for contactless IR circuit using Melexis thermopile and ATtiny85.
//INCLUDE REQUIRED LIBRARIES
#include <Adafruit_NeoPixel.h>
#include <TinyWireM.h>
#include <Adafruit_MiniMLX90614.h>
#include <SoftwareSerial.h>
int TINY_SDA = 0; //ATtiny SDA pin 5
int TINY_SCL = 2; //ATtiny SCL pin 7
int LED_PIN = 1; //NEOPIXEL LED ON ATtuny PIN 6
int NUMPIXELS = 1; //THE NEOPIXEL LIBRARY NEEDS YOU TO PASS THE NUMBER OF PIXELS AS A FUNCTION ARGUMENT
Adafruit_MiniMLX90614 mlx = Adafruit_MiniMLX90614();
SoftwareSerial mySerial(4, 3); // RX, TX
Adafruit_NeoPixel pixel = Adafruit_NeoPixel(NUMPIXELS, LED_PIN, NEO_GRB + NEO_KHZ800);
int delayval = 50; // DELAY
void setup() {
mlx.begin(); //INITIALIZE THE MELEXIS SENSOR
pixel.begin(); //INITIALIZE THE NEOPIXEL
mySerial.begin(4800); //INITIALIZE THE SOFTWARE SERIAL
}
void loop() {
//CREATE VARIABLES TO STORE AMBIENT AND OBJECT TEMPERATURES
float ambientTemp = mlx.readAmbientTempC();
float objTemp = mlx.readObjectTempC();
//CALCULATE THE DIFFERENCE BETWEEN THE TWO
float diff = ambientTemp - objTemp;
//UNCOMMENT THE SECTION BELOW FOR DEBUGGING
/*
mySerial.print("Object Temp: ");
mySerial.print(objTemp);
mySerial.print(" , Ambient Temp: ");
mySerial.print(ambientTemp);
mySerial.print(" , Difference: ");
mySerial.println(diff);
*/
if (diff > 2) {
pixel.setPixelColor(0, pixel.Color(0, 0, 255)); //IF OBJECT IS COLD, SET COLOR TO BLUE
} else if (diff < -2) {
pixel.setPixelColor(0, pixel.Color(255, 0, 0)); //IF OBJECT IS HOT, SET COLOR TO RED
} else {
pixel.setPixelColor(0, pixel.Color(150, 170, 150)); //REPRESENT AMBIENT TEMP WITH WHITE LIGHT
}
pixel.show(); // DISPLAY COLOR ON THE PIXEL
delay(delayval);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment