Escolar Documentos
Profissional Documentos
Cultura Documentos
144 568 2 PB PDF
144 568 2 PB PDF
Resumo:
Este artigo aborda o uso da plataforma Arduino no desenvolvimento de uma solução para monitoramento remoto
de vibrações. O Arduino obtém informações do sensor (acelerômetro e giroscópio) de forma remota e é acessado
via interface SERIAL (porta USB) através de um programa que centraliza o monitoramento e gravação dos
dados obtidos. A comunicação entre Cliente e Servidor ocorre através de uma rede sem fio utilizando o rádio
NRF24L01. Para a implementação da solução foram utilizados as ferramentas: Visual Basic.Net, banco de dados
MySQL e rádio comunicador, 2.4 GHz, modelo NRF24L01.
1 Introdução
Com o avanço da tecnologia, os aparelhos eletrônicos ficaram mais inteligentes, com
mais recursos, necessitando cada vez mais se comunicarem entre si. Com isso a comunicação
paralela perdeu espaço devido à dificuldade em se estender barramentos paralelos a grandes
distâncias.
Houve então a necessidade de se utilizar o barramento serial e com isso vários tipos
diferentes de protocolos foram desenvolvidos.
Segundo Deshmukh (2011), atualmente é comum o uso de microcontroladores no
controle de vários processos. Um microcontrolador é um sistema microprocessador
encapsulado em um único chip, com memórias, clock e periféricos mais limitados que um
computador. O uso desses circuitos integrados não somente reduz custo da automação como
também propicia mais flexibilidade. Dentre as plataformas de desenvolvimento que utilizam
microcontroladores, o Arduino tem ganhado um grande destaque.
Arduino é uma plataforma de prototipagem aberta baseada em hardware e software
flexíveis e de fácil utilização segundo Banzi, (2011). O ambiente Arduino foi desenvolvido
para ser fácil para iniciantes que não possuem experiência com desenvolvimento de software
ou eletrônica (MARGOLIS, 2011). Neste contexto, este artigo apresenta uma solução para
monitorar vibrações de estruturas usando a arquitetura Arduino. O protótipo desenvolvido
1
Alunos do curso de Engenharia Civil – Faculdades Integradas Rui Barbosa (FIRB) – Andradina-SP
2
Professor do curso de Engenharia Civil – Faculdades Integradas Rui Barbosa (FIRB). E-mail:
estremot@gmail.com
será responsável por controlar as vibrações através de um programa desenvolvido pelo grupo.
O protótipo desenvolvido será responsável por obter os dados das vibrações, tratá-los e
armazená-los.
2 Objetivos
Nesta seção são apresentados os objetivos deste trabalho:
2.1 Objetivo Geral
O objetivo geral do trabalho é propor uma solução com uso de hardware de baixo custo,
para monitorar vibrações em estruturas, de forma remota, armazenando-os em uma base de
dados que possa ser acessada pela web.
2.2 Objetivos Específicos
Os objetivos específicos são apresentar as vantagens da arquitetura Arduino e expor o
funcionamento da solução proposta.
2.3 Justificativa
O trabalho se justifica por propor uma solução de baixo custo, flexível e prática para o
monitoramento. Segundo Mcroberts (2011) o uso da plataforma Arduino tem como maior
vantagem a facilidade de sua utilização. Outro aspecto favorável ao uso do Arduino é a
grande comunidade de pessoas que compartilham códigos e diagramas de seus projetos para
que mais desenvolvedores copiem, modifiquem ou utilizem parte de suas ideias disseminando
ainda mais o uso da plataforma.
3 Solução proposta
1 VCC +5VCC
2 GND GND
3 SCL 28
4 DAS 27
GND 1 GND
+3,3VCC 2 +3,3VCC
9 3 CE
10 4 CSN
13 5 SCK
12 6 MISO
11 7 MOSI
3.1.2 O software
Para comunicarmos com o sensor e obtermos os valores, nós tínhamos duas opções:
desenvolver nossa própria biblioteca baseada nas regras do protocolo I²C e das informações
dos documentos técnicos do sensor ou utilizarmos uma biblioteca já pronta, dentre as várias
disponíveis gratuitamente pela internet.
Como o objetivo do projeto não é diretamente o estudo dos protocolos envolvidos
optamos por utilizar a biblioteca desenvolvida por Jeff Rowberg e que pode ser baixada
gratuitamente do site: https://github.com/jrowberg/i2cdevlib/tree/master/Arduino/MPU6050.
Para acessar então as informações do sensor utilizando essa biblioteca, foi necessário
acrescentar as seguintes linhas no código do transmissor:
Na seção de declaração de variáveis:
/*-----( Bibliotecas Necessárias )-----*/
/*---(PARA O MPU6050)---*/
#include "Wire.h"
#include "I2Cdev.h"
#include "MPU6050.h"
/*----------------------------------------------*/
MPU6050 sensor; //Objeto que representa o sensor MPU6050.
No procedimento Setup:
Wire.begin(); // inicia I2C bus.
sensor.initialize(); // inicia sensor MPU6050
SensorCon = sensor.testConnection(); //Testa a conexão com o sensor MPU6050.
No procedimento Loop:
//Obtém os dados do sensor MPU6050.
sensor.getMotion6(&dados[0], &dados[1], &dados[2], &dados[3], &dados[4], &dados[5]); //
Armazena as leituras do sensor MPU6050
Para o uso do radio transmissor também utilizamos uma biblioteca pronta que foi
desenvolvida por (maniacbug) que pode ser baixada gratuitamente do site:
https://github.com/maniacbug/RF24.
Para que o rádio funcione como transmissor e envie as leituras feitas pelo sensor foram
acrescentadas as seguintes linhas no código do transmissor.
No procedimento Setup:
radio.begin(); // inicia comunicação via radio
radio.setDataRate(RF24_2MBPS); // Define a velocidade de comunicação do rádio.
radio.setPALevel(RF24_PA_MAX); // Define o nível de potência da transmissão.
radio.setChannel(70); // Define o canal de comunicação.
radio.enableDynamicPayloads(); // Habilita o controle de pacotes automático.
radio.openWritingPipe(pipe); // Define o radio como transmissor
No procedimento Loop:
// Envia os dados via rádio NRF24L01+.
radio.write(dados, sizeof(dados));
terminal de computador por comunicação serial (RS232) através de uma emulação de uma
porta COM pela porta USB.
A velocidade máxima de comunicação entre os dois rádios é de 2 mbps e pode atingir
em condições favoráveis 10m de distância.
A Tabela 2 mostra como ligar os pinos do radio receptor com o Arduino.
3.2.2 O Software
Assim como no módulo transmissor usamos a mesma biblioteca para acessar os dados
que chegam pelo rádio receptor.
As linhas de códigos são praticamente as mesmas com exceção de algumas linhas que
devem ser substituídas, pois um rádio é configurado somente como transmissor e outro
somente como receptor.
No procedimento Setup substituir radio.openWritingPipe(pipe); por:
radio.openReadingPipe(1,pipe); // Define o rádio como receptor.
E acrescentar :
radio.startListening(); // Inicia a escuta para aguardar recebimento dos dados.
Para o recebimento dos dados no procedimento Loop deve-se usar um laço de repetição
até que uma variável de controle seja marcada como verdadeiro quando da recepção total do
pacote enviado for concluída.
Após ler os dados para a variável BUFFER seu conteúdo é separado em variáveis
individuais para cada eixo e sensor e após o mapeamento dos valores pelas funções de
mapeamento, estes dados são mostrados no gráfico e nos mostradores analógicos e quando
solicitado pelo usuário eles são gravados na base de dados.
Considerações finais
Referências
AGUIAR, Ygor Quadros de; MACIEL, Braian Konzgen; SOARES, Luciane Baldassari -
Universidade Federal de Rio Grande – FURG, Barramento Serial I²C e SPI, Disponível em:
<http://www.ebah.com.br/content/ABAAAe7xoAL/barramento-serial-spi-i-c>,Acesso em 25
de junho de 2014.
EVANS, Martin; NOBLE, Joshua; HOCHENBAUM, Jordan: Arduino em Ação. São Paulo:
Novatec, 2013.