###### tags: `Arduino`
# Temp controlled door lock
In this project, my goal is to use a infrared temperture sensor to detect human's body temperture and decide whether to let him/her in. At the mean time, the OLED screen will show the temperture and the red/green led will lightup to show the status.
## Appearence


## Wiring

## Program flow

## Code
```cpp=
#include <Wire.h>
#include <Adafruit_SH1106.h>
#include <Adafruit_MLX90614.h>
#include <Servo.h>
Servo ss;
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
#define OLED_RESET -1
Adafruit_SH1106 display(OLED_RESET);
const int r = 7, g = 8;
void setup(){
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
Serial.begin(9600);
display.begin(SH1106_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(2);
display.setCursor(0,0);
mlx.begin();
ss.attach(9);
ss.write(85);
}
void loop() {
float temp = mlx.readObjectTempC();
display.clearDisplay();
display.setCursor(0,0);
display.print("Temp:");
display.setCursor(0,25);
display.print(temp);
display.display();
if(temp<35){
ss.write(85);
digitalWrite(r,0);
digitalWrite(g,0);
}else if(temp>=35.5&&temp<=37.5){
display.setCursor(0,50);
display.print("Pass");
display.display();
digitalWrite(g,1);
ss.write(180);
delay(3000);
ss.write(85);
digitalWrite(g,0);
delay(500);
}else{
digitalWrite(r,1);
display.setCursor(0,50);
display.print("Block");
display.display();
delay(500);
digitalWrite(r,0);
}
delay(100);
}
```