Boa noite,
Estou precisando cadastrar dados do arduino no banco por meio do method GET.
O arduino copilou tudo certo , mas no php ele da um erro, se alguem puder me ajudar ficaria bem grato.
segue os codigos :
PHP - ERRO NA LINHA 11 Notice: Undefined index: Irms in C:\wamp\www\arduino.php on line 11
<?php
//poner en htdocs de XAMPP, nombrado archivo.php
$mysql_servidor = "192.168.1.3";
$mysql_base = "test";
$mysql_usuario = "root";
$mysql_clave = "";
date_default_timezone_set("America/Santiago");
$hora = time();
$fechaRegistro="".date("d-m-Y H:i:s", $hora);
$valor = htmlspecialchars($_GET["Irms"],ENT_QUOTES);
echo "".$fechaRegistro."---".$valor;
// Valida que esten presente todos los parametros
if (($fechaRegistro!="") and ($valor!="")) {
mysql_connect($mysql_servidor,$mysql_usuario,$mysql_clave) or die("Imposible conectarse al servidor.");
mysql_select_db($mysql_base) or die("Imposible abrir Base de datos");
$sql = "insert into teste (corrente, potencia) values ('$fechaRegistro','$valor')";
mysql_query($sql);
}else {
echo "paso por aqui";
}
?>
ARDUINO :
#include <SPI.h>
#include <Ethernet.h>
#include "EmonLib.h"
byte mac[] = {
0x90, 0xA2, 0xDA, 0x0D, 0x96, 0xB4 };
byte ip[] = { 192,168,1,3 }; // Direccion ip local
char server[]={"192.168.1.1"};
EthernetClient client;
// Definicion de pines
EnergyMonitor emon1;
//Tensao da rede eletrica
int rede = 111.1;
//Pino do sensor SCT
int pino_sct = 2;
void setup()
{
Serial.begin(9600);
emon1.current(pino_sct, 29);
Ethernet.begin(mac, ip); // inicializa ethernet shield
delay(1000); // espera 1 segundo despues de inicializar
Serial.print("My IP address: ");
Serial.println(Ethernet.localIP());
}
void loop()
{
double Irms = emon1.calcIrms(1480);
Serial.print(Irms); // Escribe en el puerto serial para monitorear
Serial.print(" Corrente");
Serial.println("Conectando..");
if (client.connect(server, 80)) { // Se conecta al servidor
client.print("GET http://192.168.1.3/arduino.php?Irms="); // Envia los datos utilizando GET
client.print(Irms);
client.println(" HTTP/1.0");
client.println("User-Agent: Arduino 1.0");
client.println();
Serial.println("Conexion exitosa");
}
else
{
Serial.println("Falla en la conexion");
}
if (client.connected()) {}
else {
Serial.println("Desconectado");
}
client.stop();
client.flush();
delay(3000); // espera 15 segundos antes de volver a sensar la temperatura
}
DESDE JÁ AGRADEÇO .
Tags:
Pra pergunta 1, a resposta é que o arduino, ao enviar os dados do sensor pro php, o script php fará todo o tratamento e se encarregará de inserir os dados no banco mysql. Quando vc pergunta sobre abertura de pagina, não sei o que vc quis perguntar, mas se vc quis saber se alguma janela de navegador será aberta e exibir alguma página, a resposta é não, nenhuma janela será aberta. O processo ocorre de forma transparente ao usuário, mas caso vc queira acompanhar em tempo real, existe um log no servidor apache chamado "access_log". Ali fica registrado todo o acesso ao servidor apache. Como o arduino tentará acessar um script php no servidor apache, aparecerá no log.
Sobre a segunda pergunta, não entendi o que vc quis perguntar. Como assim visiveis na URL? Por favor, reformule sua pergunta, usando termos corretos. Também não entendi como vc estaria tentando acessar o php nessa sua pergunta: vc está perguntando de acesso ao php via navegador ou via arduino?
A segunda Pergunta :to perguntando de acessar o arquivo php e ver os parametros na URL isso é possivel ou é transparente para nos ?
E aqui, eu vi um negocio de alterar no php.ini o Register_globals = off para ON , sera que isso pode mudar algo ?
Cara , não sei o porque , mas agora eu achei um outro codigo e dei uma modificada e funcionou.
Sou muito grato a sua atenção meu caro , muito obrigado!! Vou deixar o codigo pra quem precisar aqui...
// InternetDeLasCosas.cl
// Script que obtiene la temperatura desde un sensor LM35
// y la envia a un servidor web
//
// Escrito por @joniuz
#include <SPI.h>
#include <Ethernet.h>
#include "EmonLib.h"
// Mac unica de cada EthernetShield (deben cambiarla)
byte mac[] = {
0x90, 0xA2, 0xDA, 0x0D, 0x96, 0xB4 };
byte ip[] = { 192,168,1,2 }; // Direccion ip local
char server[]={"192.168.1.3"};
// Inicializa la instancia client
EthernetClient client;
EnergyMonitor emon1;
//Tensao da rede eletrica
int rede = 111.1;
//Pino do sensor SCT
int pino_sct = 2;
// Direccion del servidor
// Variable de tiempo de la ultima conexion en milisegundos
unsigned long ultimaConexion = 0;
// Estado de la ultima conexion
boolean ultimoEstado = false;
// Intervalo en milisegundos entre conexiones
const unsigned long intervaloConexion = 10000;
// Datos del sensor
float tempC; // Temperatura en celsius
int LM35 = 0; // Pin A0 del Arduino
void setup() {
// Inicializa puerto serial
Serial.begin(9600);
Serial.println("TESTE GET");
Serial.println("SEI LA UQ");
// Espera 1 segundo para que se inicie la tarjeta Ethernet
delay(1000);
// Si deseas usar un ip fijo y un DNS fijo descomentar esta linea y comentar la linea 39
// Ethernet.begin(mac, ip, myDns);
// Inicializa la tarjeta ethernet mediante DHCP
emon1.current(pino_sct, 29);
Ethernet.begin(mac, ip);
// Imprime la direccion IP de la tarjeta
Serial.print("Meu ip : ");
Serial.println(Ethernet.localIP());
}
// Loop principal
void loop() {
// Lee la temperatura desde el sensor
tempC = analogRead(LM35);
// Convierte el valor leido a temperatura
tempC = (5.0 * tempC * 100.0)/1024.0;
// Si hay datos que llegan por la conexion los envia a la puerta serial
if (client.available()) {
char c = client.read();
Serial.print(c);
}
// Si no hay conexion de red y se conecto correctamente la ultima vez
// detiene el cliente Ehternet
if (!client.connected() && ultimoEstado) {
Serial.println();
Serial.println("Desconectando...");
client.stop();
}
// Si no esta conectado y han pasado X segundos (intervaloConexion)
// despues de la ultima conexion envia datos al servidor
if(!client.connected() && (millis() - ultimaConexion > intervaloConexion)) {
httpRequest();
}
// Actualiza la variable ultimoEstado
ultimoEstado = client.connected();
}
// Fin del loop principal
// Realiza la conexion http al servidor
void httpRequest() {
// Se conecta al servidor en el puerto 80 (web)
if (client.connect(server, 80)) {
double Irms = emon1.calcIrms(1480);
// Envia el dato al puerto serial
Serial.print("Sensor LM35: ");
Serial.print(tempC);
Serial.print("Sensor CORRENTE: ");
Serial.print(Irms);
Serial.println(" grados Celsius");
// Envia el requerimiento al servidor via GET
Serial.println("Iniciando conexion...");
client.print("GET /arduino.php?id=joniuz&n=t&v=");
client.print(Irms);
client.println(" HTTP/1.1");
client.print("Host: ");
client.println(server);
client.println("User-Agent: Arduino-Ethernet");
client.println("Connection: close");
client.println();
// Actualiza el tiempo en milisegundos de la ultima conexion
ultimaConexion = millis();
}
else {
// Si la conexion fallo se desconecta
Serial.println("Error al conectarse al servidor");
Serial.println("Desconectando...");
client.stop();
}
}
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por