- Materiais requisitados
- Instalando Node.js no Raspberry Pi
- Piscando um LED usando Node.js
- Script e explicação do LED Blink do Node.js
- Diagrama de circuito para piscar um LED usando Node.js
- Raspberry Pi
Nos tutoriais anteriores do Raspberry Pi, usamos muitas linguagens de programação e softwares diferentes para controlar o Raspberry Pi, incluindo Python, C embutido, Flask etc. Para expandir o horizonte de uma poderosa placa Raspberry Pi, hoje usaremos um ambiente baseado em JavaScript muito popular (Node.js) para controlar GPIOs Raspberry Pi localmente, bem como globalmente, configurando-o como servidor da web. Inicialmente, o Node.js foi desenvolvido para o Google Chrome, mas depois foi liberado pelo Google.
Neste tutorial, vamos controlar um LED, conectado ao Raspberry Pi, usando dois métodos
- Primeiro, vamos simplesmente escrever um código JavaScript usando Node.js para piscar o LED
- No segundo método, criaremos uma página HTML com dois botões para ligar e desligar o LED. Esta página da web em HTML será hospedada no raspberry pi e pode ser aberta em qualquer navegador da web. Então, aqui, o Raspberry Pi atuará como servidor da web
Materiais requisitados
- Placa de Raspberry pi com Raspbian instalado
- CONDUZIU
Neste tutorial, estou usando um monitor externo usando um cabo HDMI para me conectar ao Raspberry Pi. Se você não tiver monitor, pode usar o cliente SSH (Putty) ou o servidor VNC para se conectar ao Raspberry pi usando um laptop ou computador. Se você encontrar alguma dificuldade, siga nosso Guia de introdução ao Raspberry Pi.
Instalando Node.js no Raspberry Pi
Vamos instalar o Node.js em nossa placa usando os seguintes comandos.
Passo 1: - Primeiro verifique a versão do braço de sua placa de raspberry pi usando este comando.
uname -m
No meu caso, a versão é 7.
Passo 2: - Baixe o instalador copiando este link no terminal. Não se esqueça de mudar a versão no link abaixo.
wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armvl.tar.gz
Etapa 3: - Extraia os arquivos usando o comando abaixo
tar -xvf node-v4.6.1-linux-armvl.tar.gz
Passo 4: - Finalmente, execute estes comandos para adicionar os arquivos importantes aos diretórios locais também.
cd node-v4.3.1-linux-armvl sudo cp -R * / usr / local /
Node.js está instalado agora em seu Raspberry Pi. Verifique a versão do nó para confirmação usando este comando.
nó – versão
Antes de fazer um servidor Node.js, primeiro veremos como escrever um script para piscar um LED usando node.js (pacote npm onoff).
Piscando um LED usando Node.js
Para controlar o GPIO no Raspberry Pi usando Node.js, usaremos o módulo onoff.
Usaremos o gerenciador de pacotes npm para instalar o módulo onoff usando o comando abaixo
npm instalar onoff
Agora, vamos escrever um script para piscar do led. Abra o editor nano e dê o nome ao arquivo usando o comando
nano blink_led.js
Se você é um iniciante em Node.js e seus pacotes, você pode a documentação do npm para melhor compreensão do script.
Script e explicação do LED Blink do Node.js
Primeiro, declare as variáveis para led, atraso e GPIO. Estou usando o Raspberry Pi GPIO 4 para conectar o LED.
var Gpio = requer ('onoff'). Gpio; var LED = novo Gpio (4, 'fora'); var blinkInterval = setInterval (blinkLED, 500);
Agora, faremos uma função para iniciar o piscar.
função blinkLED () {if (LED.readSync () === 0) {LED.writeSync (1); // define a saída para 1, ou seja, liga o led} else {LED.writeSync (0); // defina a saída para 0, ou seja, desligue o led }}
Da mesma forma, faça uma função para parar o piscar
função endBlink () {clearInterval (blinkInterval); LED.writeSync (0); LED.unexport (); // Desexportar GPIO para recursos livres} setTimeout (endBlink, 10000);
O código Node.js completo para LED piscando é fornecido no final deste tutorial. Portanto, copie e cole o código no arquivo led_blink.js , que criamos anteriormente usando o comando nano , salve o arquivo usando Ctrl + x, pressione Y e pressione Enter.
Para executar o script, abra o terminal e digite o comando abaixo:
node blink_led.js
Você verá que o LED piscará por 10 segundos e depois parará de piscar. Verifique o funcionamento completo no Vídeo fornecido ao final deste tutorial.
Diagrama de circuito para piscar um LED usando Node.js
Raspberry Pi
Agora, vamos à parte interessante, aqui vamos fazer nosso próprio servidor web a partir do qual podemos controlar o GPIO do Raspberry pi usando uma página web.
Para isso, primeiro precisamos fazer uma página HTML e escrever um script para realizar a tarefa de back-end, ou seja, controlar o RPi GPIO.
Passo 1: - Crie um diretório para armazenar todos os arquivos em um só lugar.
mkdir nodejs_server
Passo 2: - Dentro da pasta nodejs_server crie mais uma pasta para salvar o arquivo HTML.
visualizações cd nodejs_server mkdir
Passo 3: - Se você deseja adicionar imagens à sua página html, você deve tornar outra pasta chamada pública dentro do diretório principal, ou seja, na pasta nodejs_server . Na pasta pública, crie uma pasta de imagens e armazene todas as imagens nesta pasta.
Passo 4: - Agora, faremos a página HTML. Para isso, vá para o diretório de visualizações e abra o editor de texto nano com o nome de arquivo index.ejs
Não há nada sofisticado no roteiro. É apenas um arquivo HTML para fazer botão On e Off.
Copie, cole o código HTML abaixo no editor de texto nano e salve-o.
Bem-vindo ao servidor Nodejs
Status do Led: <% = status%>Etapa 5: - Agora, temos que escrever o código JavaScript. Estamos usando o framework node express para responder às solicitações HTTP realizadas pelo usuário.
Você pode seguir o link para saber mais sobre o Node Express.
Abra o terminal e o editor de texto nano com o nome do arquivo index.js na pasta nodejs_server e , em seguida, copie e cole o código do java script abaixo e este arquivo.
var express = require ('express'); var app = express (); var path = require ('path'); var gpio = requer ('rpi-gpio'); gpio.setup (7, gpio.DIR_OUT); app.set ('view engine', 'ejs'); app.use (express.static (path.join (__ dirname, 'public'))); console.log (path.join (__ dirname, 'public')); app.get ('/', function (req, res) { res.render ('index', {status: "Press Button"}); }); app.post ('/ led / on', função (req, res) { gpio.write (7, true, function (err) { if (err) throw err; console.log ('Escrito True to pin'); console.log (path.join (__ dirname, 'public')); retornar res.render ('index',{status: "Led está ligado"}); }); }); app.post ('/ led / off', function (req, res) { gpio.write (7, false, function (err) { if (err) throw err; console.log ('Written False to pin'); console.log (path.join (__ dirname, 'public')); return res.render ('index', {status: "Led está desligado"}); }); }); app.listen (3000, function () { console.log ('Servidor iniciado na porta: 3000!') })
Etapa 6: - Dentro do diretório nodejs_server , temos que executar o seguinte comando para instalar bibliotecas de node.js
npm install
Etapa 7: - Agora, seu servidor está pronto para funcionar. Para iniciar o servidor local, execute o seguinte comando dentro do diretório nodejs_server
node index.js
você verá uma mensagem no terminal informando que seu servidor foi iniciado na porta definida.
Etapa 8: - Agora abra seu navegador e abra o URL do Raspberry Pi com o número da porta, ou seja, raspberrypi: 3000
Certifique-se de que o raspberry pi e o laptop no qual você está abrindo o navegador estejam conectados à mesma rede.
Você verá a seguinte página no navegador.
Agora, pressione o botão LED On para ligar o LED e o botão LED Off para desligar o LED.