Recentemente comprei uma placa de desenvolvimento chamada NodeMCU. A NodeMCU é projeto open hardware e open software que permite começar muito rapidamente o desenvolvimento de aplicações de IoT no módulo ESP-12E (ESP8266).

img_20161203_092248

Preparando o ambiente

Eu utilizei uma máquina com Fedora 23. Primeiro, iremos instalar algumas dependências:

$ sudo dnf install git picocom

O git é um versionador de código, iremos precisar dele para baixar o código de algumas ferramentas. O picocom é um terminal serial. Se você preferir pode utilizar outro terminal serial, sem problemas.

Instalando a firmware NodeMCU

A firmware do NodeMCU permite que conectemos a um interpretador Lua com uma biblioteca de controle de hardware built-in, que é excelente para começar a programar.

Infelizmente, as versões mais recentes da firmware são distribuidas apenas por binários. Como queremos começar imediatamente, vamos baixar a versão 0.9.6 que foi a última a ser lançada em formato binário (NOTA: Em outra oportunidade irei ensinar como compilar a versão mais recente).

Abra o terminal e baixe a firmware com o wget:

$ https://github.com/nodemcu/nodemcu-firmware/releases/download/0.9.6-dev_20150704/nodemcu_integer_0.9.6-dev_20150704.bin

Agora, precisamos clonar o código do esptool, que é uma ferramenta para gravar a firmware no módulo.

$ git clone https://github.com/themadinventor/esptool.git

Após concluído o download, acesse o diretório esptool e rode o comando abaixo para instalar as dependências do esptool:

$ cd esptool
$ python setup.py build
$ sudo python setup.py install

Por fim, vamos gravar a firmware:

sudo python ./esptool.py --port /dev/ttyUSB0 write_flash -fm dio 0x00000 ../nodemcu_integer_0.9.6-dev_20150704.bin
[sudo] password for jaufranc:
Connecting...
Erasing flash...
Writing at 0x00048000... (90 %)
Wrote 450560 bytes at 0x00000000 in 44.3 seconds (81.3 kbit/s)...

Leaving...

Ligar/Desligar um led

Como já é de praxe, sugiro que o primeiro programa seja piscar um led. A placa já conta com um led, ligado ao D0, o que facilita o nosso primeiro teste.

Abra o picocom e aponte para o conversor USB-serial da NodeMCU (geralmente, em /dev/ttyUSB0):

$ picocom -b 9600 /dev/ttyUSB0

Pressione o botão RST da placa, você deve ver o seguinte no terminal:

NodeMCU 0.9.6 build 20150704  powered by Lua 5.1.4
lua: cannot open init.lua

Digite os comandos abaixo diretamente nesse terminal:

pin = 0
gpio.mode(pin,gpio.OUTPUT)

No trecho acima, criamos uma variável pin que recebeu o valor 0, que correponde ao pino ao qual o led da placa está ligado. Na segunda linha, o comando gpio.mode determina qual o modo do pino, neste caso queremos que ele seja um pino controlável, portanto de saída, logo setamos ele com gpio.OUTPUT (atente-se as letras maiúsculas, pois o Lua é uma linguagem case-sensitive). Após esses comandos o Led deve estar aceso.

Para apagar o led, use o comando gpio.set:

gpio.write(pin, gpio.HIGH)

Para voltar a acendê-lo:

gpio.write(pin, gpio.LOW)

Próximos passos

No site do NodeMCU há alguns exemplos bem legais, como o código para criar um pequeno servidor http.

Referências

  1. http://www.cnx-software.com/2015/10/29/getting-started-with-nodemcu-board-powered-by-esp8266-wisoc/
  2. http://www.nodemcu.com/index_en.html#fr_54747661d775ef1a3600009e
Anúncios