Sensor MQ-*
Material necessário:
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
- 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 EmbeddedOracle Java ME- Pi4J (http://pi4j.com/)
Iniciando
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
- No Eclipse, clique em Help -> Install New Software...
- Na janela "install", clique em Add..
- Em Name, use LaunchPi (ou qualquer outro nome que você queira)
- 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
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