Usando um ESP32 como um Cliente HTTP para Enviar Informações via WiFi para um Servidor Remoto
Neste tutorial, exploraremos como usar o microcontrolador ESP32 como um cliente HTTP para enviar dados a um servidor remoto via WiFi. O ESP32 é uma placa de desenvolvimento poderosa que combina capacidades de WiFi e Bluetooth, tornando-a ideal para aplicações de IoT. Ao final deste tutorial, você será capaz de enviar requisições HTTP com parâmetros definidos pelo usuário e receber respostas de um servidor.
Estaremos utilizando o Arduino IDE para programar o ESP32, e eu irei guiá-lo através dos passos necessários para configurar seu ambiente. Para um guia visual, recomendo que você confira o vídeo associado (no vídeo em :00).
Hardware Explicado
O componente principal deste projeto é o microcontrolador ESP32, especificamente o módulo WROOM32. Este módulo possui 38 pinos que podem ser usados para várias operações de entrada/saída. Opera a 3,3 volts e inclui capacidades integradas de WiFi e Bluetooth. O ESP32 é versátil e pode ser usado em muitas aplicações, graças aos seus pinos GPIO e protocolos de comunicação.
Além do ESP32, você pode precisar de um conversor USB-serial para programação e depuração. O módulo também contém um regulador de tensão, que garante que o microcontrolador receba uma fonte estável de 3,3V de uma fonte de tensão mais alta. No geral, o ESP32 é um microcontrolador bem equipado, adequado para vários projetos.
Detalhes do Ficha Técnica
| Fabricante | Espressif Systems |
|---|---|
| Número da peça | ESP32-WROOM-32 |
| Tensão lógica/IO | 3,3 V |
| Tensão de alimentação | 5 V (máx) |
| Corrente de saída (por canal) | 12 mA |
| Corrente de pico (por canal) | 160 mA |
| Orientação sobre frequência PWM | 1 kHz |
| Limites de lógica de entrada | 0,3 * VDDbaixo, 0,7 * VDD(alto) |
| Queda de tensão / RDS(on)/ saturação | 0,5 V |
| Limites térmicos | 125 °C |
| Pacote | QFN |
| Notas / variantes | Diferentes tamanhos de flash disponíveis |
- Garanta níveis de tensão corretos (3,3V) para evitar danificar o ESP32.
- Use capacitores de desacoplamento apropriados perto dos pinos de potência para operação estável.
- Implemente dissipação de calor se o módulo operar próximo aos seus limites de corrente máxima.
- Utilize o WiFi integrado do ESP32 para uma fácil conectividade de rede.
- Tenha cuidado com as configurações dos pinos GPIO para evitar curtos-circuitos.
- Teste com esboços simples para confirmar a funcionalidade antes de integrações complexas.
Instruções de fiação
Para ligar o ESP32 para este projeto, comece conectando o pino de terra do ESP32 ao terra da sua fonte de alimentação. Em seguida, conecte a fonte de alimentação de 5V ao pino Vin ou V5 no ESP32, que alimentará o regulador de tensão interno e fornecerá 3,3V ao microcontrolador.
Para a funcionalidade do cliente HTTP, certifique-se de que seu ESP32 esteja conectado a uma rede WiFi. Você precisará conectar os pinos apropriados para quaisquer componentes adicionais que possa usar, como sensores ou LEDs. Por exemplo, conecte um LED ao pino GPIO 2, com um resistor em série para limitar a corrente. O terminal mais longo (ânodo) do LED deve ser conectado ao pino 2, enquanto o terminal mais curto (cátodo) se conecta ao terra.
Exemplos de Código e Passo a Passo
No provided text to translate.mainURL, que contém a URL para a qual estamos enviando a solicitação, euser, que contém informações do usuário. O código também configura o ESP32 para se conectar a uma rede WiFi especificada.
String mainURL ="http://ddas.cc/httpTest/?";
String user="user=ahmad22";Aqui,mainURLé o ponto final que estamos almejando, enquantousermantém o parâmetro do usuário que será enviado na requisição HTTP.
No textosetup()função, começamos a comunicação serial e configuramos a conexão WiFi. Também nos preparamos para a solicitação HTTP criando uma instância do cliente HTTP.
void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFiMulti.addAP("Robojax", "Your password");
}Esta seção inicializa o monitor serial para depuração e conecta-se à rede WiFi. As credenciais são definidas noaddAP()método.
No textoloop()função, verificamos se há uma conexão WiFi bem-sucedida e prosseguimos para enviar a solicitação HTTP GET. Os parâmetros incluem os valores do usuário e da temperatura.
if (http.begin(client, mainURL+user+"&temp="+temperature+"&type="+type)) {
int httpCode = http.GET();}Este código constrói a URL completa com parâmetros de consulta e executa a requisição GET. Se bem-sucedido, ele recupera a resposta do servidor.
Demonstração / O que Esperar
Quando o ESP32 é ligado e o programa é executado, ele deve se conectar à rede WiFi especificada e enviar uma solicitação HTTP GET ao servidor. Você pode monitorar a saída no Monitor Serial, onde verá o código de status HTTP e a carga útil de resposta do servidor. Problemas comuns podem incluir credenciais WiFi incorretas ou um servidor inacessível (no vídeo às 12:30).
Marcas de tempo do vídeo
- 00:00 Início
- 00:53 Introdução
- 05:04 pinos 5V e 3,3V
- 08:38 Recursos explicados
- 14:03 Pinos na Ficha Técnica
- 17:00 Exemplo de Piscar
- 19:14 Exemplo de piscar com LED externo
- 21:00 Teste de Cliente HTTP
Coisas que você pode precisar
-
AliExpressCompre a Câmera ESP32 no AliExpress 2s.click.aliexpress.com
Recursos e referências
-
DocumentaçãoPágina oficial de documentação do ESP32docs.espressif.com
Arquivos📁
Folha de dados (pdf)
-
esp32_datasheet_en
esp32_datasheet_en.pdf0.94 MB