Galera, estou com um problema, não sei se alguém consegue me ajudar.
Eu tenho uma aplicação em PHP rodando com XAMPP MySQL, essa aplicação é um estacionamento, ele deve ficar verde quando o arduino envia a informação que a vaga está livre (através de um sensor ultrassonico na vaga) e vermelho quando existe um carro na vaga, porém não estou conseguindo a comunicação do arduino com o PHP, alguém consegue dar um help?
Código Arduino
#include <SPI.h>
#include <Ethernet.h>
#include <Servo.h>
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x9B, 0x36 }; //Endereco fisico de MAC
byte ip[] = { 192, 168, 0, 103 }; // ip na lan
byte gateway[] = { 192, 168, 0, 1 }; // ip do roteador
byte subnet[] = { 255, 255, 255, 0 }; //mascara
byte server [] = {192, 168, 132,1 };
EthernetClient client;

const int trigPin = 9;
const int echoPin = 8;
Servo servo;
int ledRed = 5;
int ledGreen = 6;
int st = 0;
int vaga = 1;
void setup(){
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledRed, OUTPUT);
pinMode(ledGreen, OUTPUT); 
//Inicia a biblioteca de Ethernet
Ethernet.begin(mac, ip, gateway, subnet);
//inicia o Servidor
servo.attach(2);
//Serial
Serial.begin(9600);
Serial.println("Arduino"); 
}
void loop(){
servo.write(150); 
delay(1000);
servo.write(70);
delay(1000);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
unsigned long duracao = pulseIn(echoPin, HIGH);
int distancia = duracao / 58;
Serial.print("Distancia em CM: ");
Serial.println(distancia);
delay(1000);
if(distancia > 7){
digitalWrite(ledGreen, HIGH);
digitalWrite(ledRed, LOW);
st = 0;
}
else{
digitalWrite(ledRed, HIGH);
digitalWrite(ledGreen, LOW);
st = 1;
}
Serial.println(st);
// Cria uma conexao do tipo Cliente

client.connect(server,3306);
client.println("HTTP/1.1 200 OK"); //codigo padrao para a criacao da pagina
client.println("Content-Type: text/html");
client.println();
client.println("<html>");
//client.println("<meta http-equiv=\"refresh\" content=\"5\">");
client.println("<head>");
client.println("<title>Arduino e Android </title>");
Serial.println("conectou ao servidor");
client.println("GET /muda_status.php?vaga="+String(vaga)+"&status="+String(st) + "HTTP/1.1 200 OK"); 
client.println("Host: localhost/estacionamento/"); 
client.println("Content-Type: application/x-www-form-urlencoded"); 
client.print("Content-Length: ");
delay(1);
//para a recepcao e envio de dados por parte do cliente

}
Código PHP
<?php 
$vaga = $_GET['vaga'];
$status = $_GET['status'];
$connect = mysql_connect('localhost','root','');
$db = mysql_select_db('Estacionamento');
$update = "update garagem set STATUS = '.$status.' where COD_VAGA = '.$vaga.' ";
mysql_query($update);
<?

Exibições: 335

Anexos

Responder esta

Respostas a este tópico

Bruno, bom dia!

Está retornando alguma mensagem de erro?

É interessante você informar a conexão nos comandos de acesso, assim:

$db = mysql_select_db('Estacionamento',$connect);

mysql_query($update,$connect);

Outra coisa:

Se os campos foram numéricos, não coloque aspas simples. Faça assim:

$update = "update garagem set STATUS = $status where COD_VAGA = $vaga";

Valeu José, quando eu chegar em casa vou realizar os teste.

Obrigado.

José, realizei as modificações, e testei via browser estão atualizando corretamente, mas via arduino ainda está com problemas, eu gostaria de saber uma coisa, estou plugando o cabo de ethernet do arduino direto no notebook, isso interfere em alguma coisa?

Outra coisa a parte do código do arduino:

client.println("GET /muda_vaga.php?vaga="+String(vaga)+"&status="+String(st) + "HTTP/1.1 200 OK");
client.println("Host: 192.168.132.103/parking/");
client.println("Content-Type: application/x-www-form-urlencoded");
client.print("Content-Length: ");

está correta?

Bruno, boa noite!

Ok ligar direto no notebook, contanto que as configurações dos IPS estejam corretas.

Aparentemente seu código está correto, mas coloque um espaço antes de HTTP/1.1

e acho melhor mudar o host:

client.println("GET /parking/muda_vaga.php?vaga="+String(vaga)+"&status="+String(st) + " HTTP/1.1 200 OK"); 
client.println("Host: 192.168.132.103"); 

Infelizmente ainda não está comunicando :/

mysql é obsoleto, use mysqli ou pdo

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço