O Site do Hardware Livre - OSHW

NodeMCU – primeiros passos (MIC160)

Realizar projetos para o atual cenário da Internet das Coisas, explicando de uma forma bem simples, consiste na troca de dados entre uma placa e um destino remoto (uma plataforma Cloud, por exemplo). Mas uma coisa crítica é escolher um hardware que suporte os protocolos de rede mais comuns, a fim de inseri-la facilmente no contexto IoT. Para facilitar a vida dos técnicos e engenheiros, diversas empresas visam facilitar esta escolha com módulos prontos, bem como disponibilizam softwares de exemplo e bibliotecas de fácil utilização, o que torna a etapa de prototipação de um projeto muito rápida. Um módulo interessante que vem nessa direção é o Wifi ESP8266 NodeMCU, e o motivo é simples: trata-se de uma placa de pequenas dimensões onde estão disponíveis I/Os (Entradas e Saídas), regulação de tensão, conectividade USB onde inserimos a programação (em Lua ou pela Arduino IDE), interfaces de comunicação serial e conectividade WI-FI (utilizando o ESP8266 12-E). Com isso notamos que esta placa é um ótimo ponto de partida para projetos envolvendo IoT (Internet das Coisas).

Neste artigo daremos os nossos primeiros passos com esta placa de desenvolvimento, desde as principais características de hardware criar o nosso primeiro programa para inserir neste NodeMCU.

 

 

NodeMCU - principais características de hardware

Esta placa que chamamos de NodeMCU é uma placa de desenvolvimento para o chip ESP8266 12-E que se encontra soldada no Módulo. Ou seja, toda a execução da programação, gerenciamento de memórias e conectividade WiFi ficam por conta do Chip ESP8266 12-E.

 

Figura 1 - placa de desenvolvimento NodeMCU e ao lado somente o Chip ESP8266 12-E.
Figura 1 - placa de desenvolvimento NodeMCU e ao lado somente o Chip ESP8266 12-E.

 

 

As principais características de hardware do NodeMCU são:

  1. Alimentação da placa e carregamento de programas: feitos através de um cabo micro-USB comum.
  2. ESP8266 12-E: quanto à processamento, o destaque é possuir um processador 32 bits e frequência de operação de 80MHz (default) ou 160MHz (selecionável).
  3. Memória Flash e RAM: conta com até 4MB de memória Flash para programação (a quantidade de memória Flash disponível depende da versão da placa) e 128KB de memória RAM
  4. Temperatura de operação: -40ºC até +125ºC
  5. Alimentação do ESP8266 12-E: possui regulador de tensão de 5V (tensão de alimentação da placa) para 3,3V (tensão de alimentação do ESP8266 12-E)
  6. WI-FI: opera no padrão 802.11 b/g/n, na frequência 2.4GHz.
  7. Segurança do WI-FI: suporta as encriptações WPA e WPA2
  8. Antena do WI-FI: embutida/desenhada na própria placa), sem possibilidade de utilização de antena externa.
  9. Atualização de software: via cabo USB ou sem fio (OTA - Over The Air)
  10. Entradas e Saídas: há 9 GPIOs (D0, D1, ... D8), que podem operar tanto como entradas e saídas digitais (incluindo saídas PWM).
  11. Corrente máxima drenada por output: 12mA.
  12. ADC: um canal, sendo a resolução de ADC igual a 10 bits.
  13. Disponibiliza um LED (ligado ao GPIO D0) para o usuário.
  14. Interfaces seriais: 1 interface I²C, 1 Interface HSPI e 2 UARTs.

 

Como pode ser observado, apresenta um hardware bastante interessante para aplicações IoT.

 

IMPORTANTE: o ESP8266 12-E não é tolerante à entradas em nível 5V, assim como em suas interfaces e periféricos. Portanto, todas as entradas e manipulações de periféricos (incluindo comunicações seriais) devem ocorrer, obrigatoriamente, com nível de tensão máximo 3,3V.

 

 

Programando o NodeMCU

 

As duas formas de se programar o NodeMCU mais populares na Internet são:

  1. Arduino IDE - Exatamente da mesma forma que se programa um Arduino comum.
  2. Utilizando linguagem LUA

 

Embora bastante interessante, a linguagem LUA não é a melhor escolha para quem quer começar seus estudos e experimentos no NodeMCU. A razão disso é que o conteúdo (bibliotecas e exemplos disponíveis na Internet) envolvendo a programação do NodeMCU em linguagem LUA, é muito escasso se comparado a programá-lo como um Arduino. Portanto, para facilitar o aprendizado vamos programar utilizando o Arduino IDE

 

Preparação da Arduino IDE para programação do NodeMCU

A preparação da Arduino IDE para a programação do NodeMCU requer primeiramente que seja feito o download e instalação da Arduino IDE. O NodeMCU pode ser programado em Arduino IDE’s de versões iguais ou superiores a 1.6.7. Sendo assim, baixe e instale a versão mais recente no site oficial do Arduino: https://www.arduino.cc/en/main/software

Depois de baixar e instalar o Arduino IDE, vamos baixar as bibliotecas necessárias para programar o NodeMCU. Lembrando que “bibliotecas” são pacotes de códigos próprios para que o Arduino IDE envie o necessário para que possamos colocar o nosso primeiro código dentro do NodeMCU. Para isso, siga o procedimento abaixo:

1. Na Arduino IDE, clique em “Arquivo > Preferências”. Observe a figura 2.

 

 

Figura 2 - Menu Arquivo > Preferências
Figura 2 - Menu Arquivo > Preferências

 

 

2. Na janela de preferências, no campo “URLs adicionais de Gerenciadores de Placas” insira a seguinte informação:

 

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

 

Feito isso, clique em Ok.

 

3. Agora, no menu Ferramentas, clique na opção: “Placa > Gerenciador de Placas”. Observe a figura 3.

 

 

Figura 3 - Menu Ferramentas > Placa > Gerenciador de Placas
Figura 3 - Menu Ferramentas > Placa > Gerenciador de Placas

 

 

4. Na janela do Gerenciador de Placas, há um campo de buscas. Digite neste campo o texto “nodemcu” (sem as áspas) e aguarde. A busca irá retornar uma única opção (“esp8266 by ESP8266 Community”). Clique nela e depois em “Instalar”.

Observe a figura 4.

 

 

Figura 4 - Gerenciador de Placas da Arduino IDE
Figura 4 - Gerenciador de Placas da Arduino IDE

 

 

5. Aguarde a Arduino IDE baixar o conteúdo necessário e fazer automaticamente a instalação (pode demorar alguns minutos, dependendo de sua velocidade de conexão com a Internet).

6. Após a conclusão da instalação, feche a janela do Gerenciador de Placas

 

Neste ponto, todos os recursos necessários já estão instalados, o que permite avançar para a programação do NodeMCU propriamente dita.

 

 

Driver para Windows

 

Se você utiliza Windows, dependendo da versão utilizada pode ser necessário instalar manualmente o driver para o conversor USB-Serial presente no NodeMCU. Para isso, siga os procedimentos deste site aqui: https://www.robocore.net/tutoriais/como-instalar-o-driver-do-nodemcu.html

 

Como fazer o nosso primeiro programa para o NodeMCU

É chegada a hora de fazer o nosso primeiro programa para o NodeMCU! Para isso, faremos o tradicional “Hello world” do mundo dos embarcados, vamos piscar um LED. O LED irá alternar entre aceso e apagado a cada meio segundo. Para isso, siga o procedimento abaixo:

 

1. Verifique se o NodeMCU está conectado via cabo USB no seu computador.

2. Na tela do Arduino IDE, clique em “Ferramentas”, depois na opção “Porta”, no menu que aparecer selecione a porta de seu NodeMCU (se o driver do conversor USB-serial do NodeMCU para Windows estiver ok, será a única opção disponível).

3. Ainda no menu “Ferramentas”, na opção “Placa”, selecione a opção “NodeMCU 1.0 (ESP-12E Module)”. Veja a figura 5.

 

 

Figura 5 - seleção da placa NodeMCU
Figura 5 - seleção da placa NodeMCU

 

 

4. Agora vamos criar o nosso primeiro programa. Para isso copie o código abaixo e cole-o na sessão de código da Arduino IDE. Neste código temos o estado do GPIO D0 (GPIO = porta programável de entrada e saída , neste nosso caso D0 está ligado um LED)o qual contém, na própria placa do NodeMCU, um LED ligado) é alternado entre aceso e apagado a cada meio segundo.

 

Sobre este o LED, é importante ressaltar o seguinte: o LED foi ligado de tal maneira que seu acionamento é invertido em relação ao estado de D0. Ou seja:

 

- Se D0 está em estado alto (HIGH), o LED apaga.

- Se D0 está em estado baixo (LOW), o LED acende.

 

Por favor, leia atentamente os comentários presentes no código-fonte.

 

//Header do equipamento

#include

 

void setup() {

   //Configura o GPIO D0 como saída.

   //No NodeMCU, o GPIO D0 é ligado diretamente a um LED na própria placa.

   //Para o projeto do pisca-LED isso é ótimo, pois dessa forma não é exigido

   //nenhum componente de hardware além do próprio NodeMCU e cabo de

   //alimentação.

   pinMode(D0, OUTPUT);

}

 

void loop() {

   //Acende o LED e aguarda meio segundo

   digitalWrite(D0, LOW);

   delay(500);

 

   //Apaga o LED e aguarda meio segundo

   digitalWrite(D0, HIGH);

   delay(500);

}

 

5. Agora precisamos enviar este código para dentro do módulo, para isso clique em “Carregar” (botão com uma seta para a direita, conforme destacado na figura 6) e aguarde , o Arduino IDE irá compilar (transformar o código em linguagem de máquina) e inserir o programa compilado no NodeMCU. Este processo pode demorar alguns segundos.

 

 

Figura 6 - botão de compilação e upload de programa para o NodeMCU
Figura 6 - botão de compilação e upload de programa para o NodeMCU

 

 

6. Finalizado o processo, basta observar o LED de sua placa. Ele estará piscando na frequência programada.

Com isso terminamos o primeiro programa no NodeMCU: o pisca LED.

 

 

Indo além

 Conforme mostrado, o hardware do NodeMCU oferece muitos recursos, permitindo a realização de muitos projetos de complexidades diversas, seja no contexto IoT ou não. Uma vez que estivermos familiarizado com a Arduino IDE e a programação do NodeMCU podemos ir muito além.

 Há muito material de boa qualidade na Internet, inclusive em português, com projetos para o NodeMCU. Segue abaixo os endereços de alguns blogs e sites com um bom conteúdo para o NodeMCU:

 

https://www.filipeflop.com/?s=nodemcu&post_type=post 

https://www.embarcados.com.br/ 

http://pedrominatel.com.br/pt/ 

 

 

BUSCAR DATASHEET


N° do componente 

(Como usar este quadro de busca)

Opinião

Atividades Recentes (OP180)

Nos últimos dois meses (abril e maio) tivemos muitas atividades com viagens e muito mais. Em 13 de abril, por exemplo, participamos da Campus Party em Natal – RN, com grande sucesso, com palestra e muitos contatos com leitores principalmente estudantes, professores e desenvolvedores. (veja filme em https://youtu.be/drvVA0dcBw0 ).

Leia mais...

Silêncio
O homem que cala e ouve não dissipa o que sabe, e aprende o que ignora.
Marquês de Maricá (1773 - 1848) - Máximas - Ver mais frases


Instituto Newton C Braga
Entre em contato - Como Anunciar - Políticas do Site

Apoio Social
Lions Clube de Guarulhos Sul SOS Mater Amabilis
Advertise in Brazil
If your business is Electronics, components or devices, this site is the correct place to insert your advertisement (see more)