NodeMCU ESP8266 com Sensor Ultrassônico HC-SR04

Olá pessoal! A plataforma Arduino é muito utilizada para prototipagem de projetos com eletrônica e programação. Porém, hoje vamos mostrar uma outra plataforma que está se popularizando rapidamente: NodeMcu! Vamos mostrar como integrar o NodeMcu ESP8266 ao Sensor Ultrassônico HC-SR04 e como programá-lo através da IDE do Arduino.

NodeMcu ESP8266

Figura 1 – NodeMcu ESP8266

NodeMcu ESP8266 ESP-12

Esta placa é baseada no microcontrolador NodeMcu ESP8266, que já possui Wi-Fi integrado. Criado pela empresa chinesa Espressif, ele é da família 32 bits e possui cerca de 50 KB disponíveis para o usuário. Tem de 2 a 11 pinos de entrada e saída (GPIO – General Purpose Input Output) dependendo da versão do microcontrolador.

O primeiro módulo é o ESP-01, que possui 8 pinos, tem de 512 KB a 1 MB de memória externa, com dois pinos GPIO e pode ser utilizado com Arduino como módulo Wi-Fi. Descobriram que pode ser usado de forma independente, com alimentação de 3,3V e gravado com adaptadores USB/Serial. Porém, foram criados outros módulos, os mais populares são o ESP-07 e o ESP-12, com mais pinos GPIO, interface com I2C, SPI e UART.

NodeMcu ESP8266 - Módulo ESP-01

Figura 2 – Módulo ESP-01

Devido aos módulos não possuírem interface USB como no Arduino e ter alimentação de 3,3V, foram desenvolvidos módulos mais completos, como o NodeMcu. Ele possui regulador de tensão, conversor serial/USB e identificação dos pinos. Pode ser programável tanto na linguagem LUA ou até mesmo na IDE Arduino. Isto despertou muito interesse dos makers e até profissionais devido ao baixo custo e possibilidades de projetos para Internet das Coisas (IoT).

NodeMcu ESP8266

Figura 3 – NodeMcu ESP8266

Diferente de um Arduino Uno, seus pinos de entrada e saída não oferecem tensão de 5V em nível HIGH, mas 3,3V. A integração com alguns módulos do Arduino pode ser um problema para integração em projetos com o NodeMcu. Para isto, utilizamos um módulo conversor de nível lógico.

Conversor de Nível Lógico Bidirecional

Se você possui um dispositivo com tensão de operação 3,3V e um Arduino Uno (que possui tensão de operação 5V), dependendo da tensão aplicada, pode danificá-lo permanentemente. Ou se você possui uma plataforma com tensão de operação 3,3V e um dispositivo 5V, ele pode não funcionar corretamente. Para realizar estas conexões com segurança, um conversor de nível lógico.

Este módulo realiza conversões de forma bidirecional, ou seja, se eu tenho uma tensão de 5V e quero reduzi-la para 3,3V ou o oposto, é possível com utilização do conversor.

Conversor de nível lógico bidirecional 8 canais

Figura 4 – Conversor de nível lógico 8 canais

O módulo não vem com os pinos soldados, você pode soldar estes pinos com ferro de solda para encaixar em um protoboard, por exemplo.

Para utilizar este conversor, basta seguir os seguintes passos:

1 –  Localize os pinos HV (High Voltage ou tensão alta) e LV (Low Voltage ou tensão baixa) no módulo. São nestes pinos que você vai inserir as tensões desejadas para conversão. No caso, 5V em HV e 3,3V em LV.

2- Localize os pinos GND no módulo e conecte com os GNDs de sua placa microcontrolada.

3 – O módulo possui 8 pinos, de HV1 a HV8 para entrada alta e LV1 a LV8 para entrada baixa. Se quiser converter de alto para baixo ou vice versa, lembre-se de utilizar os pinos de mesma numeração. Ex: colocando 5V em HV1 sairá 3,3V em LV1 e assim por diante.

A seguir, mostraremos como obter valores de distância utilizando o NodeMcu e um sensor ultrassônico.

Materiais Necessários

Circuito Fritzing

O esquemático deste projeto encontra-se na figura abaixo:

Circuito Fritzing NodeMcu ESP8266 ao Sensor Ultrassônico

Figura 5 – Circuito Fritzing NodeMcu ESP8266 e Sensor ultrassônico

 

A conexão VU na placa é equivalente ao pino RSV na placa. Também pode ser utilizado o pino Vin, porém certifique-se quais destes pinos fornece uma tensão de 5V para colocar no pino HV do módulo conversor.

O NodeMcu ocupa um espaço equivalente à um protoboard 400 ou 830 pontos. Se quiser utilizá-lo em protoboard, encaixe outro protoboard ao lado e fixe-o entre eles. Também pode se utilizar uma versão de protoboards com mais pontos ou realize a conexão com jumpers macho-fêmea.

Instalação do Driver

A plataforma NodeMcu possui duas variantes que utilizam os conversores chamados CH340G ou CP2102 para realizar a conversão Serial/USB, necessária para gravação dos sketchs. Vamos aprender a instalar o driver para funcionamento da placa no Windows. Para usuários Mac, recomendamos este tutorial do Br.Arduino aqui.

  • Realize o download do driver CH340G (Lolin) em formato zip aqui;
  • Descompacte a pasta;
  • Procure pelo arquivo SETUP e abra-o;
  • Clique em INSTALL e aguarde a instalação completa;
  • Ao término, conecte a placa ao computador e aguarde reconhecer a porta COM como USB-Serial CH340G.

Para a instalação do driver do CP2102 no Windows, siga as instruções abaixo:

  • Realize o download do Driver CH210X (Amica) em formato zip aqui;
  • Descompacte a pasta;
  • Execute como administrador o arquivo executável identificado como “x64” para sistemas operacionais 64 Bits ou o “x86” para sistema operacional 32 Bits;
  • Siga as instruções do instalador até a conclusão da instalação do driver;
  • Reinicie o computador.

Para usuários Mac, recomendamos este tutorial do Br.Arduino para instalação do driver CH340G. O driver para o CP2102 está disponível neste link.

Para usuários Linux, é necessário apenas o Driver para o CP2102, disponível neste link para o Linux 3.X.X. e neste link para o Linux 2.6.X.

Configuração da NodeMcu na IDE Arduino

Antes de programar, é necessária a instalação da placa na IDE Arduino.  Abra o software, vá no menu Arduino => Preferências…

Tela Preferências no Arduino IDE

Figura 6 – Tela Preferências no Arduino IDE

Na opção URLs adicionais para gerenciadores de placas, clique no ícone à direita do retângulo branco, aguarde até abrir uma janela como mostrada na figura abaixo:

 URLs adicionais para gerenciadores de placas

Figura 7 – URLs adicionais para gerenciadores de placas

No campo de texto, cole o seguinte URL:

http://arduino.esp8266.com/versions/2.3.0/package_esp8266com_index.json

Clique em Ok para fechar as duas janelas. Após isto, vá no menu Ferramentas => Placa => Gerenciador de placas. Irá abrir uma outra janela com várias opções. Vá até a última opção, onde está escrito ESP8266.

Gerenciador de placas

Figura 8 – Gerenciador de placas

Clique em instalar e aguarde carregar uma barra verde abaixo da janela. Ao término, clique em fechar.

Após isto, vá no menu Ferramentas => Placas e verifique se as opções referentes ao ESP8266 estão instaladas. Escolha a opção NodeMCU 1.0. Verifique a porta COM onde está instalada a placa e escolha. Não é necessário mudar as configurações padrão. Na barra inferior direita, estará todas as configurações referentes à placa.

Programação

Primeiramente, instale a biblioteca Ultrasonic através do menu Sketch => Incluir biblioteca => Gerenciar bibliotecas…

Pesquise por “Ultrasonic” e clique em Instalar. Aguarde carregar a barra verde inferior da janela.

Em seguida, configure a velocidade de gravação do programa através do menu Ferramentas => Velocidade de upload e selecione a opção 57600 (CHQ340 – Lolin) ou 115200 (CP210X – Amica).

Após isto, utilize o seguinte código:

Perceba que, ao carregar o código, na parte inferior da tela irá aparecer vários pontos, mostrando o progresso do upload. Este processo é um pouco mais demorado que o upload de um Arduino. Aguarde até completar 100%.

Montagem final

O projeto final está na imagem a seguir:

Projeto montado em Protoboard 830 pontos

Figura 8 – Projeto montado em Protoboard

Ao abrir o Monitor Serial, as distâncias serão mostradas em centímetros. Experimente colocar um objeto à frente do sensor e o mudando de lugar, para ver a alteração dos valores.

Detectando distância com sensor ultrassônico

Figura 9 – Detectando distância com Sensor Ultrassônico

Caso não apareça nada no Serial Monitor ou valores iguais a zero, verifique as conexões do conversor de nível lógico e a velocidade da porta COM. Tanto no sketch quanto na janela precisam estar o mesmo valor. Neste projeto utilizamos 9600.

Espero que tenha curtido este tutorial.  Para dúvidas e sugestões, faça seus comentários abaixo! Confira outros produtos em nossa loja!

No Responses

DEIXE UM COMENTÁRIO