- O que é Node.js?
- Componentes necessários
- Diagrama de circuito
- Configurando a estrutura Node.js
- Instalando a Biblioteca Johnny-Five
- LED piscando com Arduino e Node.js
- Controlando o brilho do LED usando Arduino e Node.js Webserver
Vimos vários exemplos de piscar um LED usando diferentes microcontroladores e diferentes linguagens de programação. Hoje, usaremos um framework JavaScript Node.js muito popular para controlar o LED conectado ao Arduino Uno. Também usaremos Node.js para controlar o brilho do LED a partir de uma página da Web usando o Arduino. Com alguns ajustes e usando ESP8266, isso pode ser convertido em um projeto de IoT onde o LED pode ser controlado de qualquer lugar.
O que é Node.js?
O Node.js é uma estrutura baseada em JavaScript amplamente usada, construída no mecanismo JavaScript V8 do Google Chrome e aplicada no desenvolvimento de aplicativos da web com E / S intensiva, como aplicativos de página única, sites de streaming de vídeo etc.
Fizemos um tutorial informativo anteriormente em Primeiros passos com Node.js e Raspberry Pi para controlar um LED. Neste tutorial, seguiremos uma abordagem semelhante, ou seja, o LED será controlado usando dois métodos, tais como:
- O LED pisca ao escrever um código JavaScript na estrutura Node.js.
- Controle de brilho do LED usando a estrutura Node.js e uma interface da web de qualquer navegador: O Arduino UNO atuará como um servidor da web e a página da web em HTML será hospedada em um PC ou laptop.
Componentes necessários
Hardware:
- Placa Arduino UNO
- Conduziu
- Resistor
Programas:
- Arduino IDE: Para fazer o upload do esboço para a placa Arduino UNO.
- Firmata: É um protocolo de comunicação com diferentes microcontroladores de software em um computador, smartphone, etc. O firmware Firmata pode ser carregado em qualquer placa de microcontrolador (como Arduino, Teensy) e pode se comunicar com qualquer laptop, PC ou smartphone. A biblioteca Firmata vem com Arduino IDE, então não há necessidade de fazer download de qualquer lugar. Fizemos um tutorial sobre como controlar o Arduino com Raspberry Pi usando pyFirmata.
- Johnny-Five: Johnny-Five é a plataforma IoT e robótica baseada em JavaScript usada para escrever códigos em JavaScript e usada para fazer uma ponte entre as placas do Arduino e o computador. O Johnny-Five foi testado com uma variedade de placas compatíveis com o Arduino, como o Arduino UNO, NANO, Promini, etc. Neste tutorial, a biblioteca do Johnny-Five deve ser baixada para usar todos os seus recursos. O guia de instalação será explicado posteriormente neste tutorial.
Diagrama de circuito
O diagrama do circuito é muito básico, só precisamos conectar um LED ao Arduino.Configurando a estrutura Node.js
Antes de iniciar a codificação e o desenvolvimento, o Node.js deve ser baixado e configurado. Para baixar o ambiente Node.js, basta seguir etapas simples.
Passo 1: - Baixe o arquivo.exe do Node.js de seu site oficial.
Passo 2: - Execute o.exe e siga as instruções fornecidas no instalador.
Etapa 3: - Reinicie o computador conforme recomendado no documento Node.js e também para usar todos os recursos do Node.js
Etapa 4: - Para verificar se o nó foi instalado, abra o Prompt de Comando e digite Nó –v
Etapa 5: - A versão Node.js será exibida indicando que o Node.js está instalado.
Instalando a Biblioteca Johnny-Five
Agora, depois de baixar o Node.js, crie uma nova pasta chamada “LED_Control” em Documentos para manter todos os arquivos do projeto em um só lugar. Todo arquivo de projeto será mantido na pasta “ LED_Control ”. Agora baixe a Biblioteca Johnny-Five na pasta “ LED_Control ”. Para fazer o download, siga as etapas abaixo:
Etapa 1: - Abra o prompt de comando
Passo 2: - Vá para a pasta “ LED_Control ” seguindo o comando ' cd '.
Etapa 3: - Execute o comando ' npm install johnny-five'
Etapa 4: - Isso instalará todas as dependências do Johnny-Five.
Etapa 5: - Instale também as bibliotecas necessárias usadas neste tutorial para controlar o brilho do LED. Existem três bibliotecas usadas aqui:
- expresso: wrapper de servidor
- socket.i o: biblioteca WebSockets
- serialpor t: wrapper de porta serial
Etapa 5: - Execute os comandos abaixo um por um para instalar essas três bibliotecas.
npm install express npm install socket.io npm install serialport
Conforme dito anteriormente, o projeto está dividido em duas partes:
- Em primeiro lugar, LED piscando do Arduino com Node.js
- Em segundo lugar, controlando o brilho do LED a partir da interface da web usando Arduino e Node.js.
LED piscando com Arduino e Node.js
Para piscar o LED, o Arduino deve estar configurado para se comunicar com o computador.
Configurando o Arduino UNO para LED piscando:
Para fazer o Arduino UNO aceitar o comando do laptop para o LED de controle, o firmware do Firmata deve ser carregado no Arduino UNO. Para carregar o Firmware Firmata, basta seguir estas etapas simples:
- Conecte o Arduino UNO usando o cabo USB
- Abra o Arduino IDE e selecione a placa Arduino UNO (se estiver usando outra placa, selecione a respectiva) em Ferramentas.
- Selecione a respectiva porta COM do Arduino UNO conectado
- Agora encontre o Firmata Sketch usando Menu -> Arquivo -> Exemplos -> Firmata -> StandardFirmata.
- Carregue o esboço “StandardFirmata” acessando Arquivo -> Carregar.
Isso carregará o Firmata Sketch no Arduino UNO e agora o Arduino UNO está pronto para aceitar qualquer comando do computador.
Escrevendo programa Node.js para LED piscando:
Para escrever um programa Node.js, abra qualquer editor de texto (Notepad, Notepad ++, etc.) e cole o código 'blink_led' anexado no final deste tutorial e salve-o com uma extensão '.js', ou seja (blink_led.js) na pasta “LED_Control” criada anteriormente. Discutiremos etapas importantes no arquivo de código blink_led.js.
Defina inicialmente o pino do microcontrolador onde o led está conectado. Neste exemplo, o LED está conectado ao pino 5 do Arduino UNO. O 'var' em Node.js representa a declaração de variável.
var led_pin = 5;
O módulo johnny-five precisa ser incluído e a placa precisa ser selecionada. Os módulos em Node.js são bibliotecas. A função ' require () ' acessará o módulo.
var johnny_five = require ("johnny-five"); var arduino_board = new johnny_five.Board ();
A instrução console.log é semelhante à instrução print e imprimirá a mensagem. E o pino do LED é definido para o modo de saída e o atraso definido é dado para piscar o led.
console.log ("LED começou a piscar!"); var led = new johnny_five.Led (led_pin); led.blink (100);
Agora, para executar o programa, siga as etapas abaixo:
- Abrir Prompt de Comando
- Localize a pasta “LED_Control” seguindo o comando 'cd'
- Execute o comando 'Node led_blink.js'. Se executado com sucesso, mostrará "LED começou a piscar!" conforme mostrado na imagem abaixo .
- O led começará a piscar no pino 5 do Arduino UNO.
- E isso termina a primeira parte do nosso tutorial, ou seja, LED piscando com Node.js
Controlando o brilho do LED usando Arduino e Node.js Webserver
Semelhante a Piscando um LED com Node.js, esta seção também terá algumas partes, ou seja, Configurando o Arduino UNO, Configurando a Interface da Web e Escrevendo um programa Node.js.
Configurando o Arduino UNO para controlar o brilho do LED:
Para configurar o Arduino UNO, simplesmente carregue o sketch “ arduino_control.ino ” na placa Arduino UNO e pronto. Isso irá configurar a placa Arduino. Você pode baixar o código completo com arquivos HTML aqui. O código “arduino_control.ino” segue importantes etapas envolvidas.
Inicialmente, a taxa de transmissão é definida em 9600.
Serial.begin (9600);
A porta serial sempre procura byte de entrada e o byte é escrito no pino 5, que é um pino PWM.
while (! Serial.available ()); analogWrite (5, Serial.read ());
É isso aí. Isso configurará o Arduino para travar o byte no pino PWM e mudará o brilho do LED.
Configurando a interface da web:
Para controlar o brilho do led usando a interface web, um pequeno código HTML é escrito para ter uma interface no navegador. Para ter interface, siga as etapas simples abaixo:
- Crie uma nova pasta chamada “public” dentro da pasta “LED_Control” criada anteriormente.
- Agora baixe os arquivos “index.html” e “style.css” e mova ambos os arquivos dentro da pasta “public” criada na primeira etapa acima. Os arquivos podem ser baixados aqui.
Isso criará um controle deslizante na página da Web para controlar o brilho do LED usando Node.js e Arduino.
Controlar um LED de uma página da web é interessante de aprender e pode ser feito com outro microcontrolador criando um servidor web e hospedando a página web no servidor web. Verifique todos os projetos relacionados ao servidor web aqui.
Escrevendo o programa Node.js para controlar o brilho do LED:
O próximo passo seria escrever o esboço “ brilho_control.js ” usando Node.js e executar o código. A execução do código será um pouco semelhante a Piscando um LED com Node.js.
Para escrever um programa Node.js, abra qualquer editor de texto (Notepad, Notepad ++, etc.) e cole o código 'brilho_control ” anexado no final deste tutorial e salve-o com uma extensão '.js ', ou seja (brilho_control.js) na pasta “LED_Control” criada anteriormente. Você também pode baixar o código aqui.
Semelhante ao programa Blink Led Node.js, esta seção também usará módulos (biblioteca). Inclui o módulo 'express', 'http' e 'porta serial'.
var express = require ('express'); app = expresso (); server = require ('http'). createServer (app); io = requer ('socket.io'). listen (servidor); var SerialPort = require ("serialport") //. SerialPort
Agora defina a porta COM e a taxa de transmissão. Observe que no Windows, será sempre COM com a extensão do número (COM6, COM4, COM24 etc.), então defina abaixo conforme necessário após '/'. Também defina buadrate.
var serialPort = novo SerialPort ("/ COM4", {baudRate: 9600});
Comece a escutar o servidor na porta 8080.
server.listen (8080);
Defina o brilho em 0 inicialmente. Em seguida, trave os dados de brilho para IO com módulo de soquetes, que é um módulo de websocket. Os dados serão recebidos pela Web Interface usando protocolo de soquete.
io.sockets.on ('conexão', função (soquete) { socket.on ('led', função (dados) { brilho = dados.value; var buf = new Buffer (1); buf.writeUInt8 (brilho, 0); serialPort.write (buf);
Agora emita o valor de brilho do LED obtido do soquete para o pino do LED.
io.sockets.emit ('led', {valor: brilho}); }); socket.emit ('led', {valor: brilho}); });
Agora, apenas para depurar, adicione uma instrução de impressão no final. Console.log é uma instrução de impressão em Node.js.
console.log ("Servidor da Web iniciado, vá para 'http: // localhost: 8080' em seu navegador.");
Agora para executar o programa seguindo as etapas abaixo:
- Abrir Prompt de Comando
- Localize a pasta “LED_Control” seguindo o comando 'cd'
- Execute o comando 'Node brilho_control.js'. Se executado com sucesso, ele mostrará "Servidor da Web iniciado vá para" http: // localhost: 8080 "em seu navegador. logo abaixo do comando .
- Agora vá para o seu navegador e digite “localhost: 8080” na url.
- Para alterar o brilho, basta mover o controle deslizante de 0-255 valores.
O código completo e o vídeo de trabalho de ambas as seções estão anexados abaixo. Além disso, se você tiver alguma dúvida ou sugestão, pode entrar em contato conosco através do fórum ou comentário abaixo. Todos os arquivos de código também podem ser baixados aqui.