Escolar Documentos
Profissional Documentos
Cultura Documentos
Modulos ESP8266
Modulos ESP8266
O módulo ESP8266 ESP-01 é o módulo mais comum da linha ESP8266. Ele é compacto (24,8 x 14,3
mm), e possui dois pinos GPIO que podem ser controlados conforme a programação. O ESP-01 pode ter
o firmware regravado e/ou atualizado, conforme mostramos no post Upgrade de Firmware do Módulo
ESP8266, utilizando interface serial. Uma pequena desvantagem desse tipo de módulo é a disposição
dos pinos, que dificultam a utilização em uma protoboard, mas você pode facilmente utilizar
um adaptador para módulo wifi ESP8266 ESP-01 ou jumpers macho/fêmea, por exemplo.
O módulo ESP8266 ESP-07 também é um módulo compacto (20 x 16mm), mas com um layout
diferente, sem os pinos de ligação. O módulo conta com uma antena cerâmica embutida, e também um
conector U-Fl para antena externa. Esse módulo tem 9 GPIOS, que podem funcionar como pinos I2C,
SPI e PWM. O layout do módulo permite que ele seja integrado facilmente à uma placa de circuito
impresso, muito utilizada em projetos de automação residencial.
O módulo ESP8266 ESP-201 é um módulo um pouco mais fácil de usar em termos de prototipação, pois
pode ser montado em uma protoboard. Os 4 pinos laterais, que são responsáveis pela comunicação
serial, atrapalham um pouco esse tipo de montagem, mas você pode soldar esses pinos no lado oposto
da placa, ou utilizar algum tipo de adaptador. O ESP-201 possui 11 portas GPIO, antena embutida e
conector U-FL para antena externa. A seleção da antena é feita modificando um jumper (um resistor de 0
(zero) ohms) na parte superior da placa, ao lado do conector U-FL.
O Módulo ESP8266 NodeMCU ESP-12E é uma placa de desenvolvimento completa, que além do chip
ESP8266 conta com um conversor TTL-Serial e um regulador de tensão 3.3V. É um módulo que pode
ser encaixado diretamente na protoboard e dispensa o uso de um microcontrolador externo para operar,
já que pode ser facilmente programado utilizando LUA. Possui 11 pinos de GPIO (I2C, SPI, PWM),
conector micro-usb para programação/alimentação e botões para reset e flash do módulo. Como
podemos ver na imagem, o NodeMCU vem com um ESP-12E com antena embutida soldado na placa.
Para ver como dar os primeiros passos com o NodeMCU, veja o post Como programar o módulo
ESP8266 NodeMCU.
ESP8266 NodeMCU
No lado oposto, temos o ESP-12E e sua antena embutida, já soldado na placa. Nas laterais temos os
pinos de GPIO, alimentação externa, comunicação, etc.
No Windows 7, a instalação e download de drivers foi feita de forma automática, e um dispositivo USB-
TTL CH340 foi adicionado ao gerenciador de dispositivos. No nosso caso, foi atribuida a porta COM29:
Vamos programar o módulo utilizando o Lua, e isso pode ser feito, à princípio, de duas maneiras.
Programando o ESP8266 NodeMCU pela serial
Nesse método, vc pode utilizar um programa de terminal, como o Termite (download), para enviar os
comandos diretamente para o módulo. Vamos montar primeiro um pequeno circuito para teste, que
servirá para todos os exemplos deste post:
Conecte o módulo ao computador utilizando o cabo USB e entre no Termite (ou outro programa à sua
escolha), selecionando a velocidade de 9600. Pressione o botão de reset no módulo e aguarde a
exibição das informações sobre o firmware da placa:
Em seguida, digite no terminal o seguinte comando, que vai definir a porta 5 como saída. Pressione
ENTER após cada comando para que ele seja enviado ao NodeMCU:
gpio.mode(1, gpio.OUTPUT)
gpio.write(1, gpio.HIGH)
Para piscar o led, crie um pequeno loop com essa série de comandos:
while 1 do
gpio.write(1, gpio.HIGH)
tmr.delay(1000000)
gpio.write(1, gpio.LOW)
tmr.delay(1000000)
end
Essa rotina vai fazer com que o led pisque a cada 1 segundo. Você logo vai notar que não é possível
parar o programa por meio de comandos, e essa rotina vai rodar continuamente. Para parar o loop e
reiniciar o módulo, pressione o botão RST.
Com o ESPlorer você pode abrir diversas abas e programas ao mesmo tempo, salvar os programas em
disco, formatar (zerar) o módulo, e muitas outras funções.
Ao abrir o ESPlorer, temos no lado esquerdo uma área onde vamos escrever o(s) programa(s), e na
direita o/a console, onde podemos acompanhar em tempo real a comunicação com o NodeMCU:
Utilizando o exemplo do loop feito anteriormente, copie os comandos para a janela do lado esquerdo da
tela, e em seguida clique no botão Send to ESP para enviar a programação para o NodeMCU:
Agora além de controlar o módulo, você tem a opção de salvar o programa para uso posterior.
O programa configura o módulo para o modo station (estação) na linha 5, depois configura a GPIO como
saída utilizando o comando gpio.mode. Para acessar a página web, você vai precisar do endereço IP
atribuído ao módulo. No nosso caso o IP foi o 192.168.0.25.
Para descobrir o endereço IP, acesse o ESPplorer , selecione a opção =wifi.sta.getip() conforme a
imagem abaixo e clique em SEND para que o endereço IP do módulo seja mostrado na console.
Acesse então o browser, digite o endereço IP e a página web do ESP8266 será exibida:
Guia completo do NodeMCU – ESP12 – Introdução
D0 – pino GIPO_16 pode ser usado para acordar (WAKE UP) o ESP8266
em modo sono profundo (Deep sleep mode).
D1 – pino GPIO_5 – entrada ou saída.
D2 – pino GIPO_4 – entrada ou saída.
D3 – pino GPIO_0 é usado também para controlar o upload do programa
na memória Flash. Esta conectado no botão FLASH.
D4 – pino GPIO_2 – UART_TXD1 quando carregando o programa na
memória FLASH
D5 – pino GPIO_14 pode ser usado em SPI de alta velocidade (HSPI-
SCLK)
D6 – pino GPIO_12 pode ser usado em SPI de alta velocidade (HSPI-
MISO)
D7 – pino GPIO_13 pode ser usado em SPI de alta velocidade (HSPI-
MOSI) ou UART0_CTS.
D8 – pino GPIO_15 pode ser usado em SPI de alta velocidade (HSPI-CS)
ou UART0_RTS.
RX – pino GPIO_3 – U0RXD quando carregando o programa na memória
FLASH.
TX – pino GIPO_1 – U0TXD quando carregando o programa na memória
FLASH.
Sketch ESP8266_ScanWIFI.ino
NodeMCU-ESP12 scan WIFI
Arduino
/* Pesquisa de Redes WIFI usando o NodeMCU-ESP12
1 Arduino IDE 1.8.5 - ESP8266
2 Gustavo Murta 07/mar/2018
3 baseado em
4 https://arduino-esp8266.readthedocs.io/en/2.4.0/esp8266wifi/scan-class.html
5 Blog Eletrogate http://blog.eletrogate.com/nodemcu-esp12-usando-arduino-ide-2/
6*/
7#include "ESP8266WiFi.h"
8
9 void setup()
10 {
11 Serial.begin(115200); // configura monitor serial 115200 Bps
12 Serial.println(); // imprime uma linha
13 WiFi.mode(WIFI_STA); // configura rede no modo estacao
14 WiFi.disconnect(); // desconecta rede WIFI
15 delay(100); // atraso de 100 milisegundos
16 }
17
18 void prinScanResult(int networksFound)
19 {
20 Serial.printf("\n"); // imprime uma linha
21 Serial.printf("%d redes encontradas\n", networksFound); // imprime numero de redes
22 encontradas
23 for (int i = 0; i < networksFound; i++) // contagem das redes encontradas
24 {
25 Serial.printf("%d: %s, Ch:%d (%ddBm) %s\n", i + 1, WiFi.SSID(i).c_str(), WiFi.channel(i),
26 WiFi.RSSI(i), WiFi.encryptionType(i) == ENC_TYPE_NONE ? "aberta" : "");
27 }
28 }
29
30 void loop()
31 {
32 WiFi.scanNetworksAsync(prinScanResult); // imprime o resultado
33 delay(500); // atraso de 0,5 segundos
}
Console da Arduino IDE – ESP8266 (115200 Bps) :
(clique no botão Monitor serial e altere a velocidade para 115200 Bps na barra
inferior da janela) )
Exemplo – redes encontradas em minha residência .
Nomes das Redes, canal WIFI usado e o nível de transmissão em dBms.
b.st1.ntp.br 201.49.148.135
c.st1.ntp.br 200.186.125.195
d.st1.ntp.br 200.20.186.76
b.ntp.br 200.189.40.8
c.ntp.br 200.192.232.8
Para rodar o Sketch, será necessário instalar uma Biblioteca que não esta
instalada na Arduino IDE. Boa oportunidade para aprender como instalar uma
nova Biblioteca !
Conecte o NodeMCU ESP-12 no seu computador. Abra a Arduino IDE e veja se
a configuração da placa esta correta. Para instalar a nova Biblioteca, clique
em Sketch > Incluir Biblioteca > Gerenciar Bibliotecas .
Aplicativo TELEGRAM:
Ao estudar sobre IOT para desenvolver esse tutorial, fiquei em dúvida sobre
qual plataforma IOT eu usaria. Existem centenas de Plataformas IOT, e cada
uma tem um jeito de usá-la. Não existe ainda uma Plataforma muito popular ou
padrão. Essa Tecnologia é nova e está em pleno desenvolvimento.
Por isso escolhi usar o TELEGRAM . TELEGRAM é um aplicativo de troca de
mensagens concorrente do Whatsapp. Você pode usar o aplicativo no
smartphone (Android e IOS) e também no seu PC (Windows, MAC ou Linux) !
O uso é grátis e muito simples ! E para ajudar na escolha, o TELEGRAM tem
um BOT que permite fazer a conexão IOT . É muito legal e fácil de usar.
Definição de BOT – Wikipedia:
“Bot, diminutivo de robot, também conhecido como Internet bot ou web robot, é
uma aplicação de software concebida para simular ações humanas repetidas
vezes de maneira padrão, da mesma forma como faria um robô.”
Plataforma TELEGRAM BOT
Com o BOT do TELEGRAM , você poderá receber mensagens dos dispositivos
(nesse caso, o NodeMCU) e enviar comandos, através do seu Smartphone ou
PC !
Instalando o TELEGRAM:
Se você usa um Smartphone Android ou um IPHONE, instale o aplicativo
através da Google Play ou da Apple Store:
TELEGRAM na Google Play
TELEGRAM na Apple Store
Após a instalação do TELEGRAM, se preferir usar a língua portuguesa, entre
em Configurações > Idioma e altere para Portugês (Brasil). O Menu fica na parte
superior lado esquerdo ( três riscos). Crie o seu usuário – o uso é grátis.
Para facilitar a instalação e configuração do TELEGRAM BOT , instale o
Aplicativo Desktop também no seu PC :
TELEGRAM para Windows, MAC e LINUX
No Telegram Desktop para alterar para português, entre em Configurations>
change language.
Após a instalação e configuração do TELEGRAM , vai descobrir que muitos
amigos e conhecidos seus já são usuários do TELEGRAM. Da forma que você
pode conversar com os seus amigos, você poderá “conversar” também com
o BOT, através de comandos. No link abaixo, você poderá entender melhor
como funciona o BOT.
BOTs – introdução para desenvolvedores
Para instalar a nova Biblioteca, clique em Sketch > Incluir Biblioteca > Gerenciar
Bibliotecas . Na janela do Gerenciador de Bibliotecas, refine a busca
digitando arduinojson. Clique em more info e depois em instalar.
Copie o Sketch acima na Arduino IDE. Conecte a placa NodeMCU no seu PC.
Certifique-se que ela foi reconhecida. Após compilar e carregar o programa
no NodeMCU-ESP12 (clique no botão Carregar), abra a janela da console
(Serial Monitor) da IDE. Clique no botão Monitor serial e altere a velocidade
para 115200 Bps na barra inferior da janela.
No aplicativo TELEGRAM, procure pelo nome do seu usuário BOT . No meu
caso GustESP8266. Clique no nome para abrir a janela de comunicação. Clique
em Começar para inicializar o Alarme. Sempre que executar algum comando,
aguarde alguns segundos para obter a resposta !
Comandos do Alarme Residencial IOT (pode clicar em cima dos comandos já
digitados) :
/alarmeon : para ativar Alarme
/alarmeoff : para desativar Alarme
/status : mostra o estado do Alarme
/start : para reiniciar o Alarme
Essa é uma tela do TELEGRAM para exemplificar o uso do Alarme. Ativei o
Alarme clicando em Começar. Apertei o botão do sensor – Alarme foi
disparado e o LED azul acendeu. Dei o comando de /status e apareceu as
mensagens : Alarme Ativado e Alarme Disparado ! Dei o
comando /alarmeoff para desativar o alarme. Para ativar novamente o alarme,
dê o comando /alarmeon.
Através da Console da Arduino IDE (Monitor Serial), poderá monitorar todas as
atividades do Alarme Residencial IOT (fase de testes).