Вы находитесь на странице: 1из 57

PONTIFCIA UNIVERSIDADE CATLICA DO PARAN CENTRO DE CINCIAS EXATAS E DE TECNOLOGIA ENGENHARIA DE COMPUTAO

PROJETO CHUVEIRO INTELIGENTE

CURITIBA 2009

CARLOS ROBERTO REMENCHE JUNIOR DENIS REIMCHE OTT RAFAEL ANTNIO GROSKO

PROJETO CHUVEIRO INTELIGENTE

Este projeto ser apresentado s disciplinas o Curso de Engenharia de Computao do Centro de Cincias Exatas e de Tecnologia da Pontifcia Universidade Catlica do Paran, como parte integrante da nota do primeiro semestre. A finalidade deste projeto integrao das diversas disciplinas do curso. Professores orientadores: Gil Jess e Afonso Ferreira Miguel. Marcos

CURITIBA 2009

ndice

1 - INTRODUO...................................................................................................................................4 1.1- JUSTIFICATIVAS............................................................................................................................5 1.2 - METODOLOGIA.....................................................................................................................6 2 RESPONSABILIDADES............................................................................................................7 3 OBJETIVOS.............................................................................................................................8 3.1 NO EST INCLUSO NO ESCOPO DO PROJETO.................................................................9 4 - EQUIPE DE DESENVOLVIMENTO............................................................................................10 5 - O PROJETO............................................................................................................................11 5.1 CDIGO-FONTE.........................................................................................................................14 5.2 POSTAGENS NO WEBSITE.......................................................................................................32 6 CONCLUSO.................................................................................................................................57

1. INTRODUO A matria projeto integrado do curso de Engenharia de Computao ministrada pelo professor Afonso Ferreira Miguel tem o intuito de preparar e aperfeioar a mentalidade do engenheiro que no se voltar somente pesquisa de novas tecnologias, mas sim o desenvolvimento de novas solues para algumas adversidades, tentando por a natureza a servio do homem, podendo explorar tudo que ela pode oferecer. O grupo atual foi formado para o estudo e Projeto Integrado do terceiro perodo do curso formado pelos seguintes integrantes: Carlos Roberto Remenche Junior, Denis Reimche Ott, Rafael Antnio Grosko. A idia do projeto surgiu quando o integrante Denis Reimche Ott, durante especulaes ldicas de como poderias transformar o celular como um controle universal, falou-se de ligar o chuveiro pelo celular e controlar a temperatura e vazo pelo mesmo, idia acatada com entusiasmo e otimismo pelos demais. Ficou claro que havia um problema, a falta de controle que temos sobre o chuveiro, que poderia e deveria ser sanada.

1.1. JUSTIFICATIVAS O projeto Chuveiro Inteligente foi desenvolvido para otimizar um costume comum de todos, o banho dirio. Mudando o modo que o usurio se relaciona com seu chuveiro. Nosso projeto visa facilitar o banho tornando-o mais simplificado, retirando vlvulas e controles manuais difceis de serem ajustados transportando-os para um controle digital, computadorizando-os, responsabilizando o computador pela temperatura e vazo desejada. Pesquisando o estado da arte, alguns produtos interessantes vm alguns que apenas se preocupam com a parte esttica e no tem como objetivo de criar um banho mais inteligente. Como se no fosse o custo bsico de um chuveiro deste tipo muito elevado, passando facilmente de R$ 1.000,00 (mil reais) sendo somente acessvel para a classe alta. O Chuveiro Inteligente tem como objetivo criar uma soluo simples, barata, e com o objetivo de ampliar o controle e utilizao do chuveiro. O sistema utilizado consiste em um chuveiro eletrnico com potencimetro regulvel que acionado por meio de um motor de passo. A vazo controlada por duas vlvulas solenides. A leitura da temperatura da gua feita em dois pontos, e com essa temperatura o banho ajustado automaticamente. A interface com o computador por se da por meio de uma porta USB onde um programa em linguagem C++ controla todo o sistema.

1.2 - METODOLOGIA O mtodo usado para desenvolver o Chuveiro Inteligente consistiu em uma pesquisa sobre os mdulos a serem implementados no circuito, como seria a melhor maneira de controlar a gua e temperatura, um Web Site foi colocado no ar com informaes do projeto e no decorrer do mesmo foi atualizado semanalmente com histrias, diagramas, fotos, curiosidades e tudo que o envolve. O site do projeto

www.chuveirointeligente.blogspot.com. Nas primeiras semanas foi comprado o material para a montagem do circuito eltrico, em primeiro momento em proto-board, para aprender e verificar o funcionamento e verificar a montagem adequada do circuito para evitar erros como curto circuitos. Nas seguintes semanas, com todo o circuito montado em proto-board, foi dado inicio ao desenho dos circuitos, para serem impressos nas placas de maneira mais segura e profissional, usando o programa Eagle, assim como tambm foi iniciado os estudos da linguagem a ser utilizada para a programao. Com os desenhos das placas prontos comeou a fabricao das placas de circuito impresso. Com as placas corrodas e com as trilhas perfeitas, foram colocados os componentes soldando-os nas placas. Com os circuitos prontos e testados para evitar curtos entre as trilhas, testamos o funcionamento de todo o circuito junto com todos os componentes adicionais (sensores, vlvulas solenides, servo motores). Com os circuitos prontos, a programao foi o foco central do trabalho, s restava montagem da estrutura, que foi iniciada na semana seguinte. Com a aquisio dos materiais necessrios, foi montada a estrutura e realizados alguns testes para verificar o funcionamento de tudo produzido at o momento, descobrimos que o peso do chuveiro com a gua seria pesado demais para a estrutura, foram feitas diversas modificaes para torn-lo mais forte. Com ela pronta foi projetada a parte hidrulica, que logo foi concluda com a aquisio dos materiais necessrios e montagem, colocando as vlvulas solenide. Tivemos que substituir uma vlvula solenide por uma bomba de combustvel de carro, para aumentar a vazo para suprir a quantidade de gua que o chuveiro necessita. Aps a concluso dessas etapas ainda restava o programa, que j estava em fase final, faltando alguns ajustes e testes. No programa, foram enfrentados muitos problemas, tanto pelo estudo da linguagem, que o C++ em Windows Form usando o Visual Studio, quanto pelo cdigo utilizado. Com todos os ajustes feitos, os problemas foram resolvidos e o programa ficou pronto.

Concluindo assim a montagem e implementao do projeto Chuveiro Inteligente.

2 RESPONSABILIDADES

Para a criao e desenvolvimento do projeto foi necessria a dedicao de todos os integrantes do grupo, assim como dos professores. Cada integrante do projeto teve que realizar sua parte com vontade e comprometimento para que o projeto cria-se forma e fosse assim concludo. A PUC, com estrutura laboratorial e funcionrios dedicados foram parte fundamental para o desenvolvimento e amadurecimento contnuo do mesmo.

3 OBJETIVOS O projeto Chuveiro Inteligente teve como objetivo, o aprendizado sobre pesquisas, documentaes, cronogramas, apresentaes, ou seja, tudo que envolve um adequado gerenciamento de projeto, assim como utilizar conhecimentos recebidos em sala de aula j em aplicaes mais prximas da engenharia propriamente dita, como a utilizao dos conceitos de circuitos eltricos e sistemas digitais para uma interpretao real das tecnologias empregadas no projeto. Como circuitos eltricos e sistemas digitais que foram exaustivamente revisadas e aplicadas durante o mesmo. Sem relevar a oportunidade de poder desenvolver algo que aumente o conforto do usurio durante o banho. Haveria economia de gua e energia, se o usurio consegui-se atingir a temperatura de banho que ele julga-se adequada mais rpido, dispensado aquele clssico ritual de calibrao da temperatura e quantidade todas vez antes do banho, que em alguns casos relativamente demorada, ou seja, fosse capaz de automaticamente regular temperatura com base nas leituras de

temperaturas previamente escolhidas pelo usurio.

3.1 NO EST INCLUSO NO ESCOPO DO PROJETO

Poderiam ser includas diversas funcionalidades no nosso projeto, como um contador de quantidade de gua vazante, de energia utilizada, um monitor touch-screen de pequena escala para ser usado como interface usurio-mquina, entre vrios outros, sem dvida um projeto muito frtil para quem quer proporcionar conforto e controle total durante o banho. No foram implementados neste projeto, pois dependeria de muito mais tempo, pois um semestre foi insuficiente nos condenando a uma superficialidade do todo que poderia ser, estudo de novas possibilidades e custos por parte do grupo.

4 - EQUIPE DE DESENVOLVIMENTO A equipe de desenvolvimento contou com Carlos Roberto Remenche Junior, Denis Reimche Ott, Rafael Antnio Grosko.Pontes que foram responsveis por realizar determinadas tarefas especficas. As tarefas foram distribudas da seguinte maneira:

Carlos Roberto Remenche Junior: -Estruturao e atualizao do blog -Documentao -Testes finais

Denis Reimche Ott -Montagem do circuito em Proto-Board -Documentao -Auxlio na programao -Montagem e manuteno das placas e cabos Rafael Antonio Grosko -Montagem do circuito em Proto-Board -Programao -Montagem dos circuitos -Auxlio na montagem da estrutura -Testes finais

5 - O PROJETO

O projeto foi constitudo de trs fases: HARDWARE, ESTRUTURA HIDRULICA, PROGRAMAO.

A parte do Hardware foram utilizadas para implementar a comunicao e controle via software entre o computador e as vlvulas, sensor e motor. Foi utilizado primariamente, para realizar a comunicao computador<->mdulos, o conversor RS 232-TTL que utiliza uma entrada serial pra comunicao com o computador. Para o controle das vlvulas, sensor e motor servo foram utilizados mdulos especficos (M2 e M1). Todos mdulos foram construdos atravs dos esquemticos disponibilizados pelo professor Afonso. Foram ainda utilizados etapas de potncia para garantir a correta voltagem no sistema e um transformador de 110V para 15V que serve como fonte de alimentao eltrica para o sistema. As placas e a fonte foram acomodados em uma caixa de plstico prpria para circuitos para melhor organizao, transporte e apresentao do sistema. A estrutura hidrulica consiste em uma placa de madeira(MDF) em formato de U que serve como base principal para o projeto. Outra placa de madeira, retirada da placa inicial, foi presa base, em posio vertical, para dar suporte ao chuveiro. Toda a parte hidrulica, vlvulas de controle, caixa com as placas de circuito foi anexada essa estrutura.

Como ilustra a foto, foi utilizada uma tubulao padro de PVC em conjunto com mangueiras de silicone para melhor visualizao do movimento da gua. O sistema recebe a alimentao de gua por meio de uma torneira normal com vazo suficiente para ligar o

chuveiro. Por meio de uma mangueira essa gua chega a parte hidrulica do projeto, em uma conexo em formato T a gua dvida em duas tubulaes, uma para cada vlvula, depois de passar pelas vlvulas a gua chega a outra conexo em T que une as duas tubulaes. Essa ltima tubulao sobe pela placa vertical da base, chegando ao topo da placa foi colocada uma curva de 90 (joelho) de PVC para o cano ficar na posio horizontal e servir de fixao para o chuveiro eletrnico. O chuveiro utilizado foi um chuveiro eletrnico da marca Zagonel, que utiliza um controle de temperatura manual por meio de um potencimetro, este utiliza uma fiao para se ligar ao chuveiro, podendo assim ser fixado em qualquer posio prxima ao chuveiro. Por ter essa facilidade de mobilidade do potencimetro este chuveiro foi escolhido para o projeto. Duas vlvulas solenides (ou eletro-vlvulas) foram utilizadas para o controle da vazo da gua. Essas vlvulas operam de modo simples, elas em seu interior contm um eletro-im fixo, um pedao de metal preso a uma parte mvel que corre por dentro de um pequeno vo dentro da vlvula. Se a vlvula alimentada com a voltagem correta, esse eletro-im entra em ao atraindo o pedao de metal, puxando assim juntamente a parte plstica liberando assim passagem de gua. Se no existir a alimentao eltrica, o pedao de metal no atrado e por meio de uma mola, a vlvula permanece fechada. As vlvulas foram fixadas na tubulao, servindo esta como suporte, de forma que as vlvulas poderiam ser utilizadas em conjunto ou separadas. A tubulao antes e depois de cada vlvula foi substituda por pedaos de mangueira de silicone transparente para facilitar a conexo com as vlvulas e visualizao da passagem de gua. A primeira vlvula ,de material metlico, foi retirada de um sistema de ar de um caminho. Utiliza 12V para operar. Pela tubulao ser de PVC e a vlvula ser metlica houve certa dificuldade em adaptar ela ao conjunto. A segunda vlvula, de plstico e suporte em metal, foi retirada de uma mquina de lavar. Ela opera com 110V, necessitando assim de uma alimentao direta da rede eltrica. Para control-la foi utilizado um rel que acionado com 12V, podendo este ser integrado facilmente aos circuitos previamente discutidos. Para o controle de temperatura foi utilizado o potencimetro original do chuveiro, este foi ligado um motor servo e ambos foram presos com madeira base principal. O potencimetro consiste em uma pequena caixa, ligado ao chuveiro por um cabo eltrico, com um dispositivo que ao ser girado modifica sua resistncia deixando passar mais ou menos corrente, ou seja, ao ser girado modifica a potncia que o chuveiro tem para aquecer a gua, mudando assim a temperatura da gua que o chuveiro fornece. Para controlar este dispositivo foi utilizado um motor servo. O motor usado foi obtido do sistema de controle de polarizao de uma antena parablica. Este motor tem como caracterstica o controle preciso de seus movimentos, ideal para controlar um pequeno dispositivo como o

potencimetro. Ele funciona com um controle vindo do mdulo e gira de acordo com o comando fornecido, controlando assim o potencimetro. Para verificar a temperatura, foi utilizado um sensor acoplado ao chuveiro. Este sensor ligado ao circuito para leitura da temperatura da gua no chuveiro. Todo o controle feito via software ligado ao sistema pelo mdulo de converso RS 232-TTL discutido previamente. O computador foi ligado ao sistema por um conversor USB-Serial pela comodidade que existe em usar a porta USB. O software foi desenvolvido em plataforma Windows, utilizando o programa Visual Studio, ambos da empresa Microsoft. A linguagem de programao utilizada foi o C++. Foi utilizado ainda o Windows Form para facilitar o gerao da parte grfica do programa. Este programa ser melhor discutido em outro item.

5.1 CDIGO-FONTE

form1.h

#include <windows.h> #pragma once

namespace ChuveiroInteligente {

using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing;

/// <summary> /// Summary for Form1 /// /// WARNING: If you change the name of this class, you will need to change the /// tool /// /// /// associated with all .resx files this class depends on. Otherwise, the designers will not be able to interact properly with localized resources associated with this form. 'Resource File Name' property for the managed resource compiler

/// </summary> public ref class Form1 : public System::Windows::Forms::Form { public: Form1(void) { InitializeComponent(); // //TODO: Add the constructor code here //

protected: /// <summary> /// Clean up any resources being used. /// </summary> ~Form1() { if (components) { delete components; } } private: System::Windows::Forms::Button^ button1; protected: private: System::Windows::Forms::NumericUpDown^ numericUpDown1; private: System::Windows::Forms::NumericUpDown^ numericUpDown2; private: System::Windows::Forms::Label^ label1; private: System::Windows::Forms::Label^ label2; private: System::IO::Ports::SerialPort^ serial; private: System::Windows::Forms::Timer^ timer1;

private: System::Windows::Forms::Label^ label3; private: System::Windows::Forms::Button^ button2; private: System::Windows::Forms::Button^ button3;

private: System::Windows::Forms::Button^ button4; private: System::Windows::Forms::NumericUpDown^ numericUpDown3;

private:

private: System::ComponentModel::IContainer^ components;

private: /// <summary> /// Required designer variable. /// </summary>

#pragma region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> void InitializeComponent(void) { this->components System::ComponentModel::Container()); System::ComponentModel::ComponentResourceManager^ resources = (gcnew = (gcnew

System::ComponentModel::ComponentResourceManager(Form1::typeid)); this->button1 = (gcnew System::Windows::Forms::Button()); this->numericUpDown1 System::Windows::Forms::NumericUpDown()); this->numericUpDown2 System::Windows::Forms::NumericUpDown()); this->label1 = (gcnew System::Windows::Forms::Label()); this->label2 = (gcnew System::Windows::Forms::Label()); this->serial >components)); this->timer1 = (gcnew System::Windows::Forms::Timer(this>components)); this->label3 = (gcnew System::Windows::Forms::Label()); this->button2 = (gcnew System::Windows::Forms::Button()); this->button3 = (gcnew System::Windows::Forms::Button()); this->button4 = (gcnew System::Windows::Forms::Button()); this->numericUpDown3 System::Windows::Forms::NumericUpDown()); (cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->numericUpDown1))->BeginInit(); (cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->numericUpDown2))->BeginInit(); (cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->numericUpDown3))->BeginInit(); = (gcnew = (gcnew System::IO::Ports::SerialPort(this= (gcnew = (gcnew

this->SuspendLayout(); // // button1 // resources->ApplyResources(this->button1, L"button1"); this->button1->Name = L"button1"; this->button1->UseVisualStyleBackColor = true; this->button1->Click &Form1::button1_Click); // // numericUpDown1 // resources->ApplyResources(this->numericUpDown1, L"numericUpDown1"); this->numericUpDown1->Maximum = System::Decimal(gcnew cli::array< System::Int32 >(4) {50, 0, 0, 0}); this->numericUpDown1->Minimum = System::Decimal(gcnew cli::array< System::Int32 >(4) {20, 0, 0, 0}); this->numericUpDown1->Name = L"numericUpDown1"; this->numericUpDown1->Value cli::array< System::Int32 >(4) {20, 0, 0, 0}); // // numericUpDown2 // resources->ApplyResources(this->numericUpDown2, L"numericUpDown2"); this->numericUpDown2->Maximum = System::Decimal(gcnew cli::array< System::Int32 >(4) {3, 0, 0, 0}); this->numericUpDown2->Minimum = System::Decimal(gcnew cli::array< System::Int32 >(4) {1, 0, 0, 0}); this->numericUpDown2->Name = L"numericUpDown2"; this->numericUpDown2->Value cli::array< System::Int32 >(4) {1, 0, 0, 0}); // // label1 // resources->ApplyResources(this->label1, L"label1"); = System::Decimal(gcnew = System::Decimal(gcnew += gcnew System::EventHandler(this,

this->label1->ForeColor System::Drawing::SystemColors::HotTrack; this->label1->Name = L"label1"; // // label2 // resources->ApplyResources(this->label2, L"label2"); this->label2->ForeColor System::Drawing::SystemColors::HotTrack; this->label2->Name = L"label2"; // // serial // this->serial->BaudRate = 1200; this->serial->PortName = L"COM5"; // // timer1 // this->timer1->Enabled = true; this->timer1->Interval = 600000; // // label3 // resources->ApplyResources(this->label3, L"label3"); this->label3->Name = L"label3"; // // button2 // resources->ApplyResources(this->button2, L"button2"); this->button2->Name = L"button2"; this->button2->UseVisualStyleBackColor = true; this->button2->Click &Form1::button2_Click); // // button3 // resources->ApplyResources(this->button3, L"button3"); += gcnew

System::EventHandler(this,

this->button3->Name = L"button3"; this->button3->UseVisualStyleBackColor = true; this->button3->Click &Form1::button3_Click); // // button4 // resources->ApplyResources(this->button4, L"button4"); this->button4->Name = L"button4"; this->button4->UseVisualStyleBackColor = true; this->button4->Click &Form1::button4_Click); // // numericUpDown3 // resources->ApplyResources(this->numericUpDown3, L"numericUpDown3"); this->numericUpDown3->Increment = System::Decimal(gcnew cli::array< System::Int32 >(4) {0, 0, 0, 0}); this->numericUpDown3->Name = L"numericUpDown3"; this->numericUpDown3->TabStop = false; // // Form1 // resources->ApplyResources(this, L"$this"); this->AutoScaleMode System::Windows::Forms::AutoScaleMode::Font; this->Controls->Add(this->numericUpDown3); this->Controls->Add(this->button4); this->Controls->Add(this->button3); this->Controls->Add(this->button2); this->Controls->Add(this->label3); this->Controls->Add(this->label2); this->Controls->Add(this->label1); this->Controls->Add(this->numericUpDown2); this->Controls->Add(this->numericUpDown1); this->Controls->Add(this->button1); = += gcnew System::EventHandler(this, += gcnew System::EventHandler(this,

this->ForeColor = System::Drawing::SystemColors::HotTrack; this->Name = L"Form1"; this->Opacity = 0.94; (cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->numericUpDown1))->EndInit(); (cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->numericUpDown2))->EndInit(); (cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->numericUpDown3))->EndInit(); this->ResumeLayout(false); this->PerformLayout();

} #pragma endregion private: System::Void button1_Click(System::Object^ sender,

System::EventArgs^ e) { if(serial->IsOpen == false){ serial->Open();

//funcao para leitura de lixo int cont;

//Liga o motor servo serial->WriteLine("\rcim1.pwm.T=96\r"); cont+=3; Sleep(300); serial->WriteLine("\rcim1.pwm0.on(3)\r"); cont+=3; Sleep(300);

//controla as valuvas solenoide if((numericUpDown2->Value) == 1) { serial->WriteLine("\rcim2.io2.set(1)\r"); cont+=3; Sleep(300); }

if((numericUpDown2->Value) == 2) { serial->WriteLine("\rcim2.io4.set(1)\r"); cont+=3; Sleep(300); } if((numericUpDown2->Value) == 3) { serial->WriteLine("\rcim2.io2.set(1)\r"); cont+=3; Sleep(300); serial->WriteLine("\rcim2.io4.set(1)\r"); cont+=3; Sleep(300); }

//Regula a temperatura if((numericUpDown1->Value) (numericUpDown1->Value) <= 23) { serial>WriteLine("\rcim1.pwm0.on(4)\r"); cont+=3; Sleep(300); } if((numericUpDown1->Value) (numericUpDown1->Value) <= 26) { serial>WriteLine("\rcim1.pwm0.on(5)\r"); cont+=3; Sleep(300); } if((numericUpDown1->Value) (numericUpDown1->Value) <= 30) { >= 27 && >= 24 && > 20 &&

serial>WriteLine("\rcim1.pwm0.on(6)\r"); cont+=3; Sleep(300); } if((numericUpDown1->Value) (numericUpDown1->Value) <= 33) { serial>WriteLine("\rcim1.pwm0.on(7)\r"); cont+=3; Sleep(300); } if((numericUpDown1->Value) (numericUpDown1->Value) <= 36) { serial>WriteLine("\rcim1.pwm0.on(8)\r"); cont+=3; Sleep(300); } if((numericUpDown1->Value) (numericUpDown1->Value) <= 40) { serial>WriteLine("\rcim1.pwm0.on(9)\r"); cont+=3; Sleep(300); } if((numericUpDown1->Value) (numericUpDown1->Value) <= 43) { serial>WriteLine("\rcim1.pwm0.on(10)\r"); cont+=3; Sleep(300); } >= 41 && >= 37 && >= 34 && >= 31 &&

if((numericUpDown1->Value) (numericUpDown1->Value) <= 46) { serial>WriteLine("\rcim1.pwm0.on(11)\r"); cont+=3; Sleep(300); }

>=

44

&&

if((numericUpDown1->Value) >= 47) { serial>WriteLine("\rcim1.pwm0.on(12)\r"); cont+=3; Sleep(300); }

MessageBox::Show("");

//termina a funcao de leitura de lixo

for(int i=0; i<cont; i++) { System::String^ >ReadLine(); // } Sleep(200); lixo = serial-

MessageBox::Show("O est ligado.");

Chuveiro

Inteligente

} else { MessageBox::Show("Porta com problema."); } }

private: System::Void button2_Click(System::Object^ e) { if(serial->IsOpen == true) { //Varivel conta int cont;

sender, System::EventArgs^

Sleep(300); serial->WriteLine("\rcim2.io2.set(0)\r"); cont+=3; Sleep(300); serial->WriteLine("\rcim2.io4.set(0)\r"); cont+=3; Sleep(300); serial->WriteLine("\rcim1.pwm0.on(3)\r"); cont+=3; Sleep(300);

//termina a funcao de leitura de lixo for(int i=0; i<cont; i++) { System::String^ >ReadLine(); } lixo = serial-

serial->Close(); } else { MessageBox::Show("Porta j est fechada."); } }

private: System::Void button3_Click(System::Object^ e) { if(serial->IsOpen == true) {

sender, System::EventArgs^

//Le o sensor de temperatura serial->Write("\rcim2.io1.getadc()\r"); Sleep(100); System::String^ lixo= serial->ReadLine(); Sleep(100); System::String^ sensor = serial->ReadLine(); int valor = System::Int32::Parse(sensor); int valorSensor = valor / 2.048; (numericUpDown3->Value) = valorSensor;

} else { MessageBox::Show("O chuveiro est desligado."); } } private: System::Void button4_Click(System::Object^ e) { if(serial->IsOpen == true) { //Le e atualiza a temperatura do banho serial->Write("cim2.io1.getadc()\r"); Sleep(200); System::String^ lixo= serial->ReadLine(); Sleep(200); System::String^ sensor2 = serial->ReadLine(); int valor2 = System::Int32::Parse(sensor2); int valorSensor2= valor2 / 2.048; (numericUpDown3->Value) = valorSensor2; sender, System::EventArgs^

int cont; //controla as valuvas selenoide if((numericUpDown2->Value) == 1) { serial->WriteLine("\rcim2.io2.set(1)\r"); cont+=3;

Sleep(300); serial->WriteLine("\rcim2.io4.set(0)\r"); cont+=3; Sleep(300); } if((numericUpDown2->Value) ==2) { serial->WriteLine("\rcim2.io4.set(1)\r"); cont+=3; Sleep(300); serial->WriteLine("\rcim2.io2.set(0)\r"); cont+=3; Sleep(300); } if((numericUpDown2->Value) == 3) { serial->WriteLine("\rcim2.io2.set(1)\r"); cont+=3; Sleep(300); serial->WriteLine("\rcim2.io4.set(1)\r"); cont+=3; Sleep(300); }

//Regula a temperatura if((numericUpDown1->Value) <= 20) { serial->WriteLine("\rcim1.pwm0.on(3)\r"); cont+=3; Sleep(300); } if((numericUpDown1->Value) (numericUpDown1->Value) <= 23) { serial>WriteLine("\rcim1.pwm0.on(4)\r"); cont+=3; >= 20 &&

Sleep(300); } if((numericUpDown1->Value) (numericUpDown1->Value) <= 26) { serial>WriteLine("\rcim1.pwm0.on(5)\r"); cont+=3; Sleep(300); } if((numericUpDown1->Value) (numericUpDown1->Value) <= 30) { serial>WriteLine("\rcim1.pwm0.on(6)\r"); cont+=3; Sleep(300); } if((numericUpDown1->Value) (numericUpDown1->Value) <= 33) { serial>WriteLine("\rcim1.pwm0.on(7)\r"); cont+=3; Sleep(300); } if((numericUpDown1->Value) (numericUpDown1->Value) <= 36) { serial>WriteLine("\rcim1.pwm0.on(8)\r"); cont+=3; Sleep(300); } if((numericUpDown1->Value) (numericUpDown1->Value) <= 40) { >= 37 && >= 34 && >= 31 && >= 27 && >= 24 &&

serial>WriteLine("\rcim1.pwm0.on(9)\r"); cont+=3; Sleep(300); } if((numericUpDown1->Value) (numericUpDown1->Value) <= 43) { serial>WriteLine("\rcim1.pwm0.on(10)\r"); cont+=3; Sleep(300); } if((numericUpDown1->Value) (numericUpDown1->Value) <= 46) { serial>WriteLine("\rcim1.pwm0.on(11)\r"); cont+=3; Sleep(300); } if((numericUpDown1->Value) >= 47) { serial>WriteLine("\rcim1.pwm0.on(12)\r"); cont+=3; Sleep(300); } >= 44 && >= 41 &&

//

MessageBox::Show("");

//termina a funcao de leitura de lixo for(int i=0; i<cont; i++) { System::String^ >ReadLine(); // Sleep(200); lixo = serial-

MessageBox::Show("O Chuveiro Inteligente foi atualizado."); } else { MessageBox::Show("O chuveiro est desligado."); } } }; }

AssemblyInfo.cpp

#include "stdafx.h"

using namespace System; using namespace System::Reflection; using namespace System::Runtime::CompilerServices; using namespace System::Runtime::InteropServices; using namespace System::Security::Permissions;

// // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. // [assembly:AssemblyTitleAttribute("ChuveiroInteligente")]; [assembly:AssemblyDescriptionAttribute("")]; [assembly:AssemblyConfigurationAttribute("")]; [assembly:AssemblyCompanyAttribute("Grosko")]; [assembly:AssemblyProductAttribute("ChuveiroInteligente")]; [assembly:AssemblyCopyrightAttribute("Copyright (c) Grosko 2009")]; [assembly:AssemblyTrademarkAttribute("")]; [assembly:AssemblyCultureAttribute("")];

// // Version information for an assembly consists of the following four values: // // // // // // // You can specify all the value or you can default the Revision and Build Numbers // by using the '*' as shown below: Major Version Minor Version Build Number Revision

[assembly:AssemblyVersionAttribute("1.0.*")];

[assembly:ComVisible(false)];

[assembly:CLSCompliantAttribute(true)];

[assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)];

ChuveiroInteligente.cpp

// ChuveiroInteligente.cpp : main project file.

#include "stdafx.h" #include "Form1.h"

using namespace ChuveiroInteligente;

[STAThreadAttribute] int main(array<System::String ^> ^args) { // Enabling Windows XP visual effects before any controls are created Application::EnableVisualStyles();

Application::SetCompatibleTextRenderingDefault(false);

// Create the main window and run it Application::Run(gcnew Form1()); return 0; }

5.2 POSTAGENS NO WEBSITE

SEGUNDA-FEIRA, 22 DE JUNHO DE 2009

22- 06 "Quanto mais amarga a batalha, mais doce a vitria!"

Documentao est na etapa final, todo o grupo discute constantemente sobre as possveis melhorias que poderiam ter ocorrido, possveis vantagens do projeto que no foram suficiente exploradas. um momento de amadurecimento muito propcio para todos, afinal, olhar para trs e ver o quanto crescemos! Ver que somos capazes de retribuir a sociedade tudo que ela nos deu com nosso trabalho! Usufluindo de nosso esforo e um pouco de talento.
POSTADO POR CHUVEIRO INTELIGENTE S 16:02 0 COMENTRIOS

DOMINGO, 14 DE JUNHO DE 2009

12/06 "Misso dada misso comprida"

Nesse final de semana prolongado, por causa do feriado, todos juntaram todas as esperanas e foras em terminar a estrutura! Ficou faltando 2 toquinho de madeira para prender o servo motor(que ir controlar a temperatura) e aquela clssica limpada para causar boa impresso na apresentao. A documentao caminhou a largos passos, faltando somente algumas normas da ABNT para revisar e a releitura de todos os integrantes do grupo.
POSTADO POR CHUVEIRO INTELIGENTE S 07:16 0 COMENTRIOS

DOMINGO, 7 DE JUNHO DE 2009

03 - 06 "Nada dignifica mais o homem que o trabalho! Principalmente depois de feito."

Com o programa finalmente pronto, com todas as funes funcionando, comeamos a concentrar foras nos acabamentos finais(caixa para os circuitos, ajustes finos e testes) e documentao.
POSTADO POR CHUVEIRO INTELIGENTE S 17:43 0 COMENTRIOS

QUARTA-FEIRA, 27 DE M AIO DE 2009

23 - 05 "Seria a funo do engenheiro vencer o equilbrio?"

Descobriu-se o problema! Que fazia o circuito parar de funcionar sem motivos aparente, um curto acontecia no cabo conector e as placas. Foi refeita a ponteira do cabo, e com isso esperamos resolver definitivamente esse problema. Novamente testado o programa, o circuito continua sem responder. A base que ser usada e os encanamentos esto quase prontros.

POSTADO POR CHUVEIRO INTELIGENTE S 08:34 0 COMENTRIOS

22 - 05 "O equlibrio continua, conserta-se uma coisa e a outra quebra sozinha!"

Com os novos PIC, foram novamente programados.O programa continua sem localizar a porta COM corretamente, como se o circuito no reconhece o computador e vice-versa!
POSTADO POR CHUVEIRO INTELIGENTE S 08:22 0 COMENTRIOS

DOMINGO, 24 DE MAIO DE 2009

20 - 05 "Nada que bom vem de graa! "

Conseguimos finalmente fazer o conversor serial funcionar,indentificamos o problema como "mau instalao do driver" e a falta de um outro cabo que "desenvertia" o sinal serial. Testamos o

programa porm continua sem soluo, e os pic ficaram com inveja, pois s o cabo serial estava recebendo ateno e resolveram no funcionar mais!
POSTADO POR CHUVEIRO INTELIGENTE S 16:57 0 COMENTRIOS

DOMINGO, 17 DE MAIO DE 2009

14-05 "Quando vejo a faixa de chegada, percebo que mais um esforo ainda necessrio!"

Foram testadas todas as placas com o programa, o qual ir controlar todo o sistema, porm, no foi obtido sucesso, afinal, o programa est com um erro, para detectar a porta de coneco USB, pois o notebook usado para programar no possui o conector serial usado como mtodo de comunicao "circuito-computador"(Porm quando testado nos computadores fornecidos pela PUC que possuem tal conector funcionou como esperado), e na parte de leitura dos sensores de temperatura(Que aparentemente demonstra ser mais um erro da prpia pea do que do software).
DOMINGO, 10 DE MAIO DE 2009

08 - 05 "Comeando a ver a curva da chegada"

Comeamos a estrutura pra o chuveiro, o bruto pelos j, e tambm demos incio a idealizao de como posicionar as vlvulas, chuveiro e circuitos. O programa recebeu diversas modificaes com o intuito de ter maior controle sobre toda a estrutura

POSTADO POR CHUVEIRO INTELIGENTE S 16:50 0 COMENTRIOS

SB ADO, 2 DE MAIO DE 2009

28/04 "Curto e grosso"


Foi finalizada a placa da etapa de potncia da vlvula selonide de 127V, e ja compramos o material para a estrutura de apresentao do chuveiro.
POSTADO POR CHUVEIRO INTELIGENTE S 15:03 0 COMENTRIOS

SEXTA-FEIR A, 24 DE ABRIL DE 2009

20/04 - "Pensando como um chuveiro..."

Iniciou-se a programao do chuveiro, em C++, com interface amigvel. Estamos enfrentando problemas com o sensor de temperatura do chuveiro, as equaes prontas no satisfazem o problema, nos forando a contruir uma amostragem de dados para construir a equao a partir de um grfico.
POSTADO POR CHUVEIRO INTELIGENTE S 16:54 0 COMENTRIOS

SEXTA-FEIR A, 17 DE ABRIL DE 2009

14 - 04 "Nada como um dia aps o outro"

Adaptamos os sensores de temperatura, conseguimos testar as placas dos circuitos, com exito. A placa do mdulo M2 teve o pic queimado por motivos ainda no conhecidos e um dos sensores adaptados no est funcionando corretamente por motivos de impercia para manipular sua adaptao.
POSTADO POR CHUVEIRO INTELIGENTE S 17:07 0 COMENTRIOS

QUINTA-FEIRA, 9 DE ABRIL DE 2009

06 - 04 "O deus da persistncia nos agraciou por nossa intensa devoo!"

Finalmente o esforo foi recompensado! Desta vez obtivemos sucesso com a corroso das placas e a solda de todos os componentes na mesma. Porm, infelizmente, no houve tempo suciente para todos os testes necessrios do material produzido, pois a confeco das placas foi finalizada quase que no final do dia!

POSTADO POR CHUVEIRO INTELIGENTE S 19:31 0 COMENTRIOS

SEXTA-FEIR A, 3 DE ABRIL DE 2009

03 - 04 "S no dicionrio que a palavra sucesso vem antes que trabalho - Einstein"

Tentamos novamente produzir as plaquinhas, mas novamente no conseguimos realizar os objetivos, dessa vez porque fizemosu m espelhamento da imagem que no era necessrio, fazendo o circuito ficar invertido. Desta vez no houve aproveitamento decorativo e foi tudo para o lixo!
POSTADO POR CHUVEIRO INTELIGENTE S 20:11 0 COMENTRIOS

02 - 04 "Pondo os buracos nos eixos"

Nessa quinta tentamos corroer algumas placas para ja deixar finalizado algumas etapas, porem no fomos felizes nessa empreitada, pois ao converter a imagem do circuito EAGLE em pdf, perdemos algumas precises, principalmente nas 8 perninhas do CI. No havendo mais como remediar a situao, acabou-se por deixar como decorativo esse resultado! Conseguimos realizar as adaptaes de isolamento no sensor de temperatura e ja foi comprado o chuveiro para podermos realizar as necessrias adaptaes.

26-03 "Aterrando idias"

Conseguimos finalmente testar a vlvula selonide, estava sem defeito, porm, sem responder s instrues do hyperterminal. Enquanto testvamos a vlvula o mdulo M2 deu alguns problemas, e aps revisar todo o circuito, ficou claro que s no estava aterrado!E, a partir disso, a vlvula solenide passou a funcionar. Houve a solda da porta de comunicao serial.

POSTADO POR CHUVEIRO INTELIGENTE S 16:24 0 COMENTRIOS

25/03 "Indiana Comp em Busca do Motor de Passo Perdido"

Conseguimos dar incio montagem do mdulo M1, infelizmente no conseguimos testar o motor de passo, que foi encomendado para ser usado na etapa de potncia que alimentar vlvula solenide. Conseguimos incrementar ao mdulo M2 alguns sensores de temperatura que j foram testados com sucesso!
POSTADO POR CHUVEIRO INTELIGENTE S 15:58 0 COMENTRIOS

QUARTA-FEIRA, 25 DE M ARO DE 2009

20/04 "renaming"

Descoberto que o problema do mdulo M2 era o *.rename(), comeou uma seo de testes, e fomos muito felizes com a situao, obtendo os resultados almejados. O integrante Tiago conseguiu uma vlvula solenide, que foi testada, aparte do mdulo M2 pois ela consumia muita energia, necessitando acrescentar uma etapa de potncia ao mdulo M2.
POSTADO POR CHUVEIRO INTELIGENTE S 10:43 0 COMENTRIOS

19/04 "Por falta de 1, agora temos 2"

Nesse dia, com cabos em mos, comeamos a testar o mdulo RS232-TTL porm no houve muito exito, pois no estava aterrado, capacitor com funcionamento improdutivo. O mdulo M2 continua sem funcionar por motivo desconhecido.

POSTADO POR CHUVEIRO INTELIGENTE S 10:38 0 COMENTRIOS

"Engatinhando" 18/03

Nas primeiras semanas, aps definirmos como certo que o tema do projeto seria o Chuveiro Inteligente, demos "incio as coisas primeiras"e iniciamos a construo e experimentao do mdulo RS 232-TTL que servir como porta de comunicao do computador e o Chuveiro Inteligente. Demos incio a montagem em protoboard do mdulo M2, mas nenhum dos equipamentos montados puderam ser testados por falta de cabo serial e vlvula solenide.
POSTADO POR CHUVEIRO INTELIGENTE S 10:16 0 COMENTRIOS

Descrio Inicial
Chuveiro Inteligente Esse blog foi criado com o intuito de divulgar as caractersticas, problemas, solues e novidades mais recentes do projeto integrado ministrado pelo professor Afonso Ferrei Miguel, professor de Resolues de Problemas de Engenharia. Como parte integrante de avaliao e de desenvolvimento de conceitos e mtododos que sero continuamente usados para o aprimoramento do nosso primeiro grande problema acadmico, o Chuveiro Inteligente. O projeto ser desenvolvidopor : Carlos Roberto Remenche Junior. Denis Reimche Ott Rafael Antonio Grosko

6 CONCLUSO

Esse foi um projeto muito frtil. Digo frtil porque toda a dedicao que foi investida no trabalho, trouxe frutos de valorosos aprendizados de hidrulica, eletrnica, programao, maquetaria e organizao para desenvolver grandes projetos. A oportunidade de desenvolver essa idia, embora precisssemos de mais tempo para conseguir aprimorar todos os conceitos que a envolvem de maneira mais aprofundada e otimizada, foi gratificante e proporcionou um amadurecimento dos integrantes do grupo alm do esperado. Algumas caractersticas do nosso projeto poderiam ser melhor implementadas, se houvesse mais tempo para tal. Um bom exemplo seria o maior quantidade de nveis de vazo, programamos somente 3 nveis, seria algo como pouco, mdio e bastante. Seria mais interessante ter 10 nveis, traria maior conforto a escolhas de vazo. Outro ponto que poderia ser otimizado seria um controle e um mtodo para aquecer a gua at a temperatura desejada mais rpida, desperdiaria menos gua enquanto espera-se a transio da escolha. Todo o grupo espera que se algum resolva dar continuidade ao nosso projeto, que comece focando formas mais inteligentes de disposio das peas, a fim de economizar espao. Pesquise e manuseie um catlogo de peas hidrulicas, para adquirir valorizada familiaridade com o mesmo. Isso poupa tempo, ajuda a enxergar solues mais eficazes de encanamento e a economizar no comprando sobressalentes. Ressalto sobre a importncia das peas hidrulicas, pois foi a dificuldade principal do grupo, como todos eram da mesma rea, ningum tinha a familiaridade necessria com a rea, e isso trouxe dificuldades imediatas como um todo. um projeto extremamente interessante, de uso cotidiano, que traria perceptveis melhorias para as pessoas de um modo geral. Foi uma experincia enobrecedora ver o quanto de trabalho est por fazer para melhorar as condies da nossa sociedade, e esse foi s um deles.

Вам также может понравиться