A board
ESP8266 / NodeMCU permite ter um microcontrolador (como se fosse um arduino) com acesso direto à rede wireless 802.11 b/g/n por um preço muito atrativo (por cerca de 2,5€). [1] e [6]
Torna-se assim fácil criar projetos para a famosa
IoT Internet of Things ou Internet das Coisas que podem registar informações (temperaturas, luminosidade, humidade, etc) ou efetuar operações (acionar iluminação, motores, bombas, etc), as opções estão limitadas apenas à imaginação e/ou capacidade técnica de cada um.
0 - Pré-requisitos
O óbvio será apenas um NodeMCU, cabo microUSB e computador.
Depois de algumas pesquisas sobre como se pode programar o NodeMCU, encontrei esta solução que me parece muito interessante e é a que mais me agrada.
Até aqui quando utilizava arduinos programava o código no
Atom [2] e utilizava o Arduino IDE para fazer o upload do código para os Nano ou Uno.
Ao procurar formas de programar o NodeMCU encontrei algumas soluções que utilizam o arduino IDE [7] mas tropecei no
PlataformIO [5] que permite dotar o Atom das ferramentas de compilar, upload, monitor de série, terminal, etc que funcionam de forma similar ao ambiente do arduino IDE. Simplesmente fantástico!
O
PlatformIO permite também acrescentar os comandos de shell que permitem instalar e desinstalar bibliotecas e funcionalidades do PlatformIO.
Assim, para se começar a programar será necessário:
- Instalar Atom [2]
- Instalar PlatformIO [3]
- Instalar Shell Commands [4]
1 - Colocar o NodeMCU a piscar
Neste domínio o projeto mais simples é o pisca-pisca.
Criar um
novo projeto para
NodeMCU (a lista é longa...) e indicar a pasta onde vai ficar guardado o projeto.
Criar o ficheiro
main.cpp na pasta
src com:
#include <Arduino.h>
// Esta função é executada apenas uma vez quando a placa é ligada
void setup() {
pinMode(D0, OUTPUT); // Inicializar D0 como output
Serial.begin(9600); // Inicializar a interface série
}
// Esta função está sempre a executar em loop
void loop() {
digitalWrite(D0, LOW); // Ligar o led da placa (sim, com LOW)
Serial.println("On");
delay(1000); // Esperar 1000ms=1 segundo
digitalWrite(D0, HIGH); // Desligar o led da placa
Serial.println("Off");
delay(1000); // Esperar 1000ms=1 segundo
}
De seguida deve utilizar-se o botão de
Compilar para confirmar se está tudo correto e a compilação funciona sem problemas.
Depois deve ligar-se o
NodeMCU por
USB ao computador e utilizar o comando de
Upload para enviar o projeto compilado anteriormente para a placa. Enquanto é programada a placa pisca rapidamente um led no módulo ESP-12 e, se tudo correr bem, passados alguns segundos o led do NodeMCU perto da porta miniUSB começa a piscar de segundo a segundo.
Ao abrir o
Serial Monitor é possível observar que quando D0 está LOW o led acende e quando está HIGH o led apaga.
2 - Instalar suporte para outros componentes
Como referido anteriormente o PlatformIO permite adicionar diversas funcionalidades através de alguns comandos simples.
Abrindo o
Terminal do PlatformIO é possível
procurar bibliotecas (
libraries), por exemplo, sobre o sensor
DHT11:
platformio lib search dht11
Aparece depois uma lista que indica as bibliotecas que possuem
DHT11 e é possível depois instalar uma ou várias dessas bibliotecas através da opção install seguida do número do pacote, por exemplo:
platformio lib install 849
Neste caso vai ser instalada a biblioteca SimpleDHT por Winlin [8].
Instalar suporte para o sensor
DS18B20
platformio lib install 54
Neste caso, para além da biblioteca
DallasTemperature desenvolvida por Guil Barros, Miles Burton, Rob Tillaart, Tim Newsome [9], será também instalada a biblioteca OneWire que permite a comunicação I2C utilizada pelo DS18B20.
Para
desinstalar utiliza-se a opção uninstall seguida do número da biblioteca instalada.
platformio lib uninstall 123
Referências
[1] -
http://nodemcu.com/index_en.html - Informações e documentação sobre o NodeMCU
[2] -
https://atom.io - Informações e instruções de instalação do IDE Atom
[3] -
http://platformio.org - Insformações e documentação sobre o PlatformIO
[4] -
http://docs.platformio.org/en/latest/installation.html - Instalar shell commands do PlatformIO
[5] -
https://www.losant.com/blog/getting-started-with-platformio-esp8266-nodemcu - Programar o NodeMCU através do PlatformIO
[6] -
https://www.htlinux.com/esp8266-nodemcu/ - Informações gerais sobre o NodeMCU
[7] -
https://oneguyoneblog.com/2017/01/17/esp8266-nodemcu-arduino-ide-linux/ - Programar o NodeMCU através do arduino IDE.
[8] -
http://platformio.org/lib/show/849/SimpleDHT - Biblioteca do PlatformIO para o DHT11
[9] -
http://platformio.org/lib/show/54/DallasTemperature - Biblioteca do PlatformIO para o DS18B20