Arduino - Servidor Web
Neste tutorial, vamos aprender a transformar um Arduino Uno R4 WiFi em um servidor web. Ao acessar as páginas web hospedadas no Servidor Web do Arduino por meio de um navegador no seu PC ou smartphone, você poderá ler valores do Arduino e até mesmo controlá-lo. Veja a seguir o que vamos aprender a programar no Arduino Uno WiFi:
- Servidor Web Arduino - Página única: permite monitorar valores de sensores do Arduino por meio de uma interface web.
- Servidor Web Arduino - Página única: vamos habilitar a possibilidade de controlar o Arduino usando um navegador web.
- Servidor Web Arduino - Página única: vamos aprender a separar o conteúdo HTML (HTML, CSS e Javascript) em outro arquivo dentro da Arduino IDE.
- Servidor Web Arduino - Múltiplas páginas: nesta etapa, vamos criar várias páginas, como index.html, temperature.html, led.html, error_404.html e error_405.html..., e mais.

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) |
Lendo o valor do sensor do Arduino pela Web
Isso é relativamente simples. O código do Arduino realiza as seguintes tarefas:
- Cria um servidor web que escuta requisições HTTP vindas de um navegador web.
- Ao receber uma requisição de um navegador web, o Arduino responde com as seguintes informações:
- Cabeçalho HTTP
- Corpo HTTP: inclui o conteúdo HTML e o valor lido do sensor.
- Se esta é a primeira vez que você usa o Arduino Uno R4, veja como configurar o ambiente para o Arduino Uno R4 na Arduino IDE.
- Abra o Gerenciador de Bibliotecas clicando no ícone Library Manager no lado esquerdo da Arduino IDE.
- Pesquise por Web Server for Arduino Uno R4 WiFi e localize a biblioteca Web Server criada pela DIYables.
- Clique no botão Install para adicionar a biblioteca Web Server.
- Copie o código acima e abra-o com a Arduino IDE
- Altere as informações de WiFi (SSID e senha) no código para as suas
- Clique no botão Upload na Arduino IDE para carregar o código no Arduino
- Abra o Serial Monitor
- Confira o resultado no Serial Monitor.
- Anote o endereço IP exibido e digite esse endereço na barra de endereços de um navegador web no seu smartphone ou PC.
- Como resultado, você verá a seguinte saída no Serial Monitor.
- Ao acessar o navegador web usando o endereço IP, será exibida uma página web bem básica com informações sobre a placa Arduino. A página ficará assim:
Abaixo está o código Arduino que realiza as tarefas acima:
Passos Rápidos


Para deixar a página web com um visual incrível e uma interface gráfica de usuário (UI), confira a seção final deste tutorial.
Controlando o Arduino pela Web
Controlar algo conectado ao Arduino é um pouco mais desafiador do que apenas ler um valor. Isso porque o Arduino precisa entender a requisição recebida do navegador web para saber qual ação executar. Veja o que o código do Arduino faz neste caso:
- Cria um servidor web que escuta requisições HTTP vindas de um navegador web.
- Trata a requisição recebida do navegador web fazendo o seguinte:
- Lê o cabeçalho da requisição HTTP.
- Analisa o cabeçalho da requisição HTTP para determinar o comando de controle específico necessário.
- Controla o dispositivo ou objeto conectado ao Arduino com base no comando de controle recebido.
- Envia de volta uma resposta HTTP.
- Além disso, pode enviar um corpo de resposta HTTP com conteúdo HTML para exibir informações sobre o estado do controle (se necessário).
Para um exemplo mais completo e detalhado, recomendo conferir os tutoriais listados abaixo:
Separando o conteúdo HTML em outro arquivo na Arduino IDE
Se você quer criar uma página web simples, com pouco conteúdo, pode incorporar o HTML diretamente no código do Arduino, como explicado anteriormente.
No entanto, se você quer criar uma página web mais sofisticada e impressionante, com mais conteúdo, torna-se inconveniente incluir todo o HTML, CSS e Javascript diretamente no código do Arduino. Nessa situação, você pode usar uma abordagem diferente para organizar o código:
- O código do Arduino ficará em um arquivo .ino, como antes.
- O código HTML (HTML, CSS, Javascript) ficará em um arquivo .h separado. Isso permite manter o conteúdo da página web separado do código do Arduino, facilitando o gerenciamento e as modificações.
Para isso, precisamos realizar duas etapas principais:
- Preparar o conteúdo HTML
- Programar o Arduino
Preparando o conteúdo HTML
- Crie um arquivo HTML no seu PC que contenha o conteúdo HTML (HTML, CSS e Javascript) do design da sua interface.
- No arquivo HTML, onde os dados do Arduino devem ser exibidos, use um valor qualquer.
- Teste e modifique até ficar satisfeito.
- No arquivo HTML, onde os dados do Arduino devem ser exibidos, substitua o valor qualquer por um nome especial, por exemplo, TEMPERATURE_MARKER. Depois, no código do Arduino, usaremos a função String.replace("TEMPERATURE_MARKER", real_value); para atualizar o valor fornecido pelo Arduino.
- Vamos colocar o conteúdo HTML no arquivo .h na Arduino IDE. Veja o próximo passo.
Programando o Arduino
- Abra a Arduino IDE e crie um novo sketch. Dê um nome a ele, por exemplo, ArduinoGetStarted.com.ino.
- Copie o código fornecido abaixo e cole-o no arquivo criado.
- Altere as informações de WiFi (SSID e senha) no código para as suas
- Crie o arquivo index.h na Arduino IDE da seguinte forma:

- Clique no botão logo abaixo do ícone do serial monitor e escolha New Tab, ou use as teclas Ctrl+Shift+N.
- Dê ao arquivo o nome index.h e clique no botão OK

- Copie o código abaixo e cole-o no index.h.
- Substitua a linha REPLACE_YOUR_HTML_CONTENT_HERE pelo conteúdo HTML que você preparou antes. Não há problema com caracteres de nova linha. Abaixo está um exemplo de arquivo index.h:
- Agora você tem o código em dois arquivos: ArduinoGetStarted.com.ino e index.h
- Clique no botão Upload na Arduino IDE para carregar o código no Arduino
- Acesse a página web da placa Arduino pelo navegador web como antes. Você a verá como abaixo:

Para uma ilustração mais completa e detalhada, consulte o tutorial Arduino - Sensor de Temperatura DS18B20 pela Web
※ Nota:
- Se você fizer alterações no conteúdo HTML dentro do arquivo index.h, mas não modificar nada no arquivo ArduinoGetStarted.com.ino, a Arduino IDE não vai atualizar o conteúdo HTML quando você compilar e carregar o código no Arduino Uno R4 WiFi.
- Para forçar a Arduino IDE a atualizar o conteúdo HTML nessa situação, você precisa fazer uma modificação no arquivo ArduinoGetStarted.com.ino. Por exemplo, você pode adicionar uma linha vazia ou inserir um comentário. Essa ação faz a IDE reconhecer que houve mudanças no projeto, garantindo que o seu conteúdo HTML atualizado seja incluído no upload.
Servidor Web Arduino - Múltiplas Páginas
Confira este tutorial Arduino - Servidor Web com Múltiplas Páginas.