ola meu TCC eh uma casa inteligente, utilizando arduino mega + ethernet shield + android (eclipse)
estou tendo problemas, mas meu prof nao conseguiu tirar minha duvida meus companheiros de grupo e eu conseguimos achar a solução neste site e venho pedir ajuda... ao incluir a nova rotina alarme utilizando sensor ultrassonico segue o codigo abaixo da erro de compilçao e alem do mais... nao consigo nem mesmo "incluir a rotina" sendo que tenho mais uma que eh o motor que vo utilizar para o portao da garagem
segue o codigo abaixo em anexo o arquivo ino... e pra quem nao tem o arduino irei postar no corpo desta mensagem, o motor da garagem nao esta incluido pois a primeira dificuldade veio o ultrassonico simulando o alarme e incluindo na minha rotina do programa principal é o que estou tendo problemas
#include <SPI.h>
#include <String.h>
#include <Ethernet.h>
#include <Ultrasonic.h>
byte mac[] = {
0x90, 0xA2, 0xDA, 0x00, 0x9B, 0x36
};
// Endereço Mac
byte ip[] = {192, 168, 1, 177 };
// Endereço de Ip Arduino
EthernetServer server(8090);
// Porta de serviço
int cozinha = 7; // wifi
int sala = 3; // wifi
int quarto2 = 6;
int quarto = 2;
int cooler1 = 5;
int cooler2 = 4;
int portao = 8;
Ultrasonic ultrasonic(9, 10);
const int alarme1 = 11;
const int alarme2 = 12;
long microsec = 0;
float distanciaCM = 0;
String readString = String(30);
// string para buscar dados de endereço
boolean statusQuarto = false;
boolean statusSala = false;
boolean statusQuarto2 = false;
boolean statusCozinha = false;
boolean statusCooler1 = false;
boolean statusCooler2 = false;
boolean statusPortao = false;
boolean statusAlarme = false;
// Variável para o status do portão
void setup()
{
// Inicia o Ethernet
Ethernet.begin(mac, ip);
// Define os pinos como saída
pinMode(quarto, OUTPUT);
pinMode(sala, OUTPUT);
pinMode(quarto2, OUTPUT);
pinMode(cozinha, OUTPUT);
pinMode(cooler1, OUTPUT);
pinMode(cooler2, OUTPUT);
pinMode(portao, OUTPUT);
pinMode(alarme1, OUTPUT);
pinMode(alarme2, OUTPUT);
// Inicia a comunicação Serial
Serial.begin(9600);
BuzzerDistancia();
}
void loop()
{
microsec = ultrasonic.timing();
distanciaCM = ultrasonic.convert(microsec, Ultrasonic::CM);
BuzzerDistancia();
Serial.print(distanciaCM);
Serial.println(" cm");
delay(1);
}
void BuzzerDistancia()
{
digitalWrite(alarme1, LOW);
digitalWrite(alarme2, LOW);
}
// Criar uma conexão de cliente
EthernetClient client = server.available();
if (client)
{
while (client.connected())
{
if (client.available())
{
char c = client.read();
// ler caractere por caractere vindo do HTTP
if (readString.length() < 30)
{
// armazena os caracteres para string
readString += (c);
}
//se o pedido HTTP terminou
if (c == '\n')
{
// vamos verificar se a lâmpada da área deve ser ligada
// Se a string possui o texto L=Ligar
{
// vamos verificar se a lâmpada da sala deve ser ligada
// Se a string possui o texto L=Ligar
if (readString.indexOf("LigarSala") >= 0)
{
// A lâmpada vai ser ligada
digitalWrite(sala, HIGH);
statusSala = true;
}
// Se a string possui o texto L=Desligar
if (readString.indexOf("DesligarSala") >= 0)
{
// A lâmpada vai ser desligada
digitalWrite(sala, LOW);
statusSala = false;
}
{
// vamos verificar se a lâmpada do quarto2 deve ser ligada
// Se a string possui o texto L=Ligar
if (readString.indexOf("LigarQuarto2") >= 0)
{
// A lâmpada vai ser ligada
digitalWrite(quarto2, HIGH);
statusQuarto2 = true;
}
// Se a string possui o texto L=Desligar
if (readString.indexOf("DesligarQuarto2") >= 0)
{
// A lâmpada vai ser desligada
digitalWrite(quarto2, LOW);
statusQuarto2 = false;
}
if (readString.indexOf("LigarQuarto") >= 0)
{
// A lâmpada vai ser ligada
digitalWrite(quarto, HIGH);
statusQuarto = true;
}
// Se a string possui o texto L=Desligar
if (readString.indexOf("DesligarQuarto") >= 0)
{
// A lâmpada vai ser desligada
digitalWrite(quarto, LOW);
statusQuarto = false;
}
{
// vamos verificar se a lâmpada da cozinha deve ser ligada
// Se a string possui o texto L=Ligar
if (readString.indexOf("LigarCozinha") >= 0)
{
// A lâmpada vai ser ligada
digitalWrite(cozinha, HIGH);
}
// Se a string possui o texto L=Desligar
if (readString.indexOf("DesligarCozinha") >= 0)
{
// A lâmpada vai ser desligada
digitalWrite(cozinha, LOW);
statusCozinha = false;
}
{
if (readString.indexOf("LigarCooler1") >= 0)
{
// A lâmpada vai ser ligada
digitalWrite(cooler1, HIGH);
statusCooler1 = true;
}
// Se a string possui o texto L=Desligar
if (readString.indexOf("DesligarCooler1") >= 0)
{
// A lâmpada vai ser desligada
digitalWrite(cooler1, LOW);
statusCooler1 = false;
}
{
if (readString.indexOf("LigarCooler2") >= 0)
{
// A lâmpada vai ser ligada
digitalWrite(cooler2, HIGH);
statusCooler2 = true;
}
// Se a string possui o texto L=Desligar
if (readString.indexOf("DesligarCooler2") >= 0)
{
// A lâmpada vai ser desligada
digitalWrite(cooler2, LOW);
statusCooler2 = false;
}
{
if (readString.indexOf("LigarPortao") >= 0)
{
// A lâmpada vai ser ligada
digitalWrite(portao, HIGH);
statusPortao = true;
}
// Se a string possui o texto L=Desligar
if (readString.indexOf("DesligarPortao") >= 0)
{
// A lâmpada vai ser desligada
digitalWrite(portao, LOW);
statusPortao = false;
}
{
if (readString.indexOf("LigarAlarme") >= 0)
{
if (distanciaCM < 100)
{
digitalWrite(alarme1, HIGH);
digitalWrite(alarme2, HIGH);
statusAlarme = true;
}
}
{
if (readString.indexOf("DesligarAlarme") >= 0)
{
void BuzzerDistancia()
{
digitalWrite(alarme1, LOW);
digitalWrite(alarme2, LOW);
statusAlarme = false;
}
}
// dados HTML de saída começando com cabeçalho padrão
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<font size='20'>");
if (statusQuarto)
{
client.print("lampada quarto ligada");
}
else
{
client.print("lampada quarto desligada");
}
//limpa string para a próxima leitura
readString = "";
// parar cliente
client.stop();
}
}
}
}
}
}
}
}
}
}
}
}
}
Tags:
veja esse video sobre a correçao da biblioteca Ultrasonic.h e veja eh o seu caso
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por