Senhores,

Estou fazendo testes no meu primeiro projeto de automação.

Entre uma dificuldade e outra tenho conseguindo resolver os problemas com  ajuda do que tenho lido aqui no forum. Por isso já gradeço.

No memento estou com problema para fazer o PHP ler as informações envidas via serial pelo Arduino.

Resolvi o "problema" de reset do Arduino quando acessamos via serial com um capacitor de 10uF entre o pino de reset e o GND.

Todas todos os comandos de leitura es escrita funcionam perfeitamente pelo Monitor Serial. Mas no PHP só consigo enviar comandos. Sempre que tento ler o https.exe trava e a porta serial fica presa, só consigo liberar se eu matar o processo httpd.exe.

Já fiz testes em 2 maquinas com windows 8.1 e uma com o windows 7. Irei testar com o XP em breve.

Apesar de não achar necessário devido ao capacitor de 10uF, Usei deley para fazer a leitura e nada.

Cheguei a capturar o trafego da porta serial e tudo funciona até o momento da leitura quando o trafego para.

Seguem os códigos:

<?php
exec("mode COM2: BAUD=9600 PARITY=N data=8 stop=1 xon=off ");
$port = fopen('COM2', 'w+');
fwrite($port, '9');
echo fgets($port);
fclose($port);


if(isset($_GET["1"])){
$port = fopen('COM2', 'w');
fwrite($port, '1');
fclose($port);
echo "LED VERMELHO";
}

if(isset($_GET["2"])){
$port = fopen('COM2', 'w');
fwrite($port, '2');
fclose($port);
echo "LED VERDE";
}

?>

ARDUINO:


//=======================================DECLARAÇÃO DE VARIÁVEIS

//====================CONSTANTES
const int LigaPC = 2;
const int LuzQuarto = 3;
const int LuzOficina = 4;
const int Interruptor = 13;

//VARIÁVEIS
char Leitura_Serial;
//network NB: Pins 10, 11, 12 and 13 are reserved for Ethernet module.

int PC_Button = 0;
int Ler_Interuptor = 1;
int Interruptor_Conut = 0;
int InterruptorState = LOW;
int LastInterruptorState = LOW;

int Status_Quarto = LOW;
int Status_Oficina = LOW;

//======Delay
unsigned long PCPowerButtonDelay = 0;
unsigned long HardShutdownDelay = 0;
unsigned long lastDebounceTime = 0;
int Action_Delay = 1300;
int Interruptor_Delay = 50;


void setup() {
// put your setup code here, to run once:
//=======================================================INICIA SERIAL
Serial.begin(9600);
//Serial.println("INICIANDO SKEYNET V1.1");

//=================================================INICIA PINOS

pinMode(LigaPC, OUTPUT);
digitalWrite(LigaPC,HIGH);

pinMode(Interruptor, INPUT);
digitalWrite(Interruptor,HIGH);

pinMode(LuzQuarto, OUTPUT);
digitalWrite(LuzQuarto,LOW);

pinMode(LuzOficina, OUTPUT);
digitalWrite(LuzOficina,LOW);
}

void loop() {
//====================================================INICIO DO LOOP

//==============================INTERRUPTOR


if (Serial.available()){ // Verificar se há caracteres disponíveis
//
Interruptor_Conut = Serial.read();
if (Interruptor_Conut == '9') {
if (digitalRead(LuzQuarto) == 1) Serial.println("Ligada");
else Serial.println("Desligada");
}

if (Interruptor_Conut != '9') Interruptor_Conut = Interruptor_Conut - 48;

}


/*Serial.println("Testando");
delay (1000); */
Ler_Interuptor = digitalRead(Interruptor);
if (Ler_Interuptor != LastInterruptorState) {
lastDebounceTime = millis();
}

//=====Debauce Interruptor
if ((unsigned long)(millis() - lastDebounceTime) >= Interruptor_Delay) {
if (Ler_Interuptor != InterruptorState){
if (Ler_Interuptor == 0) {
Interruptor_Conut++;
}
InterruptorState = Ler_Interuptor;
}
}

//=====Ações interruptor
if (Interruptor_Conut != 0) { //Só executará ações quando houver interaçã!!!!!
if ((unsigned long)(millis() - lastDebounceTime) >= Action_Delay) {

//==========CHAMA QUARTO
if (Interruptor_Conut == 1) QUARTO (Interruptor_Conut);

//==========OFICINA
if (Interruptor_Conut == 2) OFICINA (Interruptor_Conut);

//==========INVERTE STATUS
if (Interruptor_Conut == 3) {
QUARTO(Interruptor_Conut);
OFICINA(Interruptor_Conut);
}

//==========LIGAR COMPUTADOR
if (Interruptor_Conut == 5) {
PC_Button = 5;
INTERAGE(Interruptor_Conut);
PCPowerButtonDelay = millis();
}

//==========HARD SHUTDOWN
if (Interruptor_Conut == 6) {
PC_Button = 7;
INTERAGE(Interruptor_Conut);
HardShutdownDelay = millis();
}

//====Aquardando nova leitura
Interruptor_Conut=0;

}
}
//==============================FIM INTERRUPTOR

//=================================SETA VARIÁVEIS FINAIS
//====Setar Status das Luzes

LastInterruptorState = Ler_Interuptor;

//========================LIGA PC DELAY
if ((((unsigned long)(millis()) - PCPowerButtonDelay >= 1000)) && ((PC_Button == 5))) {
PC_Button = 99;
Serial.println("solta boto");
digitalWrite(LigaPC,HIGH);
}

//========================FORÇA DESLIGAMENTO DO PC DELAY
if ((((unsigned long)(millis()) - HardShutdownDelay >= 4000)) && ((PC_Button == 7))) {
PC_Button = 99;
Serial.println("solta bot33");
digitalWrite(LigaPC,HIGH);
}

}

//==============================FIM DO LOOP


//==============================FUNÇÕES

String QUARTO (int pop) {
Interruptor_Conut=0;
Status_Quarto = !Status_Quarto;
digitalWrite(LuzQuarto, Status_Quarto);
Serial.println("LUZ DO QUARTO");
}

String OFICINA (int pop) {
Interruptor_Conut=0;
Status_Oficina = !Status_Oficina;
digitalWrite(LuzOficina, Status_Oficina);
//Serial.println("LUZ DA OFICINA");
}

String INTERAGE (int pop) {
Interruptor_Conut=0;
digitalWrite(LigaPC,LOW);
//Serial.println("COMPUTADOR");
}

Exibições: 1806

Responder esta

Respostas a este tópico

amigo, por que não tenta usar um ethernet shield w5100 e assim fazer a comunicação do arduino com o php via TCP/IP ao invés de comunicação serial?

a vantagem desse método que estou lhe sugerindo é que se vc aprender a fazer dessa forma, vc terá liberdade de fazer a comunicação entre o arduino e o php hospedado em qualquer máquina, seja ela máquina na sua rede interna, seja ela num servidor na internet.

Já a comunicação serial ficará limitada à comunicação no mesmo ambiente do arduino apenas, e pior, sempre atrelada a aquela mesma máquina onde o arduino está espetado e o php instalado

Pois é.

Pensei em fazer dessa forma. Tenho uma W5100 aqui que posso usar para isso.

Como você sugere fazer isso. Eu tinha pensado em criar uma pagina html simples com os estados das saídas e enviar os comandos via URL. O problema é que acredito que o ethernet shield consuma muitos recursos do arduino  e conforme for adicionando mais funcionalidades mais complexo o código do arduino ficaria para tratar todas as possibilidades achei mais simples usar a porta serial.

Se tiver alguma tutorial de como faria isso de outra forma me passa ai para eu dar uma olhada, essa pode ser a  a saída desse beco que me encontro.

Mas inda estou curioso do pq não funciona com a porta serial.

eu nunca me aventurei em tentar fazer o php receber informações via serial. Sendo assim, nem ao menos sei te sugerir o que verificar.

Já em relação ao uso do ethernet shield w5100, vc me pediu dicas, mas não entendi qual a função do servidor com php no seu projeto

Bom,

Quero fazer um sistema de automação o mais completo possível. Controle de iluminação, ar-condicionado, TV, trancar e abrir portas, enfim, tudo que for possível automatizar. Recebo meu AP em pouco menos de um ano e quero já ter tudo bem planejado efetuar qualquer juste na passagem de alguma fiação ocorra antes mesmo de me mudar.

O intuito é montar um servidor web (raspberry ou com um netbook que esta sem serventia por aqui) de onde possa monitorar e controlar todo pela web. Pensei no PHP pois achei simples montar um servidor Web + PHP e acessar tudo por Https (SSL). Consigo montar isso rápido com o XAMPP.

Lógico, estou apenas iniciando alguns testes e descobrindo o vai e o que não vai dar funcionar.

Fiz alguns testes com o shield ehternet mas achei limitado e com poucas linhas já tive problemas pois rapidamente excedi a RAM do Arduíno.

problema de esgotamento de RAM por causa do tamanho do sketch vc resolverá com o arduino MEGA. Já que é pra automação da sua casa, não se preocupe com projeto minimalista, garanto que no final seu grau de satisfação será maior se vc usar o que tiver que ser usado sem se preocupar com gastos.

o arduino mega na china custa quase a mesma coisa que o arduino uno. Compre um tal de FUNDUINO MEGA, eu tenho uns 5 deles, são bons (é um clone do MEGA)

E se com um MEGA vc tiver problema de esgotamento de RAM, nada te impede de possuir um segundo MEGA, tipo um dos MEGA controlando determinadas coisas e o segundo MEGA controlando outras coisas.

Eu centralizaria todo o processamento no servidor com PHP. Me sinto mais a vontade em fazer malabarismos no PHP (que tem recursos de sobra, tanto de memória quanto de máquina) do que fazer num sketch de arduino (onde eu teria que me policiar com uso de memória e recursos pro projeto não ficar capado)

Use o ethernet shield apenas para dar capacidade do arduino receber os comandos provenientes do PHP e porventura informar o status das portas do arduino ao PHP.

Fazendo dessa forma, vc acaba tendo também uma segurança maior, pois o ethernet shield não tem acesso direto a internet, e sim apenas a rede interna. Isso significa que é mais seguro quanto a tentativas de acesso não autorizado, pois vc poderá programar o seu projeto para que somente o PHP tenha autorização de enviar comando ao arduino

Pesquise sobre como implementar o arduino como webserver e como webclient simultaneamente. Vc terá que fazer isso pois como webclient o arduino será capaz de enviar informações a respeito das portas dele pro PHP. E como webserver, o arduino ficará a escuta de conexões provenientes do PHP que será o responsável pelo envio das informações.

Essa é a forma que eu faria. Talvez existam outras alternativas, claro. Por exemplo, vc poderia estudar o ESP8266 para evitar o uso de cabos ethernet e/ou "dar vida" aos teus sensores/atuadores sem ter que estarem diretamente ligado ao arduino

ola miguel 

onde ligo o sensor dht11 nesse codigo que vc me deu em qual pino

veja as mudança que eu fiz mas ta funcionando perfeito 

#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, 177 };
byte gateway[] = { 192, 168, 1, 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 = 30;
const int rele10 = 31;
const int rele11 = 32;//////////////////////////////////////////////////
const int rele12 = 33;//////////////////////////////////////////////////
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(rele11, OUTPUT);////////////////////////////////////////////
pinMode(rele12, 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("r11on") >0)
{
digitalWrite(rele11, HIGH);
Serial.println("Ligando Rele 11");
Serial3.println("Ligando Rele 11");
Serial.println(readString);

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

digitalWrite(rele11, LOW);
Serial.println("Desligando Rele 11");
Serial3.println("Desligando Rele 11");
Serial.println(readString);
}
////////////////////////////////////////////////////////////////
if(readString.indexOf("r12on") >0)
{
digitalWrite(rele12, HIGH);
Serial.println("Ligando Rele 12");
Serial3.println("Ligando Rele 12");
Serial.println(readString);

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

digitalWrite(rele12, LOW);
Serial.println("Desligando Rele 12");
Serial3.println("Desligando Rele 12");
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 MOISES</title>");
client.println("</head>");
client.print("<body bgcolor='#444444'>");

client.println("<br><hr />");
client.println("<h1><div align='center'><font color='#2076CD'>AUTOMACAO CASA MOISES</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'>MAQUETE<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'>PORTA FUNDOS<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 bgColor='#222222'>");
client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>PORTAO RUA<br></font></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r11on value='Acender'></form></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r11off value='Apagar'></form></td>");
if (digitalRead(rele11) == 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'>PORTA QUARTO<br></font></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r12on value='Acender'></form></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r12off value='Apagar'></form></td>");
if (digitalRead(rele12) == 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");
}

Opa,

Já agradeço a força.

Já assisti essa aula do Prof. Neri. Entre outras.

No entanto nessa aula ele só envia dados do PHP para o Arduino, e isso consegui fazer e esta funcionando perfeitamente.

O problema é quanto tendo receber algo do Arduino para o PHP.

Imagine que você abre  pagina e queira ver o que esta ligado e o que esta desligado.

Dei uma olhada nesse material que encontrei e inclusive copie o codio exatamente como esta no exemplo da aula e mesmo assim o httpd trava.

http://seriallink.com.br/forum/viewforum.php?f=63

https://www.youtube.com/watch?v=WEn9Wf8Kvhk

Fiz novos testes agora com o Windows XP e também tentei com uma arduino Pro-mim e o problema se repete.

caro amigo uma ajuda esse 2 codigo php e arduino .

como eu faço para eu salvar eles

tipo codigo do arduino eu copio para o arduino e faço upload certo esse mesmo codigo eu preciso salvar em algum lugar e como salvar .

o codigo php onde salvar e como salvar qual nome tipo php.moises e qual pasta salvar 

tenho wampserver 

desde ja agradeço 

Opa,

Meu caro, estou usando o Easy PHP que chei muito simple para esses primeiros testes.

No caso do Easy PHP (conforme minha instalação) fica na pasta C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb

No Xammp fica na pasta C:\wamp\www

muito obrigado.

uma pergunta eu tenho que salvar o php eo arduino na pasta C:\wamp\www    ou so o php.

Só o PHP.

O o código do Arduino tu envias para o Arduino.

Dá uma olhada nesse forum:

http://www.seriallink.com.br/forum/#.VfbQhhFVikq

Lá tem bestante coisa para que esta iniciando, com aulas exemplos, códigos, etc.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço