Thermal IR-Camera: Difference between revisions

From SGMK-SSAM-WIKI
Jump to navigation Jump to search
No edit summary
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[File:ThermalCam_PD.png|320px]]
[[File:ThermalCam_PD.png|320px]]


Yeah, that's me, dusjagr, smoking a cigarette :-)


[[File:Single-Pixel_rat-detection.png|320px]]
and that's a Rat-in-a-Box
[[File:Rat-in-a-Box.jpg|320px]]


=== Parts ===
=== Parts ===
Omron's D6T Series MEMS Thermal Sensors, 4x4 pixel.
also called "human presence sensors" :-)
http://www.mouser.com/ds/2/307/D6T_datasheet_Nov2012-237760.pdf
http://ch.mouser.com/ProductDetail/Omron-Electronics/D6T-44L-06/?qs=IQwVXVmkiFL3XeQ%252bJMEhQw==


=== Arduino ===
=== Arduino ===


The Arduino Code
The arduino code, using the Wire library to communicate with I2C, sadly can only buffer 32 values... and we need to read 35. so the last pixel is missing :-(


<syntaxhighlight lang="c">
<syntaxhighlight lang="c">
Line 87: Line 101:
</syntaxhighlight>
</syntaxhighlight>


=== PD ===


[[File:IR-cam-pd-patch.png|320px]]


=== PD ===
[[File:IR-cam.zip]]

Latest revision as of 12:38, 19 September 2013

Yeah, that's me, dusjagr, smoking a cigarette :-)

and that's a Rat-in-a-Box

Parts

Omron's D6T Series MEMS Thermal Sensors, 4x4 pixel.

also called "human presence sensors" :-)

http://www.mouser.com/ds/2/307/D6T_datasheet_Nov2012-237760.pdf

http://ch.mouser.com/ProductDetail/Omron-Electronics/D6T-44L-06/?qs=IQwVXVmkiFL3XeQ%252bJMEhQw==

Arduino

The arduino code, using the Wire library to communicate with I2C, sadly can only buffer 32 values... and we need to read 35. so the last pixel is missing :-(

#include <Wire.h>



void setup()

{

  Wire.begin();                // join i2c bus (address optional for master)

  Serial.begin(9600);          // start serial communication at 9600bps

}



int reading = 0;

int count=0;

char buf[3];



void loop()

{

  // step 3: instruct sensor to return a particular echo reading

  Wire.beginTransmission(0x0a);

  Wire.write(byte(0x4c));      // sets register pointer to echo #1 register (0x02)

  Wire.endTransmission(false);      // stop transmitting

  // step 4: request reading from sensor

  Wire.requestFrom(0x0a, 32);    // request 2 bytes from slave device #112



  // step 5: receive reading from sensor

  count=0;

  while(count<32)

  {

  if(2 <= Wire.available())    // if two bytes were received

  {

    reading = Wire.read();  // receive high byte (overwrites previous reading)

    reading+= Wire.read()<<8;

    Serial.print(reading);   // print the reading

    Serial.print(" ");

    count+=2;

  }

  }
  //while(Wire.available()<1);
  //reading = Wire.read();

  Serial.println();

}

PD

File:IR-cam.zip