prezados amigo alguem pode ajudar
tenho code do jose miguel me passou.
ele me ajudou muito.sem ele tava perdido
resulmindo
quero ligar lampada fora da minha rede.
via celular 3g
tenho dyndns
o resto nao sei nada.esse eo code
#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
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 0, 188 };
byte gateway[] = { 192, 168, 0, 1 };
byte subnet[] = { 255, 255, 255, 0 };
EthernetServer server(80);
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 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(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.clear();
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.clear();
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(); //A aquisição dessa informação demora 1 seg , então colocar isto no loop principal afeta o desempenho do programa
t = dht.readTemperature(); // Mesma regra
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, HIGH);
Serial.println("Ligando Rele 1");
Serial3.println("Ligando Rele 1");
Serial.println(readString);
}
if(readString.indexOf("r1off") >0)
{
digitalWrite(rele1, LOW);
Serial.println("Desligando Rele 1");
Serial3.println("Desligando Rele 1");
Serial.println(readString);
}
if(readString.indexOf("r2on") >0)
{
digitalWrite(rele2, HIGH);
delay(1000);
digitalWrite(rele2,LOW);
Serial.println("Ligando Rele 2");
Serial3.println("Ligando Rele 2");
Serial.println(readString);
}
if(readString.indexOf("r2off") >0)
{
digitalWrite(rele2, LOW);
Serial.println("Desligando Rele 2");
Serial3.println("Desligando Rele 2");
Serial.println(readString);
}
if(readString.indexOf("r3on") >0)
{
digitalWrite(rele3, HIGH);
Serial.println("Ligando Rele 3");
Serial3.println("Ligando Rele 3");
Serial.println(readString);
}
if(readString.indexOf("r3off") >0)
{
digitalWrite(rele3, LOW);
Serial.println("Desligando Rele 3");
Serial3.println("Desligando Rele 3");
Serial.println(readString);
}
if(readString.indexOf("r4on") >0)
{
digitalWrite(rele4, HIGH);
Serial.println("Ligando Rele 4");
Serial3.println("Ligando Rele 4");
Serial.println(readString);
}
if(readString.indexOf("r4off") >0)
{
digitalWrite(rele4, LOW);
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 ");
//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 ");
}
if (FlagAlarme == true){
le_sensores();
if (DispAlarme == true){
digitalWrite(Sirene, HIGH);
lcd.setCursor(0,1);
lcd.print("Falha na Seguranca");
}
}
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)==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'>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) == 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'>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) == 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'>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) == 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'>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");
}
Tags:
Outra possibilidade seria a tela de login aparecer apenas na primeira vez. Apos checada a autenticidade, vc faz com que todos os comandos de botóes enviem junto atraves de parametros get um codigo secreto que so o arduino reconhecerá, mas o invasor não saiba. Assim, o invasor acessará o arduino sempre sem esse parametro get e portanto sempre cairá na tela de login.
Lembrar que soluçáo usando segurança a nivel de arduino ficará vulnerável a flood, tentativas insistentes, seguidas e infinitas de login, bem como ataques ddos.
Se o agressor descobrir o ip do moises, ele vai ficar 24h por dia tentando, 7dias por semana, e quando ele não estiver tentando, vai indisponibilizar a página do moises atraves de ddos. Nem ele mesmo irá conseguir usar quando estiver disponibilizado na internet.
Vai por mim, deixa pra la esse negócio de disponibilizar o controle da casa na internet. Mas se realmente quiser ter isso, coloque um linux como camada de segurança (toda conexáo vinda de fora passa nele primeiro.)
É no mínimo ingênuo achar que vcs vao resolver os problemas do moises com soluçóes tão vulneráveis.
Se vc acha que aquilo tudo que falei é empecilho, que é paranóia minha, que não foi contribuição, pense melhor. Eu tentei foi é alertar sobre o perigo disso tudo que vcs estão fazendo.
Não cometi CRIME nenhum. Náo fale sandices. Não invadi rede. Não fiz mal a ele. Não preciso invadir redes alheias pra obter o sustento da minha família. O pouco conhecimento que tenho eu uso pra ajudar, não pra lesar. Vivo uma vida honrada.
Acessei sim o webserver do moises, mas foi porque ele publicou o ip dele e porta e pediu ajuda pra saber por que não estava conseguindo acessar. Ja que eu julgava saber o motivo, precisei conectar eu mesmo no ip dele pra confirmar o meu diagnostico.
A contribuiçáo não precisa necessariamente vir através de soluções (que por sinal, não vejo as apresentadas até agora como solução e sim problema). Penso que a contribuição pode vir também como uma mão que tenta ajudar a tirar a corda pro cara não se enforcar.
Moises: recomendo-lhe mais cuidado com esse lance de disponibilizar na net o controle da sua residencia. Acredite, existem pessoas nesse mundão afora dotadas de enorme habilidade capazes de fazer barbaridades com essa tal de internet. Não subestime achando que ninguém vai mexer nesses controles da sua casa só porque vc é portador de necessidades. Aliás, essas pessoas não darão a minima impotância a isso, eles só vão achar o ip e tentar obter acesso pra ver o que existe ali.
imhugo e agora oque eu faço entao
porque eu estou perdido
nao tenho nada no pc so filmes musicas
estou correndo risco
aguardo
o problema não é o cara invadir teu pc e apagar teus filmes e musicas. O problema é vc ter o controle da sua casa disponibilizado na net. POr exemplo, se vc colocar o botão ABRIR PORTÃO DA GARAGEM. E se o cara acessar esse controle e mandar abrir o portão da garagem de madrugada? Aí tem outro botão: ACIONAR SIRENE. Se o cara apertar esse botão, vai incomodar a vizinhança, e depois de tanto disparar sirene, ninguém mais vai considerar como alerta, mas sim como falso alerta.
o controle remoto dessa natureza que vcs estão montando deve ser dotado algum esquema bom de controle de acesso (segurança), senão vai ser a mesma coisa que entregar um controle remoto de TV ou de portão pra criancinha de 1 ano, vão ficar apertando os botões indiscriminadamente e uma hora vai dar zebra.
miguel estou preocupado
ja mudei IP
mas tenho risco ainda
aguardo
ok
miguel uma pergunta
pq esse code e pesado lento.tipo demora 7 segundo p acionar um botao
e o meu code 8 relay e rapido.tipo demora 1 segundo p acionar um botao
interno e demora 7 a 10 segundo
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por