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