/* -----------------------------------------------------------------
------------------------- Codigo MultiHardWare ---------------------
----------------------------------------------------------------- */
#if defined(ESP8266)
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
ESP8266WiFiMulti wifiMulti;
#pragma message "Codigo para ESP8266!"
#elif defined(ESP32)
#include <WiFi.h>
#include <WiFiMulti.h>
WiFiMulti wifiMulti;
#pragma message "Codigo para ESP32!"
#elif defined(ARDUINO)
#pragma message "Codigo para Arduino basado AVR (UNO, MEGA, etc)!"
#else
#pragma message "No es ni ESP32 o ES8266 o AVR, que es?"
#endif
/* -----------------------------------------------------------------
-------------------------- Librerias y Objetos ---------------------
----------------------------------------------------------------- */
template<class T> inline Print &operator <<(Print &obj, T arg) {
obj.print(arg);
return obj;
}
#include <EasyBuzzer.h>
/* -----------------------------------------------------------------
---------------- Declaracion de Variables y constantes -------------
----------------------------------------------------------------- */
#define pir_pin 14 //establecer el pin del sensor pir
#define led_verde 2 //establecer el pin del led
#define pin_button3 35 //definimos el pin numero 13 para el boton
int pir_state = LOW; // de inicio no hay movimiento
int val = 0; // estado del pin del sensor
int buttonState = 0; // variable for READING the pushbutton status
int variable_buttonState = 0; // variable for STORING the pushbutton status
int ledState2 = LOW; // estado del LED
long previousMillis2 = 0; // guarda la ultima vez que el LED se actualiza
long interval2 = 3000; // intervalo de tiempo cuando el LED parpadea
void funcion_sensor_pir();
void funcion_led_rgb3();
void setup()
{
Serial.begin(115200);
pinMode(pir_pin, INPUT);
pinMode(pin_button3, INPUT); //establecemos que el boton va como una entrada
pinMode(led_verde, OUTPUT);
digitalWrite(led_verde, 0);
EasyBuzzer.setPin(25);
EasyBuzzer.stopBeep();
}
void loop()
{
// read the state of the pushbutton value:
buttonState = digitalRead(pin_button3);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:
variable_buttonState = !variable_buttonState;
}
if (variable_buttonState == HIGH) {
// turn led on
Serial.println("SISTEMA DE SEGURIDAD ACTIVO");
funcion_sensor_pir();
}
else {
// turn LED off:
Serial.println("SISTEMA DE SEGURIDAD DESACTIVADO");
}
}
void funcion_sensor_pir(){
val = digitalRead(pir_pin);
if (val == HIGH) { //si está activado
Serial.println ("esta detectando movimiento");
EasyBuzzer.singleBeep(100, 1000);
funcion_led_rgb3 ();
} else { //si esta desactivado
Serial.println ("no esta detectando nada");
}
}
void funcion_led_rgb3() {
unsigned long currentMillis2 = millis();
if(currentMillis2 - previousMillis2 > interval2) {
// guarda la ultima vez que el LED parpadea
previousMillis2 = currentMillis2;
// si el LED está apagado, lo prende y viceversa
if (ledState2 == LOW)
ledState2 = HIGH;
else
ledState2 = LOW;
// establecer el LED con el estado de la variable
digitalWrite(led_verde, ledState2);
}
}