Primeiros passos com ESP8266

ESP8266, um System-on-Chip (SoC) fabricado pela ESpressif, é a plataforma de desenvolvimento de IoT mais popular e é uma solução de rede Wi-Fi completa e independente. O SoC consiste em um microcontrolador Tensilica L106 de 32 bits e um transceptor Wi-Fi. Portanto, o chip pode ser usado para auto-hospedar uma IoT ou aplicativo incorporado ou descarregar funções de rede Wi-Fi para outro microcontrolador ou computador de placa única. Existem muitas placas de desenvolvimento baseadas em ESP8266. Todas essas placas têm o chip ESP8266 SoC em seu coração. Essas placas de desenvolvimento podem ser usadas apenas como um adaptador Wi-Fi ou como um microcontrolador de placa única com recursos de rede Wi-Fi.

Placa de desenvolvimento ESP8266

Exemplo de placa de desenvolvimento ESP8266

O próprio microcontrolador on-chip fornece 17 GPIO (entrada/saída de uso geral) e uma entrada analógica ADC de 10 bits. O SoC possui quatro interfaces PWM habilitadas apenas por software. O chip é habilitado com uma interface SPI, uma interface I2C, duas interfaces UART e uma interface de controle remoto IR para comunicação de dados serial. Portanto, uma placa de desenvolvimento ESP8266 cuidadosamente selecionada tem tudo o que qualquer microcontrolador de placa única capaz deve ter. A capacidade adicional de rede Wi-Fi permite que uma placa de desenvolvimento baseada em ESP8266 se conecte a uma rede Wi-Fi, conecte-se à Internet, hospede um servidor web e implemente aplicativos IoT completos habilitados para Wi-Fi.

Ao auto-hospedar um aplicativo incorporado/IoT, o SoC requer um flash externo para inicializá-lo diretamente. Quando usado como um adaptador Wi-Fi, o chip pode ser conectado a um microcontrolador de placa única ou a um computador de placa única usando SPI, I2C ou UART.

O SoC ESP8266 foi projetado para tecnologia de consumo ultrabaixo. Ele foi projetado considerando aplicações em eletrônicos vestíveis, dispositivos móveis e Internet das Coisas. O chip pode operar em três modos – ativo, suspensão e suspensão profunda. No modo de suspensão profunda, o chip consome apenas 60 uA e, no modo de suspensão, consome menos de 1,0 mA e 0,5 mA enquanto permanece conectado a um ponto de acesso Wi-Fi. O SoC possui um relógio em tempo real integrado e um temporizador de vigilância, que permanecem ativos no modo de suspensão. O RTC integrado pode ser programado para ativar o ESP8266 em qualquer intervalo necessário ou quando uma condição específica for detectada. Dessa forma, um dispositivo baseado em ESP8266 pode ser programado para permanecer no modo de espera de baixo consumo de energia até que o Wi-Fi seja necessário.

ESP8266, uma solução de microcontrolador habilitado para WiFi de baixo consumo de energia, é perfeita para projetar eletrônicos vestíveis alimentados por bateria e dispositivos IoT portáteis/móveis.

Recursos do ESP8266

Alguns dos recursos mais notáveis ​​do SoC ESP8266 são os seguintes.

  • 11 b/g/n
  • Wi-Fi 2,4 GHz com segurança WPA/WPA2
  • Wi-Fi Direct (estação P2P), SoftAP, estação SoftAP+
  • Pilha de protocolo TCP-IP integrada
  • Suporta protocolos de rede IPv4, TCP/UDP/HTTP/FTP
  • Diversidade de antenas (externa, rastreamento de PCB, chip cerâmico, conector IPEX)
  • Suporta modos de operação STA/AP/STA+AP
  • GPIO, SDIO 2.0, SPI, I2C, UART, I2S, controle remoto IR, PWM
  • ADC integrado de 10 bits
  • Switch TR integrado, balun, LNA, amplificador de potência e rede correspondente
  • Regulador de energia integrado, PLL e unidades de gerenciamento de energia
  • Suporta link inteligente para dispositivos Android e iOS
  • Configurável via conjunto de instruções AT, Cloud Server, aplicativos Android e iOS
  • Suporte ao desenvolvimento de servidores em nuvem, bem como SDK para desenvolvimento de firmware personalizado
  • O firmware pode ser atualizado através de download UART e também OTA (via rede Wi-Fi)
  • Suporta criptografia WEP/TKIP/AES
  • Microcontrolador integrado de baixa potência de 32 bits
  • Baixo consumo de energia, menos de 10uA em sono profundo e ponto de acesso vazio
  • Acorde e transmita pacotes em menos de 2 ms
  • Ampla faixa de temperatura operacional -40˚C a 125˚C

Módulos ESP8266

Existem vários módulos baseados em ESP8266. Estes são módulos independentes ou placas de desenvolvimento completas. Os módulos independentes geralmente contêm apenas o SoC ESP8266 e os componentes necessários para executá-lo. A maioria dos módulos independentes está disponível como série ESP-NN (ESP01 a ESP14) do fornecedor AI-Thinkers. Um módulo independente ESP-WROOM-02 está disponível na própria Espressif. Outros módulos independentes estão disponíveis em outros fornecedores, como Wireless-tag, Olimex, Smarttime e Qilianer. A tabela a seguir lista e compara os módulos ESP8266 independentes disponíveis.

Esses módulos independentes servem apenas como um adaptador Wi-Fi ou uma placa de desenvolvimento de microcontrolador habilitado para Wi-Fi. Esses módulos variam em tamanho, pinos quebrados, recursos expostos no chip, tipo de antena e memória flash. Um SoC ESP8266 básico requer uma memória flash externa, circuito de redefinição e programa, circuito de habilitação de chip, fonte de alimentação do regulador de tensão 3.3 e um adaptador USB para serial. Todos esses recursos necessários podem estar integrados em um módulo ou alguns podem ser fornecidos externamente.

As placas de desenvolvimento baseadas em ESP8266 possuem todos os circuitos necessários com ou sem interface USB para programação. Algumas placas de desenvolvimento ESP8266 populares estão disponíveis na Adafruit, SparkFun, NodeMCU e AI Thinkers. As tabelas a seguir listam recursos notáveis ​​de algumas dessas placas de desenvolvimento ESP8266.

As placas de desenvolvimento ESP8266 podem ser divididas em duas categorias:

  1. Placas de desenvolvimento ESP8266 com interface USB: Essas placas de desenvolvimento possuem uma interface USB para programação. Eles possuem todos os circuitos necessários integrados e não requerem nenhuma configuração de circuito externo. Alguns exemplos de tais placas de desenvolvimento incluem SparkFun ESP8266 Thing, Adafruit Feather HUZZA, SparkFun Blynk Board e algumas das placas AI Thinker ESP-NN. Quando essas placas são conectadas a um computador desktop via cabo USB, elas aparecem no gerenciador de dispositivos no PC com Windows ou no lsusb em um sistema Linux. Eles possuem um regulador de 3,3 V integrado e podem ser programados diretamente através de uma interface USB. Essas placas de desenvolvimento não requerem nenhum circuito externo para configuração e operação. No máximo, pode ser necessário soldar os pinos do cabeçalho ou deixar o cabeçalho já soldado.
  2. Placas de desenvolvimento ESP8266 sem interface USB: Essas placas de desenvolvimento requerem um adaptador USB para serial para programação. A placa pode ter regulador de 3,3V ou nem ter. Além do regulador de 3,3 V e do adaptador USB para serial, a placa requer um circuito externo para habilitar o chip e adicionar um botão de reset e programação.

O conversor USB para serial deve operar a 3,3V. Se o adaptador USB para serial operar a 5V, ele danificará a placa de desenvolvimento ESP8266. O adaptador USB para serial mais popular usado com placas de desenvolvimento ESP8266 é o FTDI FT232RL, pois pode ser alternado entre operação de 5V e 3V3.

Para conectar o adaptador USB para serial com a placa de desenvolvimento ESP8266, conecte o aterramento, o pino RX, o pino TX e o pino DTR (se disponível) do adaptador USB para serial aos pinos terra, TX, RX e DTR do Chip ESP8266.

Se a placa de desenvolvimento ESP8266 não tiver um regulador de 3,3 V integrado, a alimentação de 3,3 V pode ser fornecida através da saída de 3,3 V do Arduino ou usando LM1117-3.3. A saída de 3,3 V da maioria das placas Arduino não é poderosa o suficiente para acionar uma placa de desenvolvimento ESP. Portanto, é melhor fornecer energia via LM1117-3.3. O LM1117-3.3 deve ser conectado conforme a seguir para fornecer energia a uma placa ESP8266.

Diagrama de circuito do regulador de tensão LM1117 3,3V para placa ESP8266.

Diagrama de circuito para redefinir, habilitar e programar o ESP8266.

Para habilitar o chip ESP8266, conecte o pino CH_PD (Chip Enable/Chip Power Down) ao VCC através de um resistor de 10K. Desative a inicialização do cartão SD conectando o GPIO15 ao terra por meio de um resistor de 10K. Selecione o modo de inicialização normal conectando GPIO0 ao VCC por meio de um resistor de 10K. Para evitar reinicialização aleatória, conecte o pino RST ao VCC através do resistor de 10K. O GPIO2 deve permanecer desconectado. Conecte um botão entre o pino RST e o terra para adicionar um botão de reinicialização. Conecte o GPIO0 ao terra através do resistor de 470Ω para adicionar um botão de programa. O GPIO0 deve ser reduzido ao programar o ESP8266. O circuito de habilitação, reinicialização e programação do chip para a placa de desenvolvimento ESP8266 é mostrado abaixo.

Programando placas de desenvolvimento ESP8266

A programação da placa de desenvolvimento ESP8266 requer o carregamento de firmware nela. Existem basicamente três métodos para programar placas de desenvolvimento ESP8266. Não existe uma, mas várias maneiras pelas quais a placa de desenvolvimento ESP8266 pode ser programada.

  1. Usando Arduino IDE – Arduino fornece um plugin de terceiros para usar Arduino IDE para diferentes CPUs. Ele usa o conjunto de ferramentas Xtensa GCC, disponível no Github como esp8266/Arduino. Ele também fornece ESPTool para fazer upload de arquivos hexadecimais (esboços/códigos de aplicativos) para o SoC ESP8266. Depois que o URL do gerenciador da placa for adicionado ao menu de configuração de preferências do IDE e a placa ESP8266 for instalada em Ferramentas-> Placas-> Gerenciador de placa, o código da placa de desenvolvimento ESP8266 pode ser escrito, editado, compilado e carregado a partir do IDE do Arduino. como é feito para as placas Arduino.
  2. Configure o conjunto de ferramentas GCC e o SDK manualmente: um conjunto de ferramentas de código aberto para placas de desenvolvimento ESP8266 está disponível no Github. Este conjunto de ferramentas pode ser usado para criar um arquivo de firmware personalizado para você. A cadeia de ferramentas é executada apenas em um host Linux ou pode ser executada em outros sistemas de desktop usando uma máquina virtual Linux.
  3. Usando conjuntos de ferramentas personalizados pré-construídos: Alguns conjuntos de ferramentas personalizados pré-construídos estão disponíveis e podem ser baixados diretamente como firmware ESP8266 e, em seguida, esboços (códigos de aplicativo) podem ser atualizados para ESP8266 para esse firmware. Algumas das ferramentas populares para placas de desenvolvimento ESP8266 são as seguintes –
  • Fonte de firmware Espressif
  • Firmware de comando AT ESP8266 da Electrodragon
  • Firmware do comando Espressif AT
  • Firmware NodeMCU para execução de scripts LUA no ESP8266
  • Firmware MicroPython, para executar scripts Python 3 no ESP8266 e vários outros microcontroladores
  • SDK modificável para executar Javascript padrão 2020 em ESP8266, ESP32 e alguns outros microcontroladores
  • ESP8266Basic, um interpretador básico para desenvolvimento baseado em navegador no ESP8266

Aplicações ESP8266

ESP8266 é uma poderosa solução de rede Wi-Fi com recursos de microcontrolador de placa única. É mais adequado para dispositivos móveis, vestíveis e IoT. Existem várias placas de desenvolvimento ESP8266 disponíveis e elas podem ser programadas usando diferentes conjuntos de ferramentas. Diferentes conjuntos de ferramentas permitem programar placas de desenvolvimento ESP8266 em diversas linguagens de programação, como C, Python, Javascript, script LUA e comandos AT. Algumas das possíveis aplicações de IoT usando placas de desenvolvimento ESP8266 são automação residencial, rede mesh, câmeras IP, monitores de bebês, eletrônicos vestíveis, controle sem fio industrial, etiquetas de identificação de segurança, redes de sensores, dispositivos com reconhecimento de localização Wi-Fi, sistema de posição Wi-Fi farol, plugue inteligente e luzes, eletrodomésticos controlados pela Internet, etc.

Considerações de design com ESP8266

Existem alguns fatores que devem ser considerados antes de selecionar placas de desenvolvimento ESP8266 para aplicações IoT habilitadas para WiFi –

  1. ESP8266 opera a 3,3V, mesmo uma fonte de 5V pode matar o SoC. O GPIO do ESP8266 só pode fornecer ou absorver 12 mA por pino de saída. Portanto, o ESP8266 é adequado apenas para aplicações IoT de baixo consumo de energia.
  2. A faixa de tensão do conversor analógico para digital do ESP8266 é de apenas 0 ~ 1V. Isso limita o uso do ESP8266 no campo de detecção analógica.
  3. O ESP8266 compartilha o tempo de CPU e os recursos do sistema com o transceptor Wi-Fi. Portanto, o código da aplicação não deve ter loops longos que nunca concluam a execução. Portanto, o ESP8266 deve ser usado para aplicações IoT específicas.
  4. O PWM e I2C no ESP8266 são emulados em software. Não há hardware dedicado para eles.

Related Content

Back to blog

Leave a comment

Please note, comments need to be approved before they are published.