Monitor Serial WiFi Deixe um comentário

Durante o desenvolvimento de um projeto novo com microcontroladores, é essencial ter acesso a leitura de sensores e valores de variáveis durante a execução do programa. Porém, quando utilizamos um ESP pode ser difícil manter ele conectado por USB ao computador para obter dados via monitor serial. Por esse motivo, neste post, ensinaremos como obter informações de um ESP utilizando um Monitor Serial WiFi.

Janela Monitor Serial da IDE do Arduino.

Para testar o método apresentado no post, precisaremos apenas de um computador e um ESP8266 (ou ESP32).

Configuração do Computador

Utilizaremos um script em Python para receber os dados enviados pelo ESP. Caso ainda não tenha o Python no seu computador, basta acessar o link e baixar a última versão disponível para o seu sistema operacional marcando as opções mostradas nas imagens abaixo.

Precisamos também, instalar o framework web Flask para utilização do script. Para isso, abra o terminal de comando do seu computador e digite pip install flask.

Script

Para rodar o programa no seu computador, baixe esse arquivo e clique para executar. Caso não abra uma janela de terminal automaticamente com o programa em execução, abra o Terminal de Comando do seu PC na pasta onde o arquivo está salvo e digite python WiFiTerminal.py.

Código Arduino do Monitor Serial WiFi

Para utilizar o código do Arduino de teste, substitua o nome e senha da sua rede WiFi nos campos indicados e altere o endereço PC_IP para o mostrado no terminal do seu computador após a execução do programa.

/*
#----------------------#
| WiFi Monitor |
| |
| Ítalo Coelho |
#----------------------#
*/

//Config-------------------------------------------------------------
const char* MySSID = "insira-aqui-o-nome-da-sua-rede-wifi";
const char* MyWifiPassword = "insira-aqui-a-senha-da-sua-rede-wifi";
const char* PC_IP = "http://192.168.2.113:5000/";
//-------------------------------------------------------------------

#include <ArduinoOTA.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

int WiFiMonitor(String address, String request);

void setup()
{
WiFi.mode(WIFI_STA);
WiFi.begin(MySSID, MyWifiPassword);
while(WiFi.status() != WL_CONNECTED){ delay(250);}

ArduinoOTA.begin();
}

void loop()
{
ArduinoOTA.handle();

static int counter = 0;
WiFiMonitor(PC_IP, String(counter));
counter++;
delay(1000);
}

int WiFiMonitor(String address, String request)
{
HTTPClient http;
WiFiClient client;

http.begin(client, address + "monitor");
http.addHeader("Content-Type", "text/plain");
int httpResponseCode = http.POST(request);
http.end();

return httpResponseCode;
}

Com a função WiFiMonitor você pode imprimir qualquer parâmetro que desejar assim como usaria a função Serial.print, nesse caso estamos imprimindo um contador apenas para testar a conexão mas pode ser adaptado a qualquer projeto para aquisição de dados ou solução de problemas.

Gostou de aprender como obter dados de um ESP pelo WiFi? Deixe um comentário nos dizendo o que achou.

Faça seu comentário

Acesse sua conta e participe