sketch para automaçao

usando display 16x2

arduino mega

teclado ps2

sensores de movimento

shield ethernet

reles

sensor dth

twitter

sirene

buzzer

#include <Twitter.h>
#include <PS2Keyboard.h>
#include <SPI.h>
#include <Ethernet.h>
#include <EEPROM.h>
#include <LiquidCrystal.h>
#include "DHT.h"

#define DHTPIN A12 // what pin we're connected to
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
#define BAUD_RATE 9600
#define TERM_CHAR '\n'
#define BUF_LEN 30

Twitter twitter("crie um token e insira aqui");
char msg[] = "casa violada!";

const int optoacopladorbutton =38 ;
int optoacopladorState = LOW;
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 0, 177 };
byte gateway[] = { 192, 168, 0, 1 };
byte subnet[] = { 255, 255, 255, 0 };
EthernetServer server(1080);
byte sampledata=50;

float h;
float t;
int i;
int count=0;
boolean DispAlarme = false;
boolean FlagAlarme = true;
boolean AIMode = false;
char c;
String readString = String(BUF_LEN);
PS2Keyboard ps2keyboard;
String senha = "2589";
String senhadedesbloqueio = "4526";
String senhadigitada = "";
const int DataPin = 2;
const int IRQPin = 3;
int buzzer = 20;
int jafoi=0;

int ContatoSecoState1 = 0;
int ContatoSecoState2 = 0;
int ContatoSecoState3 = 0;
int ContatoSecoState4 = 0;
int ContatoSecoState5 = 0;
int ContatoSecoState6 = 0;
int ContatoSecoState7 = 0;
int ContatoSecoState8 = 0;

const int rele1 = 22;
const int rele2 = 23;
const int rele3 = 24;
const int rele4 = 25;
const int rele5 = 26;
const int rele6 = 27;
const int rele7 = 28;
const int rele8 = 29;
const int rele9 = 42;
const int rele10 = 43;

const int contatoseco8 = 41;
const int contatoseco7 = 40;
const int contatoseco6 = 49;
const int contatoseco5 = 48;
const int contatoseco4 = 47;
const int contatoseco3 = 46;
const int contatoseco2 = 45;
const int contatoseco1 = 44;

const int Sirene = 33;

LiquidCrystal lcd(9, 8, 7, 6, 5, 4);

void setup(){
lcd.begin(16, 2);


lcd.print("OI RESIDENTE");
pinMode (buzzer, OUTPUT);
pinMode(rele1, OUTPUT);
pinMode(rele2, OUTPUT);
pinMode(rele3, OUTPUT);
pinMode(rele4, OUTPUT);
pinMode(rele5, OUTPUT);
pinMode(rele6, OUTPUT);
pinMode(rele7, OUTPUT);
pinMode(rele8, OUTPUT);
pinMode(rele9, OUTPUT);
pinMode(rele10, OUTPUT);
pinMode(Sirene, OUTPUT);

pinMode(optoacopladorbutton, INPUT);

pinMode(contatoseco6, INPUT);
pinMode(contatoseco5, INPUT);
pinMode(contatoseco4, INPUT);
pinMode(contatoseco3, INPUT);
pinMode(contatoseco2, INPUT);
pinMode(contatoseco1, INPUT);
pinMode(contatoseco2, INPUT);
pinMode(contatoseco1, INPUT);


Ethernet.begin(mac, ip, gateway, subnet);


Serial.begin(9600);
Serial2.begin(9600);
Serial3.begin(9600);
delay (1000);
ps2keyboard.begin(DataPin, IRQPin);
Serial.begin(9600);
Serial.println("aguardando teclas");
inicia_lcd();
inicia_buzzer();
digitalWrite(Sirene, HIGH);
delay (200);
digitalWrite(Sirene, LOW);
FlagAlarme = true;
lcd.setCursor(0,1);
lcd.print("ALARME ATIVADO");
Serial.println("alarme ativado");


}



void loop(){
if (ps2keyboard.available())
{
char teclapressionada = ps2keyboard.read();
tone(buzzer, 1500);
delay (200);
noTone(buzzer);
delay(200);
Serial.println(teclapressionada);
senhadigitada += teclapressionada;
if (teclapressionada == PS2_ENTER)
{
Serial.println("a tecla enter foi pressionada");
Serial.println("senha digitada.: "+senhadigitada);

if (senha != senhadigitada.substring(0,4))
{
inicia_buzzer();
Serial.println("codigo incorreto");
delay (2000);
count++;
lcd.clear();
lcd.print("INSIRA A SENHA");

if (count == 3)
{
tone(buzzer,1500);
delay(2000);
noTone(buzzer);
delay(500);
Serial.println("acionamento por senha errada");
count = 0;

}

}
if (senha == senhadigitada.substring(0,4))
{
inicia_buzzer();
digitalWrite(Sirene, HIGH);
delay (200);
digitalWrite(Sirene, LOW);
FlagAlarme = true;
lcd.setCursor(0,1);
lcd.print("ALARME ATIVADO");
Serial.println("alarme ativado");
count = 0;

}

senhadigitada = "" ;
}
else if (teclapressionada == PS2_DELETE)
{
senhadigitada = "";
Serial.println("a tecla anular foi pressionada");
}
}


leserial();
rede();
count++;

if(count == 1000){
h = dht.readHumidity();
t = dht.readTemperature();
lcd.setCursor(0,1);
lcd.print("RH: ");
lcd.setCursor(4,1);
lcd.print(h);


lcd.setCursor(8,1);
lcd.print("Temp: ");
lcd.setCursor(13,1);
lcd.print(t);
count=0;
}
if(readString.indexOf("r1on") >0)
{

digitalWrite(rele1, LOW);
Serial.println("Ligando Rele 1");
Serial3.println("Ligando Rele 1");
Serial.println(readString);
}
if(readString.indexOf("r1off") >0)
{

digitalWrite(rele1, HIGH);
Serial.println("Desligando Rele 1");
Serial3.println("Desligando Rele 1");
Serial.println(readString);
}
if(readString.indexOf("r2on") >0)
{
digitalWrite(rele2, LOW);
Serial.println("Ligando Rele 2");
Serial3.println("Ligando Rele 2");
Serial.println(readString);

}
if(readString.indexOf("r2off") >0)
{

digitalWrite(rele2, HIGH);
Serial.println("Desligando Rele 2");
Serial3.println("Desligando Rele 2");
Serial.println(readString);
}
if(readString.indexOf("r3on") >0)
{
digitalWrite(rele3, LOW);
Serial.println("Ligando Rele 3");
Serial3.println("Ligando Rele 3");
Serial.println(readString);

}
if(readString.indexOf("r3off") >0)
{

digitalWrite(rele3, HIGH);
Serial.println("Desligando Rele 3");
Serial3.println("Desligando Rele 3");
Serial.println(readString);
}
if(readString.indexOf("r4on") >0)
{
digitalWrite(rele4, LOW);
Serial.println("Ligando Rele 4");
Serial3.println("Ligando Rele 4");
Serial.println(readString);

}
if(readString.indexOf("r4off") >0)
{

digitalWrite(rele4, HIGH);
Serial.println("Desligando Rele 4");
Serial3.println("Desligando Rele 4");
Serial.println(readString);
}

if(readString.indexOf("r5on") >0)
{
digitalWrite(rele5, HIGH);
Serial.println("Ligando Rele 5");
Serial3.println("Ligando Rele 5");
Serial.println(readString);

}
if(readString.indexOf("r5off") >0)
{

digitalWrite(rele5, LOW);
Serial.println("Desligando Rele 5");
Serial3.println("Desligando Rele 5");
Serial.println(readString);
}

if(readString.indexOf("r6on") >0)
{
digitalWrite(rele6, HIGH);
Serial.println("Ligando Rele 6");
Serial3.println("Ligando Rele 6");
Serial.println(readString);

}
if(readString.indexOf("r6off") >0)
{

digitalWrite(rele6, LOW);
Serial.println("Desligando Rele 6");
Serial3.println("Desligando Rele 6");
Serial.println(readString);
}
if(readString.indexOf("r7on") >0)
{
digitalWrite(rele7, HIGH);
Serial.println("Ligando Rele 7");
Serial3.println("Ligando Rele 7");
Serial.println(readString);

}
if(readString.indexOf("r7off") >0)
{

digitalWrite(rele7, LOW);
Serial.println("Desligando Rele 7");
Serial3.println("Desligando Rele 7");
Serial.println(readString);
}
if(readString.indexOf("r8on") >0)
{
digitalWrite(rele8, HIGH);
Serial.println("Ligando Rele 8");
Serial3.println("Ligando Rele 8");
Serial.println(readString);

}
if(readString.indexOf("r8off") >0)
{

digitalWrite(rele8, LOW);
Serial.println("Desligando Rele 8");
Serial3.println("Desligando Rele 8");
Serial.println(readString);
}
if(readString.indexOf("r9on") >0)
{
digitalWrite(rele9, HIGH);
Serial.println("Ligando Rele 9");
Serial3.println("Ligando Rele 9");
Serial.println(readString);

}
if(readString.indexOf("r9off") >0)
{

digitalWrite(rele9, LOW);
Serial.println("Desligando Rele 9");
Serial3.println("Desligando Rele 9");
Serial.println(readString);
}
if(readString.indexOf("r10on") >0)
{
digitalWrite(rele10, HIGH);
Serial.println("Ligando Rele 10");
Serial3.println("Ligando Rele 10");
Serial.println(readString);

}
if(readString.indexOf("r10off") >0)
{

digitalWrite(rele10, LOW);
Serial.println("Desligando Rele 10");
Serial3.println("Desligando Rele 10");
Serial.println(readString);
}


if(readString.indexOf("all=Ativar+Alarme") >0)//replaces if(readString.contains("L=1"))
{
FlagAlarme = true;
lcd.setCursor(0,1);
lcd.print(" Alarme Ativado ");
inicia_buzzer();
digitalWrite(Sirene, HIGH);
delay(200);
digitalWrite(Sirene, LOW);
//delay(10000);
}
if(readString.indexOf("all=Desativar+Alarme") >0)//replaces if(readString.contains("L=1"))
{
FlagAlarme = false;
DispAlarme = false;
digitalWrite(Sirene, LOW);
lcd.setCursor(0,1);
lcd.print(" Alarme Desativado ");

}
optoacopladorState = digitalRead(optoacopladorbutton);
if(optoacopladorState == HIGH)
{
(digitalRead(rele1)==0);
}



if (FlagAlarme == true){
le_sensores();


if (DispAlarme == true){
digitalWrite(Sirene, HIGH);
lcd.setCursor(0,1);
lcd.print("Falha na Seguranca");
inicia_twitter();
}
}

readString="";

}

void le_sensores(){
ContatoSecoState1 = digitalRead(contatoseco1);
ContatoSecoState2 = digitalRead(contatoseco2);
ContatoSecoState3 = digitalRead(contatoseco3);
ContatoSecoState4 = digitalRead(contatoseco4);
ContatoSecoState5 = digitalRead(contatoseco5);
ContatoSecoState6 = digitalRead(contatoseco6);
ContatoSecoState7 = digitalRead(contatoseco7);
ContatoSecoState8 = digitalRead(contatoseco8);

if (ContatoSecoState1 == LOW){
DispAlarme = true;
}

if (ContatoSecoState2 == LOW){
DispAlarme = true;
}
if (ContatoSecoState3 == LOW){
DispAlarme = true;
}

if (ContatoSecoState4 == LOW){
DispAlarme = true;
}
if (ContatoSecoState5 == LOW){
DispAlarme = true;
}
if (ContatoSecoState6 == LOW){
DispAlarme = true;
}
if (ContatoSecoState7 == LOW){
DispAlarme = true;
}
if (ContatoSecoState8 == LOW){
DispAlarme = true;
}

}


void leserial(){
while(Serial.available()){
c = (char) Serial.read();
if (readString.length() < 100)
{
readString += c;
}
delay(1);
}
while(Serial2.available()){
c = (char) Serial2.read();
if (readString.length() < 100)
{

readString += c;
}
delay(1);
}
while(Serial3.available()){
c = (char) Serial3.read();
if (readString.length() < 100)
{

readString += c;
}
delay(1);
}

}

void rede(){
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
c = client.read();
if (readString.length() < 100)
{
readString += c;
}

if (c == '\n') {

if (readString.indexOf("?") <0)
{

}

client.println("HTTP/1.1 200 OK");

client.println("Content-Type: text/html");

client.println();

client.print("<html><head>");

client.print("<title>AUTOMAÇAO MIGUEL</title>");

client.println("</head>");

client.print("<body bgcolor='#444444'>");


client.println("<br><hr />");

client.println("<h1><div align='center'><font color='#2076CD'>AUTOMACAO CASA MIGUEL</font color></div></h1>");

client.println("<hr /><br>");

client.println("<div align='left'><font face='Verdana' color='#FFFFFF'>Painel de Controle WEB:</font></div>");

client.println("<br>");

client.println("<div align='left'><font face='Verdana' color='#FFFFFF'>Temperatura:");
client.print(t);
client.println("</font></div>");

client.println("<div align='left'><font face='Verdana' color='#FFFFFF'>Umidade:");
client.print(h);
client.println("</font></div>");

client.println("<br>");

client.println("<table border='1' width='100%' cellpadding='5'>");

client.println("<tr bgColor='#222222'>");

client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Sala<br></font></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r1on value='Acender'></form></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r1off value='Apagar'></form></td>");


if (digitalRead(rele1)==0)
client.println("<td align='center'><font color='green' size='5'>LIG");
else
client.println("<td align='center'><font color='#CFCFCF' size='5'>DES");

client.println("</tr>");

client.println("<tr bgColor='#222222'>");

client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Cozinha<br></font></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r2on value='Acender'></form></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r2off value='Apagar'></form></td>");

if (digitalRead(rele2) == 0)
client.println("<td align='center'><font color='green' size='5'>LIG");
else
client.println("<td align='center'><font color='#CFCFCF' size='5'>DES");

client.println("</tr>");

client.println("<tr bgColor='#222222'>");

client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Garagem<br></font></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r3on value='Acender'></form></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r3off value='Apagar'></form></td>");

if (digitalRead(rele3) == 0)
client.println("<td align='center'><font color='green' size='5'>LIG");
else
client.println("<td align='center'><font color='#CFCFCF' size='5'>DES");

client.println("</tr>");


client.println("<tr bgColor='#222222'>");

client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Suite<br></font></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r4on value='Acender'></form></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r4off value='Apagar'></form></td>");

if (digitalRead(rele4) == 0)
client.println("<td align='center'><font color='green' size='5'>LIG");
else
client.println("<td align='center'><font color='#CFCFCF' size='5'>DES");

client.println("</tr>");


client.println("<tr bgColor='#222222'>");

client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Quarto<br></font></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r5on value='Acender'></form></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r5off value='Apagar'></form></td>");

if (digitalRead(rele5) == 1)
client.println("<td align='center'><font color='green' size='5'>LIG");
else
client.println("<td align='center'><font color='#CFCFCF' size='5'>DES");

client.println("</tr>");

client.println("<tr bgColor='#222222'>");

client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Banheiro Suite<br></font></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r6on value='Acender'></form></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r6off value='Apagar'></form></td>");

if (digitalRead(rele6) == 1)
client.println("<td align='center'><font color='green' size='5'>LIG");
else
client.println("<td align='center'><font color='#CFCFCF' size='5'>DES");

client.println("</tr>");

client.println("<tr bgColor='#222222'>");

client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Escritorio<br></font></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r7on value='Acender'></form></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r7off value='Apagar'></form></td>");

if (digitalRead(rele7) == 1)
client.println("<td align='center'><font color='green' size='5'>LIG");
else
client.println("<td align='center'><font color='#CFCFCF' size='5'>DES");

client.println("</tr>");

client.println("<tr bgColor='#222222'>");

client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Banheiro<br></font></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r8on value='Acender'></form></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r8off value='Apagar'></form></td>");

if (digitalRead(rele8) == 1)
client.println("<td align='center'><font color='green' size='5'>LIG");
else
client.println("<td align='center'><font color='#CFCFCF' size='5'>DES");

client.println("</tr>");

client.println("<tr bgColor='#222222'>");

client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Portão Social<br></font></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r9on value='Acender'></form></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r9off value='Apagar'></form></td>");

if (digitalRead(rele9) == 1)
client.println("<td align='center'><font color='green' size='5'>LIG");
else
client.println("<td align='center'><font color='#CFCFCF' size='5'>DES");

client.println("</tr>");

client.println("<tr bgColor='#222222'>");

client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Portão Garagem<br></font></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r10on value='Acender'></form></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r10off value='Apagar'></form></td>");

if (digitalRead(rele10) == 1)
client.println("<td align='center'><font color='green' size='5'>LIG");
else
client.println("<td align='center'><font color='#CFCFCF' size='5'>DES");

client.println("</tr>");

client.println("</tr>");

client.println("</table>");


client.println("<br>");

if (FlagAlarme == 0)
client.println("<form method=get><input type=submit name=all value='Ativar Alarme'></form>");
else
client.println("<form method=get><input type=submit name=all value='Desativar Alarme'></form>");

client.println("<br>");


client.println("<form method=get><input name='ip' size='17' maxlength=17>");
client.println("<form method=get><input value='Salvar' type=submit></form>");


client.println("</body></html>");


client.stop();
}
}
}
}
}

void inicia_buzzer()
{
tone(buzzer,1500);
delay(900);
noTone(buzzer);
delay(100);
tone(buzzer,1500);
delay(900);
noTone(buzzer);
delay(100);
tone(buzzer,1500);
delay(900);
noTone(buzzer);
delay(100);
tone(buzzer,1500);
delay(900);
noTone(buzzer);
delay(100);
tone(buzzer,1500);
delay(900);
noTone(buzzer);
delay(100);
}
void inicia_lcd()
{
lcd.begin(16,2);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("INSIRA SENHA");
}
void inicia_twitter()

{
delay(1000);
Ethernet.begin(mac, ip);
Serial.begin(9600);

if (jafoi==0){
Serial.println("connecting ...");
if (twitter.post(msg)) {
int status = twitter.wait();
if (status == 200) {
Serial.println("OK.");
jafoi=1;
} else {
Serial.print("failed : code ");
Serial.println(status);
}
} else {
Serial.println("connection failed.");
}
}
}

Exibições: 109

Responder esta

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço