Domótica com a BeagleBone Black

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“:

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).

[crayon]$ npm install -g socket.io[/crayon]

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)

[crayon]$ sudo apt-get update[/crayon]

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.

  1. Visitar https://ngrok.com/download
  2. Selecionar o sistema operativo, no caso da BBB é “Linux/ARM
  3. 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.

  1. Conectar a sua BBB ao seu computador por USB
  2. Abrir o Cloud9 IDE (http://192.168.7.2:3000)
  3. Arrastar a pasta .zip que acabou de descarregar para o Cloud9
  4. Executar o comando $ unzip
  5. Abrir ficheiro “server.js”
  6. Clicar no botão “Run” do Cloud9 para executar o script
  7. Abrir a seguinte página para ativar o sensor de movimento e temperatura: http://192.168.7.2:8888/flat-ui/hsdahjfduehfdfasa.html
  8. Clicar “ON”
  9. Se estiver tudo ok, basta aceder aqui: http://192.168.7.2:8888/. E poderá ver uma página parcida com a imagem seguinte.

Untitled

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

BBB_GPIO

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.