#include <IRremote.h>
#include <LiquidCrystal.h>
#include <Servo.h>
#include <Adafruit_NeoPixel.h>
#define LED_PIN 11
#define LED_COUNT 16
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
Servo servo1;
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
int pos;
int fumaca;
int Temp;
double TempT;
double Temperature;
int RECV_PIN = 9;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
pinMode(12, OUTPUT);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
pinMode(6, OUTPUT);
pinMode(5, OUTPUT);
pinMode(4, OUTPUT);
pinMode(3, OUTPUT);
pinMode(2, OUTPUT);
pinMode(A0, INPUT);
pinMode(A1, INPUT);
pinMode(A2, INPUT);
servo1.attach(10);
lcd.begin(16, 2);
irrecv.enableIRIn();
}
void loop() {
Temp = analogRead(A1);
TempT = Temp * (5000/1024.0);
Temperature = (TempT - 500) / 10;
fumaca = analogRead(A0);
if(irrecv.decode(&results)){
irrecv.resume();
}if(results.value == 0xFD00FF){
digitalWrite(12, HIGH);
}else if(results.value == 0xFD30CF){
digitalWrite(12, LOW);
}
if(fumaca >= 25){
lcd.clear();
servo1.write(90);
digitalWrite(8, HIGH);
lcd.setCursor(0, 0);
lcd.print("FOGO");
lcd.setCursor(0, 1);
lcd.print("IDENTIFICADO");
delay(1000);
for(int i=1;i<=16;i++){
strip.setPixelColor(i-1,128 , 0, 128);
strip.setPixelColor(i, 128, 0, 128);
strip.show();
delay(100);
}
}
else{
lcd.clear();
servo1.write(0);
digitalWrite(8 , LOW);
lcd.setCursor(0, 0);
lcd.print("Temperatura em");
lcd.setCursor(0, 1);
lcd.print("Celsius = ");
lcd.print(Temperature);
delay(1000);
strip.begin();
strip.show();
for(int i=0;i<=16;i++){
strip.setPixelColor(i, 0, 255, 0);
strip.show();
}
delay(10);
}
}
Comments