Arduino + ethernet shield + banco de dados sql

pessoal, estou com duvida, é possivel que o arduino se conecte com um banco de dados sql?

o meu projeto seria de o arduino se conectar ao banco de dados e inserir dados em uma tabela ou editar, para que a minha pagina php leia esses dados e prescreva-os no pagina.

meu bando de dados por enquanto sera local.

Exibições: 12370

Responder esta

Respostas a este tópico

Olá thiago, é o seguinte eu fiz um sketch que envia uma solicitação para um arquivo PHP do servidor e salva dados no mysql, vou deixar o código para teste através da serial abaixo:

// Código Arduino:

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// endereço de ip do arduino
IPAddress ip(192,168,137,225);
// endereço do servidor onde vai estar instalado o wampserver
byte server[] = {192,168,137,175};
// cliente para se conectar com o servidor
EthernetClient client;

void setup() {
  // omunicação serial, somente para depuração
  Serial.begin(9600);
  if (Ethernet.begin(mac) == 0) {
    Serial.println("falha ao configurar Ethernet usando DHCP");
    Ethernet.begin(mac, ip);
  }
}

void loop() {
 
// dentro de onde está comentado "=" é comose fosse o eveto do sensor
//======================================
  char letra = Serial.read();
 
  if (letra == 'a') {
    // se o sensor 1 for acionado, vc deve entrar na fução "enventoSensor1"
     enventoSensor1();
  }
 
  if (letra == 'b') {
    // se o sensor 2 for acionado, vc deve entrar na fução "enventoSensor2"
     enventoSensor2();
  }
 
  delay(100);
//====================================
}

void enventoSensor1() {
  // se conecta com o servidor wamp
  if (client.connect(server, 80)) {
    // se for conectado, vai mostrar uma msg na serial dizendo que a solicitação foi enviada
    Serial.println("Solicitação Enviada");
    // parametro GET que vai guardar os dados no banco, deve mudar o Ip de acordo com o servidor que está o banco
    client.println("GET http://192.168.137.175/insere.php?sensor=Sensor1");
    // finaliza a conexao com o servidor
    client.stop();
  } else {
    // caso não haja conexão mostra uma msg na serial
    Serial.println("Falha na conexão com o servidor");
    // finaliza a conexao com o servidor
    client.stop();
  }
}
void enventoSensor2() {
  if (client.connect(server, 80)) {
    Serial.println("Solicitação Enviada");
    client.println("GET http://192.168.137.175/insere.php?sensor=Sensor2");
    client.stop();
  } else {
    Serial.println("Falha na conexão com o servidor");
    client.stop();
  }
}

// código php que salva no mysql:

<?php
  $sensor =$_GET['sensor'];
   
  $conexao = mysql_connect('localhost','root',''); // se conecta ao servidor onde está o banco de dados
 
  mysql_select_db('bancoteste',$conexao); // seleciona o banco de dados de acordo com a conexão
 
  $sql = "insert into eventos (sensor) values ('$sensor')"; // adiciona os campos no banco de dados
 
  $resultado = mysql_query($sql) or die ("Erro .:" . mysql_error()); // se for armazenado com sucesso irá retornar com "1"
  if($resultado)
          echo "1";
   else                                                              // se ocorrer um erro vai retornar com "0"
          echo "0";
?>

Espero que lhe ajude, abraço!

cara vlw, vou analisar o codigo, a logica dele ta legal aparentemente, acho que vai servir sim! vlw 

cara tem como o arduino ler o banco de dado?

Eduardo, é possível fazer com que o arduino receba dados de uma select? se sim, teria algum exemplo? 

obrigado desde ja

Olá Eduardo, usei este seu código, mais ele não envia o get para o endereço php, já testei minha url e está tudo certo, é o arduino mesmo que não está enviando, vc sabe o pode estar acontecendo?

Olá amigo, segue esse tutorial no meu canal

https://www.youtube.com/playlist?list=PLssIKrX2yyQHtYuzGaB-7d85hppD...

espero que consiga

abraços

Muito obrigado Eduardo, já consegui, era porque estava colocando junto o display de lcd, quando eu retirei funcionou muito bem.

Consegui colocar o arduino como cliente e servidor web ao mesmo tempo, aí eu consigo receber os sensores e também acionar leds e etc...

Gostaria de te perguntar mais uma coisa, como faço para receber POST no arduino, enviado pelo PHP?

Muito obrigado pela atenção e até breve!

Cara eu ainda não usei POST mais em relação ao arduino e php o método não vai fazer diferença, pois de qualquer forma os dados não vão ser vistos.

Pode fazer gravar ou editar direto (sem precisar do php como intermediário) usando "mysql connector for arduino".

Testei ano passado e funciona mesmo. Testado com arduino uno + ethernet shield w5100.

cara, achei um artigo sobre isso, mais vc tem alguma referencia pra ajudar ?

Quando eu testei eu usei o:

www.angeloluput.com/mysql-planet/introducing-mysql-connector-arduino

Mas vi que não está funcionando agora.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço