ESP8266 e Bancos de Dados – Requisições WEB com PHP

Neste artigo vamos mostrar como enviar dados coletados de sensores e armazená-los em um banco de dados usando ESP8266 através da conexão WI-FI e requisições HTTP com PHP


Nosso projeto de exemplo, vai funcionar da seguinte maneira:

  • A cada 30 segundos o ESP8266 vai ler os dados do sensor e enviá-los através da conexão Wi-Fi a um servidor WEB via requisição HTTP  (GET ou POST);
  • No servidor um script PHP vai receber os dados enviados e gravá-los no banco de dados .

Supõe-se que o leitor tenha conhecimentos básicos sobre a teoria de Bancos de Dados Relacionais e MySQL, bem como sobre requisições HTTP.
No final do artigo relaciono alguns links úteis nesse sentido.

Passo 1: Criação do Banco de Dados

Vamos criar um banco de dados que será usado futuramente para armazenar os dados de uma estação meteorológica. Por isso nossa tabela receberá o nome de weather

Para criar o banco e a tabela, utilizei a ferramenta phpMyAdmin que vem com o uWamp – pacote de instalação do Apache + PHP + MySQL

Crie o banco de dados maker no MySQL e a tabela weather que receberá os dados dos sensores com a seguinte estrutura:

CREATE TABLE `weather` (
  `wea_id` int(11) NOT NULL AUTO_INCREMENT,
  `wea_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `wea_temp` float NOT NULL,
  `wea_humid` float NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Obs:

  1. O campo wea_id (chave primária) será incrementado automaticamente a cada inserção;
  2. A mesma coisa acontecerá o campo wea_date que guardará a data e hora em que o sinal foi enviado
  3. Os campos wea_temp e wea_humid vão armazenar os dados de temperatura e umidade enviados pelo ESP,

Passo 2: Script PHP

O script PHP ficará encarregado de ler os dados dos sensores enviados pelo ESP por uma requisição GET, fazer a conexão com o banco e gravar os dados através de um comando INSERT.

Vejamos:

<?php
$temp = filter_input(INPUT_GET, 'temp', FILTER_SANITIZE_NUMBER_FLOAT);
$humid = filter_input(INPUT_GET, 'humid', FILTER_SANITIZE_NUMBER_FLOAT);
if (is_null($temp) || is_null($humid) ) {
  //Gravar log de erros
  die("Dados inválidos");
} 
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "maker";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
  //Gravar log de erros
  die("Não foi possível estabelecer conexão com o BD: " . $conn->connect_error);
} 
$sql = "INSERT INTO weather (wea_temp, wea_humid) VALUES ($temp,$humid)";

if (!$conn->query($sql)) {
  //Gravar log de erros
  die("Erro na gravação dos dados no BD");
}
$conn->close();
?>

Obs: Crie uma pasta weather dentro da pasta www do servidor e coloque esse script com o nome insert_weather.php.

Passo 3: Protótipo ESP8266

Para nosso teste vamos usar o sensor de temperatura e umidade DHT11 e a placa de desenvolvimento NodeMCU, mas você pode usar qualquer placa compatível com a IDE do Arduino como a WEMOS ou a Adafruit Huzzah.

Montagem:

Nodemcu e DHT11
Nodemcu e DHT11

O sketch comentado ficou da seguinte forma:

/* ESP8266 e Banco de Dados - Requisições HTTP
 * 2016 por José Cintra
 * www.josecintra.com/blog
 */ 

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <SimpleDHT.h>

// WiFi - Coloque aqui suas configurações de WI-FI
const char ssid[] = "login";
const char psw[] = "senha";

// Site remoto - Coloque aqui os dados do site que vai receber a requisição GET
const char http_site[] = "http://mycomputer";
const int http_port = 8080;

// Variáveis globais
WiFiClient client;
IPAddress server(192,168,0,23); //Endereço IP do servidor - http_site
int pinDHT11 = D2;
SimpleDHT11 dht11;

void setup() {
  delay(30000); Aguarda 30 segundos 
  Serial.begin(9600);
  Serial.println("NodeMCU - Gravando dadios no BD via GET");
  Serial.println("Aguardando conexão");
  
  // Tenta conexão com Wi-fi
  WiFi.begin(ssid, psw);
  while ( WiFi.status() != WL_CONNECTED ) {
    delay(100);
    Serial.print(".");
  }
  Serial.print("\nWI-FI conectado com sucesso: ");
  Serial.println(ssid);

}

void loop() {
  
  //Leitura do sensor DHT11
  delay(3000); //delay entre as leituras
  byte temp = 0;
  byte humid = 0;
  if (dht11.read(pinDHT11, &temp, &humid, NULL)) {
    Serial.print("Falha na leitura do sensor.");
    return;
  }
  
  Serial.println("Gravando dados no BD: ");
  Serial.print((int)temp); Serial.print(" *C, "); 
  Serial.print((int)humid); Serial.println(" %");

  // Envio dos dados do sensor para o servidor via GET
  if ( !getPage((int)temp,(int)humid) ) {
    Serial.println("GET request failed");
  }
}

// Executa o HTTP GET request no site remoto
bool getPage(int temp, int humid) {
  if ( !client.connect(server, http_port) ) {
    Serial.println("Falha na conexao com o site ");
    return false;
  }
  String param = "?temp=" + String(temp) + "&humid=" + String(humid); //Parâmetros com as leituras
  Serial.println(param);
  client.println("GET /weather/insert_weather.php" + param + " HTTP/1.1");
  client.println("Host: ");
  client.println(http_site);
  client.println("Connection: close");
  client.println();
  client.println();

    // Informações de retorno do servidor para debug
  while(client.available()){
    String line = client.readStringUntil('\r');
    Serial.print(line);
  }
  return true;
}

Obs:

  1. Repare que usamos library SimpleDHT para controlar o sensor DHT11, mas você pode usar a library de sua preferência. Veja aqui as instruções para usar essa biblioteca.
  2. Neste exemplo usamos o servidor de teste da máquina local Windows, o localhost. No entanto, para acesso remoto não deve ser usado o IP 127.0.0.1. Para saber o IP da máquina local para a variável server use o comando ipconfig e observe o valor do ipv4.

Passo 4: Ação

Depois de criar o banco e upar o sketch para o ESP, realize a seguinte sequência de passos para ver tudo funcionando:

  • Startar o servidor através da ferramenta uWamp. O Apache deve ser startado no modo ONLINE;
  • Startar o sketch do ESP8266 e abra o Monitor Serial da IDE para acompanhar as mensagens de log.

Pronto! Para ver o resultado abra o phpMyAdmin e execute o seguinte comando SQL:

SELECT * FROM WEATHER

E então você verá os dados chegando a cada 30 segundos.
Até a próxima!

Referências

79 comentários em “ESP8266 e Bancos de Dados – Requisições WEB com PHP”

  1. Poderia passar algum link que mostre um exemplo de como buscar uma informação presente no nomeMCU e apresentá-la numa página WEB, como por exemplo ver o status do led da placa? Obrigado.

  2. Olá José Cintra!

    Onde posso encontrar estas bibliotecas? Poderia deixar um link?
    #include
    #include

    Obrigado!

  3. Bom dia;

    José Cintra, estou com uma dificuldade para conseguir gravar os dados do sensor DHT 11 no bando dos dados (MYSQL) que só me retorna um conjunto vazio no Uwamp. Fiz todas as configurações necessárias que você descreveu no tutorial, mas não deu certo. Só fiquei em dúvida sobre qual endereço de requisição HTTP tenho que colocar nesse campo: (const char http_site[] = “http://mycomputer”;) no lugar de mycomputer?

    Abraços.

    1. Olá Gilielson,!
      Para saber qual o endereço usar no sketch, execute o comando ipconfig do windows.
      Instruções completas enviei no seu email
      Abraço
      José Cintra

          1. Enviei o email com fotos sobre minhas duvida, muito obrigado pela atenção.

        1. Olá Francisco
          Coloque o nome “DNS” do seu computador. No Windows, para saber o nome do seu computador vá em “Meu computador”

  4. Boa noite!
    No meu projeto pretendo coletar dados de sensores pelo ESP8266 Sparkfun e enviá-los para ser exibido na página da minha empresa em forma de gráficos em tempo real. Parabéns pelo tutorial, mas infelizmente no serial monitor tenho essas mensagens de retorno:

    Gravando dados no BD:
    27 *C, 57 %
    /?temp=27&humid=57
    HTTP/1.1 404 Not Found
    Server: Apache
    Content-Type: text/html; charset=iso-8859-1
    Content-Length: 225
    Accept-Ranges: bytes
    Date: Mon, 27 Mar 2017 23:22:20 GMT
    Age: 0
    Connection: close

    404 Not Found

    Not Found
    The requested URL /weather/insert_weather.php/ was not found on this server.

    Gravando dados no BD:
    27 *C, 58 %
    /?temp=27&humid=58
    HTTP/1.1 404 Not Found
    Server: Apache
    Content-Type: text/html; charset=iso-8859-1
    Content-Length: 225
    Accept-Ranges: bytes
    Date: Mon, 27 Mar 2017 23:22:26 GMT
    Age: 107
    Connection: close

    Essa mensagem fica repetindo para sempre.

    Teria alguma dica que eu possa tentar? Fiz exatamente como você ensinou.

    Obrigado!!

    1. Olá Paulo!
      Esse erro ocorre quando a página não foi encontrada na pasta do servidor.
      Verifique no servidor que você instalou qual deve ser a pasta onde ficam os documentos web.
      No servidor que uso essa pasta se chama WWW. Em outras instalações essa pasta pode estar configurada com outros nomes, como ROOT ou HTDOCS.
      Dentro dessa pasta deve ser criada a pasta weather para colocar os arquivos do exemplo:
      /weather/insert_weather.php/
      Verifique qual a porta esta usando também.
      Abraço.

      1. Bom dia José Cintra!

        No meu servidor tenho a pasta httpdocs. Dentro dela coloquei a pasta weather e continuou com o mesmo erro. Tentei adicionar a pasta weather na pasta httpdocs/www.gridenergia.com.br/ que se encontra no servidor, mas continuou com o mesmo erro. Usei a porta 8080 como você descreveu no tutorial e também a porta 80, mas ainda nenhum resultado.

        Esse projeto consiste em um trabalho de tcc que estou desenvolvendo e preciso muito que de certo kkkkkk. Teria como entrar em contato com você por email para que possa me dar uma ajuda ou alguma dica?

        Desde já agradeço sua atenção! Bom dia.

          1. Estou usando seu exemplo contudo estou tendo o seguinte erro

            HTTP/1.1 400 Bad Request
            Server: Apache
            Content-Type: text/html; charset=iso-8859-1
            Content-Length: 226
            Accept-Ranges: bytes
            Date: Fri, 31 Mar 2017 18:02:26 GMT
            Age: 0
            Connection: keep-alive

            400 Bad Request

            Bad Request
            Your browser sent a request that this server could not understand.

            HTTP/1.1 400 Bad Request

        1. oi Paulo,você poderia me dar algumas dicas e me ajudar??Estou me baseando nisso para fazer o meu TCC tambem
          obrigado por sua atenção!!

  5. Boa tarde,

    Eu consigo inves de mandar dados, fazer com que o ESP8266 pegue a tag de um cartão via leitor RFID e buscar dados em um banco de dados?

    Obrigado

  6. Olá José, eu consigo após enviar as informações via GET ou POST ter uma resposta do servidor destino (ex. cadastro ok, etc)? Obrigado!

    1. Olá Juliano!
      Sim. No código de exemplo, onde está escrito // Informações de retorno do servidor para debug
      Ali você pode tratar a resposta do servidor. Você pode colocar o seu código ali.
      Existe um exemplo no blog no artigo sobre ajax Aqui

  7. Olâ Muito bom poste

    Gostaria de usar o Modulo dht22 isso mudaria apenas as linhas:
    int pinDHT11 = D2;
    SimpleDHT11 dht11
    //Leitura do sensor DHT11
    delay(3000); //delay entre as leituras
    byte temp = 0;
    byte humid = 0;
    if (dht11.read(pinDHT11, &temp, &humid, NULL)) {
    Serial.print(“Falha na leitura do sensor.”);
    return;
    }

    _____________________________________________________________
    para:

    int pinDHT22 = D2;
    SimpleDHT22 dht22
    delay(3000); //delay entre as leituras
    byte temp = 0;
    byte humid = 0;
    if (dht22.read(pinDHT22, &temp, &humid, NULL)) {
    Serial.print(“Falha na leitura do sensor.”);
    return;
    }

    ____________________________________________________________________
    ??????
    Agradeço desde já

  8. Bom dia, tudo bem?

    Pode me auxiliar com a conexão de um ESP8266 NODE MCU com banco MySQL?

    Da parte do PHP, fiz algumas alterações e estão ok. Fiz um teste inserindo a linha no navegador e gravou no banco.

    http://thinkpro.com.br/dashboard/insert.php

    Na IDE do Arduino, tenho o seguinte erro, que fica se repetindo:

    Gravando dados no BD:
    19 *C, 61 %
    Falha na conexao com o site
    GET request failed

    Poderia me auxiliar, por favor? Anexo, segue o código .ino.

    Muito obrigado!

    Benito

  9. Boa tarde.
    Estou tentado conectar o ESP8266+arduino, mas não estou conseguindo. Todos os tutoriais que encontro usam a biblioteca , mas quando busco no github, a biblioteca foi renomeada como SerialESP8266wifi. Instalo, mas não conecta. Na verdade não sei se o problema é este, mas preciso resolver este para verificar outros. Obrigado

    1. Desculpe, o texto ficou truncado. Tento conectar ESP8266-01+Arduino UNO na minha rede wifi. A biblioteca que é solicitada é a ESP8266WiFi.h .

  10. Olá! parabéns pelo post, o mesmo esta sendo muito util para minha aprendizagem, porém eu tenho uma duvida.
    const char http_site[] = “http://mycomputer”;
    oque deve ser colocado nessa parte do sketch?
    eu coloquei parte da url do endereço do insert_wether.php, ficou assim:
    const char http_site[] = “http://weather/insert_weather.php”;
    esta errado?

    1. Olá Uigor!
      Substitua “mycomputer” pelo nome do seu computador (como é visto na rede).
      No Windows, para descobrir o nome do seu computador, clique com o botão direito no ícone “Meu computador” ou “Computador”

  11. Estou com mesmo problema que o Andrew:

    HTTP/1.1 400 Bad Request
    Server: Apache
    Content-Type: text/html; charset=iso-8859-1
    Content-Length: 226
    Accept-Ranges: bytes
    Date: Fri, 31 Mar 2017 18:02:26 GMT
    Age: 0
    Connection: keep-alive

    400 Bad Request

    Bad Request
    Your browser sent a request that this server could not understand.

    HTTP/1.1 400 Bad Request

    1. Olá João!
      As vezes pode ser nos comandos print, pois são eles que montam a requisição para o servidor
      Tente mudar a variável http_site no comando abaixo e coloque o IP da sua máquina para garantir

      client.println(http_site);

  12. João, tive o mesmo problema.

    Removi + ” HTTP/1.1″ da linha de codigo abaixo e começou a gravar no banco de dados… o restante deixei do jeito que estava

    client.println(“GET /weather/insert_weather.php” + param + ” HTTP/1.1″);

    ficaria desse jeito:
    client.println(“GET /weather/insert_weather.php” + param);

  13. Estou com este problema

    Bad request!

    */–>

    Bad request!

    Your browser (or proxy) sent a request that
    this server could not understand.

    If you think this is a server error, please contact
    the webmaster.

    Error 400

    http://www.example.com
    Apache/2.4.26 (Win32) OpenSSL/1.0.2l PHP/7.1.7

  14. Parabens pelo topico.

    Estou com algumas dúvidas, estou tentando fazer a conexão com um servidor. Tenho dúvidas nos seguintes itens.

    IPAddress servers();
    const char http_site[] = “”;

    1. Olá Madson. Você está usando um servidor local na sua máquina, certo? Dessa forma, use:
      IPAddress – O endereço IP da máquina (você consegue esse IP executando o ipconfig e observe o valor do ipv4)
      http_site – nome da máquina (você consegue saber no Windows em “meu computador”

      1. Muito obrigado José Cintra.
        Estou com um problema agora, que ele não está inserindo no banco. Ele não está retornando nenhum erro.

        Executei a pagina manualmente e inseriu.

        dentro do wamp tem: wamp/www/weather/insert_weather.php

        acho que o problema pode estar aqui:
        client.println(“GET /weather/insert_weather.php” + param + ” HTTP/1.1″);

        Tem algum lugar que voce me indica, para estudar sobre o client.println e esse GET?

          1. Obrigado Jose Cintra,

            Para fazer o caminho inverso, pegar a variável do banco e passar para o esp8266. Acredito que deva usar outra biblioteca, você tem ideia do que posso procurar?

  15. Jose,

    Estou na dúvida sobre quais informações colocar no http site, e no ip Adress server.

    Estou precisando enviar os dados para o ip/web/werbservice.php.

    Bruno

    1. Olá Bruno!
      Em http_site coloque o nome do seu computador que aparece no ícone “Meu computador” no windows
      Em IPAddress coloque o IP da sua máquina (que é o servidor nesse caso)

  16. José boa tarde.

    Gostaria de tirar uma duvida referente ao post. Estou trabalhando com o esp8266 porem estou usando como interface para um pic 18f4620, estou enviando as informações via comandos AT, porem ao enviar o GET estou recebendo um bad request.

    Gostaria de saber se você possui alguma literatura referente ao comando GET e sua sintaxe sem ser por bibliotecas, pois como disse estou utilizando apenas comandos AT.

    Desde já agradeço.

  17. Oi José, tudo bem ?
    Parabéns pelo blog! Queria tirar uma dúvida com você…
    Tenho a ideia de fazer uma programação semelhante a essa sua, porém tenho a necessidade de acionar 30 cargas. Você acha que nodemcu suporta um código, para enviar essas informações de controle para essas 30 cargas, por meio desse método GET ?

    1. Olá Diego! Obrigado!
      Você quer passar 30 comandos através do GET, correto?
      Existe um limite para o tamanho da URL do GET que varia de acordo com os browsers/servidores.
      Algo em torno de 2048 bytes, o que pode ser suficiente para o seu caso.
      Em caso de problemas, mude para o método POST

  18. Olá pessoal!
    Sou iniciante na programação com ESP8266, Arduino IDE e C++.
    Fiz um progresso bem pequeno ao conectar a ESP8266 ao wifi de minha casa, mas gostaria de enviar ainda alguns dados ao servidor de meu tio através de uma requisição POST e não estou obtendo sucesso.
    Já tentei enviar os dados usando a WiFiClient library e
    a ESP8266HTTPClient library mas nenhuma delas funcionou. Estou começando a pensar que talvez os dados que meu tio me deu do web server dele não estão corretos.
    Aqui estão os dados:

    POST /rods/airlo/firstmodule/ HTTP/1.1

    Host: iotsystem.synology.me:3140

    Content-Type: application/json

    Cache-Control: no-cache

    Postman-Token: (é um código longo com vários números e letras mas não postarei por conta de segurança).

    Só consigo imaginar dois motivos para falhas: ou não estou inserindo os dados corretamente nos códigos ou ele me passou dados errados.
    Alguém pode me ajudar?

    Muito obrigado!!

  19. Boa tarde José Cintra!

    Se eu precisar de capturar os dados da base de dados para o browser como devo proceder? Pretendo que todos os clientes da rede consigam (através do meu ip – servidor) visualizar os dados do sensor.
    Mais informações contacte-me por email:
    miguel.o@ua.pt

    Obrigado

    1. Olá Miguel!
      Uma vez que os dados já estão no BD, seria desenvolver uma página de relatório.
      Esse relatório pode ser parametrizado. É possível fazer gráficos com os dados também

  20. Cara voce tem algum exemplo de como pegar os dados de um sensor MPU6050 e mostrar em uma página web com o esp8266

  21. Gravando dados no BD:
    25 *C, 48 %
    Falha na conexao com o site
    GET request failed

    O que devo colocar na string site?

  22. Boa tarde Cintra!
    Estou ficando desanimado, faz mais de mês que estou tentando fazer conexão e não consigo,
    bool getPage(int temp, int humid)
    {
    Serial.println(server); // retorna meu ipv4 192.115.78.37 (Ficticio).
    Serial.println(http_port); // retorna: 8080
    Serial.println(client.connect(server,http_port)); // retorna: 0

    if ( !client.connect(server, http_port) )
    {
    Serial.println(“Falha na conexao com o site”); //Envia sempre esta msg
    return false;
    }
    onde estou errando
    Obs: utilizo Wampserver 3.0.6

    Forte Abraço
    Eugenio

  23. Olá Cintra,
    Estou utilizando a MCU ESP8266 e um sensor DHT22 e os dados estão sendo gravados em um SD. Gostaria de saber se seria possível, enviar os dados do SD usando um filtro ( por exemplo: últimos 30 minutos) e inserir em um banco de dados remoto a cada 25 minutos (5 de contingência) ?

    Aproveito para parabenizá-lo do seu conhecimento.

    1. Olá Marcelo,
      Sim é possível. Você pode usar a função Millis para computar esses minutos ou, se precisar de mais precisão, pode usar um módulo de relógio.
      Abraço!

  24. Boa tarde, eu adorei o texto e eu gostaria de saber se caso fosse um post, qual seria a forma de passar o parametro?

    Exemplo:

    client.println(“POST/weather/insert_weather.php” + param + ” HTTP/1.1″);

    Seria o “+” ou a “,” ?

  25. Olá Jose cintra Parabéns, otimo post ,so que estou com um problema o que aparece pra min aqui é :
    Gravando dados no BD:
    30 *C, 28 %
    ?temp=30&humid=28
    Não reporta nenhum erro , mas não faz o insert no Banco de dados!
    Estou utilizando a Porta 80 e o Xampp como servidor.
    Na pagina /weather/insert_weather.php que esta na pasta htdocs/weather, quando abro no navegador e faço a inserção manualmente, os dados são inseridos com sucesso, mas pelo esp8266 não vai e não reporta nenhum erro tbm???

    1. Olá David
      Nesse caso podem ser as configurações no início do sketch
      const char http_site[] = “http://mycomputer”; Pode colocar aqui o nome do seu computador. No windows botão direito em MEU COMPUTADOR
      const int http_port = 8080; // A porta do xampp
      IPAddress server(192,168,0,23); / O IP do seu computador. Veja no ipconfig (IPV4)

      1. Consegui, mas só deu certo após mudar o HTTP/1.1 para HTTP/1.0
        acho que deve ser por causa do meu servidor xampp ser uma versão mais antiga, mais mesmo assim obrigado!

  26. Boa tarde …
    Fiz tudo conforme o explicado e funcionou corretamente.
    Você teria algum exemplo onde além de enviar os dados do arduino para o servidor (temperatura e umidade) o servidor retornasse para o arduino alguma resposta ?

    obrigado

      1. Olá Amigo

        Segui sua recomendação instalando e testando a forma de enviar dados do apache para o arduino e funcionou sem problemas.

        Agora quanto a juntar os códigos não consigo nem compilar a minha junção pois da conflitos e meu conhecimento é tão basico que não sei o que fazer.

        Poderia me dar uma orientação sobre a junção dos dois códigos ?

        Obrigado

  27. Desculpa minha ignorância, mas como fica a pasta do projeto? Como faz o php comunicar com esse arquivo?

  28. Boa noite, parabéns pelo excelente texto. Se eu usar apenas o módulo dht11 com uma placa mini ESP8266 ESP-01 com fonte de alimentação externa (bateria 3,7v) eu consigo utilizar o mesmo procedimento ilustrado ou existe alterações? Fiz exatamente como no texto, porém, não está gravando no banco de dados.

    Outra pergunta é, baixamos o xampp e usamos ele para criar o banco de dados no phpmyadmin, no item 4 o Sr. diz que precisamos startar o apache pelo uWamp, onde o mesmo deve estar online. Não dá para usar apenas o xampp?

    Desculpe se as questões são triviais, estou tentanto iniciar nesta área.

    Obrigado

    1. Olágo Hu!
      Sim. Se você usar a placa mini é o mesmo procedimento. Sugiro fazer um projeto a parte menor, só para testar a parte do sensor e depois partir para o projeto completo. Verifique se as portas devem ser as mesmas.
      Pode usar o XAMPP. Eu também agora só estou usando o XAMPP

      1. Obrigado pelo retorno Prof., no entanto, no serial aparece tudo ok, mas no banco de dados não chega nada. Quais podem ser os possíveis problemas? Já que segui rigorosamente as instruções.

        Obrigado

        1. Olá!
          Podem ser vários motivos.
          A melhor maneira é debugar a aplicação.
          Primeiramente, veja qual o comando que está sendo enviado ao banco. Para fazer isso, use a Serial. Veja se está sendo montado corretamente.
          Execute esse comando diretamente no banco e veja se funciona.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *