Utilizando display OLED I2C no ESP8266

Displays são sempre úteis em projetos relacionados a Internet das Coisas (IoT). Por exemplo, supondo que estamos desenvolvendo alguma forma de monitoramento de temperatura com o ESP8266, qual a forma mais simples de ficar sabendo a temperatura atual? Creio que seja exibindo-a em um display, certo?

Sendo assim, o tutorial de hoje irá mostrar como utilizar um display OLED I2C de 0.96 polegadas, pode parecer pequeno, mas acredite, é possível inserir bastante informação nele.

O display que estou utilizando é o OLED com controlador SSD1306 com tamanho de 128×64 pixels, que utiliza barramento I2C, suportado pelos ESP-07, ESP-12, entre outros. O I2C é suportado pelo ESP8266, porém placas como a ESP-01 não disponibilizam este pino.

(mais…)

Conhecendo os módulos do NodeMCU

O NodeMCU é um firmware baseado no eLua para os dispositivos ESP8266. Se você deseja saber mais sobre o firmware recomendo a leitura do artigo NodeMCU: Lua para o ESP8266 que publiquei recentemente. Neste artigo o foco foi a apresentação do firmware e como fazer o flash do seu dispositivo.

Com o decorrer dos projetos que fazem uso do ESP8266 e NodeMCU, eventualmente será necessário criar um firmware com módulos que não fazem parte da distribuição padrão. Sendo assim, o artigo de hoje visa explicar brevemente o que é cada um dos módulos disponíveis. Builds customizadas podem ser feitas através do site NodeMCU custom builds.

(mais…)

Relógio RTC com o ESP8266

No artigo de hoje veremos como utilizar um RTC (Real Time Clock) com o dispositivo ESP8266. Este módulo incorpora funções Wi-Fi e foi pensado para projetos de baixo custo para mobilidade, eletrônicos vestíveis, Internet das Coisas (IoT), e o que sua criatividade permitir.

Este artigo pode ser um tanto quanto simples, mas utilizar um RTC (Real Time Clock) em um projeto é de grande importância as vezes. Principalmente quando desejamos monitorar algo em determinados horários. Vamos pegar um exemplo básico, supondo que você esteja monitorando a temperatura do ambiente, é interessante saber a hora da medição para calcular a variação de temperatura durante um determinado período. Sim, este é um exemplo simples, mas exemplifica claramente o uso de um RTC.

(mais…)

NodeMCU: Lua para o ESP8266

O NodeMCU é um firmware e kit de desenvolvimento que permite a programação de protótipos para a Internet das Coisas (IoT). O firmware utiliza o paradigma event-driven para facilitar o desenvolvimento de aplicações que necessitem acesso à Internet. Além disso, integra módulos de GPIO, 1-Wire, I2C, SPI, PWM, ADC, entre outros, para facilitar o manuseio de módulos baseados no chip ESP8266.

Na verdade, o NodeMCU é mais que um firmware, é a empresa por trás do NodeMCU Dev Kit, que além do firmware, disponibiliza uma placa de desenvolvimento baseada no ESP8266.

(mais…)

Primeiros passos com o ESP8266

Dando continuidade ao artigo sobre o ESP8266, hoje irei mostrar os primeiros passos com este módulo. O primeiro passo e o mais importante é colocar ele pra funcionar. 😀

Material necessário

Para a brincadeira de hoje, iremos necessitar de pelo menos um ESP8266, fique a vontade na escolha do seu módulo, eu irei utilizar o ESP-01 e o ESP-12. Além disso será necessário um módulo UART de 3.3v, um computador com uma porta USB disponível e algum programa para conversar serialmente, no meu caso irei utilizar a própria IDE do Arduino.

ESP-01 e ESP-12

Abaixo você pode conferir os meus ESPs montados.

Módulo UART

No meu caso o módulo usa o chip CP2102 e possui alimentação de 5 e 3.3v.


UART USB TTL CP2102

IDE Arduino

Caso você ainda não possua um aplicativo para comunicar com o ESP, eu sugiro a IDE do Arduino, que pode ser encontrar aqui.

Modos de Operação

O ESP permite que você conecte ele de duas formas, a primeira e mais comum é o modo de programação, onde é possível fazer upload de arquivos ou enviar comandos, tudo via serial. A outra forma é a de atualização de firmware (ou Flash). Esta por sua vez permite que você sobrescreva o firmware que vem no módulo. Dependendo o fabricante, as vezes nem é disponibilizado um firmware inicial, e você deve fazer o upload antes de iniciar o uso, mas isto é assunto para o próximo artigo.

Por padrão, nem sempre ocorre, os módulos ESP saem de fabrica com o firmware AT. Este firmware consiste em uma série de comandos básicos para o uso do módulo em si, mas não se compara ao NodeMCU, um firmware que permite que você programe o dispositivo em LUA, transformando ele em um mini Arduino com WiFi integrado. No caso do AT, é necessário o uso de um outro dispositivo para controlar o ESP, como é o caso dos shields Ethernet do Arduino. Mas com o NodeMCU, o ESP se torna auto gerenciável, bastando apenas fazer upload de um script LUA com o código a ser executado.

Confira abaixo como conectar o módulo UART no ESP para usá-lo nos modos de programação a atualização de firmware.

Conexão

Lembre-se que estas conexões mudam de acordo com o ESP e o módulo UART escolhido, então não nos comprometemos com os passos a seguir, faça por sua conta e risco. Lembre-se também de usar a voltagem correta.

A conexão básica funciona assim:

ESP UART
RX -> TX
TX -> RX
VCC -> VCC
CH_PD -> VCC
GND -> GND

Abaixo você pode observar as conexões específicas, pois além destes pinos, outros são necessários para o funcionamento.

ESP-01

Abaixo você pode observar os pinos do ESP-01.

ESP-01 Pins

Programação

Não necessita pinos adicionais.

Flash

Para entrar no modo de atualização de firmware, você deve conectar o GND ao GPIO0. Confira imagem abaixo:

ESP-01 UART Flash

ESP-12

Abaixo você pode observar os pinos do ESP-12.

ESP-12 Pins

Programação

No modo de programação ainda é necessário conectar o pino GND ao GPIO15. Confira imagem abaixo:


ESP-12 Pins

Flash

Para entrar no modo de atualização de firmware, você deve conectar o GND ao GPIO0. Confira imagem abaixo:


ESP-12 Pins to Flash

Comunicação Serial

Agora que já temos o nosso ESP pronto para ser ligado ao PC, vamos ao que interessa, enviar comandos básicos com o firmware AT.

Após abrir a IDE do Arduino vá em Tools > Port e escolha a porta USB onde está o UART. Depois disto, vá em Tools > Serial Monitor. Você deverá ver uma tela como esta:

Arduino Serial Monitor

Agora vamos configurar a comunicação. Por padrão a velocidade é 9200 baud e o fim de linha é Both NL & CR, como mostrado acima, mas caso você tenha problemas, tente mudar estes valores.

Depois de configurar vamos aos comandos básicos:

Comando Valores Descrição Exemplo
AT N/A Verifica se o ESP está OK AT
AT+RST N/A Reinicia o ESP AT+RST
AT+CWMODE 1 = Station, 2 = AP, 3 = Ambos Define o modo de operação WiFI AT+CWMODE=3
AT+CWLAP N/A Lista as redes disponíveis AT+CWLAP
AT+CWJAP SSID, Senha, Canal, Criptografia Conecta a uma rede AT+CWJAP=”seu SSID”,”sua senha”
AT+CWQAP N/A Desconecta da rede AT+CWQAP
AT+CIPSTATUS N/A Retorna o status do WiFi AT+CIPSTATUS
AT+CWJAP? N/A Verifica qual rede conectada AT+CWJAP?
AT+CIFSR N/A Retorna o IP do ESP na rede AT+CIFSR

O comando mais básico a ser executado é o AT. Ao executar um comando você tem duas possíveis respostas:

  • OK – O seu comando foi executado com sucesso
  • ERROR – Erro no comando. Ou ele não existe, ou está com parâmetro errado

Se você executou o AT e não teve nenhum dos dois retornos, talvez você esteja em uma destas situações:

  • Você fez a conexão dos pinos errada
  • O seu ESP pode estar operando em outra velocidade
  • O seu ESP não possui firmware, ou veio com outro que não é o AT

Se o seu retorno for algum texto diferente, pode ser outro firmware. Se o texto for caracteres estranhos, provavelmente é a velocidade de comunicação muito elevada.

Espero que este artigo possa ajudar você no mais básico processo de comunicação. Nas próximas publicações mostrarei como alterar o firmware e fazer algumas brincadeiras com LEDs.

Até a próxima.

Conheça o ESP8266: Um módulo WiFi por menos de 5 dólares

O ESP8266 é uma solução para a Internet das Coisas (IoT). Ele não é apenas um módulo WiFi que pode ser conectado ao Arduino, mas sim um System-on-a-chip (SoC). Ou seja, ele é uma solução completa para quem deseja criar um dispositivo que necessite conexão WiFi.

Para fazer esse trabalho, o ESP8266 possui uma memória Flash interna que pode ser utilizada para armazenar arquivos, uma memória interna para o Firmware, uma antena embutida e portas GPIO.

A quantidade de GPIOs varia de acordo com o modelo escolhido. Você pode encontrar modelos com 1 até 10 GPIOs.

Modelos ESP8266

Principais características

  • Suporte a 802.11 b/g/n
  • Wi-Fi Direct (P2P), Soft-AP
  • SDIO 2.0, SPI, UART
  • STBC, 1×1 MIMO, 2×1 MIMO
  • Consumo em Standby menor que 1.0mW (DTIM3)
  • Suporte para antenas
  • Protocolo TCP/IP embutido

Confira a lista completa das características aqui.

Principais aplicações

  • Automação doméstica
  • Câmera IP
  • Controle via Web de sensores
  • Eletrônicos vestíveis
  • Localização de dispositivos

A grande vantagem deste módulo é o seu preço extremamente baixo. Por exemplo, eu comprei 5 ESP-12 por 15 dólares. Outra vantagem é o seu tamanho reduzido. Se compararmos a um Arduino, além do preço ser bem mais salgado o tamanho nem sempre é pequeno, dependendo do modelo escolhido.

Outro item que chama a atenção é a possibilidade de alteração do Firmware padrão AT, por um Firmware Lua ou MicroPython. Ou seja, você programa em Lua, faz upload do seu arquivo e o ESP8266 ficará executando este script, muito similar ao Arduino.

Se minha proposta de TCC for aceita, eu utilizarei este dispositivo como base para o meu projeto. 🙂

Se você está esperando uma opinião pessoal sobre este módulo, só tenho a dizer que recomendo. Existem inúmeras possibilidades do que pode ser criado com ele. Se você gosta de IoT você precisa de no mínimo 2 desses. Pelo seu baixo custo, mesmo com o dólar em alta, ainda assim é possível comprar vários. Infelizmente no Brasil o preço dele não é justo, além de não existir todos os modelos. Se você costuma comprar coisas da China, você encontra ele por 2 dólares a unidade. No Brasil é vendido a 35 reais.

Nas próximas publicações irei demonstrar como fazer o Flash deste dispositivo e utiliza Lua para sua programação. Se você gostou do ESP8266 não deixe de ficar ligado no nosso blog.