-
-
Save MiguelAzores/e89cf8cff195daa6c89a1b416d0cb95d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <Wire.h> | |
#include <LiquidCrystal_I2C.h> | |
#include <DallasTemperature.h> | |
#include <OneWire.h> | |
#define ONE_WIRE_BUS 2 | |
const int lucesCasa = 3; // iluminación general de la casa | |
const int pir = 5; // sensor de movimiento | |
const int ventilador = 6; // ventilador | |
const int ledGeneral = 8; // luz de emergencia y avisos | |
const int buzzerGeneral = 9; // buzzer de emergencia y avisos | |
// A0 sensor de llama | |
// A1 sensor de gas | |
// A2 ------------- | |
// A3 ------------- | |
// A4 Pantalla lcd | |
// A5 pantalla lcd | |
OneWire oneWire(ONE_WIRE_BUS); | |
DallasTemperature sensors(&oneWire); | |
LiquidCrystal_I2C lcd(0x27,16,2); | |
int luminosidad; | |
int movimiento; | |
int gas; | |
int llama; | |
int alarma; | |
void setup(){ | |
// inicializamos todo | |
Serial.begin(19200); | |
sensors.begin(); | |
pinMode(ledGeneral, OUTPUT); | |
pinMode(buzzerGeneral, OUTPUT); | |
pinMode(lucesCasa, OUTPUT); | |
pinMode(pir, INPUT); | |
lcd.init(); | |
lcd.backlight(); | |
} | |
void loop() { | |
alarma = 0; | |
digitalWrite(ledGeneral, LOW); | |
//iluminación interior | |
if (Serial.available() > 0){ | |
luminosidad = Serial.read(); | |
analogWrite (lucesCasa, luminosidad); | |
} | |
//sensor de llama | |
llama = analogRead(A0) ; // lectura del sensor de llama | |
if (llama > 200){ | |
alarma = 1; | |
} | |
//sensor de gas | |
gas = analogRead(A1); | |
if (gas > 400){ | |
alarma = 1; | |
} | |
// Sensor movimiennto | |
movimiento = digitalRead(pir); | |
if (movimiento == 1){ | |
alarma = 1; | |
} | |
// temperatura | |
sensors.requestTemperatures(); | |
int temperatura = sensors.getTempCByIndex(0); | |
if (temperatura > 25){ | |
digitalWrite(ventilador, HIGH);} | |
else{ | |
digitalWrite(ventilador, LOW);} | |
if (alarma == 1){ | |
digitalWrite(ledGeneral, HIGH); | |
delay(200); | |
lcd.setCursor(3,1); | |
lcd.print("PELIGRO"); | |
} | |
{ | |
digitalWrite(ledGeneral, LOW); | |
lcd.setCursor(3,0); | |
lcd.print(temperatura); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment