SISTEMA SUPERVISOR RUBY ON RAILS PARA DOMÓTICA

Tamanho: px
Começar a partir da página:

Download "SISTEMA SUPERVISOR RUBY ON RAILS PARA DOMÓTICA"

Transcrição

1 Universidade São Francisco Engenharia de Computação GUILHERME DA SILVA MELLO SISTEMA SUPERVISOR RUBY ON RAILS PARA DOMÓTICA Itatiba 2010

2 GUILHERME DA SILVA MELLO SISTEMA SUPERVISOR RUBY ON RAILS PARA DOMÓTICA Monografia apresentada à disciplina de Trabalho de Conclusão de Curso de Engenharia de Computação da Universidade São Francisco, sob a orientação do Prof. Dr. Claudio Kiyoshi Umezu, como exigência parcial para conclusão do curso de graduação. Itatiba 2010

3 MELLO, GUILHERME DA SILVA. Sistema Supervisor Ruby on Rails para Domótica Monografia (Graduação em Engenharia de Computação) Universidade São Francisco, Itatiba. RESUMO A automação de processos sempre foi de grande importância aos homens que buscam facilitar suas tarefas manuais, a fim de lhes proporcionar maior comodidade e liberdade para se dedicarem a outras tarefas. A domótica, termo que resulta da junção de Domus (casa) com a Robótica, se utiliza desses princípios para trazer os benefícios da automação à casa das pessoas. Em outra vertente, também tem-se um crescimento constante de aplicações web que são criadas com o mesmo objetivo de facilitar a vida dos usuários. A plataforma Ruby on Rails de desenvolvimento tem sido impulsionada principalmente pelo grande número de programadores que contribuem diariamente para seu crescimento, tornando-a um grande substituto de linguagens tradicionais como Java e C++ em inúmeras aplicações. Dado este cenário, este projeto visou criar um sistema web supervisor Ruby on Rails, com o objetivo de gerenciar dispositivos em uma casa de forma distribuída na Internet, possibilitando ao usuário, por exemplo, acionar travas, alterar luminosidade de lâmpadas, ligar o aquecedor, dentre outros. Para efetivamente controlar os dispositivos na casa, foi usado um microcontrolador PIC, que é acionado através da porta serial de um computador cliente. Constatouse que a criação de um protocolo de comunicação genérico contribuiu para que a solução pudesse ser usada em outras formas de comunicação entre o controlador e a aplicação. Palavras-chave: ruby, rails, domótica, web, serial.

4 ABSTRACT Process automation has always been a subject of great matter to the people who search for ways to facilitate manual labor, in order to have a better advantage and freedom to spend their time in other tasks. Domotics, word that created joining Domus (house) to Robotics, makes use of these principles to bring these automation benefits to everybody s house. Another subject of great matter is the steady growth of web applications that are developed for the same reason of making people s lives easy. The Ruby on Rails development platform has been unleashed mainly by the high number of developers who daily contribute to its growth, making of it a substitute of traditional programming languages as Java and C++ in several ways. Given this scenario, this project envisioned to develop a Ruby on Rails web manager system in order to handle devices in a house over the Internet, enabling users to toggle locks, change lamps luminosity, turn on the heat system, etc. In order to effectively control the devices in a house, this project made use of a PIC microcontroller that is activated through a client computer serial port. This project concludes that creating a generic communication protocol has contributed for enabling this application to be used with different ways of communication between the controller and application. Key words: ruby, rails, domotics, web, serial.

5 SUMÁRIO 1 INTRODUÇÃO DOMÓTICA Dispositivos.11 3 RUBY Blocos em Ruby (closures) Metaprogramação 13 4 DESENVOLVIMENTO WEB O framework: Rails Model view controller (MVC) Model View Controller COMUNICAÇÃO SERIAL RS Características Ruby-serialPort O PROJETO Funcionamento do sistema Interação humano-servidor Interação computador cliente-servidor Question-interaction Report-interaction Interação computador cliente-controlador Do-action Report-state Hardware Banco de dados Controllers e models Módulos..32

6 6.6 Criando um protocolo de comunicação Descoberta de dispositivos Descoberta das ações de um dispositivo Envio de ação Feedback / questionamento de estado Interface com o usuário Procurando por dispositivos Procurando as ações de um dispositivo Controle dos dipositivos Agentes Agendador de tarefas Serial writer Serial reader Simulador CONCLUSÃO REFERÊNCIAS... 52

7 LISTA DE FIGURAS FIGURA 1 ORIENTAÇÃO A OBJETOS EM RUBY FIGURA 2 INCLUSÃO DO MÉTODO MAIS NA CLASSE FIXNUM FIGURA 3 BLOCOS EM RUBY FIGURA 4 METAPROGRAMAÇÃO EM RUBY FIGURA 5 EXEMPLO DE UM MODEL ALUNO EM RUBY FIGURA 6 DER PARA AS ASSOCIAÇÕES PARA O MODEL ALUNO FIGURA 7 ESQUEMA DE INTERAÇÃO QUESTION-INTERACTION FIGURA 8 ESQUEMA DE INTERAÇÃO REPORT-INTERACTION FIGURA 9 INTERAÇÃO DO TIPO DO-ACTION FIGURA 10 INTERAÇÃO DO TIPO REPORT-STATE FIGURA 11 - DIAGRAMA DE BLOCO DO HARDWARE FIGURA 12 - DIAGRAMA ELÉTRICO DA PLACA FIGURA 13 - MODELO RELACIONAL DO BANCO DE DADOS FIGURA 14 - EXEMPLO DE MIGRAÇÃO RAILS FIGURA 15 - TRECHO DE CÓDIGO DO MODEL ACTION FIGURA 16 - TRECHO DO MÓDULO KNOWN::ACTIONS FIGURA 17 - MANIPULAÇÃO DO HTML POR JAVASCRIPT UTILIZANDO JQUERY FIGURA 18 - INTERFACE DE CRIAÇÃO DE USUÁRIOS FIGURA 19 - INTERFACE DE AUTENTICAÇÃO FIGURA 20 - INTERFACE DE BUSCA POR DISPOSITIVOS FIGURA 21 - INTERFACE DE DESCOBERTA DAS AÇÕES DE UM DISPOSITIVO APÓS A BUSCA FIGURA 22 - MODAL DE CUSTOMIZAÇÃO DO CONTROLE DA AÇÃO DO DISPOSITIVO FIGURA 23 - INTERFACE DE CONTROLE DOS DISPOSITIVOS FIGURA 24 - RESPOSTA VISUAL DO SUCESSO DO CONTROLE DO DISPOSITIVO FIGURA 25 - TRECHO DO CÓDIGO DA CLASSE SERIAL::AGENT::NEWTASKER, MÉTODO LISTEN FIGURA 26 - TRECHO DE CÓDIGO DA CLASSE SERIAL::AGENT::WRITER, MÉTODO WRITE FIGURA 27 - ESQUEMATIZAÇÃO DA DECISÃO DO AGENTE SERIAL::AGENT::READER FIGURA 28 - TRECHO DE CÓDIGO QUE INICIA UMA THREAD DE ESCUTA DA PORTA SERIAL FIGURA 29 - MÉTODO PÚBLICO DE INSTÂNCIA DA CLASSE SERIAL::AGENT::SIMULATOR... 49

8 LISTA DE TABELAS TABELA 1 PARÂMETROS DA COMUNICAÇÃO SERIAL PIC PC TABELA 2 - CONFIGURAÇÃO DA COMUNICAÇÃO SERIAL A SER UTILIZADA TABELA 3 - RESUMO DOS COMANDOS PARA MANIPULAÇÃO DO BANCO DE DADOS TABELA 4 - CONTROLLERS UTILIZADOS NA APLICAÇÃO IHOUSE TABELA 5 - MODELS UTILIZADOS NA APLICAÇÃO IHOUSE TABELA 6 - CÓDIGOS DOS TIPOS DE INTERAÇÕES TABELA 7 - FORMATO DE UMA MENSAGEM GENÉRICA ENVIADA PELA APLICAÇÃO AO PIC TABELA 8 - FORMATO DE UMA MENSAGEM GENÉRICA DO PIC À APLICAÇÃO TABELA 9 - FORMATO DA MENSAGEM DE DESCOBERTA DE DISPOSITIVOS ENVIADA PELA APLICAÇÃO AO PIC TABELA 10 - FORMATO DA RESPOSTA DO PIC À APLICAÇÃO COM A MENSAGEM DE DESCOBERTA DOS DISPOSITIVOS TABELA 11 - FORMATO DA MENSAGEM DE DESCOBERTA DAS AÇÕES DE UM DISPOSITIVO ENVIADA PELA APLICAÇÃO AO PIC TABELA 12 - FORMATO DA MENSAGEM DE RESPOSTA DO PIC À APLICAÇÃO DE UMA DESCOBERTA DE AÇÕES DO DISPOSITIVO TABELA 13 - FORMATO DA MENSAGEM DE AÇÃO ENVIADA PELA APLICAÇÃO AO PIC TABELA 14 - FORMATO DA RESPOSTA DO PIC À APLICAÇÃO DE UMA MENSAGEM DE AÇÃO TABELA 15 - FORMATO DA MENSAGEM DE QUESTIONAMENTO DE ESTADO ENVIADA PELA APLICAÇÃO AO PIC TABELA 16 - FORMATO DA RESPOSTA DO PIC À APLICAÇÃO DE UMA MENSAGEM DE QUESTIONAMENTO DE ESTADO... 38

9 LISTA DE SIGLAS AJAX API CRUD DCE DER DRY DTE EIA HTML HTTP IO MVC PC PDA PIC REST USART USB XML YAML Asynchronous Javascript and XML Application Programming Interface Create Read Update Delete Data Communications Equipment Diagrama Entidade-Relacionamento Don t Repeat Yourself Data Terminal Equipment Electronic Industries Association HyperText Markup Language HyperText Transfer Protocol In-Out Model View Controller Personal Computer Personal Digital Assistant Programmable Interface Controller Representational State Transfer Universal Synchronous Asynchronous Receiver Transmitter Universal Serial Bus Extensible Markup Language YAML Ain t Markup Language

10 9 1 INTRODUÇÃO Residências inteligentes, nos últimos anos, se tornaram um assunto muito discutido entre profissionais de diversas áreas, desde marketing a psicologia, de eletrônica a computação. Essas residências controlam o bem estar dos indivíduos que nelas residem, automatizando atividades, proporcionando conforto e segurança para que se possa ter um maior aproveitamento no dia-a-dia. Segundo Canato, por definição, automação refere-se a um sistema ou método pelo qual é possível realizar e controlar eventos sem um pensamento consciente, usando de um sistema de equipamentos eletrônicos e/ou mecânicos, que controlam seu próprio funcionamento, quase sem a intervenção do homem (2007, p. 1). A domótica, termo que resulta da junção de Domus (casa) com a Robótica, se utiliza desses princípios para trazer os benefícios da automação à casa das pessoas. Os sistemas computacionais têm evoluído com uma velocidade incrível nas últimas décadas, tornando a tecnologia um item presente em diversas atividades executadas pelos humanos. A princípio, os sistemas visavam automatizar atividades relacionadas ao trabalho das pessoas, mais especificamente em grandes empresas que precisavam aumentar a produtividade e qualidade do serviço. Hoje, impulsionados pelo avanço das tecnologias de redes, a Internet trouxe aos usuários a possibilidade de se integrar cada vez mais as tecnologias, desenvolver aplicações voltadas à simples atividades do dia-a-dia, personalizar unicamente suas vidas. Essas aplicações passam a ser disponibilizadas na Internet e não mais instaladas nos computadores pessoais de cada individuo, tornando o acesso às informações disponíveis em qualquer lugar, em diversos dispositivos como PDAs, celulares, e PCs. Nota-se hoje que as empresas que produzem aplicações web têm buscado cada vez mais qualidade, velocidade, adaptação de soluções a diferentes ambientes e públicos. O Ruby é uma linguagem de programação que otimiza o desenvolvimento sustentável e uma ferramenta totalmente capacitada e amadurecida para interagir com dispositivos externos (http://rubyonbr.org/articles/2007/04/29/ruby-alem-do-usual, fev. 2010). Ela pode ser usada para controlar esses dispositivos, independente da forma de comunicação: porta serial, USB, interface de dispositivos wireless.

11 10 Na domótica, o Ruby pode ser facilmente usado para gerenciar os sensores e dispositivos micro-controlados distribuídos nos cômodos das residências, lhes enviando sinais de atuação e coletando informação de estado. O PIC é um micro-controlador, desenvolvido pela Microchip, que pode ser programado para executar diversas tarefas, como controlar um dispositivo eletro-mecânico, realizar medições, exibir informações em um display ou simplesmente piscar luzes. A simplicidade, disponibilidade e o baixo custo são os principais atrativos do PIC (http://www.dm.ufscar.br/~waldeck/pic/, fev. 2010). A motivação pela escolha do tema se dá pela necessidade de gerenciar uma casa à distância, controlando o ambiente, iluminação, temperatura, dispositivos de segurança. Imagine usar um computador conectado a Internet e acionar a banheira de hidromassagem, para que ao chegar em casa seu banho esteja pronto. O controle da tecnologia através da Internet vem crescendo consideravelmente e cada vez mais as pessoas buscam por soluções que facilitam tal atuação. O framework Rails, criado em 2003 por David Heinemeier e desenvolvido em Ruby, vem sendo usado nos últimos anos para o desenvolvimento de diversas aplicações web. Usados em conjunto, o Ruby e seu framework, denominam-se Ruby on Rails, e se tornam uma só ferramenta passível de ser usada para criar um sistema de gerenciamento residencial pela web. Nota-se um cenário promissor, onde um usuário possa acessar uma aplicação web, cadastrar-se, e instalar em seu computador um pequeno software cliente que será comandado por servidores na web, caracterizando um sistema nas nuvens. O usuário instala os dispositivos e sensores em sua residência, e a partir desse ponto já possui todo o sistema apto a ser gerenciado remotamente. Este trabalho objetivou a criação de sistema supervisor Ruby on Rails voltado a domótica, a fim de controlar dispositivos em uma casa.

12 11 2 DOMÓTICA A domótica, que também pode ser referenciada por expressões como smart building, intelligent building, é um novo domínio de aplicação tecnológica, tendo como objetivo básico melhorar a qualidade de vida, reduzindo o trabalho doméstico, aumentando o bem estar e a segurança de seus habitantes e visa também uma utilização racional e planejada dos diversos meios de consumo. (http://infoblogs.com.br/view.action?contentid=14569&domotica-e-casa- Digital.html, abr. 2010). Toda solução desenvolvida deve ser simples de ser ativada desativada e não deve controlar o dia-a-dia em uma casa, mas sim auxiliar e facilitar ações que normalmente seriam feitas manualmente. 2.1 Dispositivos Para automatizar uma casa são necessários diversos dispositivos, dentre eles: Sensores capturam os valores e informações de um local, como presença de pessoas, temperatura, fuga de água e gás, falta de energia, incêndio, tempo, luminosidade, umidade, vento, entre outros. Atuadores realizam efetivamente o controle dos elementos com motores, eletroválvulas, ligar, desligar e variar luminosidade ou aquecimento, sirenes de alarme, ventilação ou ar condicionado. Controladores recebem a informação dos sensores transmitindo-a aos atuadores. Interfaces usados para que os usuários tenham o controle sobre a automação na residência. Podem ser painéis eletrônicos, monitores touch-screen, microcomputadores, entre outros. Neste projeto, o controlador não controlarou diretamente os atuadores, mas sim enviou as informações ao microcomputador, via porta serial, e esse usufruiu do software aqui detalhado para gerenciar e efetivamente controlar os atuadores.

13 12 3 RUBY O Ruby é uma linguagem de programação interpretada criada por Yukihiro Matsumoto matz em Foi fortemente inspirada em outras linguagens, dentre elas as mais importantes: Phyton e Perl. A linguagem é totalmente orientada a objetos, diferentemente de linguagens como Java, onde um número, por exemplo 3, não é um objeto e sim uma primitiva inteira. Em Ruby, o número 3 é um objeto da classe Fixnum e, portanto, tem acesso a todos os métodos da classe diretamente dele. A Figura 1 exemplifica com um trecho de código, o uso de orientação a objetos em Ruby. Figura 1 Orientação a objetos em Ruby A mensagem Em Ruby tudo é objeto será escrita na saída padrão, aqui o terminal do usuário, por três vezes, já que o método times foi invocado no objeto Fixnum 3. Ruby também é muito flexível, permitindo aos programadores alterar partes de código da própria linguagem. Se for necessário incluir novos métodos na classe Fixnum por exemplo, o programador só precisa adicioná-los a própria classe. A Figura 2 demonstra a inclusão de um método chamado mais na classe Fixnum. Figura 2 Inclusão do método mais na classe Fixnum

14 Blocos em Ruby (closures) Um Closure é uma função ou método anônimo. É como um método dentro de outro método, que faz referência ou compartilha variáveis com o método interno ou externo. Em Ruby, o closure ou bloco é fechado por chaves ({}) ou do-end, e depende do método associado (como each) para funcionar (FITZGERALD, 2007). Os blocos são inspirados em linguagens funcionais como Lisp. (http://www.rubylang.org/en/about, abr. 2010). Essa funcionalidade permite ao programador enviar um bloco completo de código a um método que o executa. Como exemplo, considere a Figura 3 com um trecho de código que envia um bloco ao método map da classe Array. Figura 3 Blocos em ruby Neste trecho, o vetor vetor_de_strings invoca o método map passando um bloco de código para ser executado. A variável linguagem recebe automaticamente cada item do vetor, que é posteriormente comparado com a palavra Ruby. O método map então retorna um vetor modificado (novo_vetor). 3.2 Metaprogramação Metaprogramação é um atalho para se criar um programa, ou parte de um, com outro programa (FITZGERALD, 2010). Em outras palavras, metaprogramação é um conjunto de técnicas usadas para estender a sintaxe Ruby em modos que facilitam a programação (FLANAGAN, 2010).

15 14 Com o uso de metaprogramação, podemos criar dinamicamente métodos e atribuí-los a objetos, tornando o processo de desenvolvimento mais rápido e prático. Imagine uma classe Governo que possua um método chamado ensinar_a_pescar. Podemos criar uma classe Cidadao (Cidadão) em que o Governo irá ensinar o Cidadao a pescar (Figura 4) Figura 4 Metaprogramação em Ruby O resultado obtido é Osvaldo agora sabe pescar, visto que em tempo de execução adicionamos um novo método pescar ao objeto referenciado por cidadao.

16 15 4 DESENVOLVIMENTO WEB As tecnologias utilizadas na web evoluíram muito no transcorrer do tempo. A necessidade da geração de conteúdo dinâmico impulsionou a criação de uma gama de linguagens de programação no lado do servidor para a transformação de dados organizados em arquivos ou em tabelas de bancos de dados em páginas HTML geradas a partir desses dados (LALLI, 2008, p. 54). Cada vez mais aplicações web estão sendo criadas principalmente pelo fato do avanço da tecnologia nos navegadores e também pela própria necessidade do usuário em ter suas informações a qualquer hora em qualquer lugar. Outro fator que tem impulsionado o crescente número de aplicações web é o barateamento do acesso a Internet, principalmente em países em desenvolvimento. Segundo Ralphe Manzoni Jr., editor executivo do IDG Now!, o número de brasileiros que usam banda larga dobrou nos últimos dois anos e tendo a crescer ainda mais. (http://idgnow.uol.com.br/internet/2007/01/05/idgnoticia , abr. 2010) 4.1 O framework: Rails 2 Rails é um framework 1 web para Ruby que inclui tudo que é necessário para criar aplicações web orientadas a banco de dados de acordo com o padrão Model-View-Controller (MVC) (http://api.rubyonrails.org, fev. 2010). Criado em 2004 por David Heinemeier Hansson como parte de seu projeto Basecamp 2, o Rails é um framework de desenvolvimento que favorece a convenção ao invés da configuração. O Rails é composto de basicamente 7 grandes componentes ou frameworks: Active Controller - é o componente que gerencia os controllers em uma aplicação Rails. O framework Action Controller processa as requisições que chegam para uma aplicação Rails, extrai os parâmetros, e as despacham para a ação pretendida. Serviços fornecidos pelo Action Controller incluem gerenciamento de sessão, renderização de template, e gerenciamento de redirecionamento. 1 Framework Conjunto de classes pré-definidas usadas para auxiliar o desenvolvimento de software. 2 Basecamp Aplicação web de gerenciamento de software lançado em 2004 a partir do qual o Rails foi extraído.

17 16 Action View - gerencia as views de uma aplicação Rails. Ele pode criar ambas saídas HTML e XML por padrão. Action View gerencia a renderização de templates, incluindo templates aninhados e parciais, e inclui suporte embutido para Asynchronous Javascript and XML (AJAX). Active Record - é a base para os models em uma aplicação Rails. Ele fornece independência de banco de dados, funcionalidade CRUD 3 básica, capacidade de buscas avançadas, e a habilidade de relacionamento entre models, dentre outros serviços. Action Mailer - é o framework para criação de serviços de . O Action Mailer pode ser usado para enviar s baseados em templates flexíveis, ou para receber e processar um . Active Resource - fornece um framework para gerenciamento de conexão entre objetos de negócio e serviços web RESTful 4. Ele implementa um método para mapear recursos baseados em web para objetos locais com semântica CRUD. Railties - é o núcleo do código Rails que constrói novas aplicações e cola os vários frameworks juntos em qualquer aplicação. Active Support - é uma coleção extensiva de classes utilitárias e extensões da biblioteca padrão do Ruby que são usadas no Rails, tanto pelo código do núcleo quanto pelas suas aplicações Model view controller (MVC) O Rails foi criado para usufruir da arquitetura de desenvolvimento MVC, onde há uma separação clara de diferentes objetivos na construção da aplicação. Neste modelo de arquitetura há uma isolação entre a lógica de negócio e a interface do usuário. O MVC provê uma maneira fácil de manter o código DRY 5 e diz claramente onde os tipos de códigos diferentes pertencem a fim de facilitar a manutenção. 3 CRUD acrônimo da expressão em língua Inglesa Create, Read, Update e Delete, usada para definir quatro operações básicas usadas em bancos de dados relacionais ou em interface para usuários para criação, consulta, atualização e destruição de dados. 4 RESTful adjetivo que implica no uso no estilo de desenvolvimento REST, para sistemas distribuídos que privilegia a transferência de estado sem envolver camadas de mapeamento.

18 Model Um model representa a informação (dados) da aplicação e as regras para manipular estes dados. No caso do Rails, models são usados primariamente para gerenciar as regras de interação com uma tabela correspondente no banco de dados. Na maioria dos casos, uma tabela do banco de dados corresponderá a um model na aplicação. A maior parte da lógica de negócio de sua aplicação estará concentrada nos models. A Figura 5 mostra um model simples chamado Aluno. Isto implica que há no banco de dados da aplicação uma tabela chamada alunos. Cada atributo criado pelo attr_accessor 6 condiz um atributo da tabela. Figura 5 Exemplo de um model Aluno em Ruby Neste exemplo tem-se duas associações: has_many e belongs_to. Uma asociação to tipo has_many indica uma conexão um-para-muitos com outro model, aqui Telefone. Esta associação indica que cada instância do model Aluno possui zero ou mais instâncias do outro model Telefone. Uma associação do tipo belongs_to cria uma conexão um-para-um com outro model, aqui Faculdade, de modo que cada instância do model Aluno pertença a (belongs_to) uma instância de um outro model Faculdade. A Figura 6 mostra um DER 7 do banco de dados para tais associações no model: 5 DRY acrônimo da expresão em língua inglesa Don t Repeat Yourself (Não se repita). É um conceito de programação para evitar repetição de código. 6 attr_accessor método que cria automaticamente getters e setters para o atributo. 7 DER Diagrama Entidade-Relacionamento.

19 18 PK FK1 alunos id faculdade_id ra nome cpf faculdade PK id telefones PK FK1 id aluno_id Figura 6 DER para as associações para o model Aluno View Views representam a interface de usuário na sua aplicação. No Rails, as views são freqüentemente arquivos HTML com código Ruby embutido que efetua tarefas relacionadas somente com a apresentação dos dados. As views gerenciam o trabalho de fornecer dados para o navegador web ou outro acessório que é usado para enviar requisições à sua aplicação Controller Controllers ligam os models e views. No Rails, controllers são responsáveis por processar as requisições que chegam do navegador web, interrogando os models pelos dados, e passando os dados para as views procederem com a apresentação.

20 19 5 COMUNICAÇÃO SERIAL RS-232 A maioria das mensagens digitais são mais longas que alguns poucos bits. Por não ser prático nem econômico transferir todos os bits de uma mensagem simultaneamente, a mensagem é quebrada em partes menores e transmitida seqüencialmente (http://goo.gl/3rhu, abr. 2010). A transmissão serial envia ao canal de comunicação um trem de pulsos, ou seja, a mensagem original é quebrada em bits e estes são transmitidos um a um pelo canal de comunicação. Os bits, ao chegarem ao destino, são rearranjados para compor a mensagem original. A transmissão serial foi escolhida neste projeto como a interface de comunicação entre a placa micro-controlada criada pelo acadêmico Anderson Invencione e o microcomputador, pois é um método de comunicação muito difundido e relativamente simples de se implementado tendo em vista que o PIC16F877A 1 utilizado possui um módulo interno dedicado a comunicação serial o USART Características O RS-232 é um padrão de jure de nível físico (ZANCO, 2006). Este padrão cria uma interface comum para comunicação de dados entre equipamentos. Foi criada no início dos anos 60, por um comitê conhecido atualmente como EIA 3 (http://goo.gl/3rhu, abr. 2010). O padrão RS-232 define características mecânicas, elétricas, e funcionais para a comunicação serial de dados entre DTE 4 e um DCE 5 (ZANCO, 2006). Este projeto não focou o padrão RS-232 por este motivo só será relatado o que é necessário para a comunicação entre o microcontrolador e o PC. A maioria dos computadores atuais possui pelo menos uma porta de comunicação serial, mais conhecida por porta COM. Um microcontrolador pode se comunicar, ou seja, trocar informações com o PC utilizando a porta COM do microcomputador. A comunicação é feita pelo protocolo USART quando definimos os parâmetros da comunicação. São eles: Baud Rate ou taxa de transferência (bps); 1 PIC16F877A PIC microcontrolador amplamente utilizado em aplicações voltadas para automação 2 USART Universal Synchronous Asynchronous Receiver Transmitter 3 EIA - Electronic Industries Association. 4 DTE Data Terminal Equipment. 5 DCE - Data Communications Equipment.

21 20 Número de bits de dados; Bit de paridade; Tamanho do stop bit; Controle de fluxo. A Tabela 1 mostra os parâmetros mínimos e máximos de uma comunicação serial assíncrona que podem ser configurados tanto para o PIC16F877A quanto para a porta COM do PC. Tabela 1 Parâmetros da comunicação serial PIC PC PIC16F877A Porta COM do PC Taxa de transferência 110 a bps 110 a bps Número do bits 8 ou 9 4 a 8 Bit de paridade Não suporta Par, ímpar, marca ou espaço Stop bit 1 1; 1,5 ou 2 Controle de fluxo Não suporta Hardware, XON/XOFF ou nenhum Para a elaboração deste projeto a comunicação foi configurada como mostra a Tabela 2. Tabela 2 - Configuração da comunicação serial a ser utilizada Configuração Valor Taxa de transferência 9600 bps Número de bits 8 Bit de paridade - Stop bit 1 Controle de fluxo -

22 Ruby-serialPort O Ruby possui uma gem 6 para comunicação serial chamada Ruby-SerialPort. Com ela é possível enviar mensagens e recebê-las usando a porta serial de um microcomputador. Na gem é definida somente uma classe, a SerialPort, que além de definir métodos específicos, herda os métodos da classe IO 7 em Ruby, facilitando assim a escrita e leitura da porta serial. Os métodos que serão mais usados são: puts envia uma string pela porta serial. gets lê uma string da porta serial. 6 Gem é semelhante a uma biblioteca externa um C ou uma jar externo em Java. 7 IO class classe base para todo tipo de entrada e saída feita em Ruby.

23 22 6 O PROJETO O projeto aqui descrito visou desenvolver um sistema supervisor web, chamado ihouse, para domótica utilizando Ruby on Rails. Foi criado um protocolo de comunicação para controle do hardware desenvolvido pelo acadêmico Anderson Invencione, bem como todo o sistema que permitirá ao usuário interagir com os dispositivos presentes na casa. 6.1 Funcionamento do sistema O projeto ihouse foi dividido em 3 tipos de interações: humano-servidor, computador cliente-servidor, computador cliente-controlador Interação humano-servidor Primeiramente, o usuário deve acessar o site do ihouse e cadastrar-se. A partir desse momento, ele pode cadastrar casas em seu perfil. Após o cadastro de casas, faz se necessário efetuar um download de um pequeno programa cliente do site que é responsável pela conversa entre o computador cliente e o servidor. Após esses passos iniciais, é necessário iniciar um protocolo de descoberta dos dispositivos instalados na residência, para que o ihouse conheça todos os dispositivos. A partir desse momento, o usuário já pode controlar sua casa pela Internet Interação computador cliente-servidor O software cliente conversa com o servidor da aplicação ihouse de dois modos: question-interaction e report-interaction Question-interaction O cliente pergunta ao servidor se ele deve tomar alguma ação na casa. Isso acontece caso o usuário queira tomar alguma ação. Após a tomada da mesma, o computador cliente

24 23 deve retornar uma mensagem de sucesso ou não ao servidor. A Figura 7 esquematiza a interação do tipo question-interaction. Há algo para fazer? Sim, você deve... Computador cliente Servidor Figura 7 Esquema de interação question-interaction Report-interaction O cliente reporta o estado atual dos dispositivos na residência, causando uma atualização na base de dados do ihouse. A Figura 8 a seguir esquematiza a interação do tipo report-interaction. Estou reportando os estados atuais dos dispositivos Computador cliente Servidor Figura 8 Esquema de interação report-interaction Interação computador cliente-controlador Esse tipo de interação faz efetivamente mudanças nos estados dos dispositivos. Ela ocorre através da porta serial do computador cliente, e pode ser de dois tipos: do-action e report-state.

25 Do-action O computador cliente se comunica serialmente com o micro-controlador, lhe dizendo para fazer uma ação específica (ligar, desligar...). O micro-controlador então envia ao atuador a requisição e esse efetiva a ação. O atuador reporta se a ação foi efetuada ao micro controlador, que o repassa ao computador cliente. A Figura 9 esquematiza a interação doaction. Ação feita! Efetue a ação Controlador 0 5 a1 Vcc1 b1 6 a2 b2 7 a3 b3 8 a4 b4 Computador cliente Efetue a ação... Ação feita! C Q R Q A B Atuador Figura 9 Interação do tipo do-action Report-state O controlador requisita ao atuador para que este reporte seu estado atual. O atuador responde e o controlador repassa a mensagem ao computador cliente. A Figura 10, a seguir, esquematiza a interação do tipo report-state.

26 25 Controlador Estado do dispositivo a1 a2 a3 a4 0 Vcc1 b1 b2 b3 b Computador cliente Qual o estado? O estado é... C Q R Q A B Atuador Figura 10 interação do tipo report-state 6.2 Hardware O hardware é baseado em um microcontrolador PIC responsável por processar as informações provenientes da interface de comunicação e repassar a ações necessárias aos dispositivos dentro da casa. A Figura 11 mostra o diagrama em blocos do hardware utilizado neste projeto, elaborado pelo acadêmico Anderson Invencione. Figura 11 - Diagrama de bloco do hardware

27 26 A interface de comunicação é do tipo serial RS232. A mesma é ligada diretamente a porta serial do PC através de um cabo null-modem e ao barramento de comunicação do PIC tendo como intermediário o MAX232, que é um circuito integrado responsável pela adequação de sinais para uma comunicação efetiva entre PC-PIC. No bloco de processamento encontra-se o PIC, que recebe os dados da etapa anterior, os processa e envia ações para os dispositivos instalados na casa e retorna o status desta ação para a interface de comunicação. Neste projeto os dispositivos instalados são: Um relé, responsável pelo acionamento de uma lâmpada; Um LED de potência, com a possibilidade de controlar sua luminosidade através de PWM; Um sensor de temperatura que mede a temperatura ambiente e controla dois LEDs simulando o acionamento de um sistema de ar-condicionado. A Figura 12 mostra o diagrama elétrico da placa, isto é, a representação gráfica das conexões físicas entre os componentes.

28 27 Figura 12 - Diagrama elétrico da placa 6.3 Banco de dados O banco de dados da aplicação ihouse possui 8 tabelas InnoDB 1 MySQL. A Figura 13 representa o modelo relacional do banco de dados. construído em 1 InnoDB módulo ou estratégia de armazenamento para MySQL.

29 28 Figura 13 - Modelo relacional do banco de dados O framework Rails provê um modo simplificado e DRY de criar, alterar e manter o banco de dados, seja ele qual for, usando Rails Migrations. Para tal, é necessário a

30 29 configuração mínima do banco através de um YAML 2 localizado em config/database.yml, onde dizemos qual o nome do banco, login e senha. As migrações não mais são que classes Ruby portando dois métodos: up deve conter a lógica de criação da tabela; down deve conter a lógica de remoção da tabela. A Figura 14 a seguir mostra a simplicidade na criação de tabelas através das migrações. Figura 14 - Exemplo de migração Rails A manipulação efetiva do banco é feita por linha de comando utilizando Rake 3. A Tabela 3 resume alguns comandos para manipulação do banco de dados. Tabela 3 - Resumo dos comandos para manipulação do banco de dados Comando rake db:create Resultado Cria o banco de dados 2 YAML - é um formato de serialização (codificação de dados) de dados legíveis por humanos inspirado em linguagens como XML, C, Python, Perl, assim como o formato de correio eletrônico especificado pela RFC. YAML foi proposto por Clark Evans em 2001 em conjunto com Ingy döt Net e Oren Ben-Kiki. 3 Rake variante do programa make codificado em Ruby.

31 30 rake db:drop rake db:migrate rake db:migrate:reset Remove o banco de dados Cria/popula as tabelas Apaga todos os dados das tabelas 6.4 Controllers e models Os controllers são basicamente os responsáveis por receber a requisição do usuário e refletem os serviços oferecidos na aplicação. Os controllers mais importantes são aqueles que lidam com a requisição das ações e dispositivos, respectivamente ActionsController e DevicesController. A Tabela 4 identifica os controllers usados na aplicação. Tabela 4 - Controllers utilizados na aplicação ihouse Nome Propósito Principais serviços/ações ActionsController Requisições de gerenciamento das ações dos dispositivos. Criar/atualizar, encontrar e pré-visualizar ApplicationController Conjunto de serviços -- compartilhados DevicesController Requisições de gerenciamento Criar/atualizar e descobrir dos dispositivos HousesController Requisições de gerenciamento Criar/atualizar das casas KnownActionsController Requisições de ações Encontrar conhecidas SessionsController Requisições de autenticação Criar/apagar SiteController Requisições do site da Informações aplicação UsersController Requisições de gerenciamento Criar/atualizar, mostrar de usuários painel e apagar Os models utilizados na aplicação refletem as tabelas do banco de dados e são responsáveis por acessá-lo e responder a lógicas específicas de negócio. A Tabela 5 identifica os models da aplicação.

32 31 Tabela 5 - Models utilizados na aplicação ihouse Nome Action Device House KnownAction KnownDevice Log Task User Tabela do banco de dados actions devices houses known_actions known_devices logs tasks users Um dos models mais importantes da aplicação é o que representa as ações dos dispositivos, Action. Ele possui toda a lógica relacionada a criação, remoção e validação das ações. A Figura 15 mostra um trecho do código do Model Action, onde notam-se as relações com outros objetos/tabelas do banco como devices. Figura 15 - Trecho de código do Model Action

33 Módulos Uma aplicação Ruby é composta por diversos módulos que são capazes de estenderem os comportamentos de classes/objetos. No projeto ihouse, dois módulos, Known::Actions e Known::Devices, foram criados para estenderem os Models Action e Device respectivamente. O módulo Known::Actions contém métodos que ajudam identificar ações conhecidas previamente pela aplicação, o que facilitará o cadastramento inicial da mesma. O módulo Known::Devices contém métodos que ajudam identificar dispositivos conhecidos. A Figura 16 mostra um pequeno trecho do código do módulo Known::Actions. Figura 16 - Trecho do módulo Known::Actions 6.6 Criando um protocolo de comunicação Se fez necessária a criação de um protocolo de comunicação entre o PIC controlador e a aplicação ihouse. Baseado nos 3 tipos anteriores de interação [6.1], foram definidas as regras para a conversa dos dois objetos.

34 33 Toda mensagem que trafega entre a aplicação e o PIC é composta de uma chave da conversa ou key. Essa chave é usada para identificar unicamente uma interação entre esses objetos e deve ser criada pela aplicação. Além disso, toda mensagem enviada pela aplicação ao controlador deve conter o código de iteração que indica o tipo da mesma. A Tabela 6 descreve os códigos de tipos de iteração e seus significados. Tabela 6 - Códigos dos tipos de interações Constante(Serial::Interation) Valor Significado DEVICE_DISCOVERY 0 Representa uma mensagem de descoberta de dispositivos na casa. ACTION_DISCOVERY 1 Representa uma mensagem de descoberta das ações de um dispositivo. SET_VALUE 2 Representa uma mensagem de efetivo controle sobre o dispositivo, possivelmente alteração do seu estado. CURRENT_STATUS 3 Representa uma mensagem de questionamento de estado. As mensagens devem seguir um padrão de formato, devendo ser sempre iniciadas e terminadas pelo caractere #. Seguindo o caractere inicial, deve ser concatenada a chave de comunicação e o código de interação para as mensagens enviadas pela aplicação. Toda informação deve ser separada pelo caractere!. A Tabela 7 exemplifica uma mensagem genérica enviada pela aplicação ao PIC controlador. Tabela 7 - Formato de uma mensagem genérica enviada pela aplicação ao PIC #chave!código de interação!informação 1!informação 2...!informação n# # Separador de início e fim de uma interação Chave Chave da conversa Código de interação Representação do tipo da interação! Separador dos dados Informação n Dados adicionais da conversa

35 34 O formato de uma mensagem genérica de resposta do PIC à aplicação deve conter o caractere P logo após o separador inicial de interação. A Tabela 8 exemplifica uma mensagem genérica de resposta do PIC à aplicação. Tabela 8 - Formato de uma mensagem genérica do PIC à aplicação #Pchave!informação 1!informação 2...!informação n# # Separador de início e fim de uma interação P Identifica uma resposta do PIC a aplicação Chave Chave da conversa! Separador dos dados Informação n Dados adicionais da conversa Descoberta de dispositivos A descoberta de dispositivos, que ocorre quando se configura a aplicação pela primeira vez ou sempre que um novo dispositivo é adicionado a casa, é feita através de uma mensagem enviada ao PIC controlador composta de um código de descoberta, representado pelo número inteiro 911. A Tabela 9 exemplifica uma mensagem de descoberta enviada pela aplicação ao PIC. Tabela 9 - Formato da mensagem de descoberta de dispositivos enviada pela aplicação ao PIC #chave!código de interação!911# # Separador de início e fim de uma interação Chave Chave da conversa Código de interação Representação do tipo da interação! Separador dos dados 911 Código de descoberta de dispositivos A mensagem de resposta do PIC à aplicação deve conter um número inteiro de identificação da classe do dispositivo, seguido do número inteiro único de identificação do mesmo. A Tabela 10 exemplifica uma resposta a mensagem de descoberta do PIC à aplicação.

36 35 Tabela 10 - Formato da resposta do PIC à aplicação com a mensagem de descoberta dos dispositivos #Pchave!número da classe do dispositivo n!identificação do dispositivo n# # Separador de início e fim de uma interação P Identifica uma resposta do PIC a aplicação Chave Chave da conversa! Separador dos dados Número da classe do dispositivo n Identifica o tipo do dispositivo Identificação do dispositivo n Identifica unicamente o dispositivo presente na casa Descoberta das ações de um dispositivo Para descobrir as possíveis ações que um dispositivo pode executar, é necessária uma mensagem que contenha o código de identificação de dispositivo e o código inteiro de descoberta de ações 912. A Tabela 11 exemplifica a mensagem enviada pela aplicação ao PIC a fim de descobrir as ações de um dispositivo. Tabela 11 - Formato da mensagem de descoberta das ações de um dispositivo enviada pela aplicação ao PIC #chave!código de interação!identificação do dispositivo!912# # Separador de início e fim de uma interação Chave Código de interação Chave da conversa Representação do tipo da interação! Separador dos dados Identificação do dispositivo Código numérico que identifica unicamente o dispositivo 912 Código de descoberta das ações de um dispositivo Como resposta, a mensagem enviada pelo PIC deve conter o código de comando da ação, o código de questionamento de estado, e o código de tipo de ação, onde 0 representa uma ação de tipo TURN_ON_OFF booleana, e 1 representa uma ação do tipo RANGE de faixa de valores. Caso o tipo da ação seja de faixa de valores, o PIC deve ainda enviar os valores mínimo e máximo da faixa. A Tabela 12 exemplifica a resposta do PIC a aplicação.

37 36 Tabela 12 - Formato da mensagem de resposta do PIC à aplicação de uma descoberta de ações do dispositivo #Pchave!código do comando!código de questionamento de estado!tipo da ação[!valor mínimo!valor máximo]# # Separador de início e fim de uma interação P Chave Identifica uma resposta do PIC a aplicação Chave da conversa! Separador dos dados Código do comando Código de questionamento de estado Tipo da ação Valor mínimo Valor máximo Código inteiro do comando da ação Código inteiro que indica o valor a ser usado para se obter o estado da ação Inteiro 0 representa ação booleana, 1 faixa de valores Valor mínimo da faixa de valores Valor máximo da faixa de valores Envio de ação Quando o usuário controla os dispositivos através da aplicação ihouse, são enviados ações ao controlador para que os atuadores executem-nas. A mensagem enviada pela aplicação ao PIC é composta do identificador inteiro único do dispositivo, o código do comando da ação e o valor a ser modificado. A Tabela 13 exemplifica a mensagem de ação enviada pela aplicação ao PIC controlador. Tabela 13 - Formato da mensagem de ação enviada pela aplicação ao PIC #chave!código de interação!identificação do dispositivo!código do comando!valor# # Separador de início e fim de uma interação Chave Chave da conversa Código de interação Representação do tipo da interação! Separador dos dados Identificação do dispositivo Código numérico que identifica unicamente o dispositivo Código do comando Código numérico que identifica unicamente uma ação Valor Inteiro que representa um valor a ser enviado ao atuador

38 37 A resposta do PIC deve conter o estado da execução da ação. Caso o estado seja 200, houve sucesso, caso contrário, algum tipo de erro ocorreu e o código será 500. A Tabela 14 exemplifica a resposta do PIC à aplicação de uma mensagem de ação. Tabela 14 - Formato da resposta do PIC à aplicação de uma mensagem de ação #Pchave!código de estado# # Separador de início e fim de uma interação P Identifica uma resposta do PIC a aplicação Chave Chave da conversa! Separador dos dados Código de estado Código de representação de sucesso (200) ou erro (500) Feedback / questionamento de estado Para se obter o feedback ou fazer o questionamento do estado de uma ação do dispositivo, é necessária uma mensagem que contenha o identificador do dispositivo, o código de comando da ação e o código de questionamento de estado. A Tabela 15 exemplifica a mensagem enviada pela aplicação ao PIC a fim de se obter o estado de uma ação. Tabela 15 - Formato da mensagem de questionamento de estado enviada pela aplicação ao PIC #chave!código de interação!identificação do dispositivo!código do comando!código de questionamento de estado# # Separador de início e fim de uma interação Chave Chave da conversa Código de interação Representação do tipo da interação! Separador dos dados Identificação do dispositivo Código numérico que identifica unicamente o dispositivo Código do comando Código numérico que identifica unicamente uma ação Código de questionamento de Código que é interpretado pelo PIC como busca do estado estado da ação

39 38 O PIC deve responder com uma mensagem que contenha um valor numérico do estado, caso a ação seja do tipo RANGE de faixa de valores. Caso contrário, a mensagem deve conter a string state_on para a resposta booleana ligado ou state_off para resposta booleana desligado. A Tabela 16 exemplifica a resposta do PIC à aplicação. Tabela 16 - Formato da resposta do PIC à aplicação de uma mensagem de questionamento de estado #Pchave!código do estado# # Separador de início e fim de uma interação P Identifica uma resposta do PIC a aplicação Chave Chave da conversa! Separador dos dados Código do estado Código de representação numérico para ações do tipo faixa de valores ou state_on (ligado) e state_off (desligado) para ações do tipo booleana 6.7 Interface com o usuário O sistema ihouse foi desenhado de forma a dar ao usuário total controle sobre a aplicação. Suas interfaces são práticas e de fácil navegação a fim de tornar a configuração inicial e controle dos dispositivos a poucos cliques do usuário. Para facilitar o controle do JavaScript e acelerar o desenvolvimento da aplicação, foi utilizada a biblioteca jquery, que facilita o controle do HTML, eventos, e manipulação AJAX. A Figura 17 exemplifica o uso prático da biblioteca JQuery. Figura 17 - Manipulação do HTML por JavaScript utilizando jquery O seletor $( p.neat ) busca por todos os elementos HTML p (parágrafo) que contenham a classe neat, e para um desses elementos a classe ohmy é adicionada. Posteriormente, ainda para cada elemento é feito uma animação lenta da visibilidade do mesmo, tornando visível o item.

40 39 Na aplicação ihouse inicialmente é necessário criar uma conta na aplicação, provendo informações mínimas de contato. A Figura 18 mostra a interface de criação de usuários. Figura 18 - Interface de criação de usuários Um usuário já cadastrado no sistema pode se autenticar através da interface mostrada pela Figura 19.

41 40 Figura 19 - Interface de autenticação Após a autenticação no sistema, o usuário pode adicionar uma ou mais casas em seu perfil, onde cada uma possuirá seus dispositivos distintos. Ao adicionar uma casa ao perfil, o usuário já pode procurar dispositivos presentes na casa Procurando por dispositivos A descoberta de dispositivos é feita de modo a facilitar a configuração do ihouse na casa do usuário. Para tanto, na interface de dispositivos, o usuário deve clicar sobre o botão de busca e então os dispositivos presentes na casa em questão serão achados. Ao clicar no botão de busca, será enviado um sinal na porta serial, indicando ao PIC controlador que uma descoberta de dispositivos deve ser feita. Ele deve retornar todos dispositivos presentes conectados a ele, bem como todas as informações necessárias a configuração inicial. A Figura 20 mostra a interface depois da busca por dispositivos.

42 41 Figura 20 - Interface de busca por dispositivos Notam-se os campos Classe, Identificação e Nome já preenchidos após a descoberta, bastando ao usuário somente identificar um cômodo para o dispositivo. O campo Nome é preenchido automaticamente pela aplicação quando o dispositivo encontrado já faz parte de um banco de dados previamente cadastrado da aplicação. Além de facilitar a busca, a interface também oferece um modo simples de configurar um dispositivo manualmente. Para tanto o usuário deve clicar em Cadastrar um dispositivo manualmente e uma nova entrada na tabela de dispositivos será apresentada. Ao preencher o campo Classe será feita uma busca assíncrona na base de dados do ihouse, e caso seja um dispositivo conhecido o nome e identificação visual (ícone) já serão preenchidos Procurando as ações de um dispositivo Após a descoberta dos dispositivos se faz necessário descobrir o que um dispositivo pode fazer. Na aplicação ihouse isso é identificado pelas ações do dispositivo. A busca pelas ações também é simplificada, bastando ao usuário somente clicar em Procure pelas ações deste dispositivo. A Figura 21 mostra a interface de descoberta de ações de um dispositivo após a busca.

43 42 Figura 21 - Interface de descoberta das ações de um dispositivo após a busca Ao efetuar a busca, será enviado ao PIC controlador um sinal via porta serial que identifica uma busca pelas ações do dispositivo em questão. Ele retornará todas as ações que o usuário pode controlar através da aplicação. A customização do controle da ação pode ser feita na mesma interface, clicando em customize os controles. Uma janela modal 4 será apresentada permitindo ao usuário modificar a aparência do controle da ação. A Figura 22 mostra a janela modal de customização da ação do dispositivo. 4 Modal Janela filha que permite ao usuário interagir com a mesma, sem que seja aberta uma outra janela no navegador.

44 43 Figura 22 - Modal de customização do controle da ação do dispositivo Controle dos dipositivos Para controlar os dispositivos, o usuário utilizará uma interface única que centraliza todos os dispositivos presentes na casa. Foi utilizada principalmente nesta interface, a biblioteca JavaScript jquery UI que provê um conjunto de widgets que substituem elementos HTML por outros mais elegantes e de maior intuição por parte dos usuários. Para transformar botões tradicionais HTML por os botões utilizados nos controles dos dispositivos na aplicação basta inserir o código de exemplo: $( button ).button();

Sistema Gerador de Anúncios para Compra e Venda On-line. Leandro de Oliveira ol.leandro@gmail.com

Sistema Gerador de Anúncios para Compra e Venda On-line. Leandro de Oliveira ol.leandro@gmail.com Sistema Gerador de Anúncios para Compra e Venda On-line Leandro de Oliveira ol.leandro@gmail.com Roteiro da Apresentação Motivação Conceitos e Tecnologias Objetivos do trabalho Sistema SideCart Conclusões

Leia mais

Centro Universitário Metodista Benne1 Rio de Janeiro, Dezembro de 2009. Rafael Polo e Sabrina Arêas

Centro Universitário Metodista Benne1 Rio de Janeiro, Dezembro de 2009. Rafael Polo e Sabrina Arêas Centro Universitário Metodista Benne1 Rio de Janeiro, Dezembro de 2009 Rafael Polo e Sabrina Arêas Contexto 60 s - Primeiros sistemas de informação corporativos. 70 s Desenvolvimento e comercialização

Leia mais

Automação Residencial

Automação Residencial Automação Residencial F. A. Dias G. M. de Paula L. S. de Oliveira G.F. Vieira 1 CEFET-MG, Brasil Contexto Social e Profissional, 2009 Graduação em Engenharia Mecatrônica Motivação Questão fundamental O

Leia mais

NETALARM GATEWAY. Manual do Usuário

NETALARM GATEWAY. Manual do Usuário Índice 1. Introdução...3 2. Requisitos Mínimos de Instalação...3 3. Instalação...3 4. Inicialização do Programa...5 5. Abas de Configuração...6 5.1 Aba Serial...6 5.2 Aba TCP...7 5.2.1 Opções Cliente /

Leia mais

Entendendo Rails. Fabio Akita Surgeworks Brazil Rails Practice Manager www.akitaonrails.com

Entendendo Rails. Fabio Akita Surgeworks Brazil Rails Practice Manager www.akitaonrails.com Entendendo Rails Fabio Akita Surgeworks Brazil Rails Practice Manager www.akitaonrails.com 37signals Criado por David Heinemeier Hansson, em 2004 Extraído do aplicativo Basecamp Feito em Ruby, em vez de

Leia mais

5 Detalhes da Implementação

5 Detalhes da Implementação Detalhes da Implementação 101 5 Detalhes da Implementação Neste capítulo descreveremos detalhes da implementação do Explorator que foi desenvolvido usando o paradigma MVC 45 e o paradigma de CoC 46 (Convention

Leia mais

O que são sistemas supervisórios?

O que são sistemas supervisórios? O que são sistemas supervisórios? Ana Paula Gonçalves da Silva, Marcelo Salvador ana-paula@elipse.com.br, marcelo@elipse.com.br RT 025.04 Criado: 10/09/2004 Atualizado: 20/12/2005 Palavras-chave: sistemas

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Hardware Sistema de Entrada/Saída Visão Geral Princípios de Hardware Dispositivos de E/S Estrutura Típica do Barramento de um PC Interrupções

Leia mais

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES w w w. i d e a l o g i c. c o m. b r INDICE 1.APRESENTAÇÃO 2.ESPECIFICAÇÃO DOS RECURSOS DO SOFTWARE SAXES 2.1. Funcionalidades comuns a outras ferramentas similares 2.2. Funcionalidades próprias do software

Leia mais

Manual Easy Chat Data de atualização: 20/12/2010 16:09 Versão atualizada do manual disponível na área de download do software.

Manual Easy Chat Data de atualização: 20/12/2010 16:09 Versão atualizada do manual disponível na área de download do software. 1 - Sumário 1 - Sumário... 2 2 O Easy Chat... 3 3 Conceitos... 3 3.1 Perfil... 3 3.2 Categoria... 4 3.3 Ícone Específico... 4 3.4 Janela Específica... 4 3.5 Ícone Geral... 4 3.6 Janela Geral... 4 4 Instalação...

Leia mais

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro Desenvolvimento em PHP usando Frameworks Elton Luís Minetto Agenda Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro Ambiente Web É o ambiente

Leia mais

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP Cleber de F. Ferreira¹, Roberto Dias Mota¹. ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil cleberferreirasi@hotmail.com, motaroberto@hotmail.com Resumo.

Leia mais

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração Desenvolvimento em PHP usando Frameworks Elton Luís Minetto Agenda Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração Ambiente Web É o ambiente formado

Leia mais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

William Stallings Arquitetura e Organização de Computadores 8 a Edição William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 7 Entrada/saída Os textos nestas caixas foram adicionados pelo Prof. Joubert slide 1 Problemas de entrada/saída Grande variedade

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

Leia mais

Geração e execução de scripts de teste em aplicações web a partir de casos de uso direcionados por comportamento 64

Geração e execução de scripts de teste em aplicações web a partir de casos de uso direcionados por comportamento 64 direcionados por comportamento 64 5 Estudo de caso Neste capítulo serão apresentadas as aplicações web utilizadas na aplicação da abordagem proposta, bem como a tecnologia em que foram desenvolvidas, o

Leia mais

Boas Práticas de Desenvolvimento Seguro

Boas Práticas de Desenvolvimento Seguro Boas Práticas de Desenvolvimento Seguro Julho / 2.012 Histórico de Revisões Data Versão Descrição Autor 29/07/2012 1.0 Versão inicial Ricardo Kiyoshi Página 2 de 11 Conteúdo 1. SEGURANÇA DA INFORMAÇÃO

Leia mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

Leia mais

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões Prof. MSc. Hugo Souza Se você precisar manter informações sobre seus usuários enquanto eles navegam pelo seu site, ou até quando eles saem

Leia mais

Desenvolvendo Aplicações Web com NetBeans

Desenvolvendo Aplicações Web com NetBeans Desenvolvendo Aplicações Web com NetBeans Aula 3 Cap. 4 Trabalhando com Banco de Dados Prof.: Marcelo Ferreira Ortega Introdução O trabalho com banco de dados utilizando o NetBeans se desenvolveu ao longo

Leia mais

MY HOME INTRODUÇÃO TOUCH SCREEN. Comando de Automação

MY HOME INTRODUÇÃO TOUCH SCREEN. Comando de Automação TOUCH SCREEN Comando de Automação Central de Cenário 54 ÍNDICE DE SEÇÃO 56 A casa como você quer 62 As vantagens de 66 Dispositivos BUS 68 Integração das funções My Home 70 Vantagens da instalação BUS

Leia mais

Introdução à Informática

Introdução à Informática Introdução à Informática Aula 23 http://www.ic.uff.br/~bianca/introinfo/ Aula 23-07/12/2007 1 Histórico da Internet Início dos anos 60 Um professor do MIT (J.C.R. Licklider) propõe a idéia de uma Rede

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Modelo Cliente- Servidor Modelo de Aplicação Cliente-servidor Os

Leia mais

Microsoft Visual Studio Express 2012 for Windows Desktop

Microsoft Visual Studio Express 2012 for Windows Desktop Microsoft Visual Studio Express 2012 for Windows Desktop Apresentação da ferramenta Professor: Danilo Giacobo Página pessoal: www.danilogiacobo.eti.br E-mail: danilogiacobo@gmail.com 1 Introdução Visual

Leia mais

APLICAÇÕES PARA CASAS INTELIGENTES EM AMBIENTES PERVASIVOS

APLICAÇÕES PARA CASAS INTELIGENTES EM AMBIENTES PERVASIVOS APLICAÇÕES PARA CASAS INTELIGENTES EM AMBIENTES PERVASIVOS RESUMO Alessandro Lumertz Garcia 1 Anderson Yanzer Cabral 2 Este artigo apresenta tipos de aplicações que podem existir nas casas inteligentes,

Leia mais

Comunicação de dados. Introdução

Comunicação de dados. Introdução Comunicação de dados Introdução Os microcontroladores AVR estão equipados com dois pinos destinados à comunicação serial, UART (Universal Asynchronous Reciever/Transmitter), ou seja, permitem trocar informações

Leia mais

Ambientes Visuais. Ambientes Visuais

Ambientes Visuais. Ambientes Visuais Ambientes Visuais Inicialmente, apenas especialistas utilizavam os computadores, sendo que os primeiros desenvolvidos ocupavam grandes áreas e tinham um poder de processamento reduzido. Porém, a contínua

Leia mais

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

Sistemas SCADAS. Apresentação dos sistemas de supervisão do mercado de automação: - Elipse E3 (fabricante Eilpse)

Sistemas SCADAS. Apresentação dos sistemas de supervisão do mercado de automação: - Elipse E3 (fabricante Eilpse) A palavra SCADA é um acrônimo para Supervisory Control And Data Acquisition. Os primeiros sistemas SCADA, basicamente telemétricos, permitiam informar periodicamente o estado corrente do processo industrial,

Leia mais

NETALARM GATEWAY Manual Usuário

NETALARM GATEWAY Manual Usuário NETALARM GATEWAY Manual Usuário 1 Índice 1. Introdução... 3 2. Requisitos de Instalação... 3 3. Instalação... 3 4. Iniciando o programa... 5 4.1. Aba Serial... 5 4.2. Aba TCP... 6 4.3. Aba Protocolo...

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS Objetos distribuídos e invocação remota Introdução Comunicação entre objetos distribuídos Chamada de procedimento remoto Eventos e notificações Objetos

Leia mais

MANUAL DE PROGRAMAÇÃO. Apostila de Programação Ativa XPANEL Cód MTXXTSC-ET. Programação Básica. IHM ATIVA Xpanel. Software Xpanel Designer

MANUAL DE PROGRAMAÇÃO. Apostila de Programação Ativa XPANEL Cód MTXXTSC-ET. Programação Básica. IHM ATIVA Xpanel. Software Xpanel Designer Apostila de Programação Ativa XPANEL Cód MTXXTSC-ET Programação Básica IHM ATIVA Xpanel Software Xpanel Designer 1 1. Conectividade IHM Xpanel MANUAL DE PROGRAMAÇÃO (1) USB Client Upload and Download project.

Leia mais

TOMADAS INTELIGENTES: SISTEMA DE CONTROLE E AUTOMAÇÃO DE TOMADAS ELÉTRICAS BASEADO EM SMARTPHONES

TOMADAS INTELIGENTES: SISTEMA DE CONTROLE E AUTOMAÇÃO DE TOMADAS ELÉTRICAS BASEADO EM SMARTPHONES TOMADAS INTELIGENTES: SISTEMA DE CONTROLE E AUTOMAÇÃO DE TOMADAS ELÉTRICAS BASEADO EM SMARTPHONES Sérgio Freitas da Silva Jr - 9º ano do Ensino Fundamental 1, Lucas Santos do Nascimento Portela 3º ano

Leia mais

Diveo Exchange OWA 2007

Diveo Exchange OWA 2007 Diveo Exchange OWA 2007 Manual do Usuário v.1.0 Autor: Cícero Renato G. Souza Revisão: Antonio Carlos de Jesus Sistemas & IT Introdução... 4 Introdução ao Outlook Web Access 2007... 4 Quais são as funcionalidades

Leia mais

Ferramentas Web para controle e supervisão: o que está por vir

Ferramentas Web para controle e supervisão: o que está por vir Artigos Técnicos Ferramentas Web para controle e supervisão: o que está por vir Marcelo Salvador, Diretor de Negócios da Elipse Software Ltda. Já faz algum tempo que ouvimos falar do controle e supervisão

Leia mais

Desenvolvendo para WEB

Desenvolvendo para WEB Nível - Básico Desenvolvendo para WEB Por: Evandro Silva Neste nosso primeiro artigo vamos revisar alguns conceitos que envolvem a programação de aplicativos WEB. A ideia aqui é explicarmos a arquitetura

Leia mais

Criando seu primeiro programa: Ao abrir o software, ele já está pronto para começar a programar:

Criando seu primeiro programa: Ao abrir o software, ele já está pronto para começar a programar: Criando seu primeiro programa: Ao abrir o software, ele já está pronto para começar a programar: Após inserir funções, os códigos aparecerão na lateral esquerda: Assim que seu programa estiver pronto,

Leia mais

MAPEAMENTO E LOCALIZAÇÃO DE REGIÕES DE INTERESSE UTILIZANDO REALIDADE AUMENTADA EM DISPOSITIVOS MÓVEIS COM PLATAFORMA ANDROID

MAPEAMENTO E LOCALIZAÇÃO DE REGIÕES DE INTERESSE UTILIZANDO REALIDADE AUMENTADA EM DISPOSITIVOS MÓVEIS COM PLATAFORMA ANDROID MAPEAMENTO E LOCALIZAÇÃO DE REGIÕES DE INTERESSE UTILIZANDO REALIDADE AUMENTADA EM DISPOSITIVOS MÓVEIS COM PLATAFORMA ANDROID Alessandro Teixeira de Andrade¹; Geazy Menezes² UFGD/FACET Caixa Postal 533,

Leia mais

1 Introdução. O sistema permite:

1 Introdução. O sistema permite: A intenção deste documento é demonstrar as possibilidades de aplicação da solução INCA Insite Controle de Acesso - para controle de conexões dia-up ou banda larga à Internet e redes corporativas de forma

Leia mais

ZEUS SERVER STUDIO V2.07

ZEUS SERVER STUDIO V2.07 ZEUS SERVER STUDIO V2.07 FERRAMENTA DE CONFIGURAÇÃO DO ZEUS SERVER 3i Soluções Ind. Com. de Equip. Eletrônicos e Serviços em Materiais Elétricos Ltda. Rua Marcilio Dias, 65 Lapa CEP 05077-120 São Paulo

Leia mais

CA Nimsoft Monitor para servidores

CA Nimsoft Monitor para servidores DOCUMENTAÇÃO TÉCNICA Setembro de 2012 CA Nimsoft Monitor para servidores agility made possible CA Nimsoft para monitoramento de servidores sumário CA Nimsoft Monitor para servidores 3 visão geral da solução

Leia mais

Manual de implantação

Manual de implantação Manual de implantação O BioPass ID é um serviço online baseado em nuvem que fornece uma poderosa tecnologia multibiométrica (reconhecimento de impressões digitais e face) para os desenvolvedores de qualquer

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Entrada/Saída Material adaptado, atualizado e traduzido de: STALLINGS, William. Arquitetura e Organização de Computadores. 5ª edição Problemas Entrada/Saída Grande

Leia mais

HCN/HCS SERIES CÂMERAS E CONVERSORES IP

HCN/HCS SERIES CÂMERAS E CONVERSORES IP HCN/HCS SERIES CÂMERAS E CONVERSORES IP Obrigado por utilizar os produtos Dimy s. Antes de operar o equipamento, leia atentamente as instruções deste manual para obter um desempenho adequado. Por favor,

Leia mais

3'$ 6 7DWLDQD$OYHV/HVVQDX 3URI$OHVVDQGUR=LPPHU H3URI(PHUVRQ3DUDLVR

3'$ 6 7DWLDQD$OYHV/HVVQDX 3URI$OHVVDQGUR=LPPHU H3URI(PHUVRQ3DUDLVR 6,67(0$'(*(5(1&,$0(172&86720,=È9(/%$6($'2(0 3'$ 6 7DWLDQD$OYHV/HVVQDX 3URI$OHVVDQGUR=LPPHU H3URI(PHUVRQ3DUDLVR 1, 2,3 UNICENP Centro Universitário Positivo Rua Professor Viriato Parigot de Souza, 5300

Leia mais

Tutorial 122 CP DUO Inversor WEG (RS485 Protocolo MODBUS - DUO Master)

Tutorial 122 CP DUO Inversor WEG (RS485 Protocolo MODBUS - DUO Master) Tutorial 122 CP DUO Inversor WEG (RS485 Protocolo MODBUS - DUO Master) Este documento é propriedade da ALTUS Sistemas de Informática S.A., não podendo ser reproduzido sem seu prévio consentimento. Altus

Leia mais

Sistema de Ordens de Serviço HDA Soluções em Informática

Sistema de Ordens de Serviço HDA Soluções em Informática UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO Curso Superior de Graduação em ANÁLISE E DESENVOLVIMENTO DE SISTEMAS Sistema de Ordens de Serviço HDA Soluções em Informática Por AUGUSTO CARRICONDE

Leia mais

UM NOVO CONCEITO EM AUTOMAÇÃO. Série Ponto

UM NOVO CONCEITO EM AUTOMAÇÃO. Série Ponto UM NOVO CONCEITO EM AUTOMAÇÃO Série Ponto POR QUE NOVO CONCEITO? O que é um WEBPLC? Um CP na WEB Por que usar INTERNET? Controle do processo de qualquer lugar WEBGATE = conexão INTERNET/ALNETII WEBPLC

Leia mais

CURSO DESENVOLVEDOR JAVA Edição 2009

CURSO DESENVOLVEDOR JAVA Edição 2009 CURSO DESENVOLVEDOR JAVA Edição 2009 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma Orientado a Objetos e com o uso

Leia mais

Security Shop MRS. Media Relay System. Manual do Usuário

Security Shop MRS. Media Relay System. Manual do Usuário Página 1 de 20 Security Shop MRS Media Relay System Manual do Usuário Página 2 de 20 Conteúdos: Conteúdos:... 2 Figuras:... 3 1. Introdução... 4 1.1 Âmbito do Documento... 4 1.2 Terminologia... 4 2. GERAL...

Leia mais

AUTOMAÇÃO PREDIAL EM SALAS COMERCIAIS UTILIZANDO O LABVIEW E ARDUINO. Fábio F. M. de Moraes, Simon Pedro da F. Pinheiro, Roger R.

AUTOMAÇÃO PREDIAL EM SALAS COMERCIAIS UTILIZANDO O LABVIEW E ARDUINO. Fábio F. M. de Moraes, Simon Pedro da F. Pinheiro, Roger R. AUTOMAÇÃO PREDIAL EM SALAS COMERCIAIS UTILIZANDO O LABVIEW E ARDUINO Fábio F. M. de Moraes, Simon Pedro da F. Pinheiro, Roger R. da Silva Instituto de Estudos Superior da Amazônia - IESAM Av. José Malcher,

Leia mais

AUTOMAÇÃO RESIDENCIAL

AUTOMAÇÃO RESIDENCIAL AUTOMAÇÃO RESIDENCIAL Automação e Controle AR026 SUMÁRIO I. Sistemas Supervisórios... 3 II. Automação... 4 III. Arquitetura de Redes Industriais... 5 IV. Comunicação entre Supervisório e CLP...7 V. O Protocolo

Leia mais

WWW.cerne-tec.com.br. Comunicação USB com o PIC Vitor Amadeu Souza Parte II vitor@cerne-tec.com.br

WWW.cerne-tec.com.br. Comunicação USB com o PIC Vitor Amadeu Souza Parte II vitor@cerne-tec.com.br 1 Comunicação USB com o PIC Vitor Amadeu Souza Parte II vitor@cerne-tec.com.br Continuando com o artigo apresentado na edição passada de comunicação USB com o PIC, continuaremos nesta edição o estudo do

Leia mais

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011 CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma

Leia mais

Manual do Usuário Android Neocontrol

Manual do Usuário Android Neocontrol Manual do Usuário Android Neocontrol Sumário 1.Licença e Direitos Autorais...3 2.Sobre o produto...4 3. Instalando, Atualizando e executando o Android Neocontrol em seu aparelho...5 3.1. Instalando o aplicativo...5

Leia mais

Lista de Exercício: PARTE 1

Lista de Exercício: PARTE 1 Lista de Exercício: PARTE 1 1. Questão (Cód.:10750) (sem.:2a) de 0,50 O protocolo da camada de aplicação, responsável pelo recebimento de mensagens eletrônicas é: ( ) IP ( ) TCP ( ) POP Cadastrada por:

Leia mais

Ferramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta: 1.1. www.ufpa.br/spider

Ferramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta: 1.1. www.ufpa.br/spider Ferramenta: Spider-CL Manual do Usuário Versão da Ferramenta: 1.1 www.ufpa.br/spider Histórico de Revisões Data Versão Descrição Autor 14/07/2009 1.0 15/07/2009 1.1 16/07/2009 1.2 20/05/2010 1.3 Preenchimento

Leia mais

PROGRAMAÇÃO MVC E ZEND FRAMEWORK

PROGRAMAÇÃO MVC E ZEND FRAMEWORK PROGRAMAÇÃO MVC E ZEND FRAMEWORK MVC PROGRAMMING AND ZEND FRAMEWORK Rodolfo Vinícius Moimas Dias Centro Universitário Filadélfia de Londrina UniFil Rafael Francovig Cavicchioli Centro Universitário Filadélfia

Leia mais

Conteúdo BIOTRONIC PLUS

Conteúdo BIOTRONIC PLUS 0 Conteúdo Manual de Instalação...3 RECURSOS DESTE RELÓGIO...5 1 - REGISTRANDO O ACESSO...7 1.1 Acesso através do sensor biométrico:...7 1.2 Acesso através de cartão de código de barras:...7 1.3 Acesso

Leia mais

Arquitetura de Computadores. Professor: Vilson Heck Junior

Arquitetura de Computadores. Professor: Vilson Heck Junior Arquitetura de Computadores Professor: Vilson Heck Junior Agenda Conceitos Estrutura Funcionamento Arquitetura Tipos Atividades Barramentos Conceitos Como já discutimos, os principais componentes de um

Leia mais

Considerando-se a especificação de requisitos de um software, é INCORRETO afirmar que esse documento

Considerando-se a especificação de requisitos de um software, é INCORRETO afirmar que esse documento QUESTÕES DE TI QUESTÃO 16 Considerando-se o número de pontos de função para a estimativa do tamanho de um software, é INCORRETO afirmar que, na contagem de pontos, leva-se em consideração A) as compilações

Leia mais

Acessando a Porta Paralela com o Delphi. Vitor Amadeu Souza. vitor@cerne-tec.com.br

Acessando a Porta Paralela com o Delphi. Vitor Amadeu Souza. vitor@cerne-tec.com.br Acessando a Porta Paralela com o Delphi Vitor Amadeu Souza vitor@cerne-tec.com.br Introdução A Porta Paralela pode ser usada de forma a permitir a interface do computador com o mundo externo para acionamento

Leia mais

CONFORTO COM SEGURANÇA CONFORTO COM SEGURANÇA. 0 P27070 - Rev

CONFORTO COM SEGURANÇA CONFORTO COM SEGURANÇA. 0 P27070 - Rev P27070 - Rev. 0 1. RESTRIÇÕES DE FUNCIONAMENTO RECEPTOR IP ÍNDICE 1. Restrições de Funcionamento... 03 2. Receptor IP... 03 3. Inicialização do Software... 03 4. Aba Eventos... 04 4.1. Botão Contas...

Leia mais

REST Um Estilo de Arquitetura de Sistemas Distribuídos

REST Um Estilo de Arquitetura de Sistemas Distribuídos REST Um Estilo de Arquitetura de Sistemas Distribuídos Márcio Alves de Araújo¹, Mauro Antônio Correia Júnior¹ 1 Faculdade de Computação Universidade Federal de Uberlândia (UFU) Monte Carmelo MG Brasil

Leia mais

Uma Proposta de Tecnologia Embarcada na Internação Domiciliar Capítulo 3 Implementação do SMD 93

Uma Proposta de Tecnologia Embarcada na Internação Domiciliar Capítulo 3 Implementação do SMD 93 Capítulo 3 Implementação do SMD 93 CAPÍTULO 3 IMPLEMENTAÇÃO DO SMD Este capítulo reserva-se à apresentação da implementação do SMD tomando como partida o desenvolvimento do Projeto Preliminar que consta

Leia mais

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc. Implementar servidores de Web/FTP e DFS Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.br Conteúdo programático Introdução ao protocolo HTTP Serviço web

Leia mais

Programação Web Aula 8 - Rails (Introdução)

Programação Web Aula 8 - Rails (Introdução) Programação Web Aula 8 - Rails (Introdução) Departamento de Informática UFPR 7 de Abril de 2014 1 Rails Básico Mágica Princípios Características Criando uma aplicação Levantando o Servidor Examinando o

Leia mais

Sumário. Parte I Introdução 21. 1 Introdução 15 1.1 O Rails é ágil... 17 1.2 Explorando o conteúdo... 18 1.3 Agradecimentos... 19

Sumário. Parte I Introdução 21. 1 Introdução 15 1.1 O Rails é ágil... 17 1.2 Explorando o conteúdo... 18 1.3 Agradecimentos... 19 Sumário 1 Introdução 15 1.1 O Rails é ágil.......................................................... 17 1.2 Explorando o conteúdo................................................... 18 1.3 Agradecimentos........................................................

Leia mais

Software de Automação e Gerenciamento Residencial

Software de Automação e Gerenciamento Residencial Software de Automação e Gerenciamento Residencial Isac Marques da Silva 1, Maurício Duarte 1,2, Larissa Pavarini da Luz 1 FATEC Faculdade de Tecnologia de Garça Caixa Postal 14.000 000 Garça SP Brasil

Leia mais

Índice. VIAWEBsystem - 1

Índice. VIAWEBsystem - 1 V 3.20 Jul09 r2.0 Índice Apresentação...3 Instalação...3 Esquema de Ligação...4 Operação...5 Terminal...6 Funções de Programação...7 [007 a 011] Programação da Entrada (Setor Interno)... 7 Função 007

Leia mais

MNDT-6.2-199 r 02 Página 2 de 24

MNDT-6.2-199 r 02 Página 2 de 24 1.TEF DISCADO... 3 2.Componentes... 4 3.COMO FUNCIONA?... 4 4.PINPADs utilizados na solução PCmultiTef +... 4 5.Gerenciador Padrão... 4 6.Redecard... 5 1.Instalação do Módulo Redecard... 5 2.Configuração

Leia mais

Tutorial 160 CP FBs - Elipse Scada (RS232 Protocolo MODBUS)

Tutorial 160 CP FBs - Elipse Scada (RS232 Protocolo MODBUS) Tutorial 160 CP FBs - Elipse Scada (RS232 Protocolo MODBUS) Este documento é propriedade da ALTUS Sistemas de Informática S.A., não podendo ser reproduzido sem seu prévio consentimento. Altus Sistemas

Leia mais

Boletim Técnico R&D 03/08 CARACTERÍSTICAS DO DRIVER MPC6006L 14 de março de 2008

Boletim Técnico R&D 03/08 CARACTERÍSTICAS DO DRIVER MPC6006L 14 de março de 2008 Boletim Técnico R&D 03/08 CARACTERÍSTICAS DO DRIVER MPC6006L 14 de março de 2008 O objetivo deste boletim é mostrar as características do driver MPC6006L. Tópicos abordados neste boletim: APRESENTAÇÃO

Leia mais

Vídeo Vigilância Abordagem Open-Source

Vídeo Vigilância Abordagem Open-Source Vídeo Vigilância Abordagem Open-Source Alunos: Justino Santos, Paulo Neto E-mail: eic10428@student.estg.ipleiria.pt, eic10438@student.estg.ipleiria.pt Orientadores: Prof. Filipe Neves, Prof. Paulo Costa

Leia mais

Manual de Instalação. GPRS Universal

Manual de Instalação. GPRS Universal Manual de Instalação GPRS Universal INTRODUÇÃO O módulo GPRS Universal Pináculo é um conversor de comunicação que se conecta a qualquer painel de alarme monitorado que utilize o protocolo de comunicação

Leia mais

Comm5 Tecnologia Manual de utilização da família MI. Manual de Utilização. Família MI

Comm5 Tecnologia Manual de utilização da família MI. Manual de Utilização. Família MI Manual de Utilização Família MI ÍNDICE 1.0 COMO LIGAR O MÓDULO... pág 03 e 04 2.0 OBJETIVO... pág 05 3.0 COMO CONFIGURAR O MÓDULO MI... pág 06, 07, 08 e 09 4.0 COMO TESTAR A REDE... pág 10 5.0 COMO CONFIGURAR

Leia mais

Introdução ao Javascript

Introdução ao Javascript Programação WEB I Introdução ao Javascript Apresentação da Disciplina,Introdução a linguagem Javascript Objetivos da Disciplina Apresentar os principais conceitos da linguagem Javascript referente à programação

Leia mais

Começando com Ruby on Rails @gibsongabriel

Começando com Ruby on Rails @gibsongabriel Começando com Ruby on Rails @gibsongabriel Yukiriho 'Matz' Matsumoto http://ruby-lang.org/pt/ Ruby é uma linguagem de programação interpretada, com tipagem forte e dinâmica, que tem como foco a simplicidade

Leia mais

M a n u a l d o R e c u r s o Q m o n i t o r

M a n u a l d o R e c u r s o Q m o n i t o r M a n u a l d o R e c u r s o Q m o n i t o r i t i l advanced Todos os direitos reservados à Constat. Uso autorizado mediante licenciamento Qualitor Porto Alegre RS Av. Ceará, 1652 São João 90240-512

Leia mais

2 Geração Dinâmica de Conteúdo e Templates de Composição

2 Geração Dinâmica de Conteúdo e Templates de Composição 2 Geração Dinâmica de Conteúdo e Templates de Composição Alguns dos aspectos mais importantes na arquitetura proposta nesta dissertação são: a geração dinâmica de conteúdo e a utilização de templates de

Leia mais

UMA ABORDAGEM SOBRE A INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES SOCKETS E A IMPLEMENTAÇÃO DE UM SERVIDOR HTTP

UMA ABORDAGEM SOBRE A INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES SOCKETS E A IMPLEMENTAÇÃO DE UM SERVIDOR HTTP UMA ABORDAGEM SOBRE A INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES SOCKETS E A IMPLEMENTAÇÃO DE UM SERVIDOR HTTP Alan Jelles Lopes Ibrahim, alan.jelles@hotmail.com Eduardo Machado Real, eduardomreal@uems.br

Leia mais

Rails 3 Básico Cloves Carneiro Jr. Rida Al Barazi

Rails 3 Básico Cloves Carneiro Jr. Rida Al Barazi Rails 3 Básico Cloves Carneiro Jr. Rida Al Barazi Novatec Original English language edition published by Apress Inc., 2560 Ninth Street, Suite 219, Berkeley, CA 94710 USA. Copyright 2009 by Apress, Inc..

Leia mais

4 Arquitetura do middleware

4 Arquitetura do middleware 4 Arquitetura do middleware Ao utilizar um modelo de componentes orientado a serviços, o middleware Kaluana divide o processo de desenvolvimento de aplicações em duas etapas: a primeira é o desenvolvimento

Leia mais

TÍTULO: ARCASE - AUTOMAÇÃO RESIDENCIAL COM ANDROID E SISTEMAS EMBARCADOS

TÍTULO: ARCASE - AUTOMAÇÃO RESIDENCIAL COM ANDROID E SISTEMAS EMBARCADOS Anais do Conic-Semesp. Volume 1, 2013 - Faculdade Anhanguera de Campinas - Unidade 3. ISSN 2357-8904 TÍTULO: ARCASE - AUTOMAÇÃO RESIDENCIAL COM ANDROID E SISTEMAS EMBARCADOS CATEGORIA: CONCLUÍDO ÁREA:

Leia mais

Universidade Federal de Minas Gerais Escola de Engenharia

Universidade Federal de Minas Gerais Escola de Engenharia 1 Universidade Federal de Minas Gerais Escola de Engenharia Departamento de Engenharia Eletrônica Laboratório de Informática Industrial 3ª AULA - Programação Convencional de CLP - Parte I Objetivos: Analisar

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

4 Desenvolvimento da ferramenta

4 Desenvolvimento da ferramenta direcionados por comportamento 38 4 Desenvolvimento da ferramenta Visando facilitar a tarefa de documentar requisitos funcionais e de gerar testes automáticos em uma única ferramenta para proporcionar

Leia mais

Este tutorial mostra como utilizar as ferramentas Send Mail e Web Commands.

Este tutorial mostra como utilizar as ferramentas Send Mail e Web Commands. Este tutorial mostra como utilizar as ferramentas Send Mail e Web Commands. Antes de começamos certifique-se de estarem com o programa instalado, com sua conta e licenças ativas. Neste tutorial não irei

Leia mais

Sistema de Aquisição de Dados

Sistema de Aquisição de Dados Sistema de Aquisição de Dados Versão 2013 RESUMO Nesta experiência será desenvolvido o projeto de um sistema de aquisição e armazenamento de dados analógicos em formato digital. O sinal de um sensor de

Leia mais

Potenciais de Aplicação da Metodologia AJAX

Potenciais de Aplicação da Metodologia AJAX SEGeT Simpósio de Excelência em Gestão e Tecnologia 1 Potenciais de Aplicação da Metodologia AJAX Bruno Simões Kleverson Pereira Marcos Santos Eduardo Barrere Associação Educacional Dom Bosco - AEDB RESUMO

Leia mais

PRESIDÊNCIA DA REPÚBLICA SECRETARIA-GERAL Secretaria-Executiva

PRESIDÊNCIA DA REPÚBLICA SECRETARIA-GERAL Secretaria-Executiva Projeto PNUD BRA/12/018 - Documento técnico com complementação da documentação de instalação e uso da plataforma Noosfero contendo conceitos e tutoriais. Consultora: Daniela Soares Feitosa Contrato n o

Leia mais

MANUAL DO USUÁRIO. Software de Gerenciamento. Controlador de Fator de Potência. Self Control

MANUAL DO USUÁRIO. Software de Gerenciamento. Controlador de Fator de Potência. Self Control MANUAL DO USUÁRIO Software de Gerenciamento Controlador de Fator de Potência Self Control ÍNDICE 1.0 INTRODUÇÃO 4 1.1 Aplicações 4 2.0 CARACTERÍSTICAS 4 2.1 Compatibilidade 4 3.0 INSTALAÇÃO 4 4.0 INICIALIZAÇÃO

Leia mais

Testando a Comunicação e Transferindo o Código de Máquina

Testando a Comunicação e Transferindo o Código de Máquina Testando a Comunicação e Transferindo o Código de Máquina Todas as etapas do fluxograma da figura x.x foram realizada no PC. O código de máquina foi criado no PC na pasta Resource. O arquivo a ser transferido

Leia mais

Visão Geral do Cliente EBICS

Visão Geral do Cliente EBICS Sterling B2B Integrator Visão Geral do Cliente EBICS Versão 5.2.4 Sterling B2B Integrator Visão Geral do Cliente EBICS Versão 5.2.4 Observe Antes de utilizar estas informações e o produto suportado por

Leia mais

Arquitetura de uma Webapp

Arquitetura de uma Webapp Arquitetura de uma Webapp Arquitetura J2EE Containers e componentes MVC: introdução Frederico Costa Guedes Pereira 2006 fredguedespereira@gmail.com Plataforma J2EE World Wide Web e a Economia da Informação

Leia mais

AUTOR(ES): LUIS WAGNER PASSINHO, ALESSANDRA CRISTINA SILVA, DANIEL ALVES DA ROCHA

AUTOR(ES): LUIS WAGNER PASSINHO, ALESSANDRA CRISTINA SILVA, DANIEL ALVES DA ROCHA TÍTULO: AUTOMAÇÃO RESIDENCIAL PELA INTERNET COM PHP E ARDUINO CATEGORIA: CONCLUÍDO ÁREA: CIÊNCIAS EXATAS E DA TERRA SUBÁREA: COMPUTAÇÃO E INFORMÁTICA INSTITUIÇÃO: FACULDADE ANHANGUERA DE CAMPINAS AUTOR(ES):

Leia mais

FRWTC800 - Desenvolvimento Web com Ruby on Rails

FRWTC800 - Desenvolvimento Web com Ruby on Rails FRWTC800 - Desenvolvimento Web com Ruby on Rails SOBRE A FRAMEWORK A Framework (www.frwtc.com) atua diretamente com profissionais do segmento de tecnologia em busca de capacitação, atualização e certificação,

Leia mais

Prime IHC. Intelligent Home Control. Automação residencial com estilo, segurança e economia de energia.

Prime IHC. Intelligent Home Control. Automação residencial com estilo, segurança e economia de energia. Intelligent Home Control com estilo, segurança e economia de energia. Projetos inteligentes exigem um sistema de automação completo. Funcionamento do sistema. O funciona com entradas e saídas, controlando

Leia mais

DESCRIÇÃO DO TRABALHO - VERSÃO DE 29/04/2006 15:00.

DESCRIÇÃO DO TRABALHO - VERSÃO DE 29/04/2006 15:00. DESCRIÇÃO DO TRABALHO - VERSÃO DE 29/04/2006 15:00. Descrição Geral do trabalho. O objetivo do trabalho será o desenvolvimento de um programa Cliente/Servidor para o envio e recebimento de arquivos. Os

Leia mais