simulador de presència

77

Upload: candido

Post on 14-Oct-2014

111 views

Category:

Documents


6 download

DESCRIPTION

Simulador de Presència

TRANSCRIPT

Treball de Recerca Simulador de Presència Jordi Auladell

 

Índex                   

1. Hipòtesi 2. Introducció a la domòtica

2.1 Què és la domòtica? 2.2 Història 2.3 Qui la utilitza? 2.4 Com funciona? 2.5 Aplicacions que ofereix la domòtica 2.6 Sistemes de seguretat d’un sistema domòtic

3. Sistema de comunicació X10 emprat en els sistemes domòtics 3.1 Història 3.2 Com funciona 3.3 Descripció del sistema 3.4 Instal·lació d’un sistema X10 3.5 Exemple d’un sistema X10

4. Simulador de presència 4.1 Què es un simulador de presència? 4.2 Tipus de simuladors 4.2.1Simuladors a través de l’ordinador 4.2.2 Ocupador de xarxa telefònica 4.2.3 Simulador per endoll 4.2.4 Simuladors amb base centralitzada 4.3 Opinió personal del millor simulador de presència.

5. Creació d’un simulador de presència 5.1 Tipus de simulador 5.2 Punts de contacte 5.3 Elements necessaris 5.4 Conceptes a conèixer

5.4.1 Targeta USB k8055 5.4.2 Biblioteca d’enllaços dinàmics 5.4.3 K8055.dll

5.4.3.1 Funcions Generals 5.4.4 Vocabulari VisualBasic

5.5 Creació del programa

Pàgina 1 2 2 2 3 4 6 9 11 11 11 12 13 14 14 14 15 16 16 17 17 20 21 21 21 21 23 23 26 26 27 29 30

Treball de Recerca Simulador de Presència Jordi Auladell

 

5.5.1 Explicació 5.5.2 Passos previs 5.5.3 Creació del programa

6 Connexió remota 6.1 Sistema utilitzat 6.2 Com funciona 6.3 Creació de la connexió remota

7 El meu simulador de presència 7.1 Introducció 7.2 Elements necessaris per el funcionament

7.3 Punts de contacte utilitzats en el meu simulador 8 Vocabulari 9 Conclusions

9.1Conclusions simulador creat 9.2Conclusions treball

10 Agraïments 11 Bibliografia 12 Annex creació del programa

12.1 Creació d’un simulador de presència 12.1.1 Creació del aspecte visual finestra principal 12.1.2 Creació del aspecte visual prova elements 12.1.3 Creació del aspecte visual simulador de presència

12.2 Objectes utilitzats 12.3 Declaracions/ Codis

12.3.1 Declaracions generals 12.3.2 Declaracions i codis pantalla principal 12.3.3 Declaracions i codis prova elements 12.3.4 Declaracions i codis simulador de

presència 12.4 Propietats del simulador de presència

creat. 12.5 Maqueta del simulador

13 Annex 1 13.1 Prova efectuada abans de la creació

13.1.1 Explicació del codi: 13.1.2 Explicació del codi amb imatges 13.1.3 Problemes detectats

30 30 30 31 31 31 31 35 35 35 35 37 38 38 39 39 40 42 42 42 42 43 43 45 48 48 50 51 53 64 65 68 68 68 70 73

Treball de Recerca Simulador de Presència Jordi Auladell

1   

 

1. Hipòtesis

El meu projecte consisteix en crear un simulador de presència. Amb això em

refereixo a dissenyar, a través del Visual Basic un programa capaç de seguir

una rutina aleatòria per tal de simular presència en una casa. Aquesta rutina

serien les diferents funcions que realitza una persona a l’interior d’una casa per

tal de que aquesta sembli habitada. Un exemple podria ser encendre i apagar

llums d’una casa, en una hora qualsevol.

L’aplicació de Visual Basic, executaria diferents ordres per tal de posar en

funcionament o parar l’acció que es vol simular a la casa. Totes aquestes

accions serien executades i controlades per una targeta USB. Aquesta targeta

podria encendre i apagar diferents relés*, els relés ens ajudarien a controlar

millor els accionaments externs d’una casa, ja que funcionen amb una tensió

de 220V en aquest cas. Mitjançant el poc voltatge de la targeta els relés serien

activats i desactivats sense cap problema.

El treball tracta en descobrir el món de la domòtica i la simulació de presència i

a la vegada aprendre a utilitzar els codis de programació per tal de crear un

programa fàcil i senzill d’una simulació de presència mitjançant una targeta

USB.

A més a més i de forma pràctica, s’intentarà crear una petita maqueta d’una

casa per tal de veure el funcionament d’una simulació de presència.

Treball de Recerca Simulador de Presència Jordi Auladell

2   

 

2. Introducció a la domòtica

2.1 Què és la domòtica?

La domòtica prové de la unió de dues paraules, “domus” que significa casa en

llatí i robòtica que prové de “robota” del xec, que significa esclau. Per tant

entenem el terme domòtica, com a qualsevol casa robòtica o bé automatitzada.

La domòtica ens pot aportar diferents serveis de benestar, estalvi energètic i

seguretat en una casa.

2.2 Història

La creació de la domòtica es situaria al voltant del 1970, en aquells temps hi va

haver l’evolució de les xarxes de control dels edificis, és a dir van adaptar els

edificis a les seves pròpies necessitats, com podria ser un exemple una xarxa

elèctrica segura i ordenada.

És va començar a utilitzar el terme domòtica l’any 1978 juntament amb la

sortida al mercat del sistema X10. Aquest sistema va revolucionar les

comunicacions, ja que permetia comunicar diferents aparells mitjançant una

xarxa elèctrica existent i sense la necessitat d’instal·lar un nou cablejat elèctric

per comunicar els diferents aparells. Cada aparell disposa d’una direcció en

que envia i rep diferents senyals per ser activat d’una manera o altra. El

sistema X10 va crear un sistema internacional que permetia connectar

qualsevol aparell, l’única necessitat era que fos compatible amb aquest

sistema.

Anys més tard es van implantar els sistemes de control. A principis del 1980,

només es van utilitzar per les calefaccions i aires condicionats, ja que aquests

sistemes s’instal·laven de forma aïllada. Al llarg dels anys, aquests sistemes

s’han integrat als sistemes domòtics, d’aquesta manera tot està centralitzat i

ofereix un millor benestar a les famílies.

Per tal de fer possible aquest desenvolupament i la creació del terme domòtic,

paral·lelament va sorgir la gran revolució en el món informàtic, en que la

domòtica es va veure beneficiada per aquest fet. El 1971 l’empresa de

Treball de Recerca Simulador de Presència Jordi Auladell

3   

 

microprocessadors Intel*, va crear el seu primer microprocessador*, es va

batejar amb el nom de 4004. Aquest processador estava format per 2300

transistors i treballava a 4 bits*, d’aqueta manera va suposar un gran avanç

tecnològic en que marcaria el començament de l’etapa dels microprocessadors,

una etapa que avui en dia encara existeix i segueix en evolució. La diferència

que els microprocessadors d’avui en dia estan formats per més 731 milions de

transistors i treballen a 64 bits.

2.3 Qui la utilitza?

Per instal·lar un sistema domòtic, primerament s’ha d’estudiar la persona que

viurà en aquella casa. Perquè no és el mateix instal·lar un sistema domòtic per

a una parella adulta o bé per a gent gran.

En cada cas s’instal·larà un sistema diferent segons les necessitats de les

persones. Per exemple una parella adulta que viatgi molt a l’estranger

l’interessarà un sistema que li permeti controlar la casa des de l’estranger, el

consum elèctric, la seguretat. En canvi la gent gran que visqui a la casa tot

l’any necessitarà un sistema que li ofereixi un bon benestar, que l’ajudi en les

tasques de la casa. Podrien ser exemples tirar amunt les persianes, ajudar en

la preparació del menjar a la cuina, una climatització automàtica i eficient.

La diferència és que tan una parella adulta com la gent gran necessitaran

benestar, però les seves necessitats seran diferents, per tan el sistema domòtic

s’adapta a les persones que viuen a la casa i no les persones al sistema

domòtic.

A més a més, els sistemes domòtics són flexibles per tal que les necessitats de

les persones es vegin realitzades satisfactòriament.

Per exemple, la vida de les persones marcada per un horari, han fet de la

domòtica un element que permet adaptar la il·luminació i la climatització de les

cases de forma automàtica. De manera que el propi sistema activa i desactiva

la il·luminació i la climatització segons l’hora que és i si en el seu interior hi ha

persones.

Treball de Recerca Simulador de Presència Jordi Auladell

4   

 

Per altre banda, ofereix una gestió de la casa, com podria ser la possibilitat de

consultar els diferents comptadors de la casa (el de l’aigua, gas, electricitat) de

forma remota sense la necessitat de supervisar-ho en persona. També permet

ser utilitzada per tal de desconnectar els diferents aparells que actuen en el

mode “standby”, d’aquesta manera permet estalviar energia quan els aparells

no es fan servir.

Principalment els sistemes domòtics ofereixen un sistema de seguretat per la

casa i per la persona ja que permet un tancament eficaç i hermètic. Un

esdeveniment estrany el sistema realitza una alerta a la policia en cas

d’entrada d’un intrús a la casa. Alguns aparells disposen d’un sistema que

ofereix una seguretat personal en que permet realitzar una alerta mèdica al

centre hospitalitari més proper en cas de patir un accident.

2.4 Com funciona?

Per disposar d’una casa domòtica o bé automatitzada, aquesta haurà de tenir 3

elements bàsics.

- Els sensors: Són els encarregats de detectar diferents esdeveniments.

Podríem dir que els sensors serien els ulls, les orelles o les mans d’un

Sensors Actuadors

Sistema de ControlAquest el processa i pensa l’acció més adequada

Rep una senyal extern i l’envia al sistema de control

Realitza l’acció rebuda pel sistema de control

Treball de Recerca Simulador de Presència Jordi Auladell

5   

 

ésser humà, ja que la funció principal d’ells és detectar. Existeixen varis

tipus de sensors, els més senzills que simplement detecten un senyal,

com podria ser “un escapament d’aigua”, o bé en hi ha de més

complexos que detecten imatges, sons i vídeos. Aquestes dades les

envien al sistema de control o bé l’ordinador perquè siguin processades.

- Els actuadors: Són els encarregats d’activar o desactivar diferents

elements, amb relació amb el nostre cos els actuadors serien els

músculs. Doncs en un sistema domòtic, són els encarregats d’activar o

desactivar un interruptor, un motor elèctric, relés. Aquests elements per

tal de ser activats necessiten prèviament una senyal que l’envia el

sistema de control o bé l’ordinador al propi actuador.

- Sistema de control: El sistema de control o ordinador seria l’encarregat

de decidir les accions que s’han de portar a terme. A l’ésser humà, el

sistema de control seria el cervell. És a dir, segons els esdeveniments

que reben els sensors, el sistema de control pensa quins actuadors i

com s’han d’activar per tal de portar a terme l’acció més correcte.

 

Font: http://blog.suescun.net/wp-content/uploads/2009/03/domotica.jpg

Treball de Recerca Simulador de Presència Jordi Auladell

6   

 

Al fotograma anterior observem una casa amb el seu sistema domòtic.

Per una banda observem els sensors domòtics (detectors de

inundacions, gas, fum, aigua, gas i d’intrusos), també hi ha actuadors

(avis acústic d’alarma, control de persiana, aire condicionat i calefacció).

També veiem com aquesta casa disposa d’un sistema d’emergència

sanitari.

2.5 Aplicacions que ofereix la domòtica

Les aplicacions s’agrupen en cinc grups:

Estalvi d’energia, comfort, seguretat, comunicacions i accessibilitat.

Estalvi d’energia (Reduir el consum d’energia)

Comfort (millorar l’estada a l’habitatge)

Aplicacions: Seguretat (Protegir els béns personals i materials)

Comunicacions (Simplificar la transmissió de dades)

Accessibilitat (Ajudar a les persones necessitades)

- Estalvi d’energia: La seva idea principal és intentar reduir l’energia

consumida per l’habitatge. És a dir, reduir l’ utilització de l’energia que

disposa una casa, gas, aigua i electricitat. Reduir amb la finalitat de

reduir costos, és a dir reduir el preu de les factures.

Una reducció important podria ser en la climatització, és a dir, millorar

l’habitatge per tal de concentrar la climatització en unes zones

determinades. I a la vegada millorar l’aïllament tèrmic per tal d’evitar un

ús d’energia innecessari, en aquest cas reduiríem electricitat consumida.

També podríem reduir l’energia consumida mitjançant la desconnexió

dels aparells quan aquests no estiguin en funcionament o bé adaptar el

Treball de Recerca Simulador de Presència Jordi Auladell

7   

 

nostre sistema domòtic a les hores de tarifa reduïda, això sempre i quan

en disposem, també reduiríem l’ utilització d’energia elèctrica

innecessària.

- Comfort: Pretén millorar l’estada a l’habitatge tot ajudant a realitzar

diferents tasques de forma automàtica.

Aquest confort podria ser perfectament el control automàtic de la

temperatura, també l’encesa i l’apagada dels electrodomèstics de forma

automàtica d’aquesta manera l’usuari no s’ha de preocupar en encendre

les màquines, simplement a omplir-les i buidar-les. Tot aquests

processos el realitzen els actuadors, en que prèviament han rebut una

ordre del centre de control, en que ordenen el que han de fer els

actuadors.

A més a més de poder realitzar tasques de forma automàtica, podem

realitzar les mateixes tasques de forma remota, és a dir, encendre la

calefacció per Internet de manera que quan l’usuari de la casa arribi a

l’apartament de la muntanya se’l trobi amb la calefacció prèviament

encesa.

- Seguretat: La funció principal d’aquesta, és protegir els béns personals

com la mateixa vida personal.

Per tal de realitzar un bon servei de seguretat, l’aparell domòtic disposa

de diferents sistemes per tal d’alertar l’entrada d’un intrús, també

serveixen per comunicar a l’usuari i l’empresa de seguretat l’entrada de

l’intrús.

També com a sistema de seguretat hi ha els simuladors de presència,

que aquests intenten simular presència de persones per tal d’evitar que

l’intrús es disposi entrar a la casa.

- Comunicacions: Són els diferents sistemes que s’utilitza per establir

connexions entre els sensors, actuadors i sistema de control mitjançant

el cablejat de fils de coure o bé utilitzant la tecnologia sense fils com ara

Treball de Recerca Simulador de Presència Jordi Auladell

8   

 

el wifi*, el bluetooth*, de manera que el sistema domòtic pugui realitzar

un funcionament correcte amb els elements que el componen. D’aquesta

manera des d’un ordinador portàtil pots comprovar l’estat de la casa

sense tenir cap fil endollat al portàtil.

- Accessibilitat: Consisteix en integrar i ajudar a les persones de mobilitat

reduïda de manera que aquestes no estiguin excloses de la societat, ja

que els simplifica la vida i els permet participar en les feines de casa

deixant de banda el seu estat físic, un exemple seria una cuina

adaptada per una persona en cadira de rodes.

Les cuines domòtiques per exemple, estan adaptades per a persones

minusvàlides tenen la característica d’estar a l’alçada de la persona

discapacitada, d’aquesta manera la persona pot accedir a qualsevol

element de la cuina sense cap impediment físic. Aquestes cuines

disposen de comandaments a

distància que permeten fer

funcionar els diferents aparells

electrodomèstics, tant sigui el forn,

el microones o bé el rentaplats.

D’aquesta manera la persona no

ha de realitzar moviments físics

que li puguin impedir realitzar la tasca.

A la imatge podem veure com una noia amb cadira de rodes pot realitzar les

mateixes tasques que una persona sense cap impediment físic.

Font:http://noticias.habitaclia.com/wp-content/uploads/2008/06/habitatge-

adaptat-7.jpg

Treball de Recerca Simulador de Presència Jordi Auladell

9   

 

2.6 Sistemes de Seguretat d’un sistema domòtic

Existeixen diferents sistemes de seguretat en un sistema domòtic. Les alarmes,

els sistemes de vídeo vigilància, els controls d’accessos i els simuladors de

presència.

- Alarmes: Funcionen de manera que quan es percep un senyal anormal

en un sensor, el sensor envia una senyal al sistema de control i aquest

envia una altra senyal en una central receptora, ja sigui d’una companyia

d’alarmes o bé el mòbil de l’usuari de la casa, per informar

l’esdeveniment.

(Percep un moviment estrany)

Centre de Control

(Verifica la senyal rebuda i processa una solució)

Sensor

No

Si (No s’envia cap senyal)

Truca a l’usuari Contesta?

Si

No

Avisa a l’usuari perquè aquest

actuï correctament.

El centre de control truca a la policia o companyia d’alarmes i dóna l’alerta.

Treball de Recerca Simulador de Presència Jordi Auladell

10   

 

En el cas que s’envia la senyal a la companyia d’alarmes, aquesta es

posa en contacte amb la casa per saber si és una falsa alarma, en cas

contrari la companyia es posa en contacte am la policia per actuar

ràpidament.

- Sistemes de vídeo vigilància: Existeixen diferents sistemes de vigilància,

actualment el més utilitzat són les càmeres de vigilància amb un vídeo

gravador, d’aquesta manera tot queda gravat en un disc dur, DVD o

qualsevol sistema digital accessible fàcilment.

Un dels sistemes que s’està utilitzant cada dia més, gràcies a l’Internet,

són les càmeres de vigilància IP*, aquestes permeten una connexió des

de qualsevol lloc del món a la nostre càmera de seguretat. Això sempre i

quan disposem de connexió a Internet. Moltes empreses de seguretat

de vídeo vigilància utilitzen aquest sistema per poder vigilar els centres

que tenen amb contracte.

- Simuladors de presència: S’utilitza en sistemes domòtics de llars

domèstiques. La finalitat principal és que quan els habitants d’una llar

marxen de vacances o de cap de setmana, aquest sistema actua com a

un substitut dels habitants. Per fer-ho realitza actes semblants que

realitzarien els mateixos habitants de la casa, com per exemple

encendre i apagar llums de la casa en hores diferents.

- Control d’accessos: És molt utilitzat a les empreses, pel fet que els

directius poden saber en tot moment on, qui i quan un treballador ha

entrat en una zona de l’empresa.

Per fer-ho cada empleat disposa d’una targeta o codi d’accés. Quan un

empleat es disposa a moure’s per l’interior de l’empresa, necessita

passar la seva targeta a través d’un lector de targetes per tal de que

s’obri la porta. D’aquesta manera, queden guardades tots els accessos

que han fet els treballadors.

Treball de Recerca Simulador de Presència Jordi Auladell

11   

 

En aquesta fotografia podem veure

clarament com aquest sistema correspon

a un control d’accés a través de la de les

empremtes dactilars. El treballador posa

la mà per tal de que l’aparell detecti la

seva identificació, una vegada detectades

i reconegudes s’obriran les portes, però

també quedarà guardat en un fitxer la

seva entrada a la següent habitació.

Font:

www.mmsistemas.es/productos_control_acceso.php

3. Sistema de comunicació X10 emprat en els sistemes domòtics

3.1 Història:

El sistema anomenat X10, s’utilitza per realitzar les comunicacions entre els

diferents aparells domòtics. Va ser creat entre el 1975 i el 1978 per l’empresa

escocesa Pico Electronics, com a resultat d’un projecte, dels quals la seva

intenció era controlar equips de música.

Actualment aquest sistema és el més utilitzat tant Estats Units com Europa.

Principalment s’utilitza en oficines i llars domèstiques per la seva facilitat en el

seu ús.

3.2 Com Funciona:

El sistema X10, és el protocol utilitzat per comunicar diferents dispositius de

forma remota a través de la xarxa elèctrica i de forma digital.

El que fa aquest sistema és barrejar diferents ràfegues de pulsacions a 120

kHZ a la xarxa elèctrica de la casa, de manera que aquestes pulsacions porten

una certa informació i no interfereixen a la xarxa elèctrica de la casa ja que

aquesta funciona a 50 o 60 Hz* depenent de la zona, Europa 50 Hz, Estats

Units 60 Hz. Aquestes ràfegues de pulsacions es transmeten per portes

Treball de Recerca Simulador de Presència Jordi Auladell

12   

 

lògiques en que la informació transmesa pot adquirir el valor de 1 o bé el valor

0.

Per això, aquest sistema és bastant econòmic, ja que no cal instal·lar nous

cables elèctric i permet utilitzar els de la xarxa elèctrica.

Un exemple de funcionament d’un sistema X10 podria ser aquest, són les 9 del

vespre, el sistema de control envia una senyal a través de la xarxa elèctrica a la

persiana, aquesta rep el senyal i a continuació la persiana baixa cap avall.

3.3 Descripció del sistema:

Aquest sistema disposa de diferents direccions per cada aparell, el sistema X10

permet utilitzar fins a 256 direccions. A més a més de disposar de 256

direccions, també hi ha diferents ordres. Disposa de 256 adreces perquè

permet fer combinacions de 16 lletres amb 16 números, per això dóna un total

de 256 adreces. Funciona a 8 bits* per això tenim 256 valors diferents.

Sistema de Control

Actuador

(Processa la senyal rebuda del sensor i ordena un senyal  i l’envia al actuador) 

A través de la Xarxa elèctrica. 220 V, 50 Hz

(Rep el senyal i és activat segons l’ordre rebuda) 

Sensor (Rep un senyal i l’envia al sistema de control) 

A través de la Xarxa elèctrica. 220 V, 50 Hz

Amb pulsacions de 120 kHz envia l’ informació

Amb pulsacions de 120 kHz envia l’ informació

Treball de Recerca Simulador de Presència Jordi Auladell

13   

 

A través d’un transmissor el sistema permet enviar senyals per la xarxa

elèctrica. Aquestes senyals disposen d’una adreça i també d’una ordre, per

això quan un receptor tingui la mateixa adreça enviada s’activarà i realitzarà

l’ordre que li ha enviat el transmissor, com podria ser per exemple l’ordre Off.

Per diferenciar un transmissor d’un receptor, existeixen diferents logotips.

Logotip d’un transmissor Logotip d’un receptor

3.4 Instal·lació d’un aparell X10

En aquestes fotografies de la

dreta podem observar el

muntatge d’un receptor X10. A la

primera fotografia veiem com

s’ajusten les configuracions, en

que a la part esquerra hi ha una

circumferència vermella, en que

aquesta s’indica una lletra,

aquesta lletra està considerada

la lletra casa, ja que tots els

receptors de la casa hauran de

tenir la mateixa lletra per tal de

funcionar. En canvi a la part

dreta hi ha una circumferència negre, aquesta s’utilitza per donar una direcció

al receptor, de manera que el transmissor es comunicarà amb el receptor a

través d’aquesta direcció.

A la segona fotografia veiem com s’endolla el dispositiu que volem connectar

en el receptor x10. Un exemple podria ser una bombeta.

Treball de Recerca Simulador de Presència Jordi Auladell

14   

 

A la tercera fotografia veiem com el receptor que t’he endollat un aparell

domèstic s’endollen a la xarxa elèctrica.

Finalment a la quarta fotografia veiem el conjunt transmissor receptor, en

aquest cas la direcció d’aquest receptor és A1, i veiem com en el sistema

central ja ha detectat l’aparell A1.

Font imatge: http://www.superinventos.com/images/S110310A.gif

3.5 Exemple d’un sistema x10

Aquest sistema que s’ha seleccionat

disposa d’un transmissor i de dos

receptors.

Funciona mitjançant el sistema X10,

primer s’assigna una direcció en el

receptor i també s’introdueix en el transmissor. S’endolla a la xarxa elèctrica i ja

funciona.

Afortunadament aquest sistema també permet fer una simulació de presència,

en que aleatòriament va activant els diferents receptors, de manera que

semblarà que l’habitatge sempre sembli ocupat.

El preu d’aquest KIT mini programador XTP040301, és de 125,09€

Font: http://www.domoticaviva.com/Tienda/winkit/XTP040302.htm 

4. Simulador de presència

4.1 Què és un simulador de presència?

Un simulador de presència es una petita part del sistema domòtic d’una casa.

En aquest cas, el simulador forma part de la seguretat de la casa, que funciona

quan els habitants d’aquesta es troben fora de l’edifici.

Treball de Recerca Simulador de Presència Jordi Auladell

15   

 

L’idea principal d’un simulador, és realitzar diferents tasques habituals d’una

casa de forma aleatòria, per tal que aquesta casa sembli ocupada. És a dir

quan els habitants de la casa marxen de vacances, el sistema de simulació de

presència s’activa i realitza un seguit de processos per tal de que a la casa

sembli que hi hagi vida. Alguns exemples serien pujar i baixar les persianes,

encendre els llums del jardí, encendre els llums de l’interior de la casa i fins i tot

activar una ràdio per tal que sembli que l’usuari de la casa està escoltant

música.

Existeixen altres tipus de simuladors de presència, un exemple seria el cas d’un

petit aparell que la seva funció és mantenir la línia de telèfon ocupada,

d’aquesta manera si el lladre vol saber si hi ha algú truca al telèfon, però al

veure la línia de telèfon ocupada creu que hi ha presència. Però aquest aparell

probablement la seva funció qualitat/preu no surt gaire a compte, perquè és

més pràctic desviar la trucada telefònica al mòbil de l’usuari.

La gran diferència d’un simulador de presència amb un altre sistema de

seguretat, com per exemple el cas més clar d’una alarma, és que, mentre que

l’alarma alerta que hi ha un lladre a l’interior de la vivenda, el simulador de

presència evita l’entrada dels lladres, és a dir, en un sistema d’alarma, el lladre

està dins de l’habitatge, mentre que en el simulador el lladre encara no ha

entrat.

4.2 Tipus de simuladors

Al mercat existeixen sistemes domòtics els quals una de les seves funcions de

seguretat és la simulació de presència. Però també existeixen simuladors de

presència sols. A continuació veurem diferents exemples de simuladors de

presència.

Tots aquests simuladors tenen un consum mínim, ja que la seva finalitat és

transmetre ordres i el consum que suposa això és mínim. El seu consum varia

dels 40 als 120 W. Els de major consum són els simuladors més complets amb

més funcions. Seguidament veurem alguns exemples.

Treball de Recerca Simulador de Presència Jordi Auladell

16   

 

4.2.1 Simulador a través de l’ordinador

- Ifufi2 (Programa informàtic)

Aquest simulador utilitza l’ordinador com alarma, és a dir, l’usuari instal·la un

programa a l’interior de l’ordinador. Aquest programa utilitza el ratolí i el

micròfon com a sensors, quan aquests sensors son activats l’ordinador emet

sorolls per tal d’alertar i espantar l’intrús de la casa. També permet realitzar una

simulació de presència tot activant l’alarma de forma aleatòria.

Aquest simulador és poc útil, ja que amb una mica de soroll d’ambient el

sistema d’alarma s’activarà. També has de tenir encès l’ordinador les 24 hores i

perquè funcioni correctament l’intrús ha de tocar el ratolí, cosa poc probable.

Preu: 8,79€

Font: http://www.hotbounce.com/ifufi2.php

4.2.2 Ocupador de xarxa telefònica

- SK-111

Aquest aparell simplement s’endolla a la línia

telefònica, i quan el lladre truca per saber si aquesta

casa està ocupada, la línia telefònica està ocupada.

La seva principal funció és ocupar la línia telefònica.

Té l’inconvenient que si el lladre truca a totes les hores, sempre trobarà la línia

ocupada fins i tot a les 4 de la matinada, cosa que fa que després sigui poc

creïble.

Preu: 18,87€

Font: http://todoelectronica.com/simulador-presencia-p-1165.html 

Treball de Recerca Simulador de Presència Jordi Auladell

17   

 

4.2.3 Simulador per endoll “llum”

- Light House SIM-100

Aquest sistema funciona en diferents períodes com

podrien ser per exemple sortides nocturnes de la família,

temps de descans i sobretot en períodes de vacances. La

seva funció és activar de forma aleatòria l’element que

estigui endollat en ell. De manera que permet el pas del

corrent en un temps determinat.

Preu: 78€

Font: http://www.masoportunidades.com.ar/aviso/4207807-simulador-de-presencia-

seguridad-1000w-audio-velador-lampara 

4.2.4 Simuladors amb base centralitzada

- El kit de de simulació de presencia x10

Aquest només disposa d’una base centralitzada que

es comunica als receptors en aquests al rebre el

senyal de la base s’activen i fan funcionar tot el que

tenen endollat. El desavantatge d’aquesta base

centralitzada, és que no disposa de receptors, i cada receptor val com a mínim

uns 30 €. Resulta més barat comprar un kit que disposi de receptors inclosos.

Preu 140,36€

Font:http://acoruna.olx.es/kit-simulacion-de-presencia-x10-iid-19094173 

- Kit seguretat powermax amb sistema x10

Sistema complet de domòtica,principalment funciona per

tal de tenir segura una casa, per tant aquest sistema a

Treball de Recerca Simulador de Presència Jordi Auladell

18   

 

banda d’activar alarmes també simula una presencia. Per simular aquesta

presència ho fa a través dels dispositius x10, en què la base centralitzada

domòtica emet senyals cap als receptors i aquest s’activen.

Preu 399 €

Font: http://www.domoticaviva.com/Tienda/tienda_domotica_x10.htm

- Controlador telefònic X10 S110500

La funció principal d’aquest sistema es centra en

la seguretat de la casa. Aquest aparell és un

enllaç entre el telèfon i els dispositius X10. Els

dispositius X10 són diferents transmissors i

receptors. Els transmissors emeten un senyal

elèctric que fa que els diferents receptors es posin en marxa.

D’aquesta manera aquest sistema permet que quan l’usuari vol encendre un

llum o tirar una persiana amunt, només ha de trucar i teclejar un codi, per tal de

que el propi sistema tiri la persiana amunt, com també verificar l’estat de

l’habitatge.

Aquest aparell, a més, té la capacitat de poder simular una presencia de forma

aleatòria. De manera que l’usuari només ha de connectar els dispositius x10, i

el controlador telefònic x10 s110500 realitzarà la simulació.

Preu: 109,85 €, aquest preu no inclou els diferents dispositius x10. Els

receptors tenen un preu aproximadament d’uns 30€ els més senzills.

Font: http://www.superinventos.com/S110500.htm 

- Kit de Seguretat i domòtica 4 elements

Treball de Recerca Simulador de Presència Jordi Auladell

19   

 

Aquest sistema domòtic, com l’altre sistema, la seva

principal funció és la seguretat del habitatge.

Perquè funcioni correctament aquest sistema, són

necessaris diferents dispositius X10, de manera que

els transmissors enviïn la senyal als receptors i

aquest s’activin.

Aquest sistema permet que quan la casa hi ha un incendi, una fuita d’aigua o

bé hi ha lladres, el sistema avisa mitjançant una trucada telefònica a l’amo de la

casa per tal d’informar-lo. També pot funcionar al revés , és a dir l’amo de la

casa pot trucar per tal de saber com està la casa, saber l’estat de tots els

dispositius connectats i fins i tot activar els diferents dispositius.

Com la majoria de sistemes domòtics, disposen d’una simulació de presència,

és a dir quan els habitants de la casa marxen de cap de setmana, el sistema ell

sol actua de manera que no sembla que els habitants estiguin fora.

Preu: 199.92 €, aquest preu no inclou els diferents dispositius x10.

Font: http://todoelectronica.com/seguridad-domotica-elementos-domotica-p-6970.html

- Consola de seguretat X10 sc2700

Aquest sistema domòtic, és molt semblant al

anterior. Permet realitzar trucades a l’usuari en cas

d’incendi o fuita d’aigua, a la vegada també permet

que l’usuari pugui comprovar l’estat de la casa amb

una simple trucada. Aquesta consola permet

encendre i apagar 16 dispositius X10. De manera que perquè funcioni en ple

rendiment hem de disposar de diferents receptors i transmissors.

En cas de no haver-hi ningú a casa la consola pot actuar per si sola per tal de

simular presencia a la casa, tot encenen els llums de forma aleatòria per

exemple.

Treball de Recerca Simulador de Presència Jordi Auladell

20   

 

Preu: 165€, aquest preu no inclou els diferents dispositius x10.

Font:http://www.solostocks.com/lotes/comprar/consola-de-seguridad-x10-

sc2700/oferta_124025.html

En definitiva, disposem de simuladors a través de l’ordinador, ocupadors de

xarxa telefònica, Simuladors per endoll i simuladors amb base centralitzada.

Cada un d’aquests simuladors realitzen funcions diferents:

- Simuladors a través de l’ordinador

La seva funció principal és utilitzar l’ordinador com a sistema d’alarma, de

manera que vagi reproduint sorolls. Quan l’ordinador detecta un soroll a través

del micròfon, l’ordinador comença a fer soroll per simular una alarma.

- Ocupador de xarxa telefònica

La seva funció és mantenir ocupada la línia de telèfon per tal de semblar que la

casa està ocupada quan l’intrús o lladre vol saber si hi ha algú a la casa.

- Simulador per endoll

La funció principal és donar pas al corrent elèctric de forma aleatòria, de

manera que ell sol s’activarà i es desactivarà sol. La simulació la fa de manera

desordenada i sense cap sentit comú.

- Simuladors amb base centralitzada

Aquests simuladors, la seva funció és

4.3 Opinió personal del millor simulador de presència

Personalment penso que el controlador telefònic X10 S110500, qualitat/preu és

el millor de tots, perquè costa uns 110 € i permet realitzar el mateix que els

altres sistemes domòtics.

Treball de Recerca Simulador de Presència Jordi Auladell

21   

 

5. Creació d’un simulador de presència:

5.1. Tipus de simulació:

El simulador de presència que vull crear, tracta d’activar punts de contacte de

forma aleatòria. Això em refereixo a crear un programa que sigui capaç de

encendre i apagar llums, encendre una ràdio, aixecar persianes i baixar-les de

manera aleatòria de manera que cada dia ho realitzi en hores diferents i evitar

una rutina diària i poder simular la presència de forma més completa.

5.2. Punts de contacte:

Per crear una bona simulació, és mes convenient disposar de diferents punts

de contacte, és a dir, poder activar diferents elements, que normalment són

activats quan hi ha gent en una casa. En aquests cas s’activarien els següents

elements:

- Encendre i apagar bombetes.

- Activar una ràdio.

- Aixecar i abaixar persianes.

5.3. Elements necessaris:

Per tal d’activar els diferents punts de contacte, seran necessaris diferents

elements per poder crear una simulació en bones condicions. En aquests cas

necessitaríem els següents elements:

- Ordinador: Necessitaríem un ordinador per crear

el programa, que en un futur ens simularà la

presencia. L’ordinador amb els quals es

necessitaria treballar i executar el simulador, preferiblement ha de tenir

el sistema operatiu Windows Xp. És necessari el Windows Xp perquè

amb aquest sistema operatiu no apareixen errors de sistema quan s’ha

de connectar la targeta amb l’ordinador.

Treball de Recerca Simulador de Presència Jordi Auladell

22   

 

- Programador: Per crear el programa

necessitaríem el Visual Studio, que una de les

seves aplicacions és el visual basic, programa

que ens permetria crear l’aplicació. Per tant

només disposant del programa Visual Basic, podrem crear la nostre

aplicació.

- Targeta USB: Per realitzar la simulació de

presència utilitzaríem la targeta “USB Experiment Interface Board” model VM110

de la marca Velleman. Aquesta targeta es pot

trobar per uns 40 euros a les botigues

d’electrònica. 

L’avantatge d’utilitzar aquesta targeta USB, és que ens permet centrar-

nos més en la creació del programa. Ja que aquesta targeta ja porta

predefinides les funcions a l’interior de la seva ”.dll” en aquest cas la

k8055.dll . En el següent punt s’explicarà la utilització de la “.dll”

En cas de no disposar de l’arxiu “.dll” llavors serà necessari descobrir el

funcionament total de la targeta, és a dir descobrir amb quins ordres

funciona.

Per tal de connectar la targeta USB i l’ordinador necessitarem un cable

de USB estàndard.

- Relés: L’ utilitat dels relés és molt important, ja que ells ens permetran

encendre i apagar els diferents mecanismes que funcionen a 220v a

través del poc voltatge que ofereix la placa USB, com per exemple

encendre les bombetes de la casa.

- Punts de contacte: Per tal de fer funcionar la simulació, necessitarem els

diferents punts de contacte, en aquests cas bombetes, una ràdio, i un

motor que ens pugui simular com s’aixequen i s’abaixen les persianes.

Treball de Recerca Simulador de Presència Jordi Auladell

23   

 

5.4. Conceptes a conèixer:

Per realitzar una simulació de presència, primerament serà necessari conèixer

alguns conceptes previs. En aquest cas, l’explicació de la .dll de la targeta amb

totes les seves funcions, la comunicació des del programa de visual basic a la

targeta amb les seves ordres pertinents.

5.4.1 Característiques targeta USB k8055:

La targeta k8055, és una targeta que fa de interfase entre les sortides digitals o

analògiques entre la targeta i l’ordinador. Cada targeta disposa d’un número

d’identificació, ja que d’aquesta manera ens permet connectar fins a quatre

targetes k8055 en el mateix ordinador, el número d’identificació es pot canviar.

Cada targeta està equipada amb cinc canals d’entrada digital, aquests canals

d’entrada ens permeten connectar sensors de manera que quan el sensor és

activat envia la senyal a la placa, també disposa de 8 canals de sortida digital,

aquests ens permeten activar relés o altres elements que connectem a les

sortides. A més a més hi ha dues entrades analògiques d’entrada, aquestes

ens permetrien connectar un sensor de temperatura i també disposa de dues

sortides analògiques, que el seu voltatge varia de 0 a 5 volts.

A continuació veurem l’esquema elèctric de la targeta.

Treball de Recerca Simulador de Presència Jordi Auladell

24   

 

Llegenda de l’esquema elèctric:

1. 5 entrades digitals.

2. 2 entrades analògiques.

3. Si la peça de plàstic està posada s’utilitza el voltatge intern ajustat al

punt 5 i 6, però si no està posada s’utilitza el voltatge extern del punt

2.

4. Si la peça de plàstic està posada s’utilitza el voltatge intern ajustat al

punt 5 i 6, però si no està posada s’utilitza el voltatge extern del punt

2.

5. Ajustar el voltatge intern de l’entrada analògica 1.

6. Ajustar el voltatge intern de l’entrada analògica 2.

7. Lloc on es tria quin número d’identificació és la targeta.

8. 2 Sortides analògiques graduables.

9. 8 Sortides digitals.

10. Lloc on es connecta el cable USB.

Treball de Recerca Simulador de Presència Jordi Auladell

25   

 

Diagrama de connexions:

En aquest esquema observem les diferents entrades i sortides de la

placa.

Ala part superior esquerra del diagrama veiem com s’aplica el valor 1 i 0

quan el circuit està obert i tancat respectivament.

A la part superior observem com ens diu, “analog voltage 0...5V”, això es

refereix a les dues entrades analògiques, que ens permeten introduir

elements amb un rang de 0 a 5 volts.

Al centre superior del diagrama observem com ens diu “Rvx: For

Experimental use mount sk2 & sk3 when using rv1.2”, ens vol dir que si

hem de realitzar probes experimentals podem regular el voltatge intern

d’entrada dels 0 als 5 volts, per adaptar-nos millor a l’element extern

d’entrada que es connecti.

A la part superior esquerra veiem les dues sortides analògiques, en elles

veiem com el voltatge de sortida pot variar entre els 0 i els 5 volts.

A la part inferior del diagrama veiem la connexió de la placa que es

dirigiria cap a l’ordinador.

Treball de Recerca Simulador de Presència Jordi Auladell

26   

 

Mentre que la part dreta del diagrama veiem les sortides digitals,

aquestes activen un relé o un led, gràcies a l’adaptador que permet

treballar dels 5 als 30 volts.

Finalment a la part esquerra del diagrama, veiem les entrades digitals,

aquestes son activades quan el circuit es tanca i dona com a valor 0,

mentre el valor sigui 1 el circuit romandrà obert.

- 5.4.2 Biblioteca d’enllaços dinàmics:

També anomenada DLL i utilitzada com a “.dll”. Són petits arxius bàsics

per el funcionament dels programes. Ja que en el seu interior hi ha un

codi escrit, aquest codi només pot ser executat a través d’un programa

extern, de manera que l’arxiu “.dll” no serà executat fins que el programa

independent no tingui la necessitat de utilitzar el codi de la “.dll”. La

finalitat de crear aquests tipus d’arxius és per reduir l’espai, ja que si tot

el programa no es guarda en codis la mida seria molt gran. De manera

que la finalitat de crear els arxius “.dll” és per reduir espai al disc dur, ja

que ocupen molt poc.

Per això, si equivocadament es borra un d’aquests arxius, el programa

deixaria de funcionar, per tant es millor no eliminar els “.dll”.

- 5.4.3 K8055.dll

Aquesta es la biblioteca d’enllaços dinàmics en que treballarem, ja que

en ella s’hi guarden tots els codis que ens permeten connectar amb la

targeta USB. A continuació coneixerem els diferents codis que

utilitzarem en el visual basic per poder fer funcionar la Targeta.

Per tal de que funcioni la connexió haurem de copiar l’arxiu K8055.dll a

la carpeta Windows del disc dur.

Abans de conèixer els codis aprendrem a identificar una targeta, és a dir

numerar-la.

Treball de Recerca Simulador de Presència Jordi Auladell

27   

 

Per tal de numerar la targeta, ens dirigirem al apartat número 7 de la

llegenda de l’esquema elèctric. Allà observarem que hi ha dues peces

abatibles, veiem el sk5 i el sk6. Quan estan posades les peces significa

que està on i si estan tretes off.

Per tant si volem tenir la targeta identificada hem de jugar amb aquestes

peces. Estem jugant amb codi binari, en que utilitzem 1 i 0, i arribem a

fer 4 combinacions, (00,01,10,11), d’aquestes combinacions apareixen

els nombres d’identificacions.

SK5 on i SK6 on = Identificació 0

SK5 off i SK6 on = Identificació 1

SK5 on i SK6 off = Identificació 2

SK5 off i SK6 off = Identificació 3.

Els codis que veurem a continuació, són les diferents ordres que té

preestablert la DLL, d’aquesta manera coneixerem les diferents ordres i

funcions que hi ha al seu interior.

Això simplement són les funcions per activar i desactivar la targeta i els

seus ports, per tal de programar-ho ho veurem en un altre apartat.

Codis:

5.4.3.1 Funcions Generals:

OpenDevice(card adress)

Aquesta funció comunica l’ordinador amb la targeta USB, per tal de

comunicar amb una targeta determinada al costat de l’operació

OpenDevice posarem un parèntesis amb el número de targeta que ens

volem connectar.

CloseDevice

Treball de Recerca Simulador de Presència Jordi Auladell

28   

 

Aquesta funció, tal com diu el nom tanca la comunicació amb la targeta,

és convenient posar-la al finalitzar el programa.

Canals analògics:

ReadAnalogChannel(Channelno)

Llegeix l’estat del canal analògic seleccionat entre parèntesis.

ReadAllAnalog(Data1, Data2)

Llegeix l’estat de tots els canals analògics, en aquest cas 2.

OutputAnalogChannel(Channel,Data)

S’elegeix un canal de sortida, quan un es seleccionat se l’introdueix un

valor del 0 al 255, el valor 0 és 0 i el valor 255 equivaldria els 5 volts

màxims de sortida.

OutputAllAnalog(Data1,Data2)

Envia senyal pels dos canals de sortida analògics, però ens permet triar

quina intensitat volem per cada canal, el data 1 equivaldria el canal 1 i el

data 2 en el canal 2. Els valors son els mateixos de 0 a 255.

ClearAnalogChannel(Channel)

Aquesta funció de l’ordre de posar el valor 0, és a dir el més baix en el

canal seleccionat de sortida analògica.

ClearAllAnalog

Aquesta funció posa el valor 0 als dos canals de sortida, d’aquesta

manera la sortida és mínima o nul·la, és a dir desactiva la sortida.

SetAnalogChannel(Channel)

Col·loca al valor màxim, és a dir a 255 el canal seleccionat entre

parèntesis.

SetAllAnalog

Treball de Recerca Simulador de Presència Jordi Auladell

29   

 

Activa al valor màxim dels dos canals de sortida analògics, és a dir els

dos canals surten 5V, el màxim.

Canals Digitals:

WriteAllDigital(Data)

Ajusta tots els canals de sortida digital segons les dades, aquestes

dades son 1 o 0, 1 significa parat i 0 activat.

ClearDigitalChannel(Channel)

Posa a valor 0 el canal seleccionat entre parèntesis.

ClearAllDigital

Borra tots els canals de sortida digital, és a dir els desactiva.

SetDigitalChannel(Channel)

Activa el canal digital de sortida seleccionat.

SetAllDigital

Activa tots els canals de sortida digital.

ReadDigitalChannel(channel)

Llegeix l’estat del canal d’entrada seleccionat, el valor llegit serà de 0 o

bé 1.

ReadAllDigital(Buffer)

Llegeix l’estat de tots els canals d’entrada digital.

- 5.4.4 Vocabulari VisualBasic

La finalitat d’aquest apartat és conèixer tots els paràmetres que utilitza la

DLL. A continuació veurem els més importants:

Private: En la majoria de codis hi ha la funció Private, que vol dir que la

variable que declara només funciona per el programa intern, és a dir que

Treball de Recerca Simulador de Presència Jordi Auladell

30   

 

la resta d’ordres d’aquest programa són independents les unes amb les

altres.

Declare: Vol dir que relaciona aquesta funció amb procediments externs,

en aquest cas de la k8055d.dll la llibreria del programa.

Function: És la funció que realitza l’ordre.

Sub: Procediment que durà a terme.

Byval: Significa que el valor d’aquesta funció no pot canviar.

5.5 Creació del programa

La creació del programa està al annex de creació del programa, mirar

(índex).

5.5.1 Explicació

Crearem una aplicació per Windows a través del Visual Studio que

anomenarem Simulador de presència.

Aquesta aplicació serà un programa senzill de manera que qualsevol

usuari el pugi fer anar, la finalitat serà que el propi programa activi o

desactivi els diferents elements que volem fer funcionar. Per tal d’activar

o desactivar els elements, prèviament seran programats perquè

funcionin en un interval d’hores preestablert.

5.5.2 Passos previs a la creació:

1. Instal·lació de Visual Studio.

2. Introduir la DLL a la carpeta de Windows, per tal de que el propi

programa reconeix-hi les funcions d’aquesta DLL.

5.5.3 Creació del programa:

Treball de Recerca Simulador de Presència Jordi Auladell

31   

 

Trobarem el procés de creació, al Annex creació del programa (mirar

índex)

6.Connexió remota

6.1 Sistema utilitzat:

Per tal de crear la simulació de presència, serà convenient tenir la

possibilitat de connectar-nos remotament al ordinador que l’estarà simulant.

En aquest cas per poder realitzar la connexió remota utilitzarem un

programa ja creat, utilitzarem el programa LogMeIn.

6.2 Com funciona

Per tal de fer això possible la connexió, utilitzarem un programa via web.

Aquest programa queda instal·lat a l’ordinador, de manera que està

connectat permanentment a Internet i només serà activat quan l’usuari des

de la web es connecti.

Per fer-ho possible i segura aquesta connexió, només es podrà accedir a

l’ordinador mitjançant via web i per tal de fer segura la connexió cada

persona disposarà d’un nom d’usuari i contrasenya de manera que només

la persona que disposi del nom d’usuari i contrasenya podrà accedir a

l’ordinador.

6.3 Creació de la connexió remota

1. Creació de la conta d’usuari a la web de www.logmein.com

Treball de Recerca Simulador de Presència Jordi Auladell

32   

 

2. Seleccionarem quin tipus de compte volem, seleccionarem la de

accés, administració i treball a la xarxa de LogMeIn, a continuació

clicarem continuar.

3. Omplirem els següents requadres amb les nostres dades personals,

finalment clicarem continuar i ens enviaran un correu per tal de

confirmar les dades a la nostra direcció de correu electrònic.

Treball de Recerca Simulador de Presència Jordi Auladell

33   

 

4. Iniciarem sessió a la pàgina d’inici, en aquest cas l’usuari es

[email protected] i la contrasenya *******.

 

Treball de Recerca Simulador de Presència Jordi Auladell

34   

 

5. Afegirem un ordinador, de manera que l’ordinador que afegirem serà el

que ens permetrà connectar de forma remota. Amb subscripció

gratuïta.

 

6. Instal·larem el programari, posarem un nom a l’ordinador que vulguem

fer la simulació de presència i una contrasenya per poder-nos

connectar remotament. Un cop acaba l’ instal·lació apareixerà aquest

fotograma.

 

 

7. Observarem a la barra inferior del ordinador un petit icona de color

blau que significa que el programa ja està en funcionament, com

Treball de Recerca Simulador de Presència Jordi Auladell

35   

 

també a la web del LogMeIn com l’ordinador ja està disponible per fer

la connexió remota.

 

 

7. El meu simulador de presència:

7.1 Introducció

Per realitzar la meva simulació de presència han estat necessaris diferents

elements per poder-la realitzar. Per començar he necessitat una targeta USB

per tal de connectar tots els punts de contacte que vull utilitzar amb el meu

simulador. També he necessitat un ordinador per crear i executar el programa

que realitzi la simulació de presència.

7.2 Elements necessaris per el funcionament

- Targeta USB:

He utilitzat la targeta “USB Experiment Interface Board” model VM110 de

la marca Velleman.

- Ordinador:

He necessitat un ordinador amb un sistema operatiu Windows Xp

7.3 Punts de contacte utilitzats en el meu simulador

El simulador permet utilitzar diferents punts de contacte per tal de crear una

simulació més completa.

1. Encendre i apagar bombetes d’un menjador.

Treball de Recerca Simulador de Presència Jordi Auladell

36   

 

2. Encendre i apagar bombetes d’una habitació.

3. Encendre i apagar bombetes d’una habitació.

4. Encendre una ràdio per tal de provocar soroll.

5. Pujar i abaixar persianes.

Funcionament:

Hora del sistema

Botó element està seleccionat

Hora del sistema

Realitza 0 funcions

L’element s’activarà Defineix hora final

Si

No Realitza 0 funcions

Hora del sistema Hora final

Element continua activat

Hora final

Desactiva element i defineix hora inicial

Treball de Recerca Simulador de Presència Jordi Auladell

37   

 

8. Vocabulari:

- Microprocessador: és una placa formada per milions de transistors, aquest

conjunt de transistors la seva funció principal és com la d’un cervell humà.

Consisteix en donar ordres i processar-les per acabar realitzant una funció.

- Intel: Empresa que ve a significar (Integrated Electronics). Aquesta empresa

va ser formada per Gordon E.Moore i Robert Noyce el 1969. La tasca principal

de l’empresa és crear circuit integrats. L’empresa Intel és pionera en el mercat

de microprocessadors perquè va ser la primera empresa en crear aquest tipus

de processadors i avui en dia està revolucionant el mercat amb potentíssims

microprocessadors.

- Relé: Dispositiu electromagnètic que funciona com un interruptor controlat per

un circuit elèctric. Aquest interruptor permet activar i desactivar circuits externs

d’alt voltatge. Per tal d’activar i desactivar existeix una bobina al seu interior

que la seva funció és moure una petita placa de ferro de manera que deixi el

circuit obert (no circularà corrent) o circuit tancat (circularà corrent).

- Bit: (Dígit binari) Serveix per codificar informació en un sistema digital. Utilitza

la base binaria per fer les combinacions de bits. De manera que si tenim 2 bits

tindrem 4 combinacions possibles (00,01,10,11). D’aquesta manera disposem

de diferents valors. De manera que 4 bits són 16 valors. Per tant amb qualsevol

nombre de bits obtindrem 2n valors diferents (sent n el nombre de bits).

- Wifi: és el nom que rep el sistema de comunicacions que utilitza ones per

transmetre informació sense la necessitat de fils. També pot ser anomenat

Wirless o bé Wlan.

- Bluetooth: Comunicacions sense fils, que permet una transmissió de veu,

dades entre diferents dispositius. Aquesta transmissió és segura mitjançant un

enllaç de ràdio freqüència.

- Direcció IP: Número que identifica de manera lògica l’enllaç amb un dispositiu

(normalment un ordinador) dins de una xarxa que utilitzi el protocol TCP/IP. La

direcció IP serveix bàsicament per anomenar els diferents ordinadors,

Treball de Recerca Simulador de Presència Jordi Auladell

38   

 

d’aquesta manera només sabent la IP d’un ordinador podrem accedir-hi

mitjançant una xarxa tant sigui local com la xarxa d’Internet.

- Hz: Unitat Internacional del sistema de freqüències que calcula els cicles de

repeticions d’un element per cada segon.

9. Conclusions:

9.1 Conclusions simulador creat:

Després d’estar tant de temps creant el simulador, finalment puc extreure

diferents conclusions.

El fet de crear un programa informàtic m’ha ensenyat indirectament una part

d’aquest món tant gran com és el de la programació amb un llenguatge

informàtic. En el meu cas he utilitzat el llenguatge de visual basic, ja que durant

el meu curs de 1r de Batxillerat vaig utilitzar en part el llenguatge de visual

basic a l’assignatura d’informàtica.

He vist en primera persona com n’és de complicat dissenyar i elaborar un

programa, al principi sembla molt fàcil dir el què vols que faci, però alhora de

realitzar-ho és molt complicat que tot funcioni a la primera versió. D’aquesta

manera veiem que la versió del programa és la 3.1.4, això significa que abans

d’aquesta va haver-hi moltes versions. Amb això vull dir que poc a poc he anat

eliminant els problemes que impedien el bon funcionament del simulador. Per

aquest motiu he entès com les grans multinacionals necessiten tant de temps

per crear programes i tot hi això, a les primeres versions comercials que treuen

solen haver-hi problemes que necessiten arreglar mitjançant actualitzacions.

En definitiva crear un programa m’ha ensenyat com és aquest món fins ara

desconegut per mi, i com és de difícil elaborar un programa i que funcioni

perfectament a la primera, ja que a la meva versió 3.1.4 encara hi ha algun

problema, però les funcions que vull realitzar funcionen correctament.

Treball de Recerca Simulador de Presència Jordi Auladell

39   

 

La forma pràctica (la maqueta), s’ha realitzat de manera satisfactòria i he après

a recrear una simulació de presència.

9.2 Conclusions treball

Després d’estar tant de temps treballant, penso que els diferents objectius

pensats s’han complert de manera satisfactòria. Primerament he après els

diferents conceptes de la domòtica, i més exactament els conceptes relacionats

amb la simulació de presència, un sistema fins en aquests moments poc

utilitzat degut a la seva modernitat i complexitat. S’ha de dir també que ha estat

difícil trobar explicacions i dades de com funcionen els sistemes de simulació i

d’aquesta manera m’ha costat realitzar un programa informàtic sense cap base

ja dissenyada. Penso que el treball l’he realitzat amb èxit ja que gràcies a les

idees de com funcionen els simuladors de presència i també els sistemes

domòtics, la meva pràctica funciona tal com funcionaria un simulador de

presència incorporat en un sistema domòtic.

D’altra banda, la realització d’aquest treball m’ha ensenyat com és el món

informàtic i m’ha deixat veure una petita part del que tracta una enginyeria i

veure com de complexa és. Per tant penso que indirectament aquest treball

m’està orientat el tipus de carrera que voldria fer, ja que l’idea del treball va ser

bàsicament curiositat en aquest gran món de la domòtica i la informàtica junts.

En definitiva, la realització d’aquest treball m’ha agradat bàsicament perquè he

pogut tastar els diferents codis de programació i jugar i provar amb ells fins al

final aconseguir el resultat final. Una vegada tenint el resultat final he après la

lògica que segueixen els codis, de manera que els he pogut entendre.

10. Agraïments:

Vull agrair la col·laboració que he tingut per certes persones al realitzar aquest

treball. Primerament, agrair al meu tutor, Jordi Fontoba tota l’ajuda que m’ha

donat durant aquests mesos per a la realització del treball teòric i els diferents

suggeriments que m’ha donat per tal de donar continuïtat al treball. No ha estat

Treball de Recerca Simulador de Presència Jordi Auladell

40   

 

fàcil degut a la falta de informació dels simuladors, aquesta falta d’informació és

deguda a que els simuladors són un element modern i no gaire utilitzat.

També agrair la col·laboració dels meus pares i la meva germana en donar

continuïtat i buscar solucions a tots els problemes que s’han anat plantejant.

Finalment agrair al meu tiet, Joan Rosell l’ajuda que m’ha donat alhora de

realitzar el programa informàtic, ja que sense ell hauria estat un fracàs.

11. Bibliografia:

- Domòtica

http://es.wikipedia.org/wiki/Dom%C3%B3tica 

http://www.terra.es/tecnologia/articulo/html/tec11197.htm

http://www.electricasas.com/electronica/domotica/informacion/que-necesita-

saber-sobre-los-sistemas-domoticos/

http://noticias.habitaclia.com/wp-content/uploads/2008/06/habitatge-adaptat-

7.jpg

http://es.wikipedia.org/wiki/Intel_4004

www.mmsistemas.es/productos_control_acceso.php

- Alarmes

http://www.alarmasparacasas.com/%C2%BF-como-funciona-una-alarma-

para-el-hogar

- Sistema X10:

http://es.wikipedia.org/wiki/X10

http://www.aaaremotos.com/x10mocoba.html

http://www.aaaremotos.com/faq.html 

http://www.domoticaviva.com/X-10/X-10aparato.htm 

Treball de Recerca Simulador de Presència Jordi Auladell

41   

 

- Elements necessaris:

Font de les imatges:

http://api.ning.com/files/0AQ6CpM4s3vnbMJ1jLwD1MGFZnLeDy5j3GfxyfCf

3mSqrxixi5BMCrs015CvdsYuwjC4ZxCTBpgKLYV0a1pu*wnMMxMCh8zA/in

stalacionordenadornuevo_ordenador.jpg

http://fixcler.files.wordpress.com/2009/02/visual-studio-2005-1600x1200.jpg

http://www.esr.co.uk/velleman/images/k8055.jpg

- Conceptes a conèixer:

Manual complet de la “.dll”

http://www.velleman.eu/downloads/0/user//usermanual_k8055_dll_sp.pdf

- Creació del programa:

He tret molta ajuda de programació de l’ajuda ofereix el programa Visual

Studio.

- Vocabulari:

http://es.wikipedia.org/wiki/Rel%C3%A9

http://es.wikipedia.org/wiki/Intel_Corporation

http://es.wikipedia.org/wiki/Microprocesador

http://es.wikipedia.org/wiki/Bluetooth

http://es.wikipedia.org/wiki/Bit

http://es.wikipedia.org/wiki/Wi-Fi

Treball de Recerca Simulador de Presència Jordi Auladell

42   

 

12. Annex creació del programa

12.1 Creació d’un simulador de presència.

12.1.1 Creació de l’aspecte visual de la finestra principal:

Començarem a crear el programa de control, tot començant creant els botons i labels, introduir els noms als diferents labels i botons per tal de començar anomenar els elements, de manera que a la programació ens sigui més fàcil trobar-los.

En aquest fotograma del programa, podem observar com ja hem introduït diferents botons i dos labels.

El primer botó que s’anomena “Connectar”, la seva funció serà establir connexió entre la targeta i l’ordinador. El següent botó serà el “Desconnectar”, que aquest desconnectarà la targeta i a la vegada desconnectar tots els elements que estiguin connectats.

El botó “Obrir el simulador”, obrirà una nova finestra que ens permetrà activar el simulador, en canvi el botó “Prova manual dels elements”, ens servirà per comprovar el bon funcionament del programa i els seus elements connectats mitjançant una nova finestra.

El botó “Sortir” serveix per tancar el programa

Treball de Recerca Simulador de Presència Jordi Auladell

43   

 

Els dos labels tenen funcions diferents, un ens dirà si la targeta està connectada i l’altre és informatiu, és a dir, ens diu que fa el botó que va acompanyat.

12.1.2. Creació aspecte visual prova elements:

Aquesta finestra ens servirà per comprovar si funcionen realment els elements que tenim connectats a l’ordinador, d’aquesta manera podrem observar si el seu funcionament es òptim per a una bona simulació.

En aquesta finestra observem els cinc elements que utilitzarem en el simulador de presència. Observem que hi ha sis check box, cada check box és cada un dels elements que provarem, excepte l’últim en que utilitzarem dos check box per les persianes. En què un la pujarà i l’altre la baixarà.

Funcionarà de manera que quan cliquem un check box l’element seleccionat es posarà en funcionament al instant.

D’aquesta manera comprovarem el funcionament del sistema i ens assegurarem a que no hi hagi cap error amb els elements externs.

12.1.3 Creació del aspecte visual simulador de presència

A continuació crearem l’aspecte visual del simulador, primerament afegirem els labels, els text boxs, els check boxs, una progress bar i botons.

Treball de Recerca Simulador de Presència Jordi Auladell

44   

 

Aquí veiem el fotograma del simulador de presència. A continuació explicarem quin serà el funcionament de cada element.

- Progress Bar: Situada a l’extrem superior esquerra, ens mostrarà l’estat del simulador. Si la progress bar funciona significarà que la targeta està activa i preparada pel funcionament, si en cas contrari, la progress bar no funciona significa que la targeta està desconnectada.

- Label de l’hora: Aquest label ens mostrarà l’hora del sistema, és a dir, l’hora actual, l’hora real.

- Check Box: Hi ha cinc check box, un per cada element. Funcionarà de manera que quan es seleccioni un element, s’activarà la simulació de presència d’aquest element. Per exemple seleccionem “Llum Menjador”, doncs s’activarà la simulació de presència del llum del menjador quan l’hora del sistema sigui la mateixa que la hora inicial del llum del menjador.

- Botó Netejar: Aquest botó ens netejarà tots els check box, de manera que farà que no en hi hagi cap de seleccionat.

- Botó Tornar: Tancarà el simulador i tornarà a la pantalla inicial.

- Hora inici: En aquests quadres introduirem l’hora d’inici de cada element, desprès es calcularà de forma aleatòria.

Treball de Recerca Simulador de Presència Jordi Auladell

45   

 

- Hora final: En aquest quadre ens apareixerà l’hora que serà desactivat l’element. Aquesta hora es calcularà de forma aleatòria.

- Scroll Bar: Són les barres que apareixen a continuació dels Text Box, és a dir a continuació de l’hora final. Aquestes dues barres serveixen per calcular de forma aleatòria l’hora final com l’hora inicial respectivament.

12.2 Objectes utilitzats:

- Programa de Control / Pantalla Principal:

- Labels (etiquetes):

o lbl_targeta: Ens dirà l’estat en què es trobarà la Targeta (connectada, desconnectada o no detectada).

o lbl_prova: Aquest label simplement ens diu el que fa el botó que l’acompanya, en aquest cas acompanya el botó (Prova manual dels elements).

- Botons:

o Connectar: Aquest botó permet establir connexió entre l’ordinador i la targeta USB.

o Desconnectar: Aquest botó permet tancar la connexió entre l’ordinador i la targeta USB.

o Bto_simulador: Aquest botó obrirà una nova finestra, en el seu interior hi haurà el programa per poder fer la simulació de presència.

o Bto_elements: Aquest botó obrirà una nova finestra, en aquesta finestra podrem provar els elements de forma manual.

o Bto_sortir: Aquest botó tancarà el programa de control, és a dir, tancarà l’aplicació.

- Prova manual dels elements:

- Group Box (grup de caselles):

o Prova: En aquest grup hi hauran tots els check boxs per a les proves d’elements.

- Check Box (casella verificable):

Treball de Recerca Simulador de Presència Jordi Auladell

46   

 

o Chk_menjador: Permet activar i desactivar el llum del menjador.

o Chk_habitacio: Permet activar i desactivar el llum de l’habitació “planta inferior”.

o Chk_radio: Permet activar i desactivar la ràdio.

o Chk_hab2: Permet activar i desactivar el llum de l’habitació “planta superior”

o Chk_persiana: Permet elevar la persiana cap amunt.

o Chk_avall: Permet fer baixar la persiana.

- Botons:

o Bto_tornar: Tanca la finestra i torna cap al programa de control.

- Simulador de presència:

- Labels (etiqueta):

o Lbl_hora: En diu l’hora actual del sistema de l’ordinador.

o Elements: Label orientatiu, acompanya diferents check box.

o Horainici: Label orientatiu, acompanya els diferents textos d’hora d’inici.

o Horafinal: Label orientatiu, acompanya els diferents textos d’hora finalització.

o Inici: Label orientatiu, acompanya els scrolls bar d’inici.

o Final: Label orientatiu, acompanya els scrolls bar de final.

- Check Box (casella verificable):

o Chk_habitacio: Permetrà connectar el simulador del llum de l’habitació PI.

o Chk_menjador: Permetrà connectar el simulador del llum del menjador.

o Chk_radio: Permetrà connectar el simulador de la ràdio.

o Chk_ hab2: Permetrà activar el simulador del llum de l’habitació PS.

o Chk_persiana: Permetrà activar el simulador de la persiana.

Treball de Recerca Simulador de Presència Jordi Auladell

47   

 

- Progress Bar (barra de progrés):

o Estat: Aquesta barra ens mostrarà l’estat de la targeta, si la barra funciona la targeta està connectada, en cas contrari la targeta està desconnectada.

- Text Box (quadre de text):

o Hinicialhab: Veurem l’hora d’inici del llum de l’habitació.

o Hab_final: Veurem l’hora de finalització del llum de l’habitació.

o Hinicialmenj: Veurem l’hora d’inici del llum del menjador.

o Hfinalmenj: Veurem l’hora de finalització del llum del menjador.

o Hinicialradio: Veurem l’hora d’inici de la ràdio.

o Hfinalradio: Veurem l’hora de finalització del llum habitació PS.

o Hinicialhab2: Veurem l’hora d’inici del llum de l’habitació PS.

o Hfinalhab2: Veurem l’hora de finalització del llum habitació PS.

o Hinicialpersiana: Veurem l’hora en que les persianes pujaran.

o Hfinalpersiana: Veurem l’hora en que les persianes baxaran.

- Scroll bar (barra de valors):

o Fbarhab: Dóna valors per al temps de finalització del llum d’habitació.

o Ibarhab: Dóna valors per al temps inicial del llum de l’habitació.

o Fbarmenj: Dóna valors per al temps de finalització del llum del menjador.

o Ibarmenj: Dóna valors per al temps inicial del llum del menjador.

o Fbarrad: Dóna valors per al temps de finalització de la ràdio.

o Ibarrad: Dóna valors per al temps inicial de la ràdio.

o Fbarhab2: Dóna valors per al temps de finalització del llum habitació PS.

o Ibarhab2: Dóna valors per al temps inicial del llum habitació PS.

o Fbarpersiana: Dóna valors per al temps de fer baixar la persiana.

Treball de Recerca Simulador de Presència Jordi Auladell

48   

 

o Ibarpersiana: Dóna valors per al temps de fer pujar la persiana.

- Botons:

o Bto_netejar: Desmarca totes les caselles seleccionades dels checkbox.

o Bto_tornar: Tanca el simulador de presència i torna al programa de control.

12.3 Declaracions/Codis:

Les declaracions són les ordres bàsiques per poder fer funcionar el programa.

12.3.1 Declaracions generals:

En el nostre projecte crearem un element que anomenarem Declaracions com veiem a continuació. Aquí introduirem les declaracions principals que s’utilitzaran a tot el programa, tant la pantalla principal, la prova d’elements i també el simulador de presència.

Com veiem al fotograma de la dreta veiem com hem creat l’apartat Declaracions.vb, al seu interior introduirem les declaracions principals. Per introduir-les introduirem la funció “Public” al davant, d’aquesta manera totes les declaracions funcionaran a tot el projecte.

A l’interior de les declaracions ens apareixeran els codis que volem declarar de forma general. En aquest cas ja veurem comentades amb color verd què fa cada declaració.

Module Declaracions ' Aquí introduirem les declaracions necessàries per tal de fer funcionar tot el programa. ' Per tal de fer funcionar aquestes declaracions a tot el programa posarem l'element Public. ' El nom intervalhab serà un timespan, és a dir representarà un interval de temps en segons. Public intervalhab As TimeSpan ' Ens dona valor al tempsfinalhab1 com a data, aquesta data és en segons. Public tempsfinalhab1 As Date

Treball de Recerca Simulador de Presència Jordi Auladell

49   

 

' El nom intervalinic serà un timespan, és a dir representarà un interval de temps en segons. Public intervalinic As TimeSpan ' El nom intervalmenj1 serà un timespan, és a dir representarà un interval de temps en segons Public intervalmenj1 As TimeSpan ' Ens dona valor al tempsfinalmenj1 com a data, aquesta data és en segons. Public tempsfinalmenj1 As Date ' El nom intervalinicmenj serà un timespan, és a dir representarà un interval de temps en segons. Public intervalinicmenj As TimeSpan ' El nom intervalrad serà un timespan, és a dir representarà un interval de temps en segons Public intervalrad As TimeSpan ' Ens dona valor al tempsfinalrad com a data, aquesta data és en segons. Public tempsfinalrad As Date ' El nom intervalinicrad serà un timespan, és a dir representarà un interval de temps en segons Public intervalinicrad As TimeSpan ' El nom intervalhab2 serà un timespan, és a dir representarà un interval de temps en segons Public intervalhab2 As TimeSpan ' Ens dona valor al tempsfinalhab2 com a data, aquesta data és en segons. Public tempsfinalhab2 As Date ' El nom intervalinichab2 serà un timespan, és a dir representarà un interval de temps en segons Public intervalinichab2 As TimeSpan ' El nom intervalpersiana serà un timespan, és a dir representarà un interval de temps en segons Public intervalpersiana As TimeSpan ' Ens dona valor al tempsfinalpersiana com a data, aquesta data és en segons. Public tempsfinalpersiana As Date ' El nom intervalinicpersiana serà un timespan, és a dir representarà un interval de temps en segons Public intervalinicpersiana As TimeSpan ' Donarem el valor connectat com un Boolean, és a dir només disposarà de dos valors 1 i 0. Public connectat As Boolean ' Funcions de la targeta USB

Treball de Recerca Simulador de Presència Jordi Auladell

50   

 

' Declararem la funció OpenDevice de la k8055.dll, aquesta funció comunicarà l'ordinador amb la targeta. Public Declare Function OpenDevice Lib "k8055d.dll" (ByVal CardAddress As Integer) As Integer ' Declararem la funció Close Device de la k8055.dll, aquesta funció desconnectarà l'ordinador de la targeta. Public Declare Sub CloseDevice Lib "k8055d.dll" () ' Declararem la funció ClearDigitalChannel de la k8055.dll, Public Declare Sub ClearDigitalChannel Lib "k8055d.dll" (ByVal Channel As Integer) ' Declararem la funció SetDigitalChannel de la k8055.dll, aquesta funció activarà el canal digital seleccionat. Public Declare Sub SetDigitalChannel Lib "k8055d.dll" (ByVal Channel As Integer) ' Declararem la funció ClearAllDigital de la k8055.dll, aquesta funció desconnectarà tots els canals. Public Declare Sub ClearAllDigital Lib "k8055d.dll" ()

End Module

Aquestes seran les declaracions generals del nostre programa.

12.3.2 Declaracions i Codis Pantalla principal

Veurem el codi utilitzat i comentat que hem posat a la pantalla principal.

Public Class Principal ' El següent codi servirà per connectar la targeta.

Private Sub bto_connectar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bto_connectar.Click

Dim CardAddress As Integer Dim h As Integer 'Una vegada anomenat la h com a enter i el valor de la cardadress com a enter, un 0. CardAddress = 0 h = OpenDevice(CardAddress) ' Si el valor de la h és 0, en cas el label dirà que està connectada, si el valor és -1 dirà que no ha detectat la targeta. A més a més donarem valor al connectat que era un boolean, si és 0 la progress bar funcionarà, si és -1 la progress bar no funcionarà.

Select Case h Case 0 lbl_targeta.Text = "Targeta Connectada" connectat = True Case -1 lbl_targeta.Text = "Targeta no detectada" connectat = False End Select

Treball de Recerca Simulador de Presència Jordi Auladell

51   

 

End Sub

' Aquest codi serveix per desconnectar la targeta i a al vegada desconnectar tots els elements que estiguin connectats Private Sub bto_desconnectar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bto_desconnectar.Click ' Tanca la targeta i els elements, també ens diu que la targeta està desconnectada en un label. ClearAllDigital() CloseDevice() lbl_targeta.Text = "Targeta Desconnectada"

End Sub

' Al clicar sobre el botó de Prova d'elements s'obrirà una nova finestra. Private Sub bto_elements_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bto_elements.Click provadelselements.Show()

End Sub

' Al clicar sobre simulador s'obrirà una nova finestra Private Sub bto_simulador_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bto_simulador.Click simulador.Show()

End Sub

' Direm que el valor al engegar la pantalla principal del connectat serà false, és a dir 0, un cop connectat ja canviarà l'estat. Private Sub Principal_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load connectat = False

End Sub

' Aquesta funció serveix per tancar el programa, i a la vegada desconnectar la targeta Private Sub bto_sortir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bto_sortir.Click End End Sub

End Class

Treball de Recerca Simulador de Presència Jordi Auladell

52   

 

12.3.3 Declaracions i Codis Prova elements

A continuació veurem el codi comentat i utilitzat a la pantalla de prova d’elements.

Public Class provadelselements ' Si el requadre del llum de l'habitació està marcat el llum estarà encès, si no està marcat el llum estarà apagat. Private Sub chk_habitacio_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chk_habitacio.CheckedChanged ClearDigitalChannel(1) If chk_habitacio.Checked = True Then SetDigitalChannel(1) End If End Sub ' Si el requadre del llum del menjador està marcat el llum estarà encès, si no està marcat el llum estarà apagat. Private Sub chk_menjador_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chk_menjador.CheckedChanged ClearDigitalChannel(2) If chk_menjador.Checked = True Then SetDigitalChannel(2) End If End Sub ' Si el requadre del la ràdio està marcat la ràdio estarà encesa, si no està marcat estarà apagada Private Sub chk_radio_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chk_radio.CheckedChanged ClearDigitalChannel(3) If chk_radio.Checked = True Then SetDigitalChannel(3) End If End Sub ' Si el requadre del llum de l’habitació està marcat el hab2 funcionarà, si no està marcat el hab2 estarà apagat. Private Sub chk_hab2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chk_jardi.CheckedChanged ClearDigitalChannel(4) If chk_hab2.Checked = True Then SetDigitalChannel(4) End If End Sub ' Si el requadre de la persiana està marcat, la persiana pujarà, sinó està marcat la persiana no pujarà.

Treball de Recerca Simulador de Presència Jordi Auladell

53   

 

Private Sub chk_persiana_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chk_persiana.CheckedChanged ClearDigitalChannel(7) If chk_persiana.Checked = True Then SetDigitalChannel(7) End If End Sub ' Si el requadre de la persiana està marcat, la persiana baixarà, sinó està marcat la persiana no baixarà. Private Sub Chk_avall_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chk_avall.CheckedChanged ClearDigitalChannel(8) If chk_avall.Checked = True Then SetDigitalChannel(8) End If End Sub ' Serveix per tancar la finestra de la proba dels elements, i a al vegada desconnectar tots els elements connectats. Private Sub bto_tornar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bto_tornar.Click ClearAllDigital() Me.Close() End Sub

End Class

12.3.4 Declaracions i codis simulador de presència:

Seguidament veurem el codi utilitzat per tal de fer funcionar el programa i ens simuli la simulació de presència.

Public Class simulador ' Quan s'executi la finestra Simulador, es carregaran els següents codis de forma automàtica. Private Sub simulador_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 'Decalarem hhinicialhab, hhinicialmenj, hhinicialrad, hhinicialhab2, hhinicialpersiana com a data, aquesta data estarà calculada amb segons. Dim hhinicialhab As Date Dim hhinicialmenj As Date Dim hhinicialrad As Date Dim hhinicialhab2 As Date Dim hhinicialpersiana As Date

Treball de Recerca Simulador de Presència Jordi Auladell

54   

 

' La hhinicialhab serà el resultat del hinicialhab.text convertida en hores, aquesta hora seran eliminats els segons. hhinicialhab = CDate(hinicialhab.Text & ":00") ' L'intervalhab serà la representació del temps de la fbarhab "scrollbar" convertida en minuts. intervalhab = TimeSpan.FromMinutes(fbarhab.Value) ' La hhinicialmenj serà el resultat del hinicialmenj.text convertida en hores, aquesta hora seran eliminats els segons. hhinicialmenj = CDate(hinicialmenj.Text & ":00") ' L'intervalmenj1 serà la representació del temps de la fbarmenj "scrollbar" convertida en minuts. intervalmenj1 = TimeSpan.FromMinutes(fbarmenj.Value) ' La hhinicialrad serà el resultat del hinicialradio.text convertida en hores, aquesta hora seran eliminats els segons. hhinicialrad = CDate(hinicialradio.Text & ":00") ' L'intervalrad serà la representació del temps de la fbarrad "scrollbar" convertida en minuts. intervalrad = TimeSpan.FromMinutes(fbarrad.Value) ' La hhinicialhab2 serà el resultat del hinicialhab2.text convertida en hores, aquesta hora seran eliminats els segons. Hhinicialhab2 = CDate(hinicialhab2.Text & ":00") ' L'intervalhab2 serà la representació del temps de la fbarhab2 "scrollbar" convertida en minuts. Intervalhab2 = TimeSpan.FromMinutes(fbarhab2.Value) ' La hhinicialpersiana serà el resultat del hinicialpersiana.text convertida en hores, aquesta hora seran eliminats els segons. hhinicialpersiana = CDate(hinicialpersiana.Text & ":00") ' L'intervalpersiana serà la representació del temps de la fbarpersiana "scrollbar" convertida en minuts. intervalpersiana = TimeSpan.FromMinutes(fbarpersiana.Value) End Sub

' Aquesta funció ens permetra activar el llum de l'habitació PI en un temps marcat aleatòriament Private Sub timhab1_Tick(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles timhab1.Tick ' Declararem hhinicial com a una data, aquesta data estarà definida en segons. Dim hhinicialhab As Date ' El lbl_hora serà representada l'hora actual del sistema amb una cadena llarga, és a dir hora, minuts i segons. lbl_hora.Text = Date.Now.ToLongTimeString ' Si el checkbox de l'habitació està seleccionat realitzarà la següent ordre, sinó ho està no farà res. If chk_habitacio.Checked = True Then ' Si l'hora del sistema, és a dir l'hora del lbl_hora és igual que l'hora del hinicialhab llavors * If Date.Now.ToLongTimeString = (hinicialhab.Text & ":00") Then ' * El temps finalhab1 serà l'hora actual més el valor de l'intervalhab (Valor scrollbar) tempsfinalhab1 = Date.Now + intervalhab ' Activa la sortida número 1 digital de la targeta.

Treball de Recerca Simulador de Presència Jordi Auladell

55   

 

SetDigitalChannel(1) ' Anomanarem value com un nombre enter, aquest nombre enter serà un nombre aleatori entre el 0 i el 90. Dim value As Integer = CInt(Int((90 * Rnd()) + 1)) ' El valor de la fbarhab (scrollbar) serà el value. fbarhab.Value = value ' Amb aquesta ordre s'intentarà realitzar la següent ordre, en cas que falli donarà un error. Try ' hhinicialhab serà el valor de hinicialhab.text convertida en hores sense els segons. hhinicialhab = CDate(hinicialhab.Text & ":00") ' L'intervalhab serà el valor del interval de la scrollbar "fbarhab" intervalhab = TimeSpan.FromMinutes(fbarhab.Value) ' El tempsfinalhab serà la suma del valor hhinicialhab més l'intervalhab tempsfinalhab1 = hhinicialhab + intervalhab ' En el requadre temps finalhab1 ens apareixerà el valor del temps final passat en hores i format HH:MM. hab_final.Text = Mid(tempsfinalhab1.TimeOfDay.ToString, 1, 5) ' En vas que falli l'operació apareixerà l'error de valor incorrecte Catch ex As Exception MsgBox("Valor incorrecte", MsgBoxStyle.Exclamation) End Try End If End If ' Si en aquests l'hora del sistema és la mateixa que apareix en el requadre de hab_final llavors *. If Date.Now.ToLongTimeString = (hab_final.Text & ":00") Then ' * Desactiva la sortida digital número 1 de la targeta. ClearDigitalChannel(1) ' ( El següent codi ens permetrà canviar l'hora d'inici del simulador de forma aleatòria i automàtica). ' També introdueix en el text hinicialhab una hora determinada en aquest cas 16:00. hinicialhab.Text = "16:00" ' Per a value és un nombre enter, fés un nombre aleatori entre el 0 i el 30. Dim value As Integer = CInt(Int((30 * Rnd()) + 1)) ' El valor value serà el valor que ens donarà la scroll bar (ibarhab). ibarhab.Value = value ' Declararem horahabinicial com una data, aquesta data estarà en segons. Dim horahabinicial As Date ' El valor de horahabinicial serà el valor introduït en el text hinicialhab sense tenir presents els segons. horahabinicial = CDate(hinicialhab.Text & ":00") ' Declararem que el intervalinic serà un interval agafat de la barra ibarhab "scroll bar" intervalinic = TimeSpan.FromMinutes(ibarhab.Value) ' horahabinicial serà la suma del valor introduït en el text hinicialhab més el valor de la ibarhab (scroll bar). horahabinicial = horahabinicial + intervalinic

Treball de Recerca Simulador de Presència Jordi Auladell

56   

 

' En el text hinicialhab ens apareixerà el valor de horahabinicial passat a hores. hinicialhab.Text = Mid(horahabinicial.TimeOfDay.ToString, 1, 5) End If End Sub

 

' Aquesta funció ens permetrà activar el llum del menjador en un temps marcat aleatòriament Private Sub timmenj_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timmenj.Tick ' Declararem hhinicial com a una data, aquesta data estarà definida en segons. Dim hhinicialmenj As Date ' El lbl_hora serà representada l'hora actual del sistema amb una cadena llarga, és a dir hora, minuts i segons. lbl_hora.Text = Date.Now.ToLongTimeString ' Si el checkbox del menjador està seleccionat realitzarà la següent ordre, sinó ho està no farà res. If chk_menjador.Checked = True Then ' Si l'hora del sistema, és a dir l'hora del lbl_hora és igual que l'hora del hinicialmenj llavors * If Date.Now.ToLongTimeString = (hinicialmenj.Text & ":00") Then ' * El temps finalmenj1 serà l'hora actual més el valor de l'intervalmenj1 (Valor scrollbar) tempsfinalmenj1 = Date.Now + intervalmenj1 ' Activa la sortida número 2 digital de la targeta. SetDigitalChannel(2) ' Declararem value com un nombre enter, aquest nombre enter serà un nombre aleatori entre el 0 i el 120. Dim value As Integer = CInt(Int((120 * Rnd()) + 1)) ' El valor de value serà el valor que tingui la fbarmenj (scroll bar). fbarmenj.Value = value ' El següent ordre s'intentarà en cas que no funcioni apareixerà un error. Try ' hhinicial serà el valor passat a data del hinicialmenj.text. hhinicialmenj = CDate(hinicialmenj.Text & ":00") ' intervalmenj1 serà el valor de la fbarmenj (scrollbar). intervalmenj1 = TimeSpan.FromMinutes(fbarmenj.Value) ' tempsfinalmenj1 serà la suma del valor actual de hhinicialmenj més el valor de l'intervalmenj1 tempsfinalmenj1 = hhinicialmenj + intervalmenj1 ' En el text hfinalmenj apareixerà el valor passat a hores del tempsfinalmenj1. hfinalmenj.Text = Mid(tempsfinalmenj1.TimeOfDay.ToString, 1, 5) ' En cas que s'introdueixi un valor incorrecte apareixerà un error dient valor incorrecte. Catch ex As Exception MsgBox("Valor incorrecte", MsgBoxStyle.Exclamation) End Try End If End If

Treball de Recerca Simulador de Presència Jordi Auladell

57   

 

' Si la l'hora actual és la mateixa que apareix en el hfinalmenj.text llavors *. If Date.Now.ToLongTimeString = (hfinalmenj.Text & ":00") Then ' * Neteja el canal digital 2. ClearDigitalChannel(2) ' Introdueix en el text hinicialmenj el valor 20:00. hinicialmenj.Text = "20:00" ' Per a value serà un nombre enter aleatori entre el 0 i el 30. Dim value As Integer = CInt(Int((30 * Rnd()) + 1)) ' El valor value apareixerà de la barra ibarmenj (scroll bar). ibarmenj.Value = value ' Declararem horamenjinicial com una data. Dim horamenjinicial As Date ' horamenjinicial serà el valor de hinicialmenj passat en data horamenjinicial = CDate(hinicialmenj.Text & ":00") ' El intervalinicmenj serà el valor de ibarmenj (scroll bar) intervalinicmenj = TimeSpan.FromMinutes(ibarmenj.Value) ' hormanejinicial serà la suma de horamenjinicial ( valor text) més el intervalinicmenj horamenjinicial = horamenjinicial + intervalinicmenj ' En el text hinicialmenj apareixerà el valor de horamenjinicial passat a hores. hinicialmenj.Text = Mid(horamenjinicial.TimeOfDay.ToString, 1, 5) End If End Sub

' Aquesta funció ens permetrà activar la ràdio del menjador en un temps marcat aleatòriament. Private Sub timrad_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timrad.Tick ' Declararem hhinicialrad com una data Dim hhinicialrad As Date ' En el lbl_hora apareixerà l'hora actual del sistema lbl_hora.Text = Date.Now.ToLongTimeString ' Si el check box de la ràdio està activat llavors realitzarà la següent sinó no està activat no realitzarà res. If chk_radio.Checked = True Then ' Si l'hora actual del sistema és la mateixa que l'hora del text hinicialradio llavors *. If Date.Now.ToLongTimeString = (hinicialradio.Text & ":00") Then ' * El temps final serà la suma de la data actual més el valor de l'intervalrad. tempsfinalrad = Date.Now + intervalrad ' També activarà la sortida número 3 digital de la targeta. SetDigitalChannel(3) ' Per el valor value serà un nombre enter aleatori entre el 0 i el 120. Dim value As Integer = CInt(Int((120 * Rnd()) + 1)) ' El valor value en vindrà donat pel valor que hi hagi en la fbarrad (scroll bar). fbarrad.Value = value ' Amb la següent ordre intentarà realitzar una acció, si l'acció no és realitzada apareixerà un error. Try ' hhinicial serà el valor donat per el text hinicialradio en temps. hhinicialrad = CDate(hinicialradio.Text & ":00")

Treball de Recerca Simulador de Presència Jordi Auladell

58   

 

' Intervalrad serà el valor que hi haurà en la fbarrar (scroll bar). intervalrad = TimeSpan.FromMinutes(fbarrad.Value) ' El tempsfinalrad serà la suma de el valor hhinicialrad més el valor de l'intervalrad. tempsfinalrad = hhinicialrad + intervalrad ' El tempsfinalrad serà representat al text hfinalradio amb un valor de hores i minuts. hfinalradio.Text = Mid(tempsfinalrad.TimeOfDay.ToString, 1, 5) ' En cas que s'hagi introduït un valor incorrecte desprès sortirà un error dient "valor incorrecte" Catch ex As Exception MsgBox("Valor incorrecte", MsgBoxStyle.Exclamation) End Try End If End If ' Si l'hora actual del sistema coincideix en la hora del text hfinalradio llavors *. If Date.Now.ToLongTimeString = (hfinalradio.Text & ":00") Then ' * Desactiva la sortida número 3 digital de la targeta. ClearDigitalChannel(3) ' Escriu el valor 10:30 en el text hinicialradio. hinicialradio.Text = "10:30" ' Per el valor value serà un nombre enter entre el 0 i el 30 de forma aleatòria. Dim value As Integer = CInt(Int((30 * Rnd()) + 1)) ' EL valor value ens vindrà donat per el valor que hi hagi a la ibarrad (scroll bar) ibarrad.Value = value ' Declararem horaradinicial com a data Dim horaradinicial As Date ' Direm que l'horradinicial serà el valor que hi ha dins del text hinicialradio horaradinicial = CDate(hinicialradio.Text & ":00") ' L'intervalinicrad serà el valor que ens donarà la ibarrad (scroll bar). intervalinicrad = TimeSpan.FromMinutes(ibarrad.Value) ' L'horaradinicial serà la suma de l'horaradinicial del text més l'intervalinicrad. horaradinicial = horaradinicial + intervalinicrad ' El valor de l'horaradinicial sortirà en forma de hores i minuts en el text hinicialradio. hinicialradio.Text = Mid(horaradinicial.TimeOfDay.ToString, 1, 5) End If End Sub

' Aquesta funció ens permetra activar el llum habitació PS en un temps marcat aleatòriament. Private Sub timhab2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timhab2.Tick ' Declararem hhinicialhab2 com a data Dim hhinicialhab2 As Date ' El lbl_hora apareixerà l'hora actual del sistema

Treball de Recerca Simulador de Presència Jordi Auladell

59   

 

lbl_hora.Text = Date.Now.ToLongTimeString ' Si el check box de hab2 està activat realitzarà les següents instruccions, en cas que estigui desactivat no farà res. If chk_hab2.Checked = True Then ' Si en aquests moments l'hora del sistema és la mateixa que l'hora del text hinicialhab2 llavors *. If Date.Now.ToLongTimeString = (hinicialhab2.Text & ":00") Then ' * El tempsfinalhab2 serà l'hora actual més l'intervalhab2 tempsfinalhab2 = Date.Now + intervalhab2 ' Activa la sortida digital número 4 de la targeta. SetDigitalChannel(4) ' El valor value serà un nombre enter entre el 0 i el 100, aquest número serà aleatori. Dim value As Integer = CInt(Int((100 * Rnd()) + 1)) ' El valor value ve donar del valor de la fbarhab2 (scroll bar). fbarhab2.Value = value ' Intenta realitzar les següents ordres, sinó pot ens sortirà un error. Try ' El valor hhinicialhab2 és el valor del text hinicialhab2 hhinicialhab2 = CDate(hinicialhab2.Text & ":00") ' El valor intervalhab2 vindrà donat del valor que tingui fbarhab2 (scroll bar). intervalhab2 = TimeSpan.FromMinutes(fbarhab2.Value) ' El tempsfinalhab2 serà la suma del intervalhab2 més hhinicialhab2. tempsfinalhab2 = hhinicialhab2 + intervalhab2 ' En el text hfinalhab2 sortirà escrit el tempsfinalhab2 escrit en hores i minuts. hfinalhab2.Text = Mid(tempsfinalhab2.TimeOfDay.ToString, 1, 5) 'Si existeix un error al escriure un número sortirà un error dient valor incorrecte. Catch ex As Exception MsgBox("Valor incorrecte", MsgBoxStyle.Exclamation) End Try End If End If ' Si l'hora actual del sistema correspon a l'hora del text hfinalhab2 llavors*. If Date.Now.ToLongTimeString = (hfinalhab2.Text & ":00") Then ' * Desactiva la sortida número 4 digital de la targeta. ClearDigitalChannel(4) ' Escriu al text hinicialhab2 l'hora 11:30. hinicialhab2.Text = "11:30" ' Per a value necessitarem fer un nombre aleatori entre el 0 i el 30. Dim value As Integer = CInt(Int((30 * Rnd()) + 1)) ' El valor value vindrà donat amb un número enter de la ibarhab2 (scroll bar) ibarhab2.Value = value ' Declararem que l'horainicialhab2 és una data. Dim horainicialhab2 As Date

Treball de Recerca Simulador de Presència Jordi Auladell

60   

 

' Direm que l'horainicialhab2 serà el valor de l'hinicialhab2 convertit en data. horainicialhab2 = CDate(hinicialhab2.Text & ":00") 'L'intervalinichab2 serà el valor de la ibarhab2 (scrollbar) intervalinichab2 = TimeSpan.FromMinutes(ibarhab2.Value) ' L'horainicialhab2 serà la suma del valor del text i del intervalinichab2. horainicialhab2 = horainicialhab2 + intervalinichab2 ' El valor de horainicialhab2 s'escriurà en forma d'hores i minuts en el text hinicialhab2. hinicialhab2.Text = Mid(horainicialhab2.TimeOfDay.ToString, 1, 5) End If End Sub

' Aquesta funció ens permetrà activar la persiana en un temps marcat aleatòriament. Private Sub timpersiana_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timpersiana.Tick ' Declararem hhinicialpersiana com a data Dim hhinicialpersiana As Date ' El lbl_hora hi haurà l'hora del sistema lbl_hora.Text = Date.Now.ToLongTimeString ' Si el check box de la persiana està activat funcionarà el següent codi, en cas que estigui desactivat no farà res. If chk_persiana.Checked = True Then ' Si l'hora actual del sistema és igual que l'hora del text hinicialpersiana llavors *. If Date.Now.ToLongTimeString = (hinicialpersiana.Text & ":00") Then ' * El tempsfinalpersiana serà l'hora actual més l'intervalpersiana. tempsfinalpersiana = Date.Now + intervalpersiana 'S'activarà el canal digital de la targeta número 7. SetDigitalChannel(7) ' Es desactivarà el canal digital de la targeta número 8. ClearDigitalChannel(8) ' El valor value serà un nombre enter amb un nombre màxim de 900 i mínim de 780. Dim value As Integer = CInt(Int((900 - 780 + 1) * Rnd() + 780)) ' El valor value vindrà donat per la fbarpersiana (scroll bar) fbarpersiana.Value = value ' Intenta realitzar el següent codi, en cas contrari mostra un error. Try ' hhinicialpersiana serà el valor del text hinicialpersiana. hhinicialpersiana = CDate(hinicialpersiana.Text & ":00") ' intervalpersiana serà el valor donat per la fbarpersiana (scroll bar) intervalpersiana = TimeSpan.FromMinutes(fbarpersiana.Value) ' El tempsfinalpersiana serà el valor de la suma del interavalpersiana més hhinicialpersiana. tempsfinalpersiana = hhinicialpersiana + intervalpersiana ' En el text hfinalpersiana ens apareixerà en forma de hores i minuts el valor del tempsfinalpersiana.

Treball de Recerca Simulador de Presència Jordi Auladell

61   

 

hfinalpersiana.Text = Mid(tempsfinalpersiana.TimeOfDay.ToString, 1, 5) ' En cas de no poder realitzar-ho apareix un error dient valor incorrecte. Catch ex As Exception MsgBox("Valor incorrecte", MsgBoxStyle.Exclamation) End Try End If End If ' Si l'hora actual del sistema correspon al text hfinalpersiana llavors *. If Date.Now.ToLongTimeString = (hfinalpersiana.Text & ":00") Then ' * Desactiva el canal digital número 7 de la targeta. ClearDigitalChannel(7) ' Activa el canal digital número 9 de la targeta. SetDigitalChannel(8) ' Introdueix l'hora 8:28 en el text hinicialpersiana. hinicialpersiana.Text = "8:28" ' El valor value és un enter, aquest enter serà un nombre aleatori entre el 0 i el 30. Dim value As Integer = CInt(Int((30 * Rnd()) + 1)) ' El valor value vindrà donat de la ibarpersiana (scroll bar). ibarpersiana.Value = value ' Declararem horapersianainicial una data. Dim horapersianainicial As Date ' horapersianainicial serà una data agafada del text hinicialpersiana. horapersianainicial = CDate(hinicialpersiana.Text & ":00") ' L'intervalinicpersiana serà el valor agafat de la ibarpersiana (scroll bar) intervalinicpersiana = TimeSpan.FromMinutes(ibarpersiana.Value) ' horapersianainicial serà la suma de l'horapersianainicial agafada del text més la del intervalinicpersiana. horapersianainicial = horapersianainicial + intervalinicpersiana ' L'horapersianainicial serà escrita en forma d'hores i minuts al text hinicialpersiana. hinicialpersiana.Text = Mid(horapersianainicial.TimeOfDay.ToString, 2, 4) End If End Sub

' El següent codi ens permet mitjançant la Scroll Bar, moure el temps final del llum de l'habitació, és a dir, d'un temps establert anomenat x al moure la barra el resultat serà x+k. Sent k una variable, és a dir el valor de la scroll bar. Private Sub barhab_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles fbarhab.Scroll Dim hhinicialhab As Date hhinicialhab = CDate(hinicialhab.Text & ":00") intervalhab = TimeSpan.FromMinutes(fbarhab.Value) tempsfinalhab1 = hhinicialhab + intervalhab

Treball de Recerca Simulador de Presència Jordi Auladell

62   

 

hab_final.Text = Mid(tempsfinalhab1.TimeOfDay.ToString, 1, 5) End Sub ' El següent codi ens permet mitjançant la Scroll Bar, moure el temps final del llum del menjador, és a dir, d'un temps establert anomenat x al moure la barra el resultat serà x+k. Sent k una variable, és a dir el valor de la scroll bar. Private Sub barmenj1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles fbarmenj.Scroll Dim hhinicialmenj As Date hhinicialmenj = CDate(hinicialmenj.Text & ":00") intervalmenj1 = TimeSpan.FromMinutes(fbarmenj.Value) tempsfinalmenj1 = hhinicialmenj + intervalmenj1 hfinalmenj.Text = Mid(tempsfinalmenj1.TimeOfDay.ToString, 1, 5) End Sub ' El següent codi ens permet mitjançant la Scroll Bar, moure el temps final de la ràdio, és a dir, d'un temps establert anomenat x al moure la barra el resultat serà x+k. Sent k una variable, és a dir el valor de la scroll bar. Private Sub fbarrad_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles fbarrad.Scroll Dim hhinicialrad As Date hhinicialrad = CDate(hinicialradio.Text & ":00") intervalrad = TimeSpan.FromMinutes(fbarrad.Value) tempsfinalrad = hhinicialrad + intervalrad hfinalradio.Text = Mid(tempsfinalrad.TimeOfDay.ToString, 1, 5) End Sub ' El següent codi ens permet mitjançant la Scroll Bar, moure el temps final del hab2, és a dir, d'un temps establert anomenat x al moure la barra el resultat serà x+k. Sent k una variable, és a dir el valor de la scroll bar. Private Sub fbarhab2_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles fbarhab2.Scroll Dim hhinicialhab2 As Date Hhinicialhab2 = CDate(hinicialhab2.Text & ":00") Intervalhab2 = TimeSpan.FromMinutes(fbarhab2.Value) Tempsfinalhab2 = hhinicialhab2 + intervalhab2 Hfinalhab2.Text = Mid(tempsfinalhab2.TimeOfDay.ToString, 1, 5) End Sub ' El següent codi ens permet mitjançant la Scroll Bar, moure el temps final de la persiana, és a dir, d'un temps establert anomenat x al moure la barra el resultat serà x+k. Sent k una variable, és a dir el valor de la scroll bar. Private Sub fbarpersiana_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles fbarpersiana.Scroll Dim hhinicialpersiana As Date hhinicialpersiana = CDate(hinicialpersiana.Text & ":00") intervalpersiana = TimeSpan.FromMinutes(fbarpersiana.Value) tempsfinalpersiana = hhinicialpersiana + intervalpersiana hfinalpersiana.Text = Mid(tempsfinalpersiana.TimeOfDay.ToString, 1, 5)

Treball de Recerca Simulador de Presència Jordi Auladell

63   

 

End Sub

' Permet tancar la finestra del simulador de presència Private Sub bto_tornar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bto_tornar.Click Me.Close() End Sub ' Visualitza la barra per tal de saber l'estat de la targeta Private Sub tbarra_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tbarra.Tick ' Si l'estat del connectat és igual a 1, la barra començarà a desplaçar-se, en cas contrari la barra no farà res. If connectat Then If estat.Value = estat.Maximum Then estat.Value = 0 estat.Value = estat.Value + 1 Else estat.Value = 0 End If End Sub ' Neteja els checkboxs ' Si un està seleccionat llavors al clicar el botó el desseleccionarà. Private Sub bto_neteja_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bto_neteja.Click If chk_habitacio.Checked = True Then chk_habitacio.Checked = False End If If chk_menjador.Checked = True Then chk_menjador.Checked = False End If If chk_radio.Checked = True Then chk_radio.Checked = False End If If chk_hab2.Checked = True Then chk_hab2.Checked = False End If If chk_persiana.Checked = True Then chk_persiana.Checked = False End If End Sub

' El següent codi ens permet mitjançant la Scroll Bar, moure el temps inicial de la persiana, és a dir, d'un temps establert anomenat x al moure la barra el resultat serà x+k. Sent k una variable, és a dir el valor de la scroll bar. Private Sub ibarpersiana_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ibarpersiana.Scroll hinicialpersiana.Text = "8:30"

Treball de Recerca Simulador de Presència Jordi Auladell

64   

 

Dim horapersianainicial As Date horapersianainicial = CDate(hinicialpersiana.Text & ":00") intervalinicpersiana = TimeSpan.FromMinutes(ibarpersiana.Value) horapersianainicial = horapersianainicial + intervalinicpersiana hinicialpersiana.Text = Mid(horapersianainicial.TimeOfDay.ToString, 2, 4) End Sub End Class

12.4 Propietats del simulador de presència creat:

El simulador de presència que he dissenyat, permet utilitzar 5 elements externs. Tres llums, una ràdio i finalment unes persianes. Aquests elements són orientatius per tal de poder recrear una simulació de presència completa. Els llums permeten fer veure que hi ha un moviment, és a dir que s’encenen llums a la casa. La ràdio permet crear soroll d’aquesta manera sembla que estigui habitada. Finament les persianes en que pugen al matí i baixen al vespre.

Primerament tenim una pantalla principal, en que en el seu interior podem connectar la targeta i desconnectar-la. També podem provar els elements en una nova finestra o bé obrir el simulador en una altra finestra.

A la finestra de prova d’elements és senzill d’utilitzar, només necessitem tenir la targeta connectada amb l’ordinador i desprès clicar sobre l’element que volem que s’activi, per desactivar-lo s’ha de clicar novament en ell. Al sortir de la finestra de prova d’elements tots els elements es desactivaran de forma automàtica.

Una vegada a l’interior de la finestra del simulador de presència observem diferents caselles, les primeres ens permeten seleccionar quins elements volem activar i d’aquesta manera quan sigui l’hora els elements s’iniciaran de forma automàtica. Prèviament hem de tenir connectada la targeta, ho sabrem mirant la barra de dalt a l’esquerra si hi ha unes barres petites verdes que funcionen significa que està connectada, en cas que no hi siguin significarà que no està connectada.

He dissenyat el programa amb 5 elements però en realitat utilitzem 6 sortides digitals. La primera sortida pel llum de l’habitació, la segona pel llum del

Treball de Recerca Simulador de Presència Jordi Auladell

65   

 

menjador, la tercera per la ràdio, la quarta pel llum de l’habitació Planta superior. He utilitzat dues sortides per les persianes les sortides 7 i 8. Ho he fet bàsicament per utilitzar la sortida 7 per fer pujar les persianes de manera que quan arribi al final, és a dir a dalt de tot el motor es pari amb un interruptor de final de carrera. De la mateixa manera funciona al baixar en que la sortida 7 es desactivarà i s’activarà la sortida 8, que permetrà fer baixar la persiana i quan arribi a baix de tot es pararà amb un altre final de carrera.

La gràcia d’aquest programa és que l’usuari només ha de clicar els check box, d’aquesta manera és molt fàcil d’utilitzar-lo i qualsevol persona el podria fer servir. Bàsicament perquè les hores estan establertes pel creador,en aquest cas jo. He comprovat que una variació d’una hora podria fer que un element no funcionés correctament, d’aquesta manera és millor utilitzar el simulador genèric que he dissenyat. Un exemple clar és la persiana, en que s’iniciarà sempre al matí abans de les 10:00, i s’abaixarà abans de les 23:59 hores.

12.5 Maqueta del simulador

Juntament amb el programa, he creat una petita maqueta d’una casa. Aquesta maqueta s’observarà com s’encendran els tres llums “Menjador, Planta inferior, Planta superior” i externament veurem un petit motor que simularà el funcionament de les persianes i una ràdio per tal de crear soroll.

La maqueta ha estat creada gràcies a les peces del Exin Castillos, d’aquesta manera ha estat més fàcil poder crear la maqueta.

Per tal de connectar els cables, s’han necessitat tres relés, dos per dos motors “un funció amunt i l’altra funció avall” i l’altra per encendre una ràdio. Els llums interiors són leds. Estan connectats de manera que hi ha una font de corrent externa de 9V connectada a la targeta, d’aquesta manera la targeta permet el pas del corrent quan les sortides són activades.

Seguidament veurem imatges de la maqueta amb la targeta USB al seu interior.

Treball de Recerca Simulador de Presència Jordi Auladell

66   

 

Vista des de dalt, observem a l’esquerra la plana superior i a la dreta la inferior amb la targeta USB.

Vista lateral, observem la planta superior i la planta inferior.

Treball de Recerca Simulador de Presència Jordi Auladell

67   

 

Vista frontal de la maqueta acabada, al realitzar la simulació s’encenen i s’apaguen els llums, la ràdio i el motor estan col·locats externament. La targeta

està al seu interior.

Treball de Recerca Simulador de Presència Jordi Auladell

68   

 

13. Annex

13.1 Prova efectuada abans de la creació

Abans de realitzar el programa, ha estat convenient realitzar una petita prova. L’he realitzat per provar el funcionament de la placa i del visual basic en general, d’aquesta manera he acabat d’entendre com funciona tot realment.

13.1.1 Explicació del codi:

Public Class Form1 'Llibreria de funcions de la targeta Private Declare Function OpenDevice Lib "k8055d.dll" (ByVal CardAddress As Integer) As Integer 'Declara que la funció OpenDevice és un enter, aquesta funció obre l’enllaç entre el programa i la targeta. Private Declare Sub CloseDevice Lib "k8055d.dll" () 'Declara un procediment el Close Device, ens vol dir que aquest procediment tanca l’enllaç amb la tarjeta. Private Declare Function ReadAnalogChannel Lib "k8055d.dll" (ByVal Channel As Integer) As Integer 'Aquesta funció permet llegir l’estat d’un canal d’entrada. Per llegir per exemple el canal 1, seria readanalogchannel(1). Private Declare Sub ReadAllAnalog Lib "k8055d.dll" (ByRef Data1 As Integer, ByRef Data2 As Integer) 'Aquest procediment llegeix l’estat dels dos canals analògics d’entrada. Private Declare Sub OutputAnalogChannel Lib "k8055d.dll" (ByVal Channel As Integer, ByVal Data As Integer) 'Aquest procediment ajusta el canal de sortida segons el valor que vols assignar la sortida, primer has d’assenyalar el canal i desprès el valor de les dades. Private Declare Sub OutputAllAnalog Lib "k8055d.dll" (ByVal Data1 As Integer, ByVal Data2 As Integer) 'Aquest procediment engloba els dos canals de sortida segons les dades donades en el data1 i el data2. Private Declare Sub ClearAnalogChannel Lib "k8055d.dll" (ByVal Channel As Integer) 'Aquest procediment posa el canal de sortida amb el mínim valor, és a dir l’atura. Private Declare Sub SetAllAnalog Lib "k8055d.dll" () 'Aquest procediment posa els dos canals analògics de sortida al màxim valor de dades, és a dir estan funcionant al màxim. Private Declare Sub ClearAllAnalog Lib "k8055d.dll" () 'Aquest procediment deixa totalment apagats els dos canals de sortida. Private Declare Sub SetAnalogChannel Lib "k8055d.dll" (ByVal Channel As Integer) 'Aquest prodeciment posa el canal de sortida marcat previament al màxim. Private Declare Sub WriteAllDigital Lib "k8055d.dll" (ByVal Data As Integer) 'Aquest procediment ajusta les sortides digitals segons les dades. Private Declare Sub ClearDigitalChannel Lib "k8055d.dll" (ByVal Channel As Integer) 'Aquest procediment borra les dades del canal de sortida determinat Private Declare Sub ClearAllDigital Lib "k8055d.dll" ()

Treball de Recerca Simulador de Presència Jordi Auladell

69   

 

'Aquest procediment borra tots els canals de sortida digitals, és a dir el para completament. Private Declare Sub SetDigitalChannel Lib "k8055d.dll" (ByVal Channel As Integer) 'Aquest procediment ajusta un canal de sortida determinat, o bé és 0 o 1 per tant es encès o aturat. Private Declare Sub SetAllDigital Lib "k8055d.dll" () 'Aquest procediment fa que tots els canals de sortida es posin en valor 1, és a dir quedin encesos. Private Declare Function ReadDigitalChannel Lib "k8055d.dll" (ByVal Channel As Integer) As Boolean 'Aquesta funció llegeix el canal digital d’entrada determinat per tal de saber si el seu valor és 1 o 0. Private Declare Function ReadAllDigital Lib "k8055d.dll" () As Integer 'Aquesta funció permet llegir tots els canals d’entrada digitals. Private Declare Function ReadCounter Lib "k8055d.dll" (ByVal CounterNr As Integer) As Integer 'Aquesta funció llegeix el contador d’impulsos que té al targeta. Private Declare Sub ResetCounter Lib "k8055d.dll" (ByVal CounterNr As Integer) 'Aquest procediment reinicia el contador d’impulsos de la targeta. Private Declare Sub SetCounterDebounceTime Lib "k8055d.dll" (ByVal CounterNr As Integer, ByVal DebounceTime As Integer) 'Aquest procediment permet ajustar el temps d’eliminació del rebot segons el polsador d’impulsos. 'Aquesta funció següent, permet connectar la targeta automàticament al iniciar l'aplicació Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim CardAddress As Integer Dim h As Integer CardAddress = 0 h = OpenDevice(CardAddress) Select Case h Case 0, 1, 2, 3 lbl_estat.Text = "Targeta connectada" Case -1 lbl_estat.Text = "Targeta no detectada" End Select If h >= 0 Then Timer1.Enabled = True End Sub 'Encendre i apagar el led de la sortida 1 analògica Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Checkbox1.CheckedChanged OutputAnalogChannel(1, 0) If Checkbox1.Checked = True Then OutputAnalogChannel(1, 255) End If End Sub 'Aquesta funció finalitza el programa tot apretant el botó Atura Private Sub bto_acaba_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bto_acaba.Click CloseDevice() End End Sub

Treball de Recerca Simulador de Presència Jordi Auladell

70   

 

'Posa en funcionament la sortida número 1 digital Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged ClearDigitalChannel(1) If CheckBox2.Checked = True Then SetDigitalChannel(1) End If End Sub End Class

13.1.2 Explicació del codi amb imatges.

En aquesta primera part, observem com el programa ens diu que no detecta la targeta, això es normal, ja que tenim la targeta desconnectada del cable USB.

Una vegada connectat el cable, tornarem a iniciar el programa. Aquesta vegada ens apareixerà el que surt a la següent imatge.

Treball de Recerca Simulador de Presència Jordi Auladell

71   

 

El led que ens indica que la targeta està encesa, està encès. A la vegada el mateix programa ens diu que té la targeta connectada.

Treball de Recerca Simulador de Presència Jordi Auladell

72   

 

Aquest pas comprovem si realment funciona el led, cliquem sobre led on/off i veiem que el led s’encén, si tornéssim a clicar el led s’apagaria.

Treball de Recerca Simulador de Presència Jordi Auladell

73   

 

Finalment fem l’últim pas, cliquem sobre proba digital, al clicar observem com el led de la sortida número 1 digital s’encén, si tornem a clicar el led s’apagarà.

Per finalitzar el programa només hem de clicar sobre Surt.

13.1.3 Problemes detectats:

Al realitzar la prova, he pogut detectar algun problema. Un d’ells consistia en que si s’engegava el programa amb la targeta desconnectada, el programa no

Treball de Recerca Simulador de Presència Jordi Auladell

74   

 

detectava la targeta si la connectàvem llavors, la solució ha estat parar i engegar el programa i d’aquesta manera ha detectat la targeta.

L’altre problema detectat ha estat que al finalitzar el programa, si un dels leds estava activat, continuava activat una vegada finalitzat el programa.

Aquests són problemes simples, en el primer simplement s’ha d’estar alerta, en que primerament connectem la targeta al ordinador i desprès s’iniciï el programa. L’altre problema, la solució serà que el finalitzar el programa, és a dir quan cliquem sobre el botó surt, que ens tanqui tots els ports de la targeta, d’aquesta manera no quedaran encesos.