Guias · 15 min de leitura

Controlar ESP32 pelo celular: BlueGrays IoT em 5 passos

Como controlar o ESP32 pelo celular com o BlueGrays IoT: ligação do relé e do DHT22, código pronto do Ohmi, 5 passos de configuração, gráficos e erros comuns.

Controlar o ESP32 pelo celular significa ligar e desligar um relé, um LED ou um motor da placa pelo telefone que está no seu bolso e ver os valores dos sensores na tela. É também o primeiro passo mais divertido para aprender IoT. Como o ESP32 já tem Wi-Fi de 2,4 GHz e Bluetooth embutidos, você não precisa de nenhum módulo extra. A pergunta é qual caminho escolher. Para controlar o ESP32 por app, você pode escrever seu próprio servidor web, conectar via Bluetooth ou criar um bot do Telegram. Painéis na nuvem como Blynk e Arduino IoT Cloud também são uma opção. Cada método tem tempo de configuração, alcance e limites diferentes.

Neste guia você vai montar, passo a passo, o caminho mais curto: o recurso BlueGrays IoT do app BlueGrays. O Ohmi prepara o código para você. Você só monta o circuito e carrega o código no ESP32 pela Arduino IDE. A placa se conecta ao servidor da BlueGrays por uma conexão criptografada, então o celular e a placa não precisam estar na mesma rede. Dá para acender a lâmpada de casa pelos dados móveis enquanto você está no trabalho. Primeiro você vai fazer um interruptor de lâmpada com relé. Depois vai acrescentar um DHT22 ao circuito e levar a temperatura e a umidade para o celular como valor ao vivo e gráfico. No fim do texto há uma comparação com os outros métodos e uma tabela com a solução dos erros mais comuns.

Placa de desenvolvimento ESP32 que será controlada pelo celular
O ESP32 acessa a internet diretamente pelo Wi-Fi de 2,4 GHz embutido; não é preciso módulo sem fio extra para controlá-lo pelo celular.

5 formas de controlar o ESP32 pelo celular

  • Servidor web local: o ESP32 serve uma página web e você acessa o endereço IP da placa pelo navegador do celular. Não precisa de conta extra, mas normalmente só funciona dentro da mesma rede Wi-Fi. Detalhes no texto ESP32 Async Web Server.
  • Bluetooth Classic e BLE: não precisa de internet nem de roteador, o celular se conecta direto à placa. Em ambientes internos o alcance costuma ficar em torno de 10 metros. Explicamos os dois tipos no guia ESP32 Bluetooth.
  • Bot do Telegram: você manda comandos para a placa por mensagem e recebe notificações dela. Funciona fora de casa também, mas não oferece um painel com gráficos ou controles deslizantes. Para configurar, veja o texto Bot do Telegram com ESP32.
  • Painéis na nuvem (Blynk, Arduino IoT Cloud): você define modelos e variáveis no console web, escreve o código e desenha o painel no celular por conta própria. É um caminho flexível, mas exige aprender várias telas e conceitos diferentes. Para o Blynk, já temos o guia Blynk com ESP32.
  • BlueGrays IoT: no app, você escolhe um dos 8 modelos prontos. O Ohmi prepara o código com as suas configurações de pinos e a sua chave do dispositivo. No celular, interruptor, controle deslizante, seletor de cor e gráficos aparecem sozinhos conforme o modelo. Você não precisa desenhar painel nem montar servidor.

O que você precisa: lista de materiais e software

MaterialPara que serve?Observação
Placa de desenvolvimento ESP32Controlador com Wi-FiCompatível com ESP32 Dev Module, WROOM, S3 e C3
Cabo USB de dadosCarregar o código e alimentar a placaCom cabo só de carga, a porta não aparece
Módulo relé de 5 VChavear a lâmpadaPrefira módulo com optoacoplador que aciona com sinal de 3,3 V
LED + resistor de 220 ΩPrimeiro teste seguro no lugar do reléNo código, use RELAY_ACTIVE_LOW = false
DHT22 (opcional)Medir temperatura e umidadePara o modelo Estação ambiente
Protoboard e jumpersFazer as ligaçõesJumpers macho-fêmea são práticos para os módulos
Rede Wi-Fi de 2,4 GHzAcesso da placa à internetA placa não se conecta a redes de 5 GHz
Arduino IDECarregar o código na placaPrecisa do pacote esp32 da Espressif, versão 3.x
App BlueGraysConfiguração e controle pelo celulariOS e Android; o primeiro dispositivo é grátis

Como funciona o controle do ESP32 pelo app?

No BlueGrays IoT, o celular e o ESP32 não se conectam diretamente. Ao ligar, a placa primeiro entra na rede Wi-Fi de 2,4 GHz da sua casa. Em seguida abre uma conexão WebSocket criptografada (TLS) com o servidor da BlueGrays pela porta 443 e mantém essa conexão sempre aberta. O app no celular se conecta ao mesmo servidor. Quando você toca no interruptor da lâmpada, o comando vai do celular para o servidor e do servidor para a placa. Como a conexão já está aberta, o comando chega sem espera. O valor de temperatura enviado pela placa faz o mesmo caminho no sentido contrário. A 443 é a mesma porta usada pelos sites. Por isso você não precisa configurar redirecionamento de portas no roteador, montar seu próprio servidor nem saber o IP da placa.

O que identifica a placa no servidor é a chave do dispositivo. Essa chave é um texto secreto que começa com bgd_, gerado pelo app quando você cria o dispositivo. A placa envia a chave no cabeçalho ao abrir a conexão, e o servidor repassa o comando vindo do celular para a placa certa. A chave não é exibida no Monitor Serial. Se a conexão cair, a biblioteca BlueGraysIoT tenta reconectar sozinha, em intervalos cada vez maiores. Os valores medidos enquanto estava offline são enviados quando ela volta, e depois de uma queda de energia o último estado dos interruptores é restaurado. Basta que a placa e o celular tenham acesso à internet: a placa pode estar no Wi-Fi de casa e o celular nos dados móveis em outra cidade.

Circuito: ligar o módulo relé ao ESP32

Nos modelos Lâmpada com relé e Estação ambiente, os pinos padrão são estes: o terminal IN do relé vai no GPIO26 e o pino de dados do DHT22 vai no GPIO4. Você pode trocar esses pinos no passo 3 da configuração. Confira a pinagem da sua placa na ferramenta Pinagem. Em algumas placas o pino de 5 V vem marcado como VIN, em outras como 5V.

ComponentePino do componentePino do ESP32Observação
Módulo reléVCC5V (VIN)A bobina precisa de 5 V; com a placa alimentada pelo USB, esse pino tem cerca de 5 V
Módulo reléGNDGNDGND comum
Módulo reléINGPIO26Sinal de controle de 3,3 V
LED (para teste)Perna longa (+)GPIO26Com resistor de 220 Ω; perna curta no GND, no código RELAY_ACTIVE_LOW = false
DHT22VCC3V3Para a Estação ambiente
DHT22DATAGPIO4O sensor avulso precisa de pull-up de 10 kΩ; nos módulos ele já vem na placa
DHT22GNDGNDGND comum
Chavear uma lâmpada ou tomada da rede elétrica (127/220 V) com relé é perigoso. Faça isso com alguém que entende do assunto e monte as ligações com o plugue fora da tomada. Não deixe fios expostos e coloque o circuito dentro de uma caixa fechada. O próprio app mostra o mesmo aviso nos modelos com relé: teste primeiro com um LED. O ESP32 trabalha com lógica de 3,3 V. A maioria dos módulos relé de 5 V aciona com esse sinal, mas nem todos; por isso escolha um módulo com optoacoplador. Detalhes no texto O que é módulo relé?.

Configuração do BlueGrays IoT: os 5 passos no app

No app, siga o caminho Minha oficina › Meus dispositivos › Adicionar dispositivo. No topo da tela você vê um contador como “Passo 1 / 5”. Os três primeiros passos são no celular, o quarto no computador e o quinto de novo no celular.

  1. Placa e modelo: em “Qual é a sua placa?”, escolha ESP32; em “O que ela vai fazer?”, marque um dos 8 modelos. Para o primeiro teste, “Lâmpada com relé” ou a “Estação ambiente” com sensor são bons pontos de partida. Dê ao dispositivo um nome fácil de reconhecer, como “Lâmpada da sala”.
  2. Componentes e circuito: a lista “Separe os componentes” mostra as peças que o modelo pede. O esquema “Ligue os fios” desenha qual terminal vai em qual pino. Nos modelos com relé, aparece o aviso “Se for trabalhar com 220 V, faça isso com alguém que entende do assunto. Teste primeiro com um LED.”.
  3. Wi-Fi e código: digite o nome e a senha da rede Wi-Fi. O nome da rede precisa ser exatamente igual e ser da faixa de 2,4 GHz. Se quiser, troque o GPIO26 e o GPIO4 por outros pinos na seção “Pinos de ligação”. Depois toque em “Criar dispositivo e gerar código”. O Ohmi prepara o código com a sua chave do dispositivo; passe o código para o computador com “Copiar código” ou “Compartilhar”.
  4. Carregar pela Arduino IDE: você carrega o código no ESP32. Explicamos os subpassos do app um por um na próxima seção.
  5. Conexão: a tela “Aguardando sua placa” avança sozinha assim que a placa se conecta ao servidor.

Passos 4 e 5: carregar o código e ver a conexão

  1. Se a Arduino IDE não estiver instalada, instale. Os passos estão no texto Como instalar a Arduino IDE.
  2. No Gerenciador de Placas, busque “esp32” e instale o pacote esp32 da Espressif. É preciso a versão 3.x desse pacote; se a antiga 2.x estiver instalada, atualize. A instalação do pacote também está no texto O que é ESP32?.
  3. Conecte a placa com um cabo USB de dados. Em Ferramentas › Placa, escolha ESP32 Dev Module (ou o modelo da sua placa); em Ferramentas › Porta, escolha a porta que acabou de aparecer. Se a porta não aparecer, troque o cabo. Depois instale o driver CP210x ou CH340, conforme o chip USB da sua placa.
  4. No Gerenciador de Bibliotecas, busque BlueGraysIoT e clique em Instalar. Quando perguntar sobre as dependências, escolha “Instalar tudo”; assim WebSockets, ArduinoJson e DHT sensor library também são instaladas. Se travar, veja o guia Como instalar biblioteca no Arduino.
  5. Abra um sketch novo, apague o conteúdo, cole o código copiado do app e clique em Carregar. Se o painel inferior travar em “Connecting…”, segure o botão BOOT da placa. Solte quando as porcentagens de gravação começarem a aparecer.
  6. Abra o Monitor Serial e ajuste a velocidade para 115200. Primeiro deve aparecer “Wi-Fi connected” e, alguns segundos depois, a linha “BlueGrays IoT: connected”.

Assim que a mensagem de conectado aparecer no Monitor Serial, a tela “Aguardando sua placa” no celular passa para “Conectado: os valores agora chegam em tempo real.”. Agora toque no interruptor da lâmpada: você deve ouvir o clique do relé ou ver o LED acender. Se a placa não se conectar em 2 minutos, o app pede para você verificar três coisas. Você escolheu a rede de 2,4 GHz? O Monitor Serial mostra “Wi-Fi connected”? As maiúsculas e minúsculas da senha estão certas? Se nem a primeira linha aparece, o problema está no Wi-Fi. Nesse caso, a lista de verificação do texto ESP32 não conecta ao Wi-Fi resolve.

Primeiro código: ligar e desligar a lâmpada pelo celular

O código que o app gera para o modelo “Lâmpada com relé” é parecido com o abaixo. As três primeiras linhas já vêm preenchidas com a sua chave do dispositivo, o nome da rede e a senha; aqui aparecem com marcadores. O resto do código é curto: uma função do relé, a definição de um interruptor e um loop() de uma linha só.

C++ (Arduino IDE)
1/*
2 * Salon lambası · BlueGrays IoT
3 * BlueGrays · bluegrays.com
4 * Bu kodu paylaşma: içinde cihaz anahtarın ve Wi-Fi şifren var.
5 * Do not share this code: it contains your device key and Wi-Fi password.
6 */
7
8#include <BlueGraysIoT.h>
9
10// Uygulama bu üç satırı senin bilgilerinle doldurur / The app fills these three lines with your details
11const char *DEVICE_KEY = "bgd_UYGULAMADAKI_ANAHTARIN";
12const char *WIFI_NAME = "EV_AGI_2_4_GHZ";
13const char *WIFI_PASSWORD = "WIFI_SIFREN";
14
15BlueGraysIoT bg(DEVICE_KEY);
16
17const int RELAY_PIN = 26;
18const bool RELAY_ACTIVE_LOW = true;  // çoğu röle modülü LOW ile çeker / most relay modules switch on LOW
19void setRelay(bool on) { digitalWrite(RELAY_PIN, (on != RELAY_ACTIVE_LOW) ? HIGH : LOW); }
20
21void setup() {
22  Serial.begin(115200);
23  pinMode(RELAY_PIN, OUTPUT);
24  setRelay(false);                  // açılışta lamba kapalı / lamp off at power-up
25  bg.onSwitch("lamba", setRelay);   // uygulamadaki "Lamba" anahtarı / the "Lamba" switch in the app
26  bg.setDebug(Serial);              // durum mesajları Seri Port Ekranı'na / status messages to the Serial Monitor
27  bg.setLanguage(BG_LANG_TR);
28  bg.begin(WIFI_NAME, WIFI_PASSWORD);
29}
30
31void loop() {
32  bg.loop();  // burada uzun delay() kullanma / avoid long delay() calls here
33}
34
LinhaFunção
#include Inclui a biblioteca; ela cuida do Wi-Fi, da conexão criptografada e da reconexão
DEVICE_KEY, WIFI_NAME, WIFI_PASSWORDChave do dispositivo (começa com bgd_), nome da rede de 2,4 GHz e senha; o app preenche
BlueGraysIoT bg(DEVICE_KEY)Cria o objeto bg com a chave; todos os outros comandos são dados por esse objeto
RELAY_PIN = 26Pino ligado ao terminal IN do relé; se você trocou o pino no passo 3, verá outro número aqui
RELAY_ACTIVE_LOW = trueA maioria dos módulos relé aciona com sinal LOW; se estiver testando com LED, use false, senão funciona invertido
setRelay(bool on)Quando on é true, escreve o nível ativo: LOW no módulo ativo em LOW, HIGH no outro
setRelay(false) (dentro do setup)A lâmpada começa desligada quando a placa liga
bg.onSwitch("lamba", setRelay)Chama a função setRelay com true ou false sempre que o interruptor Lâmpada do app muda
bg.setDebug(Serial)Escreve as mensagens de estado da conexão no Monitor Serial
bg.setLanguage(BG_LANG_TR)Mostra as mensagens de estado em turco
bg.begin(WIFI_NAME, WIFI_PASSWORD)Inicia a conexão com a rede Wi-Fi e com o servidor da BlueGrays
bg.loop()Processa os comandos recebidos e mantém a conexão viva; precisa ser chamado o tempo todo dentro do loop()
Não use delay() longo dentro do loop(). Se escrever delay(5000), a placa fica 5 segundos sem chamar bg.loop(). O comando do interruptor vindo do celular atrasa e a conexão pode até cair. Se precisar de temporização, use millis() como no próximo exemplo. Explicamos a lógica no texto Arduino millis() e delay().

Adicionar sensor: Estação ambiente (relé + DHT22)

Agora vamos ligar um DHT22 na mesma placa e enviar dados para o celular. Se você escolher o modelo “Estação ambiente” no app, além do interruptor da lâmpada aparecem os valores de temperatura (°C) e umidade (%) com gráficos. O DHT22 mede de -40 a 80 °C com precisão de cerca de ±0,5 °C. A umidade é medida na faixa de 0–100%, e o sensor pode ser lido no máximo uma vez a cada 2 segundos. Ligue o pino de dados no GPIO4, o VCC no 3V3 e o GND no GND. Comparamos o funcionamento da família DHT no texto Sensor de temperatura e umidade DHT11.

C++ (Arduino IDE)
1/*
2 * Oda istasyonu · BlueGrays IoT
3 * BlueGrays · bluegrays.com
4 * Bu kodu paylaşma: içinde cihaz anahtarın ve Wi-Fi şifren var.
5 * Do not share this code: it contains your device key and Wi-Fi password.
6 */
7
8#include <BlueGraysIoT.h>
9#include <DHT.h>
10
11const char *DEVICE_KEY = "bgd_UYGULAMADAKI_ANAHTARIN";
12const char *WIFI_NAME = "EV_AGI_2_4_GHZ";
13const char *WIFI_PASSWORD = "WIFI_SIFREN";
14
15BlueGraysIoT bg(DEVICE_KEY);
16
17const int RELAY_PIN = 26;
18const bool RELAY_ACTIVE_LOW = true;  // çoğu röle modülü LOW ile çeker / most relay modules switch on LOW
19void setRelay(bool on) { digitalWrite(RELAY_PIN, (on != RELAY_ACTIVE_LOW) ? HIGH : LOW); }
20DHT dht(4, DHT22);                   // DHT22 veri ucu GPIO4 / DHT22 data on GPIO4
21unsigned long lastReadMs = 0;
22
23void setup() {
24  Serial.begin(115200);
25  pinMode(RELAY_PIN, OUTPUT);
26  setRelay(false);
27  bg.onSwitch("lamba", setRelay);
28  dht.begin();
29  bg.setDeadband("sicaklik", 0.1);   // 0,1 °C değişmeden gönderme / send only after a 0.1 °C change
30  bg.setDeadband("nem", 1.0);        // %1 değişmeden gönderme / send only after a 1 % change
31  bg.setDebug(Serial);
32  bg.setLanguage(BG_LANG_TR);
33  bg.begin(WIFI_NAME, WIFI_PASSWORD);
34}
35
36void loop() {
37  bg.loop();  // burada uzun delay() kullanma / avoid long delay() calls here
38  if (millis() - lastReadMs >= 2000) {  // DHT22 en fazla 2 saniyede bir okunur / DHT22 reads at most every 2 s
39    lastReadMs = millis();
40    bg.send("sicaklik", dht.readTemperature());
41    bg.send("nem", dht.readHumidity());
42  }
43}
44

A parte do relé é igual à do primeiro código; há três novidades. A primeira é a linha bg.send("sicaklik", dht.readTemperature()): ela envia um valor da placa para o app, e o primeiro parâmetro é o nome da variável no app. A segunda é a linha bg.setDeadband("sicaklik", 0.1). Ela define a menor variação considerada: a temperatura só é reenviada quando muda 0,1 °C; para a umidade essa margem é 1%. A terceira é a verificação millis() - lastReadMs >= 2000 dentro do loop. O sensor é lido a cada 2 segundos, mas nesse meio-tempo o bg.loop() continua rodando sem espera. A biblioteca só envia o valor quando ele muda e não ultrapassa a taxa do plano. Entre dois envios da mesma variável passa no mínimo 1 segundo no plano grátis e 0,2 segundo no Premium. Esses limites são controlados no servidor; mudar os números no código não os ultrapassa. Se a temperatura do ambiente ficar em 23,4 °C por vários minutos, a placa não envia nada novo; quando chega a 23,5 °C, sai uma única mensagem. Com fio frouxo ou sem pull-up, a leitura fica inválida (NaN). Se o valor não chegar, verifique primeiro a ligação do GPIO4 e a alimentação.

O que você vê no celular?

  • Estado: no topo da tela do dispositivo aparece Online ou Offline e, logo abaixo, a informação “Último dado há …”. É aqui que você confirma primeiro se a placa está mesmo conectada.
  • Controles: no modelo de lâmpada aparece um interruptor liga/desliga. No modelo de fita RGB vêm o seletor de cor, o brilho de 0–100% e a escolha de efeito. No modelo de cortina há um controle deslizante de ângulo de 0–180°.
  • Valores ao vivo e gráficos: há os intervalos de 1 h, 24 h, 7 dias e 30 dias. Nas visões de 7 e 30 dias aparece a média por hora. O gráfico mostra os valores Mínimo, Máximo e Último. Enquanto a placa continua conectada, um novo ponto é adicionado a cada minuto.
  • Código e chave: aqui você também vê depois o código completo, a chave do dispositivo e os dados do Wi-Fi. Se precisar reprogramar a placa, copie o código daqui.
  • Gerar nova chave: use se alguém viu sua chave ou se você trocou de placa. A chave antiga perde a validade na hora; basta carregar o novo código na placa uma vez.
  • Remover dispositivo: o dispositivo e o histórico dos gráficos são apagados, e você recupera a vaga de dispositivo.

Grátis e Premium: quanto dá para usar?

O primeiro dispositivo é grátis. Para montar um interruptor de lâmpada ou uma estação ambiente com um ESP32, você não precisa de mais nada. Na estação ambiente, temperatura e umidade são duas variáveis separadas. No plano grátis, os valores ao vivo das duas chegam ao celular, mas o histórico do gráfico é guardado só para uma variável. As diferenças entre os planos estão abaixo; detalhes no texto O que o BlueGrays Premium desbloqueia?.

RecursoGrátisPremium
Número de dispositivos110
Variáveis com histórico de gráfico120
Duração do histórico24 horas30 dias
Intervalo mínimo entre dois envios da mesma variável1 segundo0,2 segundo

Comparação com os outros métodos

MétodoAcesso fora de casaO que você faz na configuraçãoPainel e gráficosQuando vale a pena?
Servidor web localNormalmente não, só na mesma redeEscrever o código do ESP32 e a página HTMLVocê mesmo desenhaPainel de controle doméstico sem internet
Bluetooth / BLENão, cerca de 10 mCódigo da placa e um app no celularDepende do app usadoLugares sem roteador, controle de perto
Bot do TelegramSimCriar o bot e escrever o códigoMensagens e botões, sem gráficoNotificações e comandos simples
BlynkSimTemplate, datastream, painel e códigoWidgets prontos e gráficosQuem quer desenhar o próprio painel
Arduino IoT CloudSimDefinir Thing e variáveis na conta Arduino e completar o códigoWidgets do dashboardQuem fica no ecossistema Arduino
BlueGrays IoTSimMontar o circuito e carregar o códigoControles e gráficos prontos conforme o modeloComeçar rápido e usar enquanto aprende

A escolha certa depende da sua necessidade. Se não houver internet nenhuma, Bluetooth ou servidor web local são as únicas opções. BlueGrays IoT, Blynk e Arduino IoT Cloud exigem que a placa e o celular tenham acesso à internet. Se você quer configurações flexíveis, como desenhar a interface do zero ou integrar ao Home Assistant, ESP32 MQTT e os painéis na nuvem oferecem mais opções. O BlueGrays IoT tem 8 modelos prontos. Em compensação, esquema do circuito, lista de componentes, código e interface do celular já vêm prontos e combinando entre si. Assim, enquanto aprende, a chance de errar em algum ponto diminui.

Segurança: chave, senha do Wi-Fi e código

  • A chave do dispositivo é a identidade da placa. Quem souber a chave que começa com bgd_ pode se passar pela sua placa. Por isso não compartilhe a chave em print de tela, fórum ou grupo de mensagens.
  • A senha do Wi-Fi fica no celular. A senha não é enviada ao servidor; já o nome da rede é guardado junto com o dispositivo para que o código possa ser mostrado de novo depois. Mas a senha está escrita dentro do código carregado na placa.
  • Não compartilhe o código. Como o próprio app avisa, o código contém sua chave do dispositivo e sua senha do Wi-Fi. Se for mostrar o código no fórum para pedir ajuda, apague antes as linhas DEVICE_KEY, WIFI_NAME e WIFI_PASSWORD.
  • A conexão é criptografada. O tráfego entre a placa e o servidor passa com TLS pela porta 443; ninguém na mesma rede consegue ler os comandos.
  • Na dúvida, gere uma nova chave. O botão Gerar nova chave invalida a chave antiga na hora. Se for passar a placa para outra pessoa, também gere uma nova chave ou remova o dispositivo.

Erros comuns e soluções

SintomaCausa provávelSolução
“Wi-Fi connected” nunca aparece no Monitor SerialRede de 5 GHz escolhida ou erro de maiúscula/minúscula na senhaDigite o nome da rede de 2,4 GHz; se as faixas do roteador tiverem o mesmo nome, separe; redigite a senha com cuidado
Nenhuma porta em Ferramentas › PortaCabo só de carga ou driver faltandoUse cabo de dados; instale o driver CP210x ou CH340 conforme o chip
O carregamento trava em “Connecting…”A placa não entra no modo de gravaçãoSegure o botão BOOT e solte quando a gravação começar; mais no texto Erro ao carregar código no Arduino
A compilação para com erros ligados ao core do ESP32Versão antiga 2.x do pacote esp32 instaladaAtualize para a versão 3.x no Gerenciador de Placas
“No such file or directory” (BlueGraysIoT.h, DHT.h, WebSockets) (arquivo não encontrado)Biblioteca ou dependências não instaladasReinstale a BlueGraysIoT e escolha “Instalar tudo”; busque a que faltar pelo nome
Caracteres estranhos no Monitor SerialVelocidade diferente de 115200Ajuste o Monitor Serial para 115200
Aparece “Wi-Fi connected”, mas não “BlueGrays IoT: connected”A rede não acessa a internet, a rede da empresa/escola bloqueia ou está carregado o código anterior à nova chaveTeste com o hotspot do celular; carregue o código atual da tela Código e chave
A placa reinicia quando o relé clicaAlimentação insuficiente (brownout)Use cabo de qualidade e fonte forte, alimente o relé pelo 5V; veja ESP32 brownout
O LED acende com o interruptor desligadoRELAY_ACTIVE_LOW ficou true, valor do reléSe estiver usando LED direto, use RELAY_ACTIVE_LOW = false
Sensor analógico dá sempre o mesmo valor com o Wi-Fi ligadoSensor ligado a um pino ADC2Use um dos pinos ADC1 (GPIO32–39); detalhes no texto O que é ADC?
Os valores de temperatura e umidade não chegamPino de dados do DHT22 no pino errado ou sem pull-upLigue o DATA no GPIO4 e o VCC no 3V3; no sensor avulso, acrescente pull-up de 10 kΩ

Ideias de projetos IoT com ESP32

Depois de montar uma vez o caminho entre placa, servidor e celular, adicionar um novo dispositivo leva poucos minutos. Comece pelo interruptor de lâmpada, depois veja os dados do DHT22 chegando ao celular e então passe para projetos maiores, como irrigação ou cortina. No app BlueGrays você encontra esses projetos IoT com ESP32 passo a passo, com esquema do circuito e código. Use o filtro de projetos IoT em Explorar e, pelo cartão “Configurar como dispositivo IoT” da página do projeto, conecte o mesmo circuito direto ao seu celular.

Perguntas frequentes

Como controlar o ESP32 pelo celular?

O ESP32 pode ser controlado pelo celular com servidor web local, Bluetooth, bot do Telegram ou painéis na nuvem. Com o BlueGrays IoT, você segue o caminho Minha oficina › Meus dispositivos › Adicionar dispositivo. Escolhe a placa e o modelo, informa os dados do Wi-Fi e carrega pela Arduino IDE o código preparado pelo Ohmi. Quando a placa se conecta, interruptores e valores aparecem no celular.

Dá para controlar o ESP32 pelo celular sem internet?

Com o BlueGrays IoT, não: a placa e o celular precisam estar conectados à internet, porque os comandos passam pelo servidor. Para controle sem internet, use Bluetooth (BLE) ou um servidor web no ESP32 funcionando na mesma rede.

Posso controlar o ESP32 de outra cidade?

Sim. Como a placa e o celular se conectam ao mesmo servidor, eles não precisam estar na mesma rede. A placa pode estar no Wi-Fi de 2,4 GHz de casa e o celular nos dados móveis. Não precisa de redirecionamento de portas, IP fixo nem servidor próprio.

O BlueGrays IoT é pago?

O primeiro dispositivo é grátis. O plano grátis inclui 1 dispositivo, histórico de gráfico de 1 variável e histórico de 24 horas. O Premium libera 10 dispositivos, histórico de gráfico de 20 variáveis e histórico de até 30 dias.

Devo controlar o ESP32 por Bluetooth ou por Wi-Fi?

O Bluetooth não precisa de internet nem de roteador, mas o alcance em ambientes internos costuma ficar em torno de 10 metros. Com controle via Wi-Fi e servidor, você comanda a placa de qualquer lugar do mundo, e gráficos e histórico ficam guardados. Se você está sempre em casa e não tem roteador, Bluetooth; se quer acesso remoto, Wi-Fi é melhor.

Quantos dispositivos posso conectar ao BlueGrays IoT?

Você pode adicionar 1 dispositivo no plano grátis e 10 no Premium. As placas compatíveis são ESP32 (Dev Module, WROOM, S3, C3) e Raspberry Pi Pico W. Ao remover um dispositivo, você recupera a vaga.

Ver todos os projetos
ESP32 Interruptor IoT de Lâmpada (Relé)
#372Iniciante
IoT

ESP32 Interruptor IoT de Lâmpada (Relé)

Ligue e desligue sua lâmpada pelo celular, onde você estiver. Este projeto é o guia passo a passo do modelo IoT Lâmpada com relé do app, montado com um ESP32 e um módulo relé e testado primeiro com um LED. Vá em Oficina › Dispositivos › Adicionar dispositivo e escolha Lâmpada com relé; o Ohmi prepara o código com a sua própria chave de dispositivo. O código desta página é um exemplo: a chave e os dados do Wi-Fi são valores de exemplo.

0.0(0)
ESP32 Estação IoT do Cômodo (Relé + DHT22)
#371Intermediário
IoT

ESP32 Estação IoT do Cômodo (Relé + DHT22)

Ligue a lâmpada pelo celular e veja a temperatura e a umidade do seu cômodo ao vivo, onde você estiver. Este projeto é o guia passo a passo do modelo IoT Estação do cômodo do app, com um ESP32, um módulo relé e um DHT22. Vá em Oficina › Dispositivos › Adicionar dispositivo e escolha Estação do cômodo; o Ohmi prepara o código com a sua chave de dispositivo. O código daqui é um exemplo: a chave e o Wi-Fi são valores de exemplo.

0.0(0)
1
ESP32 Rega IoT de Plantas (Sensor + Bomba)
#376Intermediário
IoT

ESP32 Rega IoT de Plantas (Sensor + Bomba)

A bomba liga sozinha quando a terra do vaso seca, e você acompanha a umidade do solo ao vivo no celular. Este projeto é o guia passo a passo do modelo IoT Umidade do solo + bomba do app, com um ESP32, um sensor de umidade do solo, um relé e uma mini bomba d'água. Vá em Oficina › Dispositivos › Adicionar dispositivo; o Ohmi prepara o código com a sua chave de dispositivo. O código daqui é um exemplo: a chave e o Wi-Fi são valores de exemplo.

0.0(0)
ESP32 Fita LED RGB IoT (WS2812B)
#374Intermediário
IoT

ESP32 Fita LED RGB IoT (WS2812B)

Controle a luz do cômodo pelo celular: escolha a cor, ajuste o brilho, ligue o efeito arco-íris ou respiração. Este projeto é o guia passo a passo do modelo IoT Fita LED RGB do app, montado com um ESP32 e uma fita WS2812B de 30 LEDs com três fios. Vá em Oficina › Dispositivos › Adicionar dispositivo e escolha Fita LED RGB; o Ohmi prepara o código com a sua própria chave de dispositivo. O código desta página é um exemplo: a chave e os dados do Wi-Fi são valores de exemplo.

0.0(0)
1
ESP32 Abridor de Cortina IoT (Servo SG90)
#378Intermediário
IoT

ESP32 Abridor de Cortina IoT (Servo SG90)

Toque em + ou − no celular e o servo gira para esse ângulo no mesmo instante: abra e feche uma cortina de maquete, a haste de uma persiana ou uma tampinha de onde você estiver. Este projeto é o guia passo a passo do modelo IoT Cortina com servo do app, com um ESP32 e um servo SG90, com só 3 fios. Vá em Oficina › Dispositivos › Adicionar dispositivo; o Ohmi prepara o código com a sua chave de dispositivo. O código daqui é um exemplo: a chave e o Wi-Fi são valores de exemplo.

0.0(0)
1
Pico W Temperatura e Umidade IoT (DHT22)
#373Iniciante
IoT

Pico W Temperatura e Umidade IoT (DHT22)

Acompanhe ao vivo no celular a temperatura e a umidade do cômodo, onde você estiver. Este projeto é o guia passo a passo do modelo IoT Temperatura e umidade do app, montado com um Raspberry Pi Pico W e um DHT22. Vá em Oficina › Dispositivos › Adicionar dispositivo, escolha Pico W como placa e Temperatura e umidade como modelo; o Ohmi prepara o código com a sua própria chave de dispositivo. O código desta página é um exemplo: a chave e os dados do Wi-Fi são valores de exemplo.

0.0(0)
1
Pico W Sensor IoT de Porta (Reed)
#375Iniciante
IoT

Pico W Sensor IoT de Porta (Reed)

A porta ou a janela ficou aberta? Confira no celular. Este projeto é o guia passo a passo do modelo IoT Porta / janela do app, montado com um Raspberry Pi Pico W, um sensor reed e um pequeno ímã. Vá em Oficina › Dispositivos › Adicionar dispositivo, escolha Pico W como placa e Porta / janela como modelo; o Ohmi prepara o código com a sua própria chave de dispositivo. O código desta página é um exemplo: a chave e os dados do Wi-Fi são valores de exemplo.

0.0(0)
Pico W Contador de Movimento IoT (PIR)
#377Iniciante
IoT

Pico W Contador de Movimento IoT (PIR)

Conte quantas vezes alguém passa por uma porta ou um corredor e veja o momento do movimento ao vivo no celular. Este projeto é o guia passo a passo do modelo IoT Detector de movimento do app, com uma Raspberry Pi Pico W e um sensor de movimento PIR, com só 3 fios. Vá em Oficina › Dispositivos › Adicionar dispositivo; o Ohmi prepara o código com a sua chave de dispositivo. O código daqui é um exemplo: a chave e o Wi-Fi são valores de exemplo.

0.0(0)