Arduino UNO R4 - MySQL
Este tutorial ensina como usar o Arduino UNO R4 para coletar dados de sensores e salvá-los em um banco de dados MySQL. Em detalhes, vamos aprender:
- Como programar o Arduino UNO R4 para se conectar ao banco de dados MySQL
- Como programar o Arduino UNO R4 para inserir dados no banco de dados MySQL
- Como programar o Arduino UNO R4 para atualizar dados no banco de dados MySQL
- Como programar o Arduino UNO R4 para recuperar dados do banco de dados MySQL

Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V4 IoT Starter Kit (Arduino included) | |
| 1 | × | DIYables STEM V4B IoT Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Arduino UNO R4 - MySQL
O Arduino UNO R4 pode se conectar ao banco de dados MySQL de dois métodos diferentes:
- O Arduino UNO R4 se conecta diretamente ao Servidor MySQL usando um protocolo MySQL (este é o método direto).
- O Arduino UNO R4 se conecta ao Servidor MySQL por meio de um protocolo HTTP (este é o método indireto).
Vamos ver qual deles é melhor.
O Arduino UNO R4 interage diretamente com o Servidor MySQL

Isso pode parecer fácil, mas há várias desvantagens:
- Permitir que um Usuário MySQL acesse o banco de dados remotamente pode ser arriscado para a segurança, mesmo com privilégios limitados.
- Processar dados no Arduino UNO R4 ou em um servidor MySQL deixa o código do Arduino e o script MySQL mais complexos e usa muito a memória e a CPU do Arduino.
- O servidor MySQL pode enviar uma grande quantidade de dados ao Arduino UNO R4, o que pode fazer a memória dele acabar.
- Muitas bibliotecas MySQL não oferecem suporte a SSL/TLS, o que significa que nomes de usuário e senhas são enviados sem criptografia, criando outro risco de segurança.
O Arduino UNO R4 interage indiretamente com o Servidor MySQL via HTTP/HTTPS
Este método indireto resolve todos os problemas do método direto. Primeiro, vamos ver como esse método indireto funciona, antes de explorar como ele evita os problemas do método direto.
Como funciona
- Passo 1: O Arduino UNO R4 envia uma Requisição HTTP ao Servidor Web
- Passo 2: O Servidor Web executa o script PHP
- Passo 3: O script PHP recebe os dados da Requisição HTTP, processa-os e interage com o banco de dados MySQL.
- Passo 4: O script PHP processa os resultados e os envia de volta ao Arduino UNO R4 por meio de uma Resposta HTTP

Este guia também vai ensinar como instalar um Servidor Web e um servidor MySQL no seu PC. Parece complexo, mas não é.
Agora, vamos ver como o método indireto ajuda a evitar as desvantagens do método direto.
- Ao colocar o servidor MySQL e o servidor HTTP na mesma máquina, você pode configurar a conta de usuário MySQL para acessar somente a partir dessa máquina. O nome de usuário e a senha dessa conta ficam salvos no servidor (mencionado no passo 3), o que ajuda a aumentar a segurança.
- Um script PHP (passos 3 e 4) cuida do processamento dos dados. Isso deixa as coisas mais simples e menos complexas tanto para o Arduino UNO R4 quanto para os servidores MySQL. Usar PHP para processar dados é mais fácil do que usar o código do Arduino UNO R4 ou scripts MySQL.
- O script PHP processa os dados e depois envia ao Arduino UNO R4 apenas o que é necessário (passo 4). Isso ajuda a evitar que a memória do Arduino UNO R4 acabe.
- A maioria das bibliotecas Ethernet/WiFi oferece suporte a TLS/SSL, permitindo requisições HTTPS. Com o HTTPS, os dados são criptografados e transferidos com segurança pela Internet.
No passo 1, você pode usar um nome de usuário e uma senha diferentes para conectar o Arduino UNO R4 ao Servidor Web. É importante que o usuário e a senha HTTP não sejam iguais ao usuário e à senha do MySQL, para manter tudo seguro.
Este guia vai mostrar como conectar o Arduino UNO R4 ao MySQL de forma indireta.
Arduino UNO R4 - MySQL via HTTP/HTTPS
Precisamos seguir os seguintes passos:
- Instalar o servidor MySQL, o Servidor Web e o PHP no seu computador
- Ativar o MySQL e o Servidor Web
- Criar uma conta de usuário MySQL
- Criar um banco de dados MySQL
- Criar uma tabela MySQL
- Escrever scripts PHP
- Programar o Arduino UNO R4
Agora, vamos ver um passo de cada vez.
Instale o servidor MySQL, o Servidor Web e o PHP no seu PC
O pacote XAMPP já traz tudo incluído. Só precisamos instalá-lo uma vez.
- Baixe o XAMPP neste link
- Instale-o.
Após a instalação, a pasta chamada C:\xampp\htdocs vai aparecer no seu PC. Essa pasta vai conter o código PHP (explicado mais adiante).
Ative o MySQL e o Servidor Web
- Abra o Painel de Controle do XAMPL
- Clique no botão Start para ligar o MySQL e o Servidor Web (veja a imagem abaixo)

Crie uma conta de usuário MySQL
Vamos configurar uma conta MySQL que pode acessar o banco de dados MySQL somente a partir do computador local.
- Mesmo que alguém saiba o seu nome de usuário e a sua senha, não conseguirá entrar no seu banco de dados MySQL remotamente.
- Como o PHP e o MySQL estão no mesmo PC, o PHP pode usar o nome de usuário e a senha para se conectar ao banco de dados MySQL.
Vamos criar uma conta de usuário MySQL com o nome de usuário ArduinoUnoR4 e a senha newbiely.com.
- Abra o Prompt de Comando no seu computador. Mantenha-o aberto até terminar o tutorial.
- Digite este comando no Prompt de Comando:
- A configuração padrão do MySQL inclui uma conta root que não tem senha. Recomenda-se que você crie uma senha para essa conta.
Digite o seguinte comando no Prompt de Comando para definir a senha da conta root: (por exemplo, YOUR-ROOT-PASSWORD)
- Digite este comando no Prompt de Comando:
- Digite a sua senha root e pressione Enter.
- Crie uma conta de usuário MySQL com o nome de usuário 'ArduinoUnoR4' e a senha 'newbiely.com'. Copie os comandos a seguir e cole-os no Prompt de Comando:
Agora você criou com sucesso uma conta de usuário MySQL. Lembre-se do nome de usuário e da senha, pois você vai precisar deles para o script PHP.
Crie um banco de dados MySQL
Crie um banco de dados chamado db_arduino digitando este comando no Prompt de Comando:
Crie uma tabela MySQL
Vamos criar uma tabela chamada tbl_temperature. Copie os comandos a seguir e cole-os no Prompt de Comando:
Escreva um ou mais arquivos PHP
Crie um arquivo PHP chamado insert_temp.php em C:\xampp\htdocs
Este código PHP pega a temperatura da Requisição HTTP e a insere no banco de dados.
- Descubra o endereço IP do seu computador. Pesquise no Google se você não souber como encontrá-lo.
- Para verificar se o código PHP está funcionando, abra um navegador web (como o Chrome) e acesse este link: http://192.168.0.4/insert_temp.php?temperature=25.3. Lembre-se de usar o endereço IP do seu próprio computador no lugar de "192.168.0.4".
- Você verá os resultados exibidos no seu navegador web.

- Para ver se os dados foram salvos no banco de dados, digite este comando no Prompt de Comando:
A temperatura 25.3 foi salva no banco de dados. Em seguida, precisamos programar o Arduino UNO R4 para enviar uma requisição HTTP semelhante ao seu computador.
Escreva o código do Arduino UNO R4
Este código do Arduino UNO R4 envia uma requisição HTTP ao seu computador para adicionar uma temperatura de 30,5°C ao banco de dados.
Código Arduino UNO R4 para Arduino UNO R4 R4 WiFi
Passos Rápidos
Siga estas instruções passo a passo:
- Se esta é a primeira vez que você usa o Arduino Uno R4 WiFi/Minima, consulte o tutorial sobre como configurar o ambiente para o Arduino Uno R4 WiFi/Minima no Arduino IDE.
- Conecte a placa Arduino Uno R4 ao seu computador usando um cabo USB.
- Abra o Arduino IDE no seu computador.
- Selecione a placa Arduino Uno R4 apropriada (por exemplo, Arduino Uno R4 WiFi) e a porta COM.
- Substitua o endereço IP no código pelo endereço IP do seu computador.
- Compile e faça o upload do código para o Arduino UNO R4.
- Abra o Serial Monitor.
- Veja a saída no Serial Monitor.
- Para ver se a informação foi salva no banco de dados, digite este comando no Prompt de Comando:
A temperatura 30.5 foi salva no banco de dados.
Como o Arduino UNO R4 insere, atualiza ou obtém dados do/no banco de dados MySQL
No exemplo, aprendemos a adicionar dados ao banco de dados MySQL. Para atualizar ou recuperar dados, o processo é parecido. Basta alterar as consultas MySQL no script PHP. Para mais informações, visite o W3Schools.
Uso Avançado
Para melhorar a segurança,
- Você pode modificar o código do Arduino UNO R4 para usar HTTPS em vez de HTTP. Para saber como fazer isso, visite Arduino UNO R4 - HTTPS.
- Você pode se autenticar com um nome de usuário e uma senha ao conectar o Arduino UNO R4 a um Servidor Web. Saiba mais em Autenticação básica de acesso.
※ Nota:
Para criar um sistema completo com segurança máxima, precisamos adicionar mais recursos (como evitar injeção de MySQL, transformar o HTTPS em uma API REST e usar o formato JSON para os dados). No entanto, este guia é voltado para iniciantes que estão aprendendo o Arduino UNO R4. Mantivemos tudo muito simples. Depois de terminar este guia, você pode aprender tópicos mais avançados.