Fechar - Jornada de Ensino, Pesquisa e Extensão

Transcrição

Fechar - Jornada de Ensino, Pesquisa e Extensão
IMPLEMENTAÇÃO DE BANCO DE DADOS EM SISTEMA
OPERACIONAL ABERTO EMBARCADO COM REDE ZIGBEE
Eduardo Roosevelt de Oliveira Silva
Aluno do IFMT, Campus Cuiabá, bolsista PIBIC/Cnpq
Valtemir Emerencio do Nascimento
Prof. Doutor.do IFMT, Campus Cuiabá, orientador
Resumo
O presente artigo propõe a viabilidade do uso de sistemas operacionais abertos embarcados
em hardware de baixo custo (Raspberry Pi) para aplicações em redes inteligentes e
monitoramento. Estas redes caracterizam uma nova tecnologia onde a infraestrutura de
comunicação de dados e o sistema elétrico é interligado formando um único sistema e o que
permite o fluxo bidirecional de comunicação. O uso destas redes destaca-se a nível mundial
juntamente com as fontes de energia renováveis. O artigo demonstra o uso da rede ZigBee
integrado ao banco de dados Mysql por meio da inserção de dados no Raspberry Pi, e as
configurações necessárias para a criação de um servidor web.
Palavras-chaves: ZigBee, Raspberry Pi, Smart Grid e Banco de Dados
Introdução
Nos dias atuais, a evolução da informática e das redes de comunicação de dados tem
revolucionado infraestrutura confiável de comunicação bidirecional (Saad2012). Uma das
vantagens do Smart grid é aferir a tarifação dinâmica em horário de pico e horário normal,
demonstrando em tempo real o custo ao consumidor. E, usando protocolos apropriados as
informações podem ser trocadas eficazmente entre os elementos da rede de modo que a rede
possa reagir rapidamente a eventuais falhas no sistema, e os consumidores possam receber
serviços de melhor qualidade (Berfmann201). A rede Smart Grid possibilita também o
armazenamento efetiva da energia, em banco de baterias, por exemplo, o que minimiza o
problema da intermitência das fontes renováveis, uma vez que os momentos de falta de
energia gerada pelo consumidor podem ser compensados pela energia armazenada nos
“reservatórios” de bateria.
Apesar das grandes possibilidades de aplicações com o uso de redes inteligentes, a
sua aplicabilidade em determinado momento pode ser dificultada em virtude de requisitos
computacionais tais como: processamento e memória. Para contornar esse problema, o uso do
computador Raspberry PI com sistema Linux integrado junto com a tecnologia de sensores
Zigbee, foi necessário para a realização da filtragem desses dados antes do envio à central, o
Página 65
pré-processamento moldará os dados para que sejam adequados às aplicações Smart Grid e
armazenados em um banco de dados. Nas próximas seções serão mostradas as características
da rede proposta e bem como implementação do Banco de Dados a ciência em diversas áreas
do conhecimento. Entretanto, o custo de implantação de soluções tecnológicas em alguns
casos ainda é proibitivo. Dentro deste contexto o uso de softwares e hardwares de baixo custo
é de fundamental importância. A sinalização nas redes elétricas atuais é bastante limitada,
uma vez que o sistema provê apenas comunicação unidirecional, do centro de controle da
concessionária para os equipamentos no campo. A desvantagem desse modelo é não a
possibilidade de interação dos vários tipos de carga com o centro de controle,
supervisionamento remoto o que dificultará em detecção e correção de falhas. E, além disso,
não há um controle exato da quantidade de energia que é consumida por cada aparelho,
equipamentos do campo ou aparelho elétricos residenciais.
Para estes fins, estudos com Smart Grid demonstram serem eficaz não apenas em
dispositivos inteligentes na rede, como medidores e atuadores automatizados, mas também em
um banco de dados. Nas próximas seções serão mostradas as características da rede proposta e
bem como implementação do Banco de Dados.
Os objetivos deste artigo são:
1. Montar, através de protótipo, uma arquitetura que possua módulos Zigbee conectados
a computadores de baixo custo e consumo de energia (Raspaberry Pi).
2. Fazer coleta de dados e disponibilização de informações via Banco de Dados da
arquitetura proposta.
Fundamentação Teórica
Inicialmente, foi montada um protótipo constituído por aproximadamente dois nós
para as avaliações preliminares dentro do IFMT - Campus Cuiabá. A fim de determinar a
topologia mais apropriada ao projeto, as seguintes alternativas, mostradas na figura 1, serão
avaliadas:
Página 66
Figura 1 – Topologia ZigBee
Fonte: adaptado http://www.rogercom.com/ZigBee/ZigBee.htm.
(1) Mesh (Malha): São redes dinâmicas e expansíveis, onde existe “redundância”
de rotas entre os end devices e seu coordenador;
(2) Star (Estrela): é composta por um nó coordenador, que é responsável pelo
gerenciamento da rede, e pelos dispositivos finais (end-devices). Este tipo de
topologia tem extensão limitada ao alcance RF dos módulos, devido à
inexistência de nós roteadores;
(3) Cluster Tree (Árvore): Utiliza o mesmo conceito de expansibilidade da rede
mesh, porém não prevê redundância de rotas. Se um nó roteador falhar, todos
os nós posteriores a ele não conseguem retornar à rede.
Em uma Rede ZigBee são identificados dois tipos de dispositivos: FFD e RFD.
FFD - Full Function Device (Dispositivos de Funções Completas) - realizam todas as funções
lógicas.
RFD - Reduced Function Device c(Dispositivos de Funções Reduzidas) – realizam apenas as
funções de dispositivos finais. No padrão ZigBee existem três classes de dispositivos lógicos:
Coordenador, Roteador e Dispositivo Final, que definem a Rede:
ZC – ZigBee Coordenador- Só pode ser implementado através de um dispositivo FFD. O
coordenador é responsável pela inicialização, distribuição de endereços, manutenção da Rede,
reconhecimento de todos os Nós, entre outras funções podendo servir como ponte entre várias
outras Redes ZigBee.
ZR – ZigBee Router - Só pode ser implementado através de um dispositivo FFD. Tem as
características de um nó normal na Rede, mas com funções extras de roteamento entre nós
Página 67
intermediários, sem precisar do Coordenador. Por intermédio de um roteador uma Rede
ZigBee poder ser expandida, e assim ter mais alcance. Na prática um roteador pode ser usado
para amplificar o sinal da Rede entre andares de um prédio.
ZED – ZigBee End Device - É onde os atuadores ou sensores serão hospedados. Pode ser
implementado através de um dos dispositivos FFD ou RFD. Dessa forma, ele é o nó que
consome menos energia, pois na maioria das vezes ele fica dormindo (Sleep).
O X-CTU foi desenvolvido com o objetivo de facilitar as configurações não
remotas dos módulos, já estas podendo ser feitas via interface gráfica. Em nosso caso, essa
aplicação é válida para criar uma rede pra os módulos Xbee PRO, e adicioná-los a ela. Feito
isso poderemos configurá-los remotamente via linha de comando.
Para configurá-los de maneira não remota utilizaremos uma interface adaptadora USB, que
interliga o módulo ao computador diretamente atuadores ou sensores serão hospedados. Pode
ser implementado através de um dos dispositivos FFD ou RFD. Assim ele é o nó que consome
menos
Figura 2 – X-CTU interface gráfica
Fonte: Elaborado pelo autor
Página 68
Conforme a figura 2, temos uma interface amigável de configuração, onde se pode criar uma
rede, adicionar um endereço lógico para o nó que estiver sendo configurado, dentre outros
parâmetros. Existem vários tipos de aplicações que podem ser feitos, porém, para começar a
rede, podem-se utilizar alguns parâmetros como: Em Networking temos:

CH – Channel, onde mudar o canal de freqüência de trabalho do módulo; ID – PAN
ID, endereço lógico do nó, pode-se atribuir endereço de 1 a 65635; H e DL- podem-se
destinar os pacotes maiores ou menores respectivamente;

MY- onde se define o endereço de 16 bits ao módulo; o

NI- Node Identifier que tem a função de nomear o módulo em variável tipo string.
Na figura 3 podemos observar o Raspberry Pi com um dispositivo Xbee (DIGI, 2010) que
atua como coordenador conectado em uma de suas portas USB. As configurações desses
módulos foram feita pelo (Tavoloni, 2014, p.26).
Figura 3 – Raspberry Pi com um dispositivo Xbee
Fonte: Tavoloni, 2014
Metodologia
O sistema operacional escolhido para o RaspberryPi é o Linux Raspbian, que é uma
derivação da distribuição Debian desenvolvida para esta plataforma. Aqui são mostradas as
configurações necessárias para criação de um servidor web com o raspberry pi, mas não será
implementada a visualização online.
As Raw Images são distribuições que devem ser baixadas, descompactadas e escritas
nos cartões SD. Mas não basta simplesmente baixá-las e copiá-las para os cartões, deve-se
utilizar uma ferramenta para preparação dos cartões, se o usuário utiliza Linux pode utilizar a
ferramenta dd. Se utiliza Windows a ferramenta a ser usada é o Win32DiskImager. Se o
usuário não utilizar uma destas ferramentas ou outra que execute as mesmas funções de
preparação, e apenas copiar os arquivos, o Sistema Operacional não funcionará. A seguir são
detalhados os passos de instalação do sistema proposto:
1. Antes de iniciarmos os passos, faremos o download dos arquivos necessários.
Página 69
Download Raspbian:
http://downloads.raspberrypi.org/raspbian_latest
2. Execute o Win32 Disk Imagere em Image File deve-se colocar o arquivo da
distribuição baixada, e em Device escolha a letra do cartão SD. Clique em Write e Yes
para confirmar. Aguarde até que esteja completo. Se finalizar sem problemas, retire o
cartão SD e insira no Raspberry Pi e ligue-o.
3. Uma vez que a gravação tenha finalizado, você pode inserir o SD card em seu
Raspberry Pi, em seguida plugar o restante dos cabos, certificando-se de plugar o mini
USB por último.
4. Uma vez que o Debian seja carregado por completo, você precisará logar. O usuário
padrão é "pi", enquanto que a senha padrão é "raspberry".
5. Pelo fato de você estar rodando uma versão nova do Debian, você precisará fazer
alguns ajustes, atualizações e instalações. Primeiramente, vamos atualizar o relógio,
atualizar nossas fontes e, em seguida, atualizar todos os pacotes pré-instalados. Utilize
o seguinte código para fazer isto:
sudo dpkg-reconfigure tzdata
sudo apt-get update
sudo apt-get upgrade
6. Em seguida, nós queremos instalar a ferramenta desatualização Hexxeh's RPI, a qual
ajuda a manter o RaspberryPi atualizado. Para fazer isto execute:
sudo apt-get install ca-certificates
sudo apt-get install git-core
sudo wget http://goo.gl/1BOfJ -O /usr/bin/rpi-update &&sudo chmod+x /usr/bin/rpi-update
sudo rpi –update
sudo shutdown –r now
7. Agora vamos configurar o SSH para que possamos fazer todo o resto a partir de outro
computador. Para fazer isto, primeiramente anote o endereço IP do RaspberryPi, em
seguida execute o seguinte:
sudo mv/boot/boot enable_ssh.rc /boot/boot.rc
sudo shutdown –r now
Você agora pode desplugar os cabos de seu teclado USB bem como de seu monitor. Eles não
Página 70
serão mais necessários visto que todo o resto será feito via SSH.
8. Abra seu cliente SSH e conecte-se ao seu ip do seu RaspberryPi. Por questões de
segurança você deveria alterar a senha. Faça isto executando:
sudo passwd pi
Ser-lhe-á solicitado que digite sua senha, em seguida digite-a novamente para confirmá-la.
9. Agora vamos instala o servidor Apache. Para instalar o Apache e o PHP, execute o
seguinte comando:
sudo apt-get install apache2 php5 libapache2 –mod-php5
Se você receber um erro de instalação, execute:
sudo groupadd www-data
sudo usermod –g www-data www-data
Agora reinicie o serviço:
sudo servisse apache2 restart
10. Para instalar o MySQL, instale alguns pacotes com o seguinte comando:
sudo apt-get install mysql-server mysql-client php5-mysql
11. Instalando o FTP para permitir a transferência de arquivos de cliente para o Raspberry
Pi. Isto apenas foi testado com a instalação do Apache. Aproprie-se do diretório web
raiz:
sudo chown –R pi /var/www
Em seguida, instale o vsftpd:
sudo apt-get install vsftpd
12. Configure o FTP. Edite seu arquivo vsftpd.conf, geralmente localizado em
/etc/vsftpd.conf. Por exemplo, utilize sudo nano /etc/vsftpd.conf. Altere o parâmetro
anonymous_enable=YES para anonymous_enable=NO,
descomente
as
linhaslocal_enable=YES e write_enable=YES, em seguida vá para o final do arquivo e
adicione a linha force_dot_files=YES. Agora salve e feche o arquivo. E em seguida
reinicie o vsftpd:
sudo servisse vsftpd restart
Página 71
13. Deslogue de sua sessão SSH e logue novamente como root
14. Edite o arquivo de configuração de senhas:
sudo nano /etc/passwd
15. Encontre a linha pi:x;1000:1000:Raspberry Pi User,,,:home/pi:/bin/bash e adicione o
sinal # ao início da linha. Agora salve e feche o arquivo.
16. Adicione o usuário pi como um mod.
sudo usermod –d/var/www pi
17. Encerre sua sessão SSH e logue novamente com o usuário pi, em seguida garanto
direitos mod ao root.
sudo usermod –L root
18. Agora finalize sua conexão SSH. Seu servidor deverá estar no ar e rodando. Você
pode transferir arquivos via FTP utilizando o IP do servidor, conectando-se através da
porta 21
Criando a base de dados no Banco de Dados MySQl: Primeiramente vamos iniciar o
mysql digitando no terminal: mysql -u root -p (Digite então a senha do banco de dados).
Então terá uma tela como essa. O resultado é mostrado na figura 4.
Figura 4 – pagina inicial do banco de dados
Fonte: Elaborado pelo autor
Cria-se a base de dados que irá se chamar dados, para isso digite:
“create database dados;” O resultado é mostrado na figura 5.
Figura 5 – Criando base de dados
Fonte: Elaborado pelo autor
Página 72
Em seguida digite o comando: show databases; Para saber qual base de dados existe no seu
banco. Como é mostrada a figura 6.
Figura 6 – mostrando as bases de dados existentes
Fonte: Elaborado pelo autor
Note que já existem algumas outras bases de dados além da criada por nós. Vamos selecionar
a nossa base digitando: “ use dados; ” Como mostra figura 7.
Figura 7 – Selecionando a base de dados
Fonte: Elaborado pelo autor
Agora vamos cria uma tabela para nossa base. Essa tabela irá se chamar “coordenador” para
isso digite:
create table coordenador (
id int not null auto_increment primary key,
date text not null,
endereco_sensor varchar(30) not null,
temperatura int(3) not null);
Como mostra figura 8
Página 73
Figura 8 – Criando uma tabela na base de dados
Fonte: Elaborado pelo autor
Após termos criado a tabelas vamos visualiza-la para ver se está tudo certo digite então: desc
coordenador;
Como mostra figura 9:
Figura 9 – visualização da tabela criada.
Fonte: Elaborado pelo autor
Resultados e Discussões
Com o banco de dados criado podemos fazer a inserção das temperaturas lidas. Para
isso, o algoritmo usado foi a do (Tavoloni, 2014, p.48). Foi necessário realizar modificações
no código original para que possam ser inseridos dia e hora que foram coletados, qual sensor
coletou e qual a temperatura lida pelo sensor.
Para ver o resultado inicie o mysql. Selecione a base de dados que foi criada, neste
caso, digita-se: “use dados;” Em seguida executa-se o comando, SELECT*FROM
coordenador; Esse comando irá dar acesso a todas as informações da tabela coordenador. No
caso da tabela da figura 10 fiz o trafego de dados durante 1 minuto.
Página 74
Figura 10 – armazenamento de amostras.
.
Fonte: Elaborado pelo autor
Considerações Finais
Esse artigo mostra que é possível e viável configurar os módulos zigbee, para a
captura de temperatura e armazenamento via Banco de Dados, no computador de baixo custo
Raspberry Pi através do banco de dados MySQL.
Como trabalhos futuros, os dados armazenados poderão ser visualizados via web e
posteriormente em aplicativos android. No caso do uso da arquitetura proposta pelo
consumidor em redes inteligentes será possível a visualização do gasto instantâneo em um
determinado aparelho e visualização em tablets e smatphones.
Referências
CONTROLE REMOTO E AQUISIÇÃO DE DADOS VIA XBEE/ZIGBEE (IEEE 802.15.4).
Disponível em:
<http://www.rogercom.com/ZigBee/ZigBee.htm>. Acesso em: 2 de Jul. de 2013.
DIGI INTERNATIONAL. Support. United States, 2013. Disponível em:
<http://ftp1.digi.com/support/documentation/90000976_P.pdf >. Acesso em: 7 de Ago. de
2013.
Página 75
RAMALHO, Lucas Arruda. Metodologia de experimentos didáticos de aplicações
Zigbee. (44 f.). 2011. Trabalho de Conclusão de Curso Superior de Tecnologia em
Redes de Computadores. Instituto Federal de Ciência, Educação e Tecnologia de Mato
Grosso.
Criar um Servidor Web Raspberry Pi. Disponível em:
< http://pt.wikihow.com/Criar-um-Servidor-Web-Raspberry-Pi>.
Configurando o MySQL em um Pi Raspberry. Disponível em:
< http://raspberrywebserver.com/sql-databases/using-mysql-on-a-raspberry-pi.html>.
Tavoloni Junior, P.R. Metodologia de baixo custo para mineração de dados smart grid
utilizando redes de sensores zigbee. 2014. Trabalho de Conclusão de Curso Superior de
Tecnologia em Redes de Computadores. Instituto Federal de Ciência, Educação e Tecnologia
de Mato Grosso.
Página 76

Documentos relacionados

Guia 101 do Raspberry Pi - Sites IPLEIRIA

Guia 101 do Raspberry Pi - Sites IPLEIRIA 4. Reinicializar o sistema com o comando 5. Para alternar entre as configurações de IP dinâmico e IP fixo basta utilizar os seguintes ...

Leia mais