Third Eye (Arduino Project)
Imagine you want to go ghost hunting, but you don't exactly have any equipment other than a ouija board, of which a many of experienced hunters and psychics highly recommend you not to use, and your phone as an EVP recorder.
Have you tried opening your third eye? How about making this product to help guide you towards that way. The Third Eye will help aid you seek out spirits using thermal imaging. Ghost hunters will typically use thermal imagery to find cold spots - an area of low temperature that allegedly indicates the presence of a ghost.
IF you are not a ghost hunter, nor believe in ghosts, this product can also help in situations such as:
- Air quality - monitor which industrial smoke-stacks or household chimneys are in use.
- Gas detection - Specially calibrated thermal cameras can be used to detect the presence of specific gases at industrial sites or around pipelines.
- Disease control - quickly scan all the incoming passengers at airports and other locations for elevated temperature.
- Counter-surveillance - covert surveillance equipment such as listening devices or hidden cameras all consume some energy which gives off waste heat that is clearly visible on a thermal camera (even if hidden or behind an object).
- Termite detection - detect areas of potential termite activity in buildings.
These are only some of the ways to utilize thermal imagery. You can find where I got those uses here along with 55 more uses!
MATERIALS:
Adafruit 1.44" Color TFT LCD Display with MicroSD Card breakout - ST7735R
3D printer
Soldering Kit
Resistors
Screws
Screwdriver
PROGRAMS USED:
Fritzing
Arduino
Fusion 360
Step 1: Putting the Electronics on a Breadboard!
First, you want to do is be able to put your electronics on a bread board individually, and use your Arduino to pull up the test code to see if your sensor and your module is working the way it should. In my case, they worked as they were supposed to!
Now, you can put your sensor and module together on the breadboard, as I have provided the image from Adafruit, on how to put these together via Fritzing.
Step 2: Put in the Code!
Adafruit was extremely kind to give us the code to this project! They provide the library on the thermal camera's site, which I have included the link to the IR sensor in the list of things needed for this project, you can find it through there!
Below is the coding used for your Arduino.
/***************************************************************************
This is a library for the AMG88xx GridEYE 8x8 IR camera
This sketch makes a 64 pixel thermal camera with the GridEYE sensor and a 128x128 tft screen https://www.adafruit.com/product/2088
Designed specifically to work with the Adafruit AMG88 breakout ----> http://www.adafruit.com/products/3538
These sensors use I2C to communicate. The device's I2C address is 0x69
Adafruit invests time and resources providing this open source code, please support Adafruit andopen-source hardware by purchasing products from Adafruit!
Written by Dean Miller for Adafruit Industries. BSD license, all text above must be included in any redistribution ***************************************************************************/
#include // Core graphics library #include // Hardware-specific library #include
#include #include
#define TFT_CS 10 //chip select pin for the TFT screen #define TFT_RST 9 // you can also connect this to the Arduino reset // in which case, set this #define pin to 0! #define TFT_DC 8
//low range of the sensor (this will be blue on the screen) #define MINTEMP 22
//high range of the sensor (this will be red on the screen) #define MAXTEMP 34
//the colors we will be using const uint16_t camColors[] = {0x480F, 0x400F,0x400F,0x400F,0x4010,0x3810,0x3810,0x3810,0x3810,0x3010,0x3010, 0x3010,0x2810,0x2810,0x2810,0x2810,0x2010,0x2010,0x2010,0x1810,0x1810, 0x1811,0x1811,0x1011,0x1011,0x1011,0x0811,0x0811,0x0811,0x0011,0x0011, 0x0011,0x0011,0x0011,0x0031,0x0031,0x0051,0x0072,0x0072,0x0092,0x00B2, 0x00B2,0x00D2,0x00F2,0x00F2,0x0112,0x0132,0x0152,0x0152,0x0172,0x0192, 0x0192,0x01B2,0x01D2,0x01F3,0x01F3,0x0213,0x0233,0x0253,0x0253,0x0273, 0x0293,0x02B3,0x02D3,0x02D3,0x02F3,0x0313,0x0333,0x0333,0x0353,0x0373, 0x0394,0x03B4,0x03D4,0x03D4,0x03F4,0x0414,0x0434,0x0454,0x0474,0x0474, 0x0494,0x04B4,0x04D4,0x04F4,0x0514,0x0534,0x0534,0x0554,0x0554,0x0574, 0x0574,0x0573,0x0573,0x0573,0x0572,0x0572,0x0572,0x0571,0x0591,0x0591, 0x0590,0x0590,0x058F,0x058F,0x058F,0x058E,0x05AE,0x05AE,0x05AD,0x05AD, 0x05AD,0x05AC,0x05AC,0x05AB,0x05CB,0x05CB,0x05CA,0x05CA,0x05CA,0x05C9, 0x05C9,0x05C8,0x05E8,0x05E8,0x05E7,0x05E7,0x05E6,0x05E6,0x05E6,0x05E5, 0x05E5,0x0604,0x0604,0x0604,0x0603,0x0603,0x0602,0x0602,0x0601,0x0621, 0x0621,0x0620,0x0620,0x0620,0x0620,0x0E20,0x0E20,0x0E40,0x1640,0x1640, 0x1E40,0x1E40,0x2640,0x2640,0x2E40,0x2E60,0x3660,0x3660,0x3E60,0x3E60, 0x3E60,0x4660,0x4660,0x4E60,0x4E80,0x5680,0x5680,0x5E80,0x5E80,0x6680, 0x6680,0x6E80,0x6EA0,0x76A0,0x76A0,0x7EA0,0x7EA0,0x86A0,0x86A0,0x8EA0, 0x8EC0,0x96C0,0x96C0,0x9EC0,0x9EC0,0xA6C0,0xAEC0,0xAEC0,0xB6E0,0xB6E0, 0xBEE0,0xBEE0,0xC6E0,0xC6E0,0xCEE0,0xCEE0,0xD6E0,0xD700,0xDF00,0xDEE0, 0xDEC0,0xDEA0,0xDE80,0xDE80,0xE660,0xE640,0xE620,0xE600,0xE5E0,0xE5C0, 0xE5A0,0xE580,0xE560,0xE540,0xE520,0xE500,0xE4E0,0xE4C0,0xE4A0,0xE480, 0xE460,0xEC40,0xEC20,0xEC00,0xEBE0,0xEBC0,0xEBA0,0xEB80,0xEB60,0xEB40, 0xEB20,0xEB00,0xEAE0,0xEAC0,0xEAA0,0xEA80,0xEA60,0xEA40,0xF220,0xF200, 0xF1E0,0xF1C0,0xF1A0,0xF180,0xF160,0xF140,0xF100,0xF0E0,0xF0C0,0xF0A0, 0xF080,0xF060,0xF040,0xF020,0xF800,};
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
Adafruit_AMG88xx amg; unsigned long delayTime; float pixels[AMG88xx_PIXEL_ARRAY_SIZE]; uint16_t displayPixelWidth, displayPixelHeight;
void setup() { Serial.begin(9600); Serial.println(F("AMG88xx thermal camera!"));
tft.initR(INITR_144GREENTAB); // initialize a ST7735S chip, black tab tft.fillScreen(ST7735_BLACK);
displayPixelWidth = tft.width() / 8; displayPixelHeight = tft.height() / 8;
//tft.setRotation(3); bool status; // default settings status = amg.begin(); if (!status) { Serial.println("Could not find a valid AMG88xx sensor, check wiring!"); while (1); } Serial.println("-- Thermal Camera Test --"); delay(100); // let sensor boot up
}
void loop() { //read all the pixels amg.readPixels(pixels);
for(int i=0; i
//draw the pixels! tft.fillRect(displayPixelHeight * floor(i / 8), displayPixelWidth * (i % 8), displayPixelHeight, displayPixelWidth, camColors[colorIndex]); } }
Downloads
Step 3: Making Your 3D Headband
This was my solution in making the headband, you can very well have a much better than mine design wise. It does favor one side and weighs more on the other unfortunately. For the next time I may come back to this and make it more balanced, and also make it more permanent design as well. I made a spot for my Arduino, the camera, the monitor, and then the 9v battery.
Something I did end up doing with the headband was taking off the back end with a saw, so that I can make it fit other people's heads so they can try it out other than mine.
This was made in Fusion 360 utilizing simple tools to make something feasible for this project.