Vous êtes sur la page 1sur 39

ANHANGUERA EDUCACIONAL Ltda.

Faculdade Anhanguera de Mato Curso de Engenharia de Controle e Automao

Edson Gaspar Jos Augusto Santaella

SISTEMA SUPERVISRIO REMOTO EMBARCADO

MATO 2010

EDSON GASPAR JOS AUGUSTO SANTAELLA

SISTEMA SUPERVISRIO REMOTO EMBARCADO

Trabalho de Concluso de Curso apresentado como exigncia para obteno do ttulo de Bacharel em Engenheira de Controle e Automao Faculdade Anhanguera de Mato, sob a orientao do Professor MS Julio Csar Melli

MATO 2010

EDSON GASPAR JOS AUGUSTO SANTAELLA

SISTEMA SUPERVISRIO REMOTO EMBARCADO

Trabalho de Concluso de Curso apresentado como exigncia para obteno do ttulo de Bacharel em Engenheira de Controle e Automao, na Faculdade Anhanguera de Mato, sob a orientao do Professor MS. Julio Csar Melli.

Aprovado em 17 de dezembro de 2010

______________________________________ Professor Ms. Julio Cesar Melli Faculdade Anhanguera de Mato Orientador

______________________________________ Professor Ms. Marcelo Alexandre Real Faculdade Anhanguera de Mato Prof Avaliador

________________________________ Prof Ms. Eliana Cristina A. Saraiva Faculdade Anhanguera de Mato Supervisora de Trabalho de Concluso de Curso

MATO 2010

O acesso informao no instante em que ela ocorre to ou mais importante que a prpria informao, o poder de planejar o futuro em tempo real a chave desse novo panorama.

iii

SUMRIO

SIGLAS UTILIZADAS ......................................................................................................IV LISTA DE FIGURAS .........................................................................................................V INTRODUO ...................................................................................................................7 1. SISTEMA SUPERVISRIO .....................................................................................9

1.1. WLAN - REDES DE COMPUTADORES ................................................................10 2. SISTEMA SUPERVISRIO REMOTO EMBARCADO (SSRE) ...........................12

2.1. PLATAFORMA ARDUINO .....................................................................................12 3. ESTUDO DE CASO ..................................................................................................14

3.1. PROTTIPO ..............................................................................................................14 3.2. FUNCIONAMENTO DO PROTTIPO ...................................................................17 3.3. DIAGRAMA DE BLOCOS DO SSRE......................................................................18 4. 5. PROGRAMAO EMBUTIDA NO ARDUINO ....................................................20 VANTAGENS E DESVANTAGENS .......................................................................26

CONCLUSO .....................................................................................................................27 REFERNCIAS BIBLIOGRFICAS ................................................................................28 APNDICES .......................................................................................................................30 APNDICE A......................................................................................................................31

iv

SIGLAS UTILIZADAS

AP CLP HTML IEEE

(Access Point) Ponto de Acesso. Controlador Lgico Programvel (HyperText Markup Language) Linguagem de Marcao de Hipertexto. (Institute of Electrical and Electronics Engineers, Inc) Sociedade Internacional de ndole Tcnico e Profissional. Giga Hertz. (Local Area Network) - Rede local. Proporcional Integral Derivativo. (Pulse-Width Modulation) Modulao por largura de Pulso. Sistema Supervisrio Remoto Embarcado. (Transmission Control Protocol, Internet Protocol) Protocolo de Controle de Transmisso, Protocolo de Interconexo. Tecnologia da Informao. (Universal Serial Bus) Barramento Universal Serial. (Wireless Fidelity) Fidelidade Sem Fio. (Wireless LAN) Rede local sem fio.

GHz LAN PID PWM SSRE TCP-IP

TI USB Wi-Fi WLAN

LISTA DE FIGURAS

Figura 1: Sistema de Superviso, ......................................................................................... 9 Figura 2: Topologia de rede modo infra-estrutura.............................................................. 11 Figura 3: Foto de uma placa padro do sistema Arduino USB. ........................................ 13 Figura 4: Diagrama em blocos do Prottipo. ...................................................................... 15 Figura 5: Foto do prottipo................................................................................................. 16 Figura 6: Foto da tela capturada de um computador acessando o sistema. ........................ 17 Figura 7: Diagrama em blocos da topologia de rede. ......................................................... 19 Figura 8: Diagrama de fluxo do corpo principal do programa. .......................................... 21 Figura 9: Diagrama de fluxo do processamento Me. ........................................................ 23 Figura 10: Diagrama de fluxo de requisio de pgina (Requisio do TPC-IP). ............. 25

6 GASPAR, Edson; SANTAELLA, Jos Augusto. Sistema Supervisrio Remoto Embarcado. 2010. 37p. Trabalho de Concluso de Curso (Graduao em Engenharia de Controle e Automao). Faculdade Anhanguera de Mato, Mato, FPM, So Paulo, 2010.

RESUMO

Com o constante crescimento do nvel de automao de processos industriais e de produo, a aquisio de dados para fins de monitoramento e tomadas de deciso vem se tornando um ponto crucial para que profissionais de alta qualificao tenham acesso aos dados em tempo real e remotamente. O presente trabalho demonstra atravs de um estudo de caso o uso da tecnologia de transmisso de dados sem fio denominado Wi-Fi1, e uso de protocolo de comunicao TCP-IP (Protocolo de Controle de Transmisso, Protocolo de Interconexo) como via de dados para este monitoramento e gerenciamento. Atravs da apresentao dos componentes, softwares envolvidos e plataforma de desenvolvimento, so detalhados o funcionamento de todo o sistema e de cada componente, bem como suas vantagens e desvantagens. Como exemplo, apresentado um prottipo de uma situao prtica conceitual, onde possvel a simulao de um processo industrial estabelecendo comunicao com um dispositivo remoto. Nesse caso so utilizados smart phones e laptops para a funo.

Palavras-Chave: sistema supervisrio; CLP; software embarcado; rede Wi-Fi; automao industrial

Wi-Fi marca registrada da Wi-Fi Alliance

INTRODUO

Utilizado na Automao Industrial para controlar e monitorar um processo de produo, Sistema Supervisrio um software ou pacote de softwares instalados em computadores fora do ambiente fabril e, atravs de um meio de comunicao com os CLPs (Controlador Lgico Programvel) da planta, proporciona um contnuo monitoramento, aquisio de dados, capacidades de ajustes e tomadas de deciso sem a necessidade da presena o homem na planta onde o processo fisicamente monitorado e controlado. Dentre as vantagens do emprego desta tecnologia, estaria a rapidez na aquisio de dados atravs do monitoramento de pontos crticos, tanto para segurana dos colaboradores prximos ao sistema quanto do equipamento.Com o avano na tecnologia das redes de comunicao, os sistemas supervisrios podem estar conectados aos CLPs atravs de redes sem fio que alm de maior mobilidade pode virtualmente estar em qualquer lugar que tenha comunicao sem fio, como a internet Wi-Fi. Ainda um sistema remoto embarcado parte do pacote do sistema supervisrio que est embarcado num equipamento porttil, onde o profissional utilizando remotamente o sistema pode selecionar qual ou quais parmetros ele necessita monitorar/controlar ou ser alertado, no caso de alarmes ou memorizao de pontos crticos. Como esses softwares so leves por sua natureza, no que se refere ao seu processamento, traz as informaes de extrema relevncia em destaque ao usurio, que foi desejado ou designado para ele receber. O sistema totalmente customizvel e pode ser instalados em equipamentos portteis de bolso como Smart-phones, Palmtops e mini Laptops. A aquisio de dados em tempo real possibilita a tomada de deciso a distancia, liberdade do gestor e seus colaboradores para seqncia em outras tarefas, alm de aumentar substancialmente a segurana de toda a cadeia produtiva. O objetivo deste trabalho demonstrar e estudar as possibilidades de aplicao de um sistema supervisrio remoto embarcado. Para alcanar os objetivos foi proposto a

8 construo de um prottipo para provar os conceitos bsicos do sistema e tambm apontar as oportunidades de mercado que usam ou podero a vir aplicar em seus processos o SSRE

1. SISTEMA SUPERVISRIO

Sistema supervisrio um conjunto de softwares com uma interface amigvel onde possvel a observao e atuao de diversos parmetros dentro de um sistema de automao industrial visando torna-los automticos e mais produtivos. Segundo Aihara et al.(2001) apud Rosrio (2005 p. 294),

Um sistema de superviso responsvel pelo monitoramento de variveis de controle do sistema, com o objetivo principal de fornecer subsdios ao operador (homemmquina) para controlar ou monitorar um processo automatizado mais rapidamente, permitindo a leitura das variveis em tempo real e o gerenciamento e controle do processo automatizado. As tarefas enviadas ao dispositivo automatizado so monitoradas com a possibilidade de sofrer interveno do prprio controlador (homem) ou por meio do auxlio de um computador que execute funes lgicas pr-programadas no sistema de superviso.

Como pode ser visto na figura 1, o princpio de funcionamento de um sistema supervisrio uma arquitetura composta de software e hardware entre o operador e as tarefas, onde o computador ou processador tem o papel central para a intercomunicao.

Figura 1: Sistema de Superviso, Fonte: adaptado de Rosrio (p.295).

10 Nota-se uma interface homem/mquina como porta de entrada e sada interagindo com um software de controle, tudo isso se comunicando com a planta onde se encontram as tarefas controladas. L encontra-se outra interface voltada operao e aquisio de dados do processo, bem como programao e alterao da produo

1.1. WLAN - Redes de Computadores

A maioria dos dispositivos mveis atualmente utiliza o sistema WLAN (Wireless Local Area Network) para sincronizao e comunicao de dados em uma rede sem fio, e o padro utilizado atualmente definido pela IEEE (Institute of Eletrical and Eletronics Engineers), sendo esta a maior sociedade tcnica profissional do mundo. O padro definido pela IEEE para redes WLAN o padro 802.11. Na reviso 802.11g utiliza um rdio com portadora a 2.4 GHz e opera em uma velocidade mxima de 54 Mbps e prximo a 26 Mbps de velocidade efetiva.

Segundo Sanches, (2007)

Pode-se dizer que uma LAN (Local Area Network) sem fios est operando em modo infra-estrutura (observar a figura 2) quando os ns so interconectados entre si ou entre outras redes atravs de um AP (access point Ponto de Acesso). Pontos de acesso so usados para todas as comunicaes em redes no modo infraestrutura, inclusive para comunicao entre os ns mveis na mesma rea de servio.

11

Internet modem servidor roteador

Figura 2: Topologia de rede modo infra-estrutura. Fonte: Prprios autores.

12

2. SISTEMA SUPERVISRIO REMOTO EMBARCADO (SSRE)

um Sistema Supervisrio acessado por uma plataforma mvel porttil como smart-phones, palm-tops e Lap-tops. Essa plataforma mvel se conecta via wi-fi planta fsica controlada, um prottipo no caso deste trabalho, levando e trazendo as informaes ao SSRE.

2.1. Plataforma Arduino

De acordo com Banzi (2009, pg.2) ...Arduino uma plataforma eletrnica opensource para prototipagem e desenvolvimento de hardware e software.... Ela baseada nos microcontroladores da empresa Atmel e foi criada por um time de desenvolvedores iniciado por Massimo Banzi e o software por David Mellis em 2005. A figura 3 representa uma plataforma Arduino em sua verso serial USB (Universal serial bus barramento universal serial) onde v-se o chip Atmel em destaque na placa e os conectores para comunicao com o mundo exterior nos extremos da mesma placa. Os sinais fornecidos e recebidos aos conectores podem ser de origem digital onde 0V seria nvel lgico baixo ou Low e 5V nvel lgico alto ou Hi, e analgicos onde a entrada um sinal varivel de 0 a 5V e a sada um sinal PWM (Pulse-Width Modulation Modulao por largura de Pulso). Nessa plataforma de desenvolvimento todo o contedo intelectual produzido para ela pode ser livremente adaptado e utilizado em outros estudos e trabalhos, e aberta para aprimoramento ou adaptao de seus cdigos-fonte, os quais podem ser realizados pelos usurios.

13 O objetivo do Arduino proporcionar acessos a pesquisas e desenvolvimento visando o rpido aprendizado, linguagem de programao universal, numa plataforma de baixo custo e fcil adaptao de usurios vindos de outras plataformas e com desempenho profissional, onde pode ser visto no depoimento em vdeo do Arduino, disponvel em: http://arduinothedocumentary.org/

Figura 3: Foto de uma placa padro do sistema Arduino USB. Fonte: http://piliaemmanuele.wordpress.com/2009/05/

14

3. ESTUDO DE CASO

Para por prova o funcionamento do SSRE, construiu-se um prottipo onde foi possvel demonstrar os conceitos tcnicos do sistema atravs de simulao de eventos. Tambm foi possvel a visualizao de todos os componentes interagindo entre si em tempo real no mesmo instante que os eventos simulados aconteciam. O mtodo utilizado facilitou concluir e compilar dados concretos do trabalho.

Segundo Campomar (1991) A finalidade ou os objetivos da pesquisa so atingidos a partir do mtodo cientfico, que tambm possibilita a aceitao dos resultados das investigaes pela comunidade acadmica e empresarial, dando legitimidade ao conhecimento obtido, uma vez que ao se repetirem os procedimentos sob as mesmas circunstncias o mesmo resultado ser observado.

3.1. Prottipo
Trata-se um processo de controle automtico de temperatura de um forno onde possvel visualizar a temperatura no local da instalao. O dispositivo remoto tem total acesso ao controle do processo como: alterar set-point e alterar parmetros do controlador PID (controle proporcional, integral, derivativo). O sistema de controle em malha fechada e trabalha em tempo real. Pode-se visualizar os parmetros dos dispositivos controlados e monitorados compostos por sensores e atuadores que esto conectados plataforma Arduino. Esta foi programada para atuar no controle da temperatura em modo PID e realizar a tarefa de publicar as informaes em uma rede.

15 O SSRE composto por um software que se conecta na plataforma de controle para receber as informaes e pode interagir com a mesma. No diagrama de blocos do prottipo podem-se observar os componentes do controlador PID atravs da figura 4. Trata-se de um forno eltrico composto por uma lmpada que atua como fonte de calor, um sensor de temperatura, um segundo sensor de temperatura do termmetro digital para indicao local da temperatura e um cooler. O elemento ativo de controle de energia calorfica fornecida pela lmpada um servo-atuador composto por um servo motor acoplado mecanicamente a um controlador de potncia (dimmer). O sensor de temperatura envia sinais analgicos ao microcontrolador em uma de suas portas de entrada e duas de suas portas de sada, todas analgicas, enviando sinais PWM de controle para o servo-atuador e para o cooler. O Arduino se comunica com a rede Wi-Fi e todos os parmetros, tanto de controle como monitoramento da temperatura e interage com o software do SSRE, tendo-se assim pleno controle sobre o processo remotamente e sua telemetria.

Figura 4: Diagrama em blocos do Prottipo. Fonte: Prprios autores.

16 A figura 5 mostra a montagem do prottipo durante os testes de funcionalidade, onde pode-se ver da esquerda para a direita a caixa trmica compondo um forno ou estufa com o mostrador de temperatura digital acima e internamente o sensor de temperatura LM35, ao lado deste encontra-se o mdulo controle de potncia contendo o servo motor e o dimmer, e a sua direita um prot-o-board contendo os componentes para estabilizar a tenso em 5V para alimentao do sensor LM35, do mostrador digital de temperatura, do servo motor e do Arduino, e finalmente a direita de todos esta a placa Arduino Blackwidow. Logo a seguir na figura 6, uma imagem capturada da tela de um computador acessando remotamente o dispositivo, onde se v os campos onde o operador pode enviar as informaes e tambm monitorar o funcionamento.

Figura 5: Foto do prottipo. Fonte: Prprios autores.

17

Figura 6: Foto da tela capturada de um computador acessando o sistema. Fonte: Prprios autores.

3.2. Funcionamento do Prottipo

Trata-se um controle PID para estabilizar a temperatura de um forno eltrico, que se encontra inicialmente temperatura ambiente, a qual pode ser elevada e controlada

18 dentre a faixa de 0 a 100 graus Clsius (set-point). Tem-se ento um controle em malha fechada local, onde o feedback para o microcontrolador sensor de temperatura LM35, localizado na traseira do forno e prximo ao ponto focal da fonte de calor. Para controle da potncia calorfica foi feito um arranjo entre um servo e um dimmer eltrico que controla a corrente entregue carga, a lmpada do prottipo, sendo que o servo por sua vez ativado por um sinal de controle proporcional PWM, enviado pelo Arduno aps os clculos do controlador do PID para que a potncia entregue varie de forma a manter a temperatura dentro da estipulada no set-point. O monitoramento e operao do sistema so pelo SSRE, que um software ativo dentro da rotina de tarefas do Arduno, onde possvel realizar os seguintes comandos e funes:

a) b) c) d)

Monitorar a temperatura atual que atualizada pelo programa a cada 1,5s. Visualizar e alterar o valor da temperatura programada (set-point) on-line. Visualizar a posio do cooler , que um sinal PWM padro de 0 a 255. Visualizar e alterar e alterar o parmetros do controlador PID, que so ao

proporcional(P), ao integral(I) e ao derivativa(D).

Os eventos descritos acima no tm o compromisso com uma real situao de controle de temperatura em aplicao comercial, mas sim por prova o funcionamento do sistema, tal como envio de dados ao dispositivo remoto (telemetria), ativao e controle do dispositivo local (telecomando).

3.3. Diagrama de blocos do SSRE

No diagrama de blocos apresentado na figura 7, tem-se uma possibilidade de montagem da topologia da rede composta por trs mdulos distintos, o primeiro composto pela malha fechada e controlada pelo dispositivo Arduino, que recebe dados do sensor de temperatura, processa os dados e envia informaes aos atuadores para estabilizar o processo de acordo com o set-point desejado. A segunda malha composta pela rede local que pode enviar e receber dados via Wi-Fi, interligando assim o sistema supervisrio malha de controle, permitindo que o usurio monitore ou interfira no funcionamento da

19 mesma. Na terceira malha tem-se o sistema supervisrio em dispositivos portteis, neste caso o sistema deve possuir um navegador web, possibilitando assim grande mobilidade ao supervisor do sistema.

Malha Fechada / Arduino + Sensor


TI-1

L1

Cooler

Forno

Rede Local

Supervisrio local Rede Mvel

Smart Phone

PDA

Figura 7: Diagrama em blocos da topologia de rede. Fonte: Prprios autores.

20

4. PROGRAMAO EMBUTIDA NO ARDUINO

A Plataforma Arduino oferece uma ferramenta de programao aberta baseada na linguagem de programao C/C++ e utiliza as bibliotecas AVR Libc, alm de uma gama vasta de bibliotecas graas ao seu sistema open-source, o que facilita muito os iniciantes a introduzir-se ao mundo da programao embarcada. Embora exija um conhecimento mdio em linguagem C ou C++, ainda assim fica bem a frente de muitas ferramentas e hardwares que exigem conhecimento em Assembler, sendo esta uma linguagem de baixo nvel e de baixa produtividade. A principal funcionalidade do SSRE a interatividade do hardware com o operador onde h trafego de informaes nos dois sentidos, para que o operador possa visualizar o status do funcionamento e possa interagir com o mesmo. Para que isto seja possvel usou-se no projeto uma biblioteca chamada WiServer. Com esta implementao, o comportamento do sistema ficou bem prximo ao de um servidor de pginas de web, facilitando esta interao homem/mquina. Um dos maiores desafios foi estabilizar a comunicao, pois uma pgina em HTML consome muita memria, o que no se tem em abundncia no microcontrolador Atmel que foi usado no projeto. A soluo do problema foi utilizar recursos para armazenar as strings (conjuntos de caracteres) fixos na memria flash-RAM (rea de memria do programa) e no na memria RAM (rea da memria onde so armazenadas as variveis). Para demonstrar o funcionamento da interao homem/mquina foi utilizado um sistema PID que controla a temperatura do prottipo atravs de uma lmpada para aquecer e um cooler para resfriar o sistema. Utilizou-se uma biblioteca chamada PID_Beta6 para facilitar a implementao do controle de temperatura. A implementao em Javascript embutido no HTML tambm se fez necessrio para que o navegador possa atualizar o status (tabela Monitor) do sistema, possibilitando assim

21 o acompanhamento on-line das funcionalidades sem que haja interveno do usurio para atualizar a pgina com os ltimos dados. Para facilitar a compreenso do funcionamento do programa, mostramos o fluxograma de blocos com as principais funcionalidades e em anexo o cdigo fonte do programa em C++. O Diagrama de fluxo do corpo principal, figura 8, do programa apresenta-se de maneira simples, pois a tarefa principal inicializar o servidor wireless e as variveis usadas para os clculos de PID. Aps isto o programa entra em loop infinito na funo loop(), que est apresentado em outro diagrama chamado Diagrama de fluxo do processamento Me.

INICIO

Setup() INICIA WEB SERVER INICIA VARIVEIS PID

Loop() PROCESSAMENTO ME (DIAGRAMA 2)

FIM

Figura 8: Diagrama de fluxo do corpo principal do programa. Fonte: Prprios autores.

22 O Processamento Me (funo loop() ), figura 9, responsvel pela distribuio das tarefas. Primeiro detecta se h requisio de pgina; se houver desvia o processamento para atender a requisio chamando a funo sendSSREPage(), mostrada no cdigo fonte anexo e apresentada no diagrama de fluxo da requisio de pgina, para que o mesmo possa processar e retornar uma pgina em HTML como resposta. Feito isso, o fluxo do programa continua normalmente e faz a leitura da temperatura passando o processamento para o cdigo PID executar os clculos. O resultado final ento aplicado na sada do Servoatuador responsvel por controlar a intensidade corrente na lmpada e conseqentemente a temperatura do sistema. Aps isto verificado se a temperatura est superior a dois graus do set-point; se isto ocorrer, outro clculo executado para determinar a velocidade do ventilador (cooler) e este resultado por sua vez aplicado a uma porta analgica de sada (PWM) que controla o cooler, auxiliando na reduo da temperatura.

23

INICIO

UMA CHAMADA TCP? NO

SIM

PROCESSAR REQUISIO DO TCP (DIAGRAMA 3)

LER SENSOR DE TEMPERATURA

PROCESSAR CLCULOS PID

GRAVAR VALOR NA SADA PWM AQUECEDOR

(TEMPERATURA+2) > SETPOINT?

SIM

CALCULA VELOCIDADE DO COOLER

NO GRAVAR VALOR SADA PWM COOLER

FIM

Figura 9: Diagrama de fluxo do processamento Me. Fonte: Prprios autores.

24

No diagrama de fluxo de requisio de pgina, figura 10, pode-se ver como a funo sendSSREPage() trabalha. Primeiro verificado se a chamada root (pgina principal), se for, desvia o processamento para a funo drawMainPage() responsvel por escrever a pgina principal em HTML; caso contrrio, verifica se a requisio veio do javascript que afirmativo quando o parmetro status.htm. Assim sendo, o

processamento desviado para a funo draw_status(), responsvel em escrever em HTML a tabela com os dados de temperatura atual e velocidade do cooler. No sendo a requisio uma chamada para abrir a pgina principal e nem a pgina de status, ento o processamento verifica se existem novos parmetros de Set-Point, P, I e D, e atualiza as variveis do sistema e por fim retorna pgina principal em HTML com os parmetros atualizados, encerrando assim sua tarefa.

25

INICIO

PARAMETRO = / ? NO PARAMETRO = status.htm ? NO PARAMETRO CONTM set-point ? NO ARMAZENA set-point ESCREVER TABELA DE STATUS EM HTML

SIM

SIM

PARAMETRO CONTM P ? SIM NO

ARMAZENA VALOR DE P

PARAMETRO CONTM I ? NO

SIM

ARMAZENA VALOR DE I

PARAMETRO CONTM D ? NO

SIM

ARMAZENA VALOR DE D

ESCREVER PGINA PRINCIPAL EM HTML

FIM

Figura 10: Diagrama de fluxo de requisio de pgina (Requisio do TPC-IP). Fonte: Prprios autores.

26

5. VANTAGENS E DESVANTAGENS

Como principal vantagem deste sistema possvel dizer que a liberdade proporcionada por um sistema sem fio e a rapidez na aquisio de dados. O sistema utilizando o protocolo TCP-IP aumentou ainda mais este grau de liberdade, pois possibilita sua interligao da rede mundial de computadores, Internet. Como desvantagem pode-se citar a rea de cobertura do sinal e a restrio do uso em alguns sistemas crticos, como num sistema envolvendo alto nvel de segurana ao usurio, ou ambientes desfavorveis ao uso do sinal de rdio, como exemplo, em locais em que se utiliza massivamente uma rede wi-fi para outros fins ou esse espectro de rdio frequncia esteja congestionado.

27

CONCLUSO

Os resultados foram satisfatrios ao uso do SSRE, onde observaram-se os pontos fundamentais para o funcionamento do sistema em que estabeleceu-se a comunicao do Arduino/Wi-fi com um Lap-top e um smartphone. Nessa comunicao, todos os dados transmitidos e recebidos via Wi-fi por ambas as partes no tiveram perda de informao. Os tempos de resposta em cada solicitao de dados foram percebidos como sendo instantneos tanto do ponto de vista local para o sistema supervisrio como o oposto, remetendo a uma aquisio de dados em tempo real. Em simulaes de funcionamento autnomo, sem o do link de comunicao com o dispositivo remoto, o sistema PID continuou operacional de acordo com os ltimos dados enviados para o mdulo local. Conclui-se tambm ser possvel a comunicao entre um dispositivo de controle em malha fechada e um dispositivo remoto com relativa segurana. No caso estudado, observou-se uma flexibilidade de alterao de software, o que permitiria rpida adaptao a outros processos de controle em que essa tecnologia pode se mostrar aceitvel, tais como: controle de processos industriais, controle de eletrodomsticos, sistemas de segurana em geral e de telemetria. Prope-se a continuidade de estudos relacionados ao uso do SSRE em outras reas alm das citadas como: medicina, biomecnica, indstria aeroespacial, tele presena, entre outras, devido ao potencial beneficio que poderia ser agregado a produtos e servios dessas reas, alm da quebra de barreiras geogrficas e pioneirismo tecnolgico no desenvolvimento de ferramentas de estudo.

28

REFERNCIAS BIBLIOGRFICAS

ARDUINO, Bibliotecas de cdigos-fonte para desenvolvimento Arduino. Disponvel online em <www.arduino.cc >. Consultado em 05 jun. 2010.

BANZI, Maximo. Getting Started With Arduino. Itlia, O'Reilly Media / Make, 2008.

BIBLIOTECA LIBC, Disponvel online em <http://www.nongnu.org/avr-libc/> Consultado em 05 jun. 2010.

CAMPOMAR, Marcos Cortez. Do uso de estudo de caso em pesquisas para dissertaes e teses em administrao, Revista de Administrao, So Paulo: v. 26, n. 3, Jul/Set. 1991.

EDWARDS, James e ADAMS, Cameron. The Javascript Antology, 101 Essential Tips, Tricks & Hacks. Sitepoint, Cllingwood, Austrlia, 2006 EERNISSE, Matthew. Build Your Own Ajax Web Applications. Sitepoint, Cllingwood, Austrlia, 2006 HOLZNER, Steven. C++ Black Book A Comprehensive Guide to C++ Mastery Arizona: 2001

IGOE, Tom. The A-Z of Programming Languages: Arduino's Tom Igoe. Disponvel online em <http://www.computerworld.com.au/article/321749/a-z_programming_languages_ arduino_tom_igoe/> acessado em 05 out 2010

MELLIS, David A., The moral imperative for open-source hardware. Disponvel online em < http://dam.mellis.org/>, acessado em 07/10/2010. PAPPAS, Chris H.e MURRAY, Willian H.; Turbo C++ Completo e Total So Paulo: Makron Books, 1991

29

RIBEIRO, Marco Antnio. Automao Industrial. Salvador: produtora Tek Treinamento & Consultoria Ltda, 2001.

ROSRIO, Joo Mauricio. Princpios de Mecatrnica. So Paulo: Pentice Hall, 2005.

SANCHES, Carlos. Alberto. Projetando Redes WLAN. So Paulo: editora rica Ltda, 2007. TRALDI, Maria Cristina. e DIAS, Reinaldo PLT-149 Trabalho de Concluso de Curso Campinas: Editora Alnea, 2010. Edio Especial

Wi-Fi ALLIANCE, Disponvel online em <http://www.wi-fi.org/ > Consultado em 05 jun. 2010.

30

APNDICES

31

APNDICE A

Neste apndice apresentado o Cdigo Fonte produzido durante a execuo do trabalho de pesquisa.

/************************************************************************ * Filename: SSRE.pde Description: SSRE (Sistema Supervisorio Remoto Embarcado), Embedded Remote System ************************************************************************ Demonstrates the use of Arduino and WiShield controlling temperature by PID Contact Information: <edson@solsoft.com.br> Edson Gaspar <gutosan@terra.com.br> Jose Augusto Santaella Author Date Comment --------------------------------------------------------------Gaspar & Guto 10/15/2010 Initial version

************************************************************************* */ #include <WiServer.h> #include <PID_Beta6.h> #include <Servo.h> #define WIRELESS_MODE_INFRA #define WIRELESS_MODE_ADHOC

1 2

// Wireless configuration parameters unsigned char local_ip[] = {192,168,0,111}; unsigned char gateway_ip[] = {192,168,0,1};

// IP address of WiShield // router or gateway IP address

32 unsigned char subnet_mask[] = {255,255,255,0}; // subnet mask for the local network const prog_char ssid[] PROGMEM = {"SSRE"}; // max 32 bytes unsigned char security_type = 0; // 0 - open; 1 - WEP; 2 - WPA; 3 - WPA2

// WPA/WPA2 passphrase const prog_char security_passphrase[] PROGMEM = {"12345678"}; characters

// max 64

// WEP 128-bit keys // sample HEX keys prog_uchar wep_keys[] PROGMEM = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, // Key 0 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Key 1 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Key 2 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Key 3 }; // setup the wireless mode // infrastructure - connect to AP // adhoc - connect to another WiFi device unsigned char wireless_mode = WIRELESS_MODE_INFRA; unsigned char ssid_len; unsigned char security_passphrase_len;

//Pin configurations #define PIN_INPUT_LM35 0 #define PIN_OUTPUT_PWM_LIGHT 3 #define PIN_OUTPUT_PWM_FAN 5 //global definitions #define _USE_SERIAL 1 #define N_LOOP_FOR_SERIAL 200000 //Global Variables int nLoopCount = N_LOOP_FOR_SERIAL; int fan_speed = 0; //PID variables double dSetPointTemperature, dInputTemperature, dOutputTemperature; double lightKc = 1.0; double lightTauI = 2.0; double lightTauD = 0.5; Servo temperatureServo;

33 PID temperaturePID(&dInputTemperature, &dOutputTemperature, &dSetPointTemperature, lightKc, lightTauI, lightTauD); //function to write input edit in html page void writeInputHTM(char* title, char* type, char* name, const char* value, boolean bChecked = false) { WiServer.print("<tr><td>"); WiServer.print(title); WiServer.print("</td><td><input type=\""); WiServer.print(type); WiServer.print("\" name=\""); WiServer.print(name); WiServer.print("\" size=\"4\" value=\""); WiServer.print(value); WiServer.print("\""); if( bChecked ) WiServer.print("checked=\"checked\""); WiServer.println("></td></tr>"); } //format value to string with 2 decimals void sresprintf (char* ch, double valor) { int valor1 = (valor - (int)valor)*100; sprintf ( ch, "%0d.%d", (int)valor, valor1); } //constants strings stored in flash memory to save RAM memory const prog_char htmlreader[] PROGMEM = {"<!doctype html><html><head><title>Sistema SSRE v1.1a</title>" }; const prog_char ht_endhead[] PROGMEM = {"</head>"}; const prog_char ht_body[] PROGMEM = {"<body onload=\"timed();\"><b>Sistema SSRE v1.1a</b><br>"}; const prog_char ht_credits[] PROGMEM = {"Gaspar & Guto<br>edson@solsoft.com.br<br>gutosan@terra.com.br"}; const prog_char ht_script[] PROGMEM = {"<script type=\"text/javascript\">"\ "var req;function timed(){"\ "if(window.XMLHttpRequest){req = new XMLHttpRequest();} else if (window.ActiveXObject) {req = new ActiveXObject('MSXML2.XMLHTTP.3.0'); }"\ "if(req != undefined){req.onreadystatechange=function(){statusDone();};"\ "req.open(\"GET\", \"/status.htm\", true);"\ "req.send(\"\");}"\ "}"\ "function statusDone(){"\ "if (req.readyState == 4) {if (req.status == 200|| req.status == 304) {document.getElementById('status').innerHTML = req.responseText;}t=setTimeout(\"timed()\",1500);}"\ "}"\ "</script>"}; const prog_char ht_endbody[] PROGMEM = {"</body>"};

34 const prog_char ht_endhtml[] PROGMEM = {"</html>"}; const prog_char ht_br[] PROGMEM = {"<br/>"}; const prog_char ht_form[] PROGMEM = {"<form>"}; const prog_char ht_endform[] PROGMEM = {"</form>"}; const prog_char ht_table_gray[] PROGMEM = {"<table bgcolor=\"#cccccc\">"}; const prog_char ht_table_green[] PROGMEM = {"<table border=\"1\" bgcolor=\"#ccffcc\">"}; const prog_char ht_endtable[] PROGMEM = {"</table>"}; const prog_char ht_table_header[] PROGMEM = {"<th>"}; const prog_char ht_table_endheader[] PROGMEM = {"</th>"}; const prog_char ht_table_row[] PROGMEM = {"<tr>"}; const prog_char ht_table_endrow[] PROGMEM = {"</tr>"}; const prog_char ht_table_col[] PROGMEM = {"<td>"}; const prog_char ht_table_endcol[] PROGMEM = {"</td>"}; const prog_char ht_painel[] PROGMEM = {"Painel de Controle"}; const prog_char ht_temp_var[] PROGMEM = {"SetPointTemperature"}; const prog_char ht_pid_header[] PROGMEM = {"Controlador PID"}; const prog_char ht_status_header[] PROGMEM = {"Monitor"}; const prog_char ht_submit[] PROGMEM = {"<tr><td colspan=\"2\"><input type=\"submit\" name=\"option\" value=\"Enviar\"/></td></tr>"}; //draw status table in html void draw_status() { WiServer.print_P(ht_table_green); WiServer.print_P(ht_table_row); WiServer.print("<caption>"); WiServer.print_P(ht_status_header); WiServer.print_P("</caption>"); WiServer.print_P(ht_table_endrow); WiServer.print ("<tr><td>Temperatura atual(&deg;C)</td><td>"); WiServer.print (dInputTemperature); WiServer.print_P(ht_table_endcol); WiServer.print_P(ht_table_endrow); WiServer.print ("<tr><td>Cooler(0 a 255)</td><td>"); WiServer.print (fan_speed); WiServer.print_P(ht_table_endcol); WiServer.print_P(ht_table_endrow); WiServer.print_P(ht_endtable); } //draw the main page in html void drawMainPage() { char buffer[50]; WiServer.print_P(htmlreader); WiServer.print_P(ht_script); WiServer.print_P(ht_endhead); WiServer.print_P(ht_body); WiServer.print_P(ht_form); WiServer.print_P(ht_table_gray); WiServer.print_P(ht_table_row); WiServer.print_P(ht_table_header); WiServer.print_P(ht_painel); WiServer.print_P(ht_table_endheader); WiServer.print_P(ht_table_endrow);

35 sresprintf(buffer, dSetPointTemperature); writeInputHTM("Temperatura(&deg;C)", "text", "SetPointTemperature", buffer ); WiServer.print_P(ht_table_row); WiServer.print_P(ht_table_header); WiServer.print_P(ht_pid_header); WiServer.print_P(ht_table_endheader); WiServer.print_P(ht_table_endrow); sresprintf(buffer, lightKc); writeInputHTM("Proporcional", "text", "KcLight", buffer); sresprintf(buffer, lightTauI); writeInputHTM("Integral", "text", "TauILight", buffer); sresprintf(buffer, lightTauD); writeInputHTM("Derivativo", "text", "TauDLight", buffer); WiServer.print_P(ht_submit); WiServer.print_P(ht_endtable); WiServer.print_P(ht_endform); WiServer.print_P(ht_form); WiServer.print("<div id=\"status\">"); draw_status(); WiServer.print("</div>"); WiServer.print_P(ht_endform); WiServer.print_P(ht_credits); WiServer.print_P(ht_endbody); WiServer.print_P(ht_endhtml); } //get the html parameter value by name boolean getDoubleParam(char* szParam, char* szName, double &output) { char * pos; pos = strstr(szParam, szName); if( pos ) { int name_len = strlen(szName); char * p_sep = strstr(pos, "&"); char buffer[255]; pos += name_len + 1; int value_len = p_sep - pos; strncpy(buffer, pos, value_len); buffer[value_len] = 0; output = atof(buffer); return true; } return false; } //called by http request, draw the main page and/or get the parameters boolean sendSSREPage(char* URL) { if( strcmp(URL, "/") == 0) {

36 //if this is root call, call main page drawMainPage(); return true; } else { if( strcmp(URL, "/status.htm") == 0) { draw_status(); } else { //detect vars and values double dValue; if (getDoubleParam(URL, "SetPointTemperature", dValue) dSetPointTemperature = dValue; if (getDoubleParam(URL, "KcLight", dValue)) lightKc = dValue; if (getDoubleParam(URL, "TauILight", dValue)) lightTauI = dValue; if (getDoubleParam(URL, "TauDLight", dValue)) lightTauD = dValue; temperaturePID.SetTunings(lightKc, lightTauI, lightTauD); drawMainPage(); } return true; } return false; } //Startup funcion void setup() { #ifdef _USE_SERIAL Serial.begin(9600); #endif //_USE_SERIAL WiServer.init(sendSSREPage); //PID controls dSetPointTemperature = 45; temperatureServo.attach( PIN_OUTPUT_PWM_LIGHT ); temperaturePID.SetMode(AUTO); temperaturePID.SetInputLimits(0, 100); //set input to temperature range temperaturePID.SetOutputLimits(0,255); temperaturePID.SetSampleTime(500); temperaturePID.SetTunings(lightKc, lightTauI, lightTauD); } //main loop void loop()

37 { WiServer.server_task(); //read temperature from LM35 int temperature = analogRead(PIN_INPUT_LM35); //convert from sensor range to Celcius double dTempCelcius = map(temperature, 0,1023, 0, 50000); dInputTemperature = (dTempCelcius /100.00)+2.6; //run PIDs temperaturePID.Compute(); //set pwm value to temperature ligth int out_servo = map(dOutputTemperature, 0, 255, 0, 180); temperatureServo.write(out_servo); //set pwm value to fan speed double dOutputFan = dInputTemperature - dSetPointTemperature; fan_speed = 0; if (dOutputFan>2) { fan_speed = map(dOutputFan, 2, 6, 100, 255); fan_speed = constrain(fan_speed, 100, 255); } else fan_speed = 0; analogWrite( PIN_OUTPUT_PWM_FAN, fan_speed ); if (--nLoopCount == 0); { #ifdef _USE_SERIAL Serial.print("A/D temp.="); Serial.print(temperature); Serial.print("temp="); Serial.print(dInputTemperature); Serial.print(" Setpoint="); Serial.print(dSetPointTemperature); Serial.print(" light position="); Serial.print(out_servo); Serial.print(" fan speed="); Serial.println(fan_speed); #endif //_USE_SERIAL nLoopCount = N_LOOP_FOR_SERIAL; } }

Vous aimerez peut-être aussi