Sensor MQ-*

Material necessário:

    • Bibliografia
      • Building Wireless Sensor Networks, Robert Faludi, O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472, ISBN: 978-0-596-80773-3
      • http://www.digi.com/support/productdetail?pid=3352
    • http://docs.oracle.com/javame/config/cldc/rel/3.3/rasp/gs/html/getstart_raspi/toc.htm
    • http://tsvetan-stoyanov.github.io/launchpi/
    • Hardware
      • 2x XBee
      • 1x sensor MQ digital ou analógico
      • 1x placa USB Breakout com soquete para XBee
      • 1x placa Breakout com soquete para XBEE e pinos compativeis com espaçamento de 0,1"
      • 1x Raspberry Pi
XBee
    • Software
      • X-CTU (http://www.digi.com/support/productdetail?pid=3352)
      • Eclipse (http://www.eclipse.org)
      • PuTTY (http://www.putty.org)
      • Raspbian
    • Oracle Java ME Embedded
    • Oracle Java ME
      • Pi4J (http://pi4j.com/)

Iniciando

  • Faça download e instale o software X-CTU.
    • No Linux, execute o X-CTU através do comando:
$ gksudo /opt/Digi/XCTU-NG/app
    • Para colocar o programa na barra de Launch, durante a execução do programa, clique com o botão direito do mouse no ícone e selecione "Lock to Laucher". Depois copie o arquivo .desktop do diretório do X-CTU para o seu diretório de aplicações com o comando a seguir:
$ cp /opt/Digi/XCTU-NG/XCTU.desktop .local/share/applications/xctu.desktop
    • Edite o arquivo e faça a seguinte modificação:
Exec=env UBUNTU_MENUPROXY=0 GTK2_RC_FILES=$GTK2_RC_FILES:/opt/Digi/XCTU-NG/.gtkrc-eclipse /opt/Digi/XCTU-NG/app
    • para:
Exec=env UBUNTU_MENUPROXY=0 GTK2_RC_FILES=$GTK2_RC_FILES:/opt/Digi/XCTU-NG/.gtkrc-eclipse gksudo /opt/Digi/XCTU-NG/app
  • Conecte o XBee que será utilizado remotamente no breakout USB
  • Conecte o breakout USB no PC
  • Execute o X-CTU
  • Clique no ícone para descobrir um novo dispositivo
    • Selecione a interfase serial apropriada e os parâmetros de conexão (normalmente o padrão está correto)

    • Aguarde até que o XBee seja localizado. Selecione o item e clique em adicionar.
    • Clique no dispositivo e configure o PAN ID (ele tem que ser o mesmo para todos os XBee na sua rede de XBee). Não se esqueça de clicar no lápis ao lado do valor do item para salvar a configuração.
    • Opcionalmente configure também o Node Identifier.
    • Atualize o firmware para ZigBee Coordinator AT. Utilize a última versão.
    • Coloque esse XBee no outro breakout com alimentação e insira um novo XBee no breakout USB.
    • Repita o mesmo procedimento, mas utilize o firmware ZegBee Router API com a última versão.
    • Configure os canais digitais e analógicos.
    • Configure a taxa de amostragem.
    • Conecte o sensor ao XBee que irá obter os dados:
    • Conecte o XBee que irá receber os dados no Raspberry Pi
    • No Raspberry Pi, modifique o arquivo /boot/cmdline.txt de:
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait fbcon=map:10 fbcon=font:VGA8x8
    • Para e reinicie o Raspberry:
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait
    • Alguns blogs sugerem também comentar a seguinte linha de /etc/inittab:
2:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
    • Instale o pacote Pi4J com o seguinte comando. O pacote será instalado em /opt/pi4j
$ curl -s get.pi4j.com | sudo bash 
    • Utilize o exemplo /opt/pi4j/examples/SerialExample.java para obter os dados do sensor. Copie o arquivo para um diretório abaixo do seu home, modifique a velocidade configurada da interface serial no arquivo fonte Java para 9600 bauds, compile e execute com os comandos abaixo:
$ cd
$ mkdir serial
$ cd serial
$ cp /opt/pi4j/examples/SerialExample.java .
$ vi SerialExample.java
$ javac -classpath .:classes:/opt/pi4j/lib/'*' -d . SerialExample.java
$ sudo java -classpath .:classes:/opt/pi4j/lib/'*' SerialExample
    • Para utilizar o Eclipse em um PC para desenvolver o projeto, instale o plugin LaunchPi no Eclipse
    1. No Eclipse, clique em Help -> Install New Software...
    2. Na janela "install", clique em Add..
      1. Em Name, use LaunchPi (ou qualquer outro nome que você queira)
      2. Em Location, use https://raw.githubusercontent.com/tsvetan-stoyanov/launchpi/master/org.launchpi.us/target/site/site.xml
      • Clique em OK. De volta à janela "Install", expanda o item Uncategorized e selecione o plugin LauchPI e clique em Finish.
  • Instale a biblioteca Pi4J no PC. No Ubuntu ela provavelmente será instalada em /opt/pi4j (você pode copiar do Raspberry Pi)
  • Crie um projeto Java com um diretório lib.
  • Copie as bibliotecas (arquivos .jar) para lá. Inclua no Build Path os JARs necessários. No caso do Pi4J, é necessário incluir somente o pi4j-core.jar no Build Path.
  • Crie as suas classes.
  • Para executar, crie uma configuração clicando com o botão da direita no seu projeto e selecione Run As -> Run Configurations...
  • No item Raspberry PI, crie uma configuração nova clicando no ícone "New launch configuration" (o primeiro à esquerda, no topo da janela) e preencha os campos como no exemplo a seguir (10.0.0.205 é o endereço do Raspberry Pi e br.com.meslin.testeSerial.SerialExample é o pacote e a classe principal):

A perspectiva "Remote Systems" do Eclipse fornece informações importantes sobre o a conexão remota, incluindo o username e a password.

Terminando

Para incluir a sua aplicação na lista de programas que serão executados automaticamente ao iniciar o sistema (Ubuntu), realize os seguintes passos:

    • Crie um arquivo batch para controlar a sua aplicação com permissão de execução. O arquivo deverá ter as opções start, stop, restart, force-reload e status. Veja em anexo um exemplo do batch IOT-Home.
$ ls -l /etc/init.d/IOT-Home
-rwxr-xr-x 1 root root 1255 Aug  4 22:47 /etc/init.d/IOT-Home
  • Crie um link simbólico do arquivo em /etc/rc.d
$ http://tsvetan-stoyanov.github.io/launchpi/
    • Atualize o rc.d com o comando a seguir:
$ sudo update-rc.d IOT-Home defaults 100