- O que é ESP8266?
- Noções básicas da teoria WiFi:
- Tipos de programação com ESP8266:
- Hardware para programar o módulo ESP8266:
- Materiais requisitados:
- Explicação do circuito:
- Building Board to Program ESP8266:
Internet das coisas e automação residencial têm sido um assunto muito badalado nos últimos dias. Construir algo por nossa conta que pode se comunicar com a World Wide Web e pode ser acessado de qualquer lugar do mundo, realmente parece legal, não é?
Mas espere!!! Também parece complicado ???….
Para mim também, pensei que levaria muito tempo e habilidade para construir coisas que pudessem interagir com a internet. NÃO, eu estava completamente errado, graças a este módulo fantástico chamado ESP8266 da Espressif Systems. Agora, você pode abrir facilmente suas portas para projetos de IoT com a ajuda deste módulo. Este módulo de baixo custo e tamanho pequeno pode fazer maravilhas e é realmente simples e fácil de usar, desde que sigamos os passos certos.
Este tutorial tem como objetivo apresentar este módulo ESP8266-01 e ajudá-lo a começar a usá- lo. Talvez você já tenha trazido seu módulo e tenha travado ao tentar usá-lo. Então, você não está sozinho, não se preocupe, muitas pessoas acham muito difícil começar com o módulo porque não há orientação ou documentação adequada para este módulo. Esta é a razão de fazer este tutorial. Siga as instruções aqui e você deverá ser capaz de colocar seu módulo ESP8266-01 em funcionamento em nenhum momento, aqui usaremos o FTDI USB para o Módulo Adaptador Serial TTL para programar o ESP8266. Verifique o vídeo detalhado no final do tutorial.
Antes de entrar no tópico, vamos cobrir algumas noções básicas sobre o Módulo ESP8266-01.
O que é ESP8266?
A maioria das pessoas chama ESP8266 como um módulo WIFI, mas na verdade é um microcontrolador. ESP8266 é o nome do microcontrolador desenvolvido pela Espressif Systems, uma empresa com sede em Xangai. Este microcontrolador tem a capacidade de realizar atividades relacionadas a WIFI, portanto , é amplamente usado como um módulo de WIFI.
Existem muitos tipos de módulo ESP8266 disponíveis, desde ESP8266-01 a ESP8266-12. O que estamos usando no tutorial é o ESP8266-01 porque é o mais barato e facilmente disponível. No entanto, todos os módulos ESP têm apenas um tipo de processador ESP, o que difere é apenas o tipo de compartimento de fuga usado. A placa breakout do ESP8266-01 terá apenas 2 pinos GPIO, enquanto nas outras placas será mais alto.
A especificação completa do módulo é fornecida na tabela abaixo
Voltagem |
3,3 V |
Consumo atual |
10uA-170mA |
Consumo máximo de corrente durante o piscar |
800mA |
Memória flash |
16 MB (512 K normal) |
Processador |
Tensilica L106 de 32 bits |
Velocidade do processador |
80-160 MHz |
RAM |
32K + 80K |
GPIO |
17 (mas a maioria é multiplexada) |
Conversor analógico para digital |
1 (10 bits) |
Máximo de conexões TCP |
5 |
Ok, poucas coisas que poderiam ter surpreendido você sobre a especificação é que, SIM, o módulo ESP8266 vem com um conversor ADC e consome uma corrente muito alta de 0,8A durante o flashing do seu dispositivo.
Verifique também nossos vários Projetos IoT interessantes baseados em ESP8266.
Noções básicas da teoria WiFi:
Transfer Control Protocol (TCP), Internet Protocol (IP), User Datagram Protocol (UDP), Access Point (AP), Station (Sta), Service Set Identifier (SSID), Application Programming Interface (API), Webserver…..
Todos os termos acima fazem sentido para você?
Se sim. Então, BINGO você pode pular esta parte e passar para a próxima seção.
Se não. Então você deve ser um entre os muitos estudantes de eletricidade que simplesmente citaram a maioria desses termos, assim como eu fiz quando fui apresentado a todas essas coisas. Então, vamos examinar rapidamente todos esses termos porque só assim poderemos fazer nossa entrada no mundo da IOT.
Protocolo de controle de transferência (TCP):
A maioria de nós sabe o que isso significa. Sim, este é o conjunto de regras com base nas quais a internet funciona. Já ESP8266 tem a capacidade de configurar conexões WIFI. Em um alto nível, o Wi-Fi é a capacidade de participar das conexões TCP / IP por meio de um link sem fio. Você pode fazer seu ESP funcionar no protocolo TCP / IP ou no protocolo UDP.
Protocolo de datagrama do usuário (UDP):
UDP também é outro tipo de protocolo de Internet. Esse tipo de comunicação é mais rápido que o TCP, mas é menos preciso. O motivo é que o TCP usa um reconhecimento durante sua comunicação, mas o UDP não. O TCP é usado principalmente em redes onde existe um requisito de alta confiabilidade. O UDP é usado em locais onde a velocidade tem alta prioridade do que a confiabilidade. Por exemplo, UDP é usado em videoconferências, porque lá mesmo se alguns pixels não forem transmitidos não afetará muito a qualidade do vídeo, mas a velocidade é muito importante.
A maioria dos projetos e códigos ESP8266 funcionam em torno do TCP / IP, o UDP será o menos incomodado.
Ponto de Acesso (AP) e Estação (STA):
Depois de começar a trabalhar com o módulo ESP, você encontrará esses dois termos com frequência. Digamos que você e seu amigo gostariam de navegar na Internet em seus smartphones, mas como ele não tem uma conexão ativa com a Internet, você decide ativar seu hotspot e seu amigo se conecta a ele. Aqui, o telefone que fornece a conexão à Internet é o Ponto de Acesso (AP) e o telefone do seu amigo que está usando a Internet é chamado de Estação (STA).
O módulo ESP8266 pode ser usado em três modos, modo AP, modo STA ou em modo STA e AP (combinado).
Identificador do conjunto de serviços (SSID):
Este é um termo bastante simples. Quase todos nós usamos WIFI. O nome da rede Wi-Fi é chamado de SSID. Quando temos vários pontos de acesso para uma estação se conectar, a estação deve saber qual ponto de acesso deve ser conectado, portanto, cada Ponto de Acesso (AP) recebe uma identidade que é chamada de SSID.
Interface de programação de aplicativo (API):
Para simplificar, uma API é um mensageiro que recebe suas solicitações, processa e retorna ao seu sistema o resultado desejado. A maioria das atividades que fazemos na Internet usa APIs, como quando você reserva um voo, faz uma compra online, etc. Todos os sites vinculam você a uma API onde parte do trabalho, como inscrição, pagamento etc., é feito para você há.
ESP8266 usa API para se comunicar com o mundo da Internet. Por exemplo, se deseja saber a hora, o clima, ou o que quer que deva solicitar em forma de API ao site correspondente. Esse site irá receber o pedido e devolver o resultado desejado ao nosso módulo ESP.
Servidor web:
Um servidor web é aquele responsável por exibir o conteúdo de um site. Todo o conteúdo desse site específico será carregado em seu servidor web. Existem computadores dedicados cujo trabalho é apenas atuar como um servidor web. Também podemos programar nosso ESP8266 para funcionar como um servidor web e conectar-se a ele de qualquer lugar do mundo.
Ok, isso é o suficiente para começarmos. Agora, vamos colocar as mãos no hardware.
Tipos de programação com ESP8266:
Existem duas maneiras de trabalhar com o módulo ESP8266. Este tutorial o ajudará a começar com ambos. Uma maneira é usar os comandos AT. A outra maneira é usando o IDE do Arduino. Vamos entender o que isso significa.
Todos os módulos ESP8266 enviados de fábrica terão um firmware padrão (SDK + API) carregado nele. Este firmware ajudará você a programar o módulo ESP8266 por meio de comandos AT.
A outra maneira é programar diretamente o módulo ESP8266 usando o IDE Arduino (placa não necessária) e suas bibliotecas. Todos os projetos podem ser realizados em ambos os métodos. Mas, se você começar a usar o IDE do Arduino para programar o ESP8266, poderá não conseguir usar os comandos AT porque o SDK padrão pode ter sido corrompido. Nesse caso, você deve atualizar seu ESP com as configurações padrão. Vamos cobrir isso em outro tutorial.
Hardware para programar o módulo ESP8266:
ESP8266 é um módulo de 8 terminais. O pino do mesmo é mostrado abaixo.
Infelizmente, este módulo não é amigável para protoboard e, portanto, não podemos montá-lo diretamente em nossa protoboard. Ao contrário do Arduino, ele não possui um driver USB para serial integrado; portanto, temos que usar “Módulo Adaptador Serial FTDI USB para TTL” para nos comunicarmos com ele. Certifique-se de que a placa FTDI pode operar em 3,3 V também; o que estamos usando neste tutorial é mostrado abaixo.
Agora, como sabemos, devemos ligar o ESP8266 com 3,3V. Mas o consumo atual é de 0,8A, então pode não funcionar como esperado se alimentado por nossa placa de breakout FTDI. Portanto, temos que construir nosso próprio circuito de alimentação. Aqui, usamos o LM317 para fins de alimentação; os detalhes para fazer o hardware completo são fornecidos nas seções posteriores.
Materiais requisitados:
- Perf Board
- ESP8266-01
- FTDI Breakout Board
- LM317
- Capacitor 0.1uf
- Capacitor 10uf
- Barrel Jack
- Bergstik Masculino e Feminino
- Botão de apertar
- Fios de conexão
- Adaptador 12V para alimentar a placa.
Explicação do circuito:
O esquema do tabuleiro é mostrado abaixo
Alguns podem ter tentado alimentar seu ESP diretamente de seu FTDI e fazê-lo funcionar, mas a seguir estão os motivos para construir sua própria placa com alguns componentes adicionais:
- Apenas algumas placas FTDI podem fornecer corrente suficiente para o módulo ESP. Poucos módulos ESP podem consumir alta corrente do que o outro durante o flash. Portanto, é sempre seguro ter sua própria fonte de alimentação e será mais fácil integrar o circuito de alimentação no Dot Board em vez de no breadboard.
- Devemos sempre redefinir o módulo ESP antes de enviar o código, construir nossa própria placa nos ajudará a redefinir o módulo facilmente. Usamos o botão de pressão para redefinir o ESP8266.
- O pino GPIO0 deve ser aterrado ao programar usando Arduino e deve ser deixado livre ao usar comandos AT; isso pode ser facilmente alternado se construirmos nossa própria placa. Usamos um jumper para alternar entre o modo de comandos AT e o modo de programação Arduino IDE.
- Toda a programação é feita usando comunicação serial , se você usar um breadboard alguns terminais soltos podem causar um erro na metade e nos forçar a piscar o módulo para trabalhar novamente.
Dito isso, você pode escolher entre usar uma placa de ensaio e fazer sua própria placa para programar o módulo. Se você ainda quiser usar a placa de ensaio, o mesmo circuito mostrado acima pode ser construído usando sua placa de ensaio. Apenas a aparência será diferente, todas as outras instruções neste tutorial serão aplicadas da mesma forma.
Building Board to Program ESP8266:
Então, aqui estamos construindo a placa para programar o módulo ESP8266, que tem seu próprio circuito de alimentação para alimentar o ESP8266.
Como disse, nosso módulo exigirá cerca de 800mA durante a programação. Portanto, construímos nosso próprio módulo de energia usando um regulador de tensão variável LM317, uma vez que a corrente da fonte do LM317 é quase 1,2A. A tensão de entrada do LM317 será de 12 V, que será fornecida usando um adaptador de parede de 12 V 2A. A saída do LM317 será regulada para 3,3 V constantemente usando os resistores de 220ohm e 360ohm. Verifique também nosso circuito do carregador de bateria usando o LM317 para saber mais sobre o LM317.
As fórmulas para calcular a tensão de saída do LM317 são fornecidas abaixo:
Vout = 1,25 * (1+ (R2 / R1))
Onde, R1 é 220 ohms e R2 é 360 ohms.
O Módulo ESP8266 é conectado de acordo com os pinos mostrados na tabela abaixo.
Pin No. |
Nome do pin ESP |
Conectado a |
1 |
Terra |
Terra do módulo FTDI |
2 |
GPIO2 |
Deixado livre ou conectado ao berg stick para uso futuro |
3 |
GPIO0 |
Alterne para alternar entre os modos de programação |
4 |
Rx |
Tx do módulo FTDI |
5 |
Tx |
Rx do módulo FTDI |
6 |
CH_PH |
3,3 V de LM317 |
7 |
Redefinir |
Botão para reiniciar o módulo |
8 |
Vcc |
3,3 V de LM317 |
Para alternar facilmente entre o modo de comando AT e o modo de programação do Arduino, coloquei um switch (jumper) que puxará o GPIO 0 para o solo ao usar o IDE do Arduino e o deixará flutuando ao usar os comandos AT.
Existe um botão que, quando pressionado, reinicializa o módulo ESP. Isso é feito simplesmente conectando o pino RST do módulo ESP ao trilho de aterramento por meio do botão de pressão. Cada vez, antes de programar nosso módulo ESP, devemos reiniciá-lo.
Depois de montar o circuito, ele deve se parecer com o seguinte.
Eu usei uma placa Perf, mas você também pode usar uma placa de ensaio se estiver interessado (conforme discutido acima). A construção completa e a explicação são mostradas no vídeo abaixo.
Depois de fazer as conexões. Ligue a placa sem as placas ESP e FTDI e verifique se obtemos 3,3 V corretamente nos terminais Vcc e Terra da posição dos módulos ESP. Agora certifique-se de que sua placa FTDI está no modo 3,3 V e conecte seus módulos FTDI e ESP à placa.
Ligue o adaptador e conecte-o à placa, o módulo ESP deve acender com uma cor vermelha.
Em seguida, conecte sua placa FTDI ao computador usando um cabo mini-USB para USB e navegue até o Gerenciador de dispositivos em seu computador e você deverá encontrar sua placa FTDI conectada à porta COM, conforme mostrado abaixo:
Agora é hora de colocar as mãos na programação de nosso módulo ESP8266. Você pode começar usando os comandos AT e, em seguida, passar a usar o IDE do Arduino. Não se esqueça de verificar nossos outros projetos baseados em ESP8266.