Olá pessoal tudo beleza?

Alguns dias atrás comecei a fazer alguns testes com arduino php e mysql só pra constar dos três citados o que conheço um pouquinho é o arduino, após muito pesquisar consegui criar meu primeiro banco de dados, em seguida consegui criar um script para abrir, salvar e ler os dados do BD, tudo com tutoriais.

A questão agora é como conectar o arduino com php e mysql, eu sei que existe muitos tópicos por ai inclusive aqui mesmo, encontrei vários tutoriais porém pra quem não tem experiência isso se torna uma tarefa quase impossível.

Gostaria que alguém de bom coração fizesse um tutorial bem básico mesmo e bem comentado sobre como fazer essa conexão, tipo enviar uma variável para o banco, como é tratar no php e tudo mais.

Desde já agradeço e me desculpem se falei alguma besteira.

Exibições: 15465

Responder esta

Respostas a este tópico

Ninguem?

Boa noite Luis,

Eu também estou curioso pra saber se o pessoal tem algo... estou sempre cuidando se alguém vai responder aqui.

Eu andei dando uma pesquisada (bem superficial) no Mysql Connector para Arduino e se funcionar seria uma boa, é para gravar no banco de dados direto do arduino.

Acredito que a partir de sábado eu vou ter um tempo para testar e qualquer coisa dou um retorno aqui.

Abraço.

Obrigado, eu continuo sem sucesso, mas não vou desistir.

Te recomendo dar uma olhada nas vídeo aulas do Neri Neitzke no youtube.. acho que já dá pra tu ir pegando umas dicas. Tem algo em php + arduino lá.

Já assisti várias aulas dele, realmente são boas, só que ainda não entendi muita coisa.

Dado o exemplo:

#include
#include
int data1, data2, data3, data4;

byte mac[] = {
0x90, 0xA2, 0xDA, 0x0B, 0x00, 0x53 };

byte ip[] = {
149, 223, 241, 12 };

byte gw[] = {
149, 223, 241, 254 };

byte server[] = {
149, 223, 241, 95 };

byte subnet[] = {
255, 255, 255, 0 };

void setup()
{
Serial.begin(9600);
}

void loop()
{
delay(5000);

senddata();
}

void senddata()

{

data1 = random(1, 100);

data2 = random(100, 200);

data3 = random(200, 300);

data4 = random(300, 400);

Ethernet.begin(mac, ip, gw, subnet);

EthernetClient client;

Serial.println();

Serial.println("Forbinder...");

delay(1000);

if (client.connect(server, 80))
{

//Serial.println("Connected");

// Variaveis enviadas ao servidor
client.print("GET http://localhost/teste.php");
client.print("?data1=");

client.print(data1);

client.print("&data2=");

client.print(data2);

client.print("&data3=");

client.print(data3);

client.print("&data4=");

client.print(data4);

// Fim variaveis enviadas ao servidor

client.println(" HTTP/1.1");

client.println("Host: 149.223.241.12");

client.println();

}

else
{

//Serial.println("Connection unsuccesfull");

}

client.stop();

while(client.status() != 0)
{

delay(5);

}

}

php code:

//<?php
//$data = $_GET{['data1'];
//echo $data;
>?

Tive que barrar por que não consegui postar.

Testei este e não deu certo.

Ola Luis Andre, vou dar uma dica, se ela valer de alguma coisa ótimo:

1 - Quando comecei a tentar fazer com que o arduino executa-se um php, perdi tempo e esquentei muito minha cabeça, você usando um WebServe no arduino fica quase impossível executar o php em outro WebServer, pelo menos eu não encontrei alguém que conseguiu fazer isso.

2 - Lembre-se sempre que a memoria do arduino é relativamente pequena, e quanto mais você encher de coisas, mais lento ele ficara. Ou seja, não vi vantagem em colocar o codigo PHP dentro do arduino.

3 - Creio que o melhor meio de você comunicar seu arduino com o mundo externo é através da leitura serial, você pode criar um programa que fique lendo a serial onde o arduino esta conectado e através de um protocolo criado por você, ler, interpretar e tomar uma decisão seja ela atualizar um banco de dados ou executar um link (php) externo ou local.

Entendi e concordo com você mais não é o caso esse código php é o que está rodando no servidor apache, e no arduino estou usando webcliente. Dá uma olhada no scketch.

Obrigado pela dica.

Att

Luis andrade

Alex costa,

Eu utilizo o MySQL Connector com sucesso, funciona muito bem!!!

Porém um detalhe deve ser levado em consideração: o MySQL Connector funciona somente em conjunto com o Ethernet Shield W5100 e a biblioteca Ethernet (oficial do Arduino).

Com o Shield Ethernet ENC28J60 não funciona pois a sua biblioteca não é compatível com o MySQL Connector. Tentei fazer funcionar, porém não deu certo.

Não sei se dará certo para a minha aplicação essa lib, pois pretendo tratar os dados no php antes de salvar no banco, o arduino só será uma interface de coleta de dados.

Teria como me mostrar um exemplo seu bem simples, algum que você usou para testar - bem simples mesmo? (Para eu ver o funcionamento)

Alex Costa,

Segue um exemplo bem prático de utilização da LIB MySQL Connector:

#include <SPI.h>
#include <Ethernet.h>
#include <sha1.h>
#include "mysql.h"

byte mac_addr[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
IPAddress server_addr(192, 168, 1, 100); //endereço do servidor do BD
char user[] = "seu_usuario"; //usuário do BD
char password[] = "sua_senha"; //senha do BD

Connector conexao;

String buf;
char query[128];
char caracter;

void setup() {
Serial.begin(9600);
Ethernet.begin(mac_addr);
delay(1000);
Serial.println("Conectando ao servidor...");
if(conexao.mysql_connect(server_addr, 3306, user, password))
delay(500);
else
Serial.println("A conexão falhou.");
}

void loop(){
if(Serial.available() > 0){
caracter= Serial.read();
grava_dados();
}
delay(500);
}

void grava_dados() {
buf = "Insert into banco.tabela (DadoRecebido) Values ('"+ String(caracter) +"')";
buf.toCharArray(query, 128);
conexao.cmd_query(query);
Serial.println("Dado gravado com sucesso!");
}

Valeu, muito obrigado! Vai ser muito útil pra mim.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço