Nesta página podem encontrar as instruções necessárias para fazerem o projeto de domótica que foi demonstrado na apresentação do Lançamento do livro BeagleBone For Dummies na FEUP (dia 16 de Abril).
Se nunca utilizaram uma BeagleBone Black, eu recomendo primeiro lerem a seguinte série de tutoriais chamada “Getting Started with the BeagleBone Black“:
- Getting Started with the BeagleBone Black
- Cloud9 IDE on the BeagleBone Black
- Programming the BeagleBone Black with BoneScript
- Programming the BeagleBone Black with Python
Software Utilizado
- Node.js
- BoneScript
- Flat UI
- Socket.io
- streamer
- ngrok
- Chart.js
Node.js
Node.js está instalado na BeagleBone Black por defeito. Permite criar web servers rápidos e eficientes, perfeito para aplicações que necessitam de um funcionamento em tempo real.
BoneScript
BoneScript está instalado na BeagleBone Black e permite acesso ao hardware da BBB. Controlar saídas, ler entradas, gerar sinais PWM ou criar interrupções.
Flat UI
Flat UI é uma framework HTML que nos permite fazer páginas web que estão optimizadas para qualquer browser, e ainda possui todos os elementos necessários para criar uma interface gráfica para uma aplicação.
Não está “instalada” na BeagleBone, mas está incluída no código que podem fazer download abaixo.
Socket.io
Socket.io é um módulo de Node.js é o que nos permite estabelecer uma comunicação entre o cliente e o nosso web server em Node.js. Não está instalado na BBB.
Para instalar basta executar a seguinte linha de código (BBB precisa de estar conectada à Internet).
$ npm install -g socket.io
streamer
streamer é o que nos permite tirar uma foto com a webcam. Para instalar basta executar a seguinte linha de código (BBB precisa de estar conectada à Internet)
$ sudo apt-get update
ngrok
ngrok é um serviço grátis que nos permite aceder a um web server em qualquer parte do mundo. O que torna a nossa aplicação ainda mais interessante. É muito fácil de utilizar.
- Visitar https://ngrok.com/download
- Selecionar o sistema operativo, no caso da BBB é “Linux/ARM“
- Extrair a pasta ngrok.zip
De seguida (BBB precisa de estar conectada à Internet) execute o seguinte comando:
[crayon]$ ./ngrok 192.168.7.2:8888 [/crayon]
O serviço ngrok vai atribuir um domínio (http://exemplo.ngrok.com). Que depois pode utilizar em qualquer browser para aceder ao seu web server.
Chart.js
Chart.js é uma biblioteca em JavaScript que permite criar gráficos. Não está “instalada” na BBB, mas está incluída no código abaixo.
Download Código
Clique aqui para fazer download de todo o código utilizado.
- Conectar a sua BBB ao seu computador por USB
- Abrir o Cloud9 IDE (http://192.168.7.2:3000)
- Arrastar a pasta .zip que acabou de descarregar para o Cloud9
- Executar o comando $ unzip
- Abrir ficheiro “server.js”
- Clicar no botão “Run” do Cloud9 para executar o script
- Abrir a seguinte página para ativar o sensor de movimento e temperatura: http://192.168.7.2:8888/flat-ui/hsdahjfduehfdfasa.html
- Clicar “ON”
- Se estiver tudo ok, basta aceder aqui: http://192.168.7.2:8888/. E poderá ver uma página parcida com a imagem seguinte.
Hardware
- BeagleBone Black
- Lâmpada com circuito controlador (Controlada pelo pino P9_14)
- Sensor de temperatura LM35 (Temperatura lida pelo pino P9_40)
- Sensor de movimento (Detetado pelo pino P8_19)
- Webcam
BeagleBone Black
Se ainda não tem uma BBB recomendo comprar a BeagleBone Black Rev. C. E instalar Debian do site oficial http://beagleboard.org/latest-images.
Lâmpada
Existem imensos tutoriais na internet em como controlar uma lâmpada com um relé. Se não souber como o fazer o circuito controlador, pode simular esta parte do projeto com um LED+Resistência no pino P9_14.
LM35
Sensor bastante barato. Alimentar com os pinos VCC->VDD_ADC e GND->GND_ADC. Ler a data do sensor com o pino P9_40. Nota Importante: os pinos ADC da BeagleBone só podem receber no máximo 1,8V. Antes de conectar o que quer que seja aos pinos ADC, primeiro verifique bem as ligações e faça medições com um multímetro.
Sensor de movimento
Muito fácil de adquirir no eBay. Basta pesquisar “PIR Motion Sensor”. Pode modificar o seu sensor para operar a 3.3V que é a voltagem ideal para trabalhar com os pinos da BeagleBone Black. Está ligado ao pino P8_19.
Webcam
Nem todas as Webcams são compatíveis com a BBB. Conecte a sua Webcam à porta USB e aguarde uns segundos. De seguida execute o comando:
$ ls /dev/
E deverá aparecer a sua webcam definida como /dev/video0 ou /dev/video1. Se ela não aparecer é porque não deve ser compatível com a sua BBB.
Para tirar uma foto basta executar o comando seguinte:
$ streamer -o test.jpeg
Conclusão
Se tiver dúvidas ou sugestões pode deixar um comentário no formulário abaixo. Ou então até mesmo entrar diretamente em contacto comigo no Facebook.
Obrigado pelo seu interesse neste projeto!
-Rui Santos
P.S. Acho que não me esqueci de nenhum passo.