sábado, 15 de novembro de 2014

O Protótipo Finalizado - vídeo

  A seguir um vídeo explicado mostrando o protótipo concluído. Nele é possível ver o sistema da cisterna e da cortina automatizada. Não é mostrado no vídeo, mas o controle da iluminação é feito por 2 sensores foto-resistivos, que verificam a luz interna e externa da residência, para abrir ou fechar a cortina e acender a iluminação do interior. 






A apresentação

   Finalmente chegou a apresentação, felizmente ocorreu tudo certo.

   Abaixo algumas fotos tiradas no dia.













O programa do PIC

   A programação do PIC foi realizada na linguagem C, abaixo você pode conferir o programa completo.

C:\Users\Tiago\Desktop\trabalho_final\14112014_com_analogica.c
//***************************************************************************//
//** Alarme Casa inteligente **//
//** **//
//** Autor: Danilo / David / Juliano / Murilo / Tiago **//
//***************************************************************************//
#include <16f877.h>
#device adc=10
#use delay (clock=4000000)
#fuses HS,NOWDT,PUT
#include <LCD_tiago.c>
// **************************** ENTRADA ***************************************
#define foto_ext pin_A1
#define foto_casa pin_A0
#define btn_emergencia pin_D1
#define btn_liga_luz pin_D0
#define sisterna_minimo pin_D5
#define cx_agua_minimo pin_D6
#define cx_agua_maximo pin_D7
//*****************************************************************************
//***************************** SAIDA *****************************************
#define led_1 pin_D4
#define led_2 pin_D5
#define led_3 pin_D6
#define led_4 pin_D7
#define janela pin_C0
#define cx_sisterna pin_C1
#define cx_rua pin_c2
#define buzzer pin_C3
//*****************************************************************************
int t;
//int16 leitura;
//int16 leitura1;
int comando_janela(){
long int x; // definição variavel local
output_high(janela);
output_high(led_1);
output_high(led_2);
output_high(led_3);
output_high(led_4);
if((input(pin_b0))==0) output_high(led_1);
lcd_pos_xy(1,1);
printf (lcd_escreve,"Comando ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"janela ");
for(x=0;x<2000;x++)
{
if (!input(cx_agua_maximo)) output_low(cx_sisterna);
if (!input(cx_agua_maximo)) output_low(cx_rua);
delay_ms(1);
}
output_low(janela);
lcd_pos_xy(1,1);
printf (lcd_escreve,"USF ITATIBA 2014");
lcd_pos_xy(1,2);
printf (lcd_escreve,"CASA INTELIGENTE ");
for(x=0;x<2000;x++)
{
if (!input(cx_agua_maximo)) output_low(cx_sisterna);
if (!input(cx_agua_maximo)) output_low(cx_rua);
delay_ms(1);
1
C:\Users\Tiago\Desktop\trabalho_final\14112014_com_analogica.c
}
}
VOID apaga_luz(){
output_low(led_1);
output_low(led_2);
output_low(led_3);
output_low(led_4);
}
VOID comando_sisterna(){
long int x; // definição variavel local
output_low(cx_rua);
output_high(cx_sisterna);
lcd_pos_xy(1,1);
printf (lcd_escreve,"Bomba ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"Sisterna ON ");
for(x=0;x<10;x++)
{
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(janela)) comando_janela();
delay_ms(10);
}
}
VOID comando_rua(){
long int x; // definição variavel local
output_low(cx_sisterna);
output_high(cx_rua);
lcd_pos_xy(1,1);
printf (lcd_escreve,"Valvula ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"rua aberta ");
for(x=0;x<2000;x++)
{
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(janela)) comando_janela();
delay_ms(1);
}
RETURN;
}
//********************* Rotina principal *************************************
void main(){
long int x,y,z;
y=70;
z=100;
lcd_ini();
delay_ms(200);
//setup_adc_ports(AN0);
//Setup_adc_ports(RA0_RA1_RA3_ANALOG);
//setup_adc_ports(RA1_analog);
//setup_adc(ADC_CLOCK_INTERNAL);
//setup_psp(PSP_DISABLED);
//setup_spi(SPI_SS_DISABLED);
//setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
//setup_timer_1(T1_DISABLED);
// set_adc_channel(0);
//leitura = read_adc(7);
// set_adc_channel(1);
//leitura1 = read_adc(7);
for (;;)
2
C:\Users\Tiago\Desktop\trabalho_final\14112014_com_analogica.c
{
if(!input(btn_emergencia)) apaga_luz();
if(!input(btn_liga_luz)) comando_janela();
lcd_pos_xy(1,1);
printf (lcd_escreve," USF ");
lcd_pos_xy(1,2);
printf (lcd_escreve," ITATIBA ");
output_high(led_1);
for(x=0;x<y;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
lcd_pos_xy(1,1);
printf (lcd_escreve," PROFESSORES ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"ANDRE ");
for(x=0;x<y;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
lcd_pos_xy(1,1);
printf (lcd_escreve," PROFESSORES ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"ANNET ");
for(x=0;x<y;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
lcd_pos_xy(1,1);
printf (lcd_escreve," PROFESSORES ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"LUIZ CARLOS ");
for(x=0;x<y;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
lcd_pos_xy(1,1);
printf (lcd_escreve," COORDENADOR ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"VICENTE ");
for(x=0;x<y;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
lcd_pos_xy(1,1);
printf (lcd_escreve," ALUNOS ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"DANILO ");
for(x=0;x<y;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
3
C:\Users\Tiago\Desktop\trabalho_final\14112014_com_analogica.c
lcd_pos_xy(1,1);
printf (lcd_escreve," ALUNOS ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"DAVID ");
for(x=0;x<y;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
lcd_pos_xy(1,1);
printf (lcd_escreve," ALUNOS ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"JULIANO ");
for(x=0;x<y;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
lcd_pos_xy(1,1);
printf (lcd_escreve," ALUNOS ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"MURILO ");
for(x=0;x<y;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
lcd_pos_xy(1,1);
printf (lcd_escreve," ALUNOS ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"TIAGO ");
for(x=0;x<y;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
output_high(buzzer);
for(x=0;x<y;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
output_low(buzzer);
for(x=0;x<z;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
lcd_pos_xy(1,1);
printf (lcd_escreve,"A economia ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"comeca com voce ");
for(x=0;x<z;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
4
C:\Users\Tiago\Desktop\trabalho_final\14112014_com_analogica.c
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
lcd_pos_xy(1,1);
printf (lcd_escreve,"Banhos curtos ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"use a vassoura ");
for(x=0;x<z;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
// lcd_pos_xy(1,1);
// printf (lcd_escreve,"lave toda roupa ");
// lcd_pos_xy(1,2);
// printf (lcd_escreve,"faca sua parte ");
//
// for(x=0;x<z;x++){
// if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
// if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
// if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
// if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
// if(!input(btn_liga_luz)) comando_janela();
// delay_ms(10);}
lcd_pos_xy(1,1);
printf (lcd_escreve,"Vamos mudar o ");
lcd_pos_xy(1,2);
printf (lcd_escreve," MUNDO ");
for(x=0;x<z;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
}
}

sexta-feira, 14 de novembro de 2014

Nova sessão adicionada - O Projeto

   Agora você pode clicar na guia acima em "O Projeto" e acompanhar todas as postagens referentes ao desenvolvimento do mesmo sem precisar ficar procurando aqui na pagina inicial.

   Lembrando que na sessão descrita, somente haverá postagens referentes ao projeto, sendo excluídas curiosidades e demais postagens presentes aqui na pagina inicial, ou em suas respectivas sessões.

Montando a parte hidráulica


   A seguir, algumas fotos da parte hidráulica, explicações no nome da figura.

Fig. 1 - Encaixes das caixas de água da "rua" e da cisterna.

 Fig. 2 - Pote plástico adaptado para ser usado como caixa d'água 

 Fig. 3 - Caixa d'água com a bomba submersa instalada

Fig. 4 - Pote utilizado para simular a caixa d'água da residência 

Fig. 5 - "Encanamento" da casa

Fig. 6 - Detalhe do interior da casa

Fig. 7 - A casa por fora

 Fig. 8 - A casa por fora, mostrando a torneira que será utilizada para esvaziar a caixa

Fig. 9 - Detalhe da parte interna da maquete, localizada na base da mesma, abaixo da casa

Circuito montado e teste do sensor de luz

   A seguir a placa do circuito finalizado:

Fig. 1 - Circuito Pronto

  E também fizemos um vídeo mostrando o teste do sensor de luminosidade, veja a seguir.



Extra - Painel Fotovoltaico

   Conseguimos também um placa fotovoltaica para mostrarmos durante a apresentação do projeto, ela é capaz de gerar de 16 - 27Volts exposta ao sol (de acordo com testes feitos por nós mesmos) com uma corrente de cerca de 200 mA. Talvez podemos utiliza-la para alimentar o circuito, mas a principio a ideia é apenas mostra-la como curiosidade.

 Fig. 1 - painel fotovoltaico, vista frontal


Fig. 2 - painel fotovoltaico, vista traseira