Pessoal tenho feito algumas brincadeiras com o Arduino e gostei, achei bem interessante. Entendo muito pouco disso mas sou um entusiasta quando se fala de tecnologia. Pois bem estou construindo uma casa e esta tudo a meio caminho andado. Todo o cabeamento estruturado já foi feito. Vou fazer praticamente 100% de automação nela que quero fazer com Arduino, abaixo o que quero fazer:
Leitor biométrico e cartão em 2 portas
Persianadas
Aparelho de TV´s com matriz hdmi
Som ambiente multirrom
Monitoramento com cameras
Todas a lâmpada da casa controladas somente algumas com dimer
Algumas tomada automaticadas
Central de alarme
Sensor de gás, fumaça, temperatura
Climatização
Estou iniciando os testes começando com a iluminação, meu projeto luminitécnico fica pronto em 2 semanas.
O que mais me preocupa é inteface para controlar tudo isso. Estou estudando o Eclipse para fazer o aplicativodo em Android para criar os senários, mas tenho muita dificuldade nisso. Por exemplo um botão com no nome assistir tv no celular ou tablet que ao clicar nele ligue a TV apague a luz e feche a persiana, etc.
Tudo isso também com a possibilidade de fazer via wi fi ou pela internet.
Alguém teria algumas dicas? Eu poderia postar aqui, conforme o andamento do projeto todo o passo-a-passo da automação inclusive do app em Android para que isso fique acessível para todos.
Caso alguém possa colaborar seria ótimo.
Tags:
Talvez isso ajude??? http://bildr.org/2011/06/arduino-ethernet-client/
Impossível php dentro do arduino. html sim é possível.
cara vc pode fazer boa parte disso so no arduino mesmo c vc quiseer passa o e-mail q eu te mando um projeto bem avançado pra vc analizar junto com uns videos que vao te interessar
Boa tarde Jose. Manda no email amkochaki@yahoo.com.br. Estou fazendo testes mas ainda sou iniciante nisso tudo, se puder enviar eu ficaria muito grato.
Tem como mandar no email vasquesra@yahoo.com.br, to no mesmo barco, valeu.
boa noite amigo, você poderia ajudar-me também fornecendo esses arquivos pra mim ? se sim..
diego_gomes88@hotmail.com
valeu!!
Pessoal bom dia!!
Estou precisando de uma ajuda no meu código do arduino. Eu gostaria de fazer uma função para o controle remoto para que eu n ao precisasse escrever o mesmo código para todas as teclas. Fiz o app no android entao cada tecla chama o ip do ethernet shield + o nome da tecla do controle remoto exemplo (192.168.1.119/S_pwr). O meu codigo esta logo abaixo. no Void loop tem as seguinte linha fiz somente duas para nao ficar muito comprido:
if(readString.indexOf("S_pwr")>=0) { irsend.sendRaw(S_pwr, 68, 32); delay(40);}
if(readString.indexOf("S_scr ")>=0) {irsend.sendRaw(S_scr , 68, 32);delay(40);}
as duas linha acima seria uma para cada botão do contole remoto como também esta linha abaixo deve ter uma cada tecla:
unsigned int S_pwr[68]={4550,4400,600,1600,600,1650,600,1600,600,500,600,500,600,500,600,500,600,500,600,1650,600,1600,600,1650,600,500,600,500,600,500,600,500,600,500,600,500,600,1650,550,550,550,550,550,550,550,550,550,550,550,550,600,1600,600,500,600,1650,600,1600,600,1650,600,1600,600,1650,600,1600,600};
O que eu gostaria de saber é se ó possivel criar uma funcão com a linha:
if(readString.indexOf("S_pwr")>=0) { irsend.sendRaw(S_pwr, 68, 32); delay(40);}
para escreve-la somente uma vez pois o comando que vem do androi ó o numero do ip mais o nome da tecla que eu nomeei igual ao que esta dentro dos parenteses que esta em negrito. Ou seja para cada tecla o que muda é somente o que esta dentro do parentese em negrito. Alguem poderia me dar uma luz?
#include <SPI.h>
#include <String.h>
#include <Ethernet.h>
#include <IRremote.h>
//#include <ArdOSC.h>
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x9B, 0x36 }; // Endereço Mac
byte ip[] = { 192, 168, 1, 119 }; // Endereço de Ip da sua Rede
EthernetServer server(8090); // Porta de serviço
int led1 = 7; // Pino onde deve ser ligado o led de teste
int led2 = 8;
String readString = String(30); // string para buscar dados de endereço
boolean statusLed1 = false; // Variável para o status do led
boolean statusLed2 = false;
IRsend irsend;
unsigned int S_pwr[68]={4550,4400,600,1600,600,1650,600,1600,600,500,600,500,600,500,600,500,600,500,600,1650,600,1600,600,1650,600,500,600,500,600,500,600,500,600,500,600,500,600,1650,550,550,550,550,550,550,550,550,550,550,550,550,600,1600,600,500,600,1650,600,1600,600,1650,600,1600,600,1650,600,1600,600};
unsigned int S_scr [68]={4500,4400,600,1650,600,1600,600,1650,600,500,600,500,600,500,600,500,600,500,600,1600,600,1650,600,1600,600,500,600,500,600,500,600,500,600,500,600,1650,600,500,600,500,600,500,600,500,600,500,600,500,600,500,600,500,600,1650,550,1650,600,1650,550,1650,600,1650,600,1600,600,1650,600};
unsigned int S_1[68]={4500,4450,550,1650,600,1650,550,1650,600,500,600,500,600,500,600,500,600,500,600,1650,550,1650,600,1650,600,500,600,500,600,500,600,500,600,500,600,500,600,500,600,1600,600,500,600,500,600,500,600,500,600,500,600,1650,600,1600,600,500,600,1650,600,1600,600,1650,600,1650,550,1650,600};
unsigned int S_navDown[68]={4500,4450,550,1650,600,1650,550,1650,600,500,600,500,600,500,600,500,600,500,600,1650,600,1600,600,1650,600,500,600,500,600,500,600,500,600,500,600,1600,600,500,600,500,600,500,600,500,600,1650,600,1600,600,500,600,500,600,1650,600,1600,600,1650,600,1650,550,550,550,550,550,1650,600};
unsigned int S_navLeft[68]=
void setup(){
Ethernet.begin(mac, ip); // Inicia o Ethernet
pinMode(led1, OUTPUT);// Define o pino como saída
pinMode(led2, OUTPUT);
Serial.begin(9600); // Inicia a comunicação Serial
}
void loop(){
EthernetClient client = server.available();// Criar uma conexão de cliente
if (client) {
while (client.connected()){
if (client.available()){
char c = client.read();
if (readString.length() < 30)// ler caractere por caractere vindo do HTTP
{
readString += (c);// armazena os caracteres para string
}
if (c == '\n')//se o pedido HTTP terminou
{
if(readString.indexOf(c)>=0)// vamos verificar se o LED deve ser ligado. Se a string possui o texto L=Ligar
{
digitalWrite(led1, HIGH);// O Led vai ser ligado
// client.print("Led1Ligado");
statusLed1 = true; //dfafsafs
}
if(readString.indexOf("DesligarLed1")>=0)// Se a string possui o texto L=Desligar
{
digitalWrite(led1, LOW);// O Led vai ser desligado
statusLed1 = false;
}
if(readString.indexOf("S_pwr")>=0) { irsend.sendRaw(S_pwr, 68, 32); delay(40);}
if(readString.indexOf("LigarLed2")>=0)// vamos verificar se o LED deve ser ligado. Se a string possui o texto L=Ligar
{
digitalWrite(led2, HIGH);// O Led vai ser ligado
statusLed2 = true;
// client.print("Led2Ligado");
}
if(readString.indexOf("DesligarLed2")>=0)// Se a string possui o texto L=Desligar
{
digitalWrite(led2, LOW);// O Led vai ser desligado
statusLed2 = false;
}
client.println("HTTP/1.1 200 OK");// dados HTML de saída começando com cabeçalho padrão
client.println("Content-Type: text/html");
client.println();
client.print("<font size='20'>");
if (statusLed1) {
client.print("Led1Ligado");
} else {
client.print("Led1Desligado");
}
client.println("HTTP/1.1 200 OK");// dados HTML de saída começando com cabeçalho padrão
client.println("Content-Type: text/html");
client.println();
client.print("<font size='20'>");
if (statusLed2) {
client.print("Led2Ligado");
} else {
client.print("Led2Desligado");
}
if(readString.indexOf("S_pwr")>=0) { irsend.sendRaw(S_pwr, 68, 32); delay(40);}
f(readString.indexOf("S_scr ")>=0) {irsend.sendRaw(S_scr , 68, 32);delay(40);}
switch (c) {
case 0: // your hand is on the sensor
if(readString.indexOf("S_vdown")>=0) { irsend.sendRaw(S_vdown, 68, 32); delay(40);}
break;
}
readString="";//limpa string para a próxima leitura
client.stop(); // parar cliente
}
}
}
}
}
ae marcelo manda o app pra mim assim eu testo aqui e te falo!!!
O cara beleza to enviando no teu email agora
Pessoal
Tenho abaixo parte de um código do arduino é uma comunicação via browser. O char c que pega a informação do browser ele vem da seguinte forma por exemplo eu digito 192.168.1.119/S_vdown ele retorna a seguinte informação na tela do client.print = "GET /S_vdown HTTP/1.1" esse é o valor do char "c". Então o que eu estou tentando fazer e nao consigo é criar uma variavel que peque somente o "S_vdown" eu preciso de uma variável semente com esta parte do texto. Se alguém puder me dar uma luz eu agradeço.
void setup(){
Ethernet.begin(mac, ip); // Inicia o Ethernet
Serial.begin(9600); // Inicia a comunicação Serial
}
void loop(){
EthernetClient client = server.available();// Criar uma conexão de cliente
if (client) {
while (client.connected()){
if (client.available()){
char c = client.read();
client.print(c);
if (readString.length() < 30)// ler caractere por caractere vindo do HTTP
{
readString += (c);// armazena os caracteres para string
}
if (c == '\n')//se o pedido HTTP terminou
{
readString="";//limpa string para a próxima leitura
client.stop(); // parar cliente
}
}
}
}
}
Olá
Bem eu criei a um bom tempo atrás um projeto de automação da minha casa, algo simples mais funcional, não desenvolvi o aplicativo para android profissional no eclipse mais criei no AppInvetor, no meu projeto eu consigo controlar iluminarias de dois ambiente da casa, tanto pelo Smatphone via web e controle remoto IR, etc...
Não sei se entendi bem a sua pergunta, será que você quer criar uma variável que pegue o valor inserido no browser e trata-la ?
Olha se for vai uma parte do meu código aonde criei uma variável que pega informações inseridas no browser e trata para acionar o comando que deseja como vai um pequeno trecho do código abaixo:
..........
if (client) {
while (client.connected())
{
if (client.available())
{
char c = client.read();
// ler caractere por caractere vindo do HTTP
if (readString.length() < 40)
{
// armazena os caracteres para string
readString += (c);
}
//se o pedido HTTP terminou
if (c == '\n')
{
// vamos verificar se o a Lampada1 deve ser ligado
// Se a string possui o texto LigarLampada1
if(readString.indexOf("LigarLampada1")>=0)
{
// A Lampada1 vai ser ligado
digitalWrite(portaLampada1, HIGH);// aciona o relé
statusLampada1 = true; // estatus como verdadeiro
}
// Se a string possui o texto DesligarLampada1
if(readString.indexOf("DesligarLampada1")>=0)
{
// A lampada vai ser desligada
digitalWrite(portaLampada1, LOW);
statusLampada1 = false; // status Falso
}
...............................................
e Assim por diante no meu app quando acione o botão ligar Lampada1 por exemplo, ele enviar no brower por exemplo seu IP:
http://192, 168, 1, 119/?LigarLampada1
Não sei se é isso que você está pretendendo mais qualquer coisa estamos aqui.
me mande o código para eu dar uma olhada
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por