Controle o ESP8266 pelo smartphone usando Blynk

No post anterior sobre o Kit Módulo Wifi ESP8266 com anel de led RGB, mostramos como controlar o módulo de forma simples, criando um programa que alterava a cor dos leds em um certo intervalo de tempo. No post de hoje, vamos juntar o ESP8266 com o Blynk e controlar esse mesmo anel de leds pelo smartphone.

O Blynk é um aplicativo que permite o controle não só do ESP8266 mas também de placas como Arduino, Raspberry Pi, ESP32, Digistump, Wemos e diversos outros dispositivos usando Wifi ou Bluetooth.

Nele você pode criar por exemplo botões, sliders, timers e montar eficientes projetos de IoT e automação residencial. Confira aqui no blog outros posts que já fizemos usando Blynk.

O módulo ESP8266 ESP-01 com Neopixel

Como vimos no post anterior, o kit é composto por um cabo de conexão de 3 vias (que exige soldagem no anel de led), um anel de led com 16 leds endereçáveis WS2812 (muitas vezes também chamado de Neopixel), uma placa de controle e um módulo ESP-01S, que tem 1 MB de memória.

Para usar o conjunto você precisa soldar os fios no anel de leds, na seguinte sequência:

O pino D0 do anel de leds fica sem conexão, ok? Feita a soldagem dos fios, basta encaixar o cabo na placa de controle e alimentar o módulo com uma tensão entre 3.7 e 5 VDC depois que programarmos o ESP-01S.

Programando o ESP-01 na IDE Arduino

Para programar o ESP-01 eu usei este Adaptador USB ESP-Link para ESP8266 ESP-01, que é muito prático e não exige instalação de botões e outras conexões para colocar o ESP-01 em modo de programação: basta encaixar o ESP-01 no adaptador, colocar o adaptador na porta USB do computador e ele será reconhecido com uma porta COM/Serial dentro da IDE. É muito fácil de usar.

Para fazer com que a IDE do Arduino reconheça o ESP8266 ESP-01, acesse o menu Arquivo -> Preferências e coloque a seguinte URL no campo URLs Adicionais para Gerenciadores de Placas:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Isso faz com que as placas da linha ESP8266 estejam disponíveis no menu Ferramentas -> Placas. Ali, basta selecionar a opção Generic ESP8266 Module:

Com a placa configurada na IDE, vamos para a instalação das bibliotecas necessárias.

Bibliotecas Neopixel e Blynk

Para este projeto vamos usar as bibliotecas Neopixelbus e Blynk, instaladas a partir da IDE do Arduino.

Acesse o menu Sketch -> Incluir Biblioteca -> Gerenciar Bibliotecas. Dentro do Gerenciador de Bibliotecas, procure por Neopixelbus e clique em Instalar:

Faça a mesma coisa com a biblioteca Blynk:

Dúvidas na instalação da biblioteca? Confira o post Como instalar uma biblioteca na IDE Arduino.

Instalando e configurando o Blynk

Para controlar o anel de led RGB por WiFi usando um smartphone, vamos instalar o app Blynk, disponível neste link ou na loja de aplicativos do seu celular.

Instale o aplicativo e ao abrir ele vai solicitar um login ou a criação de uma conta usando um endereço de email e uma senha. Feito isso, é apresentada a tela inicial do Blynk, onde você vai escolher a opção New Project. Na tela seguinte, escolha um nome para o seu projeto e também o tipo de dispositivo que vai usar.

Para o nosso kit de ESP-01 com Neopixel, escolha ESP8266 e conexão por WiFi, como na imagem abaixo:

Ao selecionar Create, será apresentada uma tela informando que um token de autorização foi enviado para o seu endereço de email. Esse token nós vamos usar dentro do programa do ESP, para que este faça a comunicação com o Blynk.

Agora na tela de layout, vamos selecionar o widget que enviará o comando para a mudanças das cores do anel de leds. Selecione o botão de + (mais) na parte superior do aplicativo e em seguida procure e selecione o widget zeRGBa, que será mostrado na tela do projeto:

Precisamos agora configurar o zeRGBa para enviar os comandos corretos para o ESP8266. Selecione o widget e preencha a tela de configuração mudando a saída (Output) para Merge e no lugar de PIN selecione V1. Sua tela deve ficar como na primeira imagem. Para “rodar” o programa, selecione o ícone de “Play” no canto superior direito do projeto:

Com isso finalizamos a configuração do Blynk. Vamos para a última etapa, que é carregar o programa no ESP8266 ESP-01.

Programa controle ESP8266 e Blynk

O programa abaixo faz a comunicação entre o ESP-01 e o Blynk usando aquele token de autenticação que você recebeu por email, lembra?

O token vai na linha 8 do programa. Nas linhas 11 e 12 você deve colocar o nome e senha da sua rede wifi para que o ESP faça a conexão com a internet.

//Programa: Led enderecavel com ESP8266 ESP-01 e Blynk
//Autor: Arduino e Cia

#include <NeoPixelBus.h>
#include <BlynkSimpleEsp8266.h>

//Coloque abaixo o token de autorizacao recebido por email
char auth[] = "A2k3CLPjBSNV_OZ5sR22I33N55kR7nxK";

//Preencha com os dados da sua rede wifi
char ssid[] = "Nome da rede wifi";
char pass[] = "Senha da rede wifi";

//Numero de leds enderecaveis no anel de leds
const uint16_t PixelCount = 16;

//Pino de conexao (ignorado quando se usa ESP8266)
const uint8_t PixelPin = 2;

#define colorSaturation 128

//Modo DMA para ESP8266 - Usa GPIO3
//NeoPixelBus<NeoGrbFeature, NeoEsp8266Dma800KbpsMethod> strip(PixelCount, PixelPin);
//NeoPixelBus<NeoRgbFeature, NeoEsp8266Dma400KbpsMethod> strip(PixelCount, PixelPin);

//Modo UART para ESP8266 - Usa GPIO2
NeoPixelBus<NeoGrbFeature, NeoEsp8266Uart1800KbpsMethod> strip(PixelCount, PixelPin);
//NeoPixelBus<NeoRgbFeature, NeoEsp8266Uart1400KbpsMethod> strip(PixelCount, PixelPin);

RgbColor black(0);

void setup()
{
  Serial.begin(115200);
  //Inicializa a comunicacao com o Blynk
  Blynk.begin(auth, ssid, pass);
  //Inicializa os leds
  strip.Begin();
  strip.Show();
}

BLYNK_WRITE(V1)
{
  //Atualiza as variaveis r, g e b de acordo com os valores recebidos
  int r = param[0].asInt();
  int g = param[1].asInt();
  int b = param[2].asInt();
  RgbColor varios(r, g, b);
  for (int i = 0; i <=PixelCount ; i++)
  {
    strip.SetPixelColor(i, varios);
    strip.Show();
    delay(50);
  }
}

void loop()
{
  Blynk.run();
}

Agora basta você encaixar o ESP-01 no módulo, ligar a alimentação nos pinos Vcc e GND e em instantes será feita a conexão entre o ESP8266 e o Blynk. Ah, os dispositivos não precisam estar na mesma rede. Você pode ter o seu ESP conectado na rede Wifi de casa e o smartphone conectado na rede 4G por exemplo, e irá funcionar da mesma maneira.

Gostou? Confira outros posts usando ESP8266 aqui mesmo no Arduino e Cia!

5/5 - (1 voto)

Related posts

Comunicação sem fio com módulo PN532 NFC RFID

by Arduino e Cia
8 anos ago

Como usar o mini transmissor RF 433MHz com Arduino

by Arduino e Cia
3 anos ago

Programe o ESP32 em Python usando MicroPython

by Arduino e Cia
6 anos ago
Sair da versão mobile