Módulo Ethernet Shield ENC28J60 + Arduino MEGA - Comunicação com Servidor PHP + MySQL

Pessoal...
Estou participando de um projeto de pesquisa e temos uma central de monitoramento de irrigação armazenando os dados no cartão de memória. Porém precisamos enviar esses dados para um servidor PHP com banco de dados MYSQL e não podemos fugir/alterar hardware (ENC28J60 + Arduino MEGA). Estou utilizando a biblioteca EtherCard e a comunicação com o módulo está OK, consigo enviar um texto para o bando de dados seguindo esse exemplo.:

- Código do Arduino

#include <EtherCard.h>

static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };
byte Ethernet::buffer[700];
static uint32_t timer;

char mensagem[50];

const char website[] PROGMEM = "192.168.253.16";
static byte myip[] = { 192,168,253,177 };
static byte gwip[] = { 192,168,253,200 };

static void my_callback (byte status, word off, word len)
{
   Ethernet::buffer[off+len] = 0;    //mensagem do retorno do servidor
   //Serial.print((const char*) Ethernet::buffer + off);  //mostra todo o retorno
   Serial.print((const char*) Ethernet::buffer + off + 157); //mostra somente ok
}

void setup (){
  delay(1000);
  Serial.begin(57600);
  Serial.println("Obtendo IP:");
  if (ether.begin(sizeof Ethernet::buffer, mymac,53) == 0)
    Serial.println( "Falha ao acessar o controlador Ethernet");
  ether.staticSetup(myip, gwip);
  ether.printIp("IP: ", ether.myip);
  ether.printIp("Gatway: ", ether.gwip);
   ether.printIp("Sevidor DNS: ", ether.dnsip);
   if (!ether.dnsLookup(website))     //IP do servidor por DNS
    Serial.println("Falha no DNS");
  ether.parseIp(ether.hisip, "192.168.253.16"); //IP do servidor manual
  ether.printIp("Servidor: ", ether.hisip);
  Serial.println(" ");
}

void loop (){
  ether.packetLoop(ether.packetReceive());
  if (millis() > timer){
    timer = millis() + 4000;
    ether.persistTcpConnection(true);
    sprintf(mensagem, "?inf=teste");  
    ether.browseUrl(PSTR("/conexao.php"), mensagem, website, my_callback);       
  }
} 

- Código do PHP

<?php

/* Attempt MySQL server connection. Assuming you are running MySQL

server with default setting (user 'root' with no password) */

$link = mysqli_connect("localhost", "root", "", "aula");

 // Check connection

if($link === false){

    die("ERROR: Could not connect. " . mysqli_connect_error());

}
 
// Escape user inputs for security

$inf = mysqli_real_escape_string($link, $_REQUEST['inf']);
 
// Attempt insert query execution

$sql = "INSERT INTO arduino (inf) VALUES ('$inf')";

if(mysqli_query($link, $sql)){

    echo "Records added successfully.";

} else{

    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);

}

// Close connection

mysqli_close($link);

?>

Não entendo muito de programação mas gostaria de enviar os dados lidos pelos sensores de umidade da central de monitoramento de irrigação para o banco de dados e exibir em uma página posteriormente (página já está pronta). Não estou conseguindo enviar dados de variáveis/portas do arduino pela rede ao MYSQL. Já vi alguns tópicos do forum e artigos na internet mas não conseguir resolver. Como devo proceder? Obrigado!!!!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.