Vous êtes sur la page 1sur 36

Linux,Domotica& Autocostruzione

QualeSoftware& QualeHardware??? Cosapossibilefare?

29/10/06

Introduzione
Disolitoquandosiparladidomoticasi parlaSOLOilmultimedia Bendiversopilotaredispositivi'fisici' installatinellanostracasa. Portoilmioesempiodiautocostruzionedi unsemplicesistemadomotico Chiviparlauncomuneperitoelettronico nonoccorreessereguru Vedremocomesipossonofareesperimenti ecosaoffreilmercato.
2 29/10/06

Controlloegestionedellilluminazione Sicurezza Letturaecomandodiriscaldamentoeforniture acqualucegas TelecontrolloedallarmiviaSMSeweb Pichealleultimissimenovitiopreferisco l'affidabilit,quindinonsicercheranno soluzioni'estreme'mapiuttostosi preferirannoprotocolliedhardwareben collaudati!
3 29/10/06

Aspettativedal sistema

Comehoimpostato ilsistema
Usareunservercentrale+unaserie dicentralinelocaliindipendentiper migliorarelaresponsivitai comandinonchlatolleranzaai guasti Questoinoltrecipermetterun costruzionemodularechepotr cresceremanmano
4 29/10/06

Cheporteusare
Sisperimentaspessoconlaportaparallela. relativamentefaciledausaremasoffredimoltilimiti:Ha solo12lineediuscitae4diingresso,alivelliditensione TTLequindinonpossiamoallontanaretroppolacentralina dacollegarvi. Moltomegliousarelaportaseriale.Conunasemplice interfacciapotremocollegaremoltecentralinesullastessa lineamoltolungaedindirizzareognivoltasoloquellache ciinteressaconunsempliceprotocollo. Sitrovanofacilmenteschedeserialimultiportacheci permetterannodiavere816porteindipendenti. Unconsiglio:lasciateperderel'USB,nonaffidabile!!!. Menchemenoiconvertitoriusbrs232,amenocheproprio nonnepossiatefareameno(adesempiousandoun portatile...)
5 29/10/06

Centralineautocostruite:housatomicroprocessori8bit comePIC16F84eAT89C2051 Entrambiquestimicroprocessori,coscomemoltialtri, possonoessereprogrammaticonschedineabassocosto Preferiteprocessoriconunminimodiperiferichenon limitatevialsolito16F84! QuestesonocollegateviaCurrentLoopsuunaportaseriale alserver IlcurrentLoopconsentelisolamentogalvanicoerisente pocodeidisturbi Interessantepotrebbeessereilcanbus,manonesistono interfacceeconomicheperilpc,rimaneilproblema dellisolamentogalvanicoelaretenonpuoesserea stella.

LHardware

6 29/10/06

LHardware
Ognicentralinahaunindirizzounivocoeviene interrogataciclicamentedalserverper conoscernelostato Ilserverpuinviarecomandiallecentralineper accendereospegneredispositivi Idispositivivengonocomandatidarelabassa tensione Ilcomandodellelucideveesseremodificato sostituendogliinterruttoriconpulsantiche entranonellecentralinea220v Lecentralinesicomportanoautonomamenteper laccensioneelospegnimentodapulsanti
7 29/10/06

Lhardware
Ilservercomandalattivitsullelineeseriali, nessunacentralinapuoiniziarelacomunicazione senoninterrogata Raggruppandoicomandidelleluciinununico quadrodelpianosisonousatecentralineda34 uscitesemplificandolacostruzione Sulmiositocisonoschemidialcune,altrimentisi possonoadattarekitgiesistenti. Vediamounpaiodischemiconcreti.ilprimotratto direttamentedalloschemadiunacentralina realmentefunzionanteacasamia.

8 29/10/06

Unesempiodicentralina

9 29/10/06

Schemadiprincipiodiunaretedi dicollegamentoincurrentloop

10 29/10/06

Schemapraticodiun convertitoreRS232currentloop

11 29/10/06

Softwareperlo sviluppo
Imicroprocessoridellecentralinesono8bitper ragionidicostoquindilerisorsesonolimitate,il linguaggioprincipelassembler EsistonotuttaviacompilatoriCoBasicche consentonotempidisviluppomoltoridotti, lefficienzanelcasodelbasicaldilada venire.. IlLinuxesistonoSDCCper80x51eHitecperPIC Lassemblerpicperwindowsottimoegratuito.. Esempisemprenelmiosito

12 29/10/06

Cosaesistedigi pronto:X10
IlprotocolloX10consentedicomunicareviaonde convogliateevitandodistenderecavischermati Esistonomoduligiprontidainstallarenelquadro elettricoodietropulsanti,unacentralina appositavienecollegatafraservererete elettrica,ognimodulovieneindirizzatodauna coppiadiselettoriperuntotaledi256dispositivi comandabili. Esistonoradiocomandiconappositecentralineche fannodapontefrareteeradiocomando,esistono purepannellitouchscreenequantaltro Tantopernonfarepubblicitioavevoacquistato alcunimodulisuwww.intellihome.be
13 29/10/06

Cosaesistedigi pronto:X10
CercateinsourceforgecomeX10house,troveretemoltecose interessantiperinterfacciareunacentralinastandardCM11: X10BOT:undemonecheascoltaquantoarrivadallacentralina CM11edeseguescriptintcl X10universaldevicedriver:creadeidevicesotto/devperogni vostrodispositivoX10!potretecomandarlifacilmenteda qualunqueprogrammaoscriptperesempioconCRON Homecontrolsystem:unveroepropriosistemadomoticache includeancheX10 X10Mp3Anywhere:comandateXMMSviaX10! IPX10:nondimentichiamolarete!questoungatewayfra inter/intraneteilsistemaX10 SONO+DI150!
14 29/10/06

X10:moduli commerciali

15 29/10/06

Cosaesistedigi pronto:X10
Pregi:Moduligicostruitieanormedi sicurezza,semplicitduso,installazione possibileinqualunqueimpiantosenza modifiche Difetti:Costoelevato,lentezzadel protocollo,alcunimodulinonpossono essereinterrogati,limitidi comunicazionefraretidifferenti

16 29/10/06

Cosaesistedigi pronto:centraline
SullarivistaFuturaElettronicasonostatepubblicate centralinepilotabiliviaweboportaserialecon pochemodifichepossonoessereadattateal nostroscopo Quelleviawebsonopilenteepossonobloccareil server,preferitequelleseriali DiffidatesemprediquelleUSB,menchemenose nonusanochipsetstandardebencollaudati comeFDTI,seilprodottononben ingegnerizzatopuocrearviserissimiproblemidi affidabilitoltrechespessononaveresupporto driverperLinux.Laserialeunprotocollo sempliceesperimentatodaalmeno30anni!!!!!

17 29/10/06

Unpotentecontrollerembedded: AxisFoxBoard
Sulsitowww.acmesystems.ittrovereteunesempiodiinteressanteSBCconlinux embedded.InpraticaavremounkernelLinux2.4.xo2.6.xsuflashromcheviene esplosoinramall'avvioecreauncompletofilesystemlinux.Esisteunkitdi sviluppocheforniscetuttiifilespercompilareedintegrareproprieapplicazioni scritteinCoscriptdishell.OnboardabbiamoportediI/O,rete,usb,I2Cetc. Uniconeoforseilcosto,circa130euro.

18 29/10/06

Hardware:modding
Lidea:alcunirouteradslabassocostousanoLinux, modifichiamoliperpoterliusarecomepiccoliserver http://sprite.student.utwente.nl/~jeroen/projects/lb000021 www.amilda.org http://www.sunspot.co.uk/Projects/Sweex.htm Inquestomododiminuiamodimoltoicostirispettoallasoluzione precedente,unodiquestirouterl'hotrovatosuebaya8euro! Nuovol'hocompratoa35eurospedizionecompresa. IllinguaggioprincipeilC,anchequiesisteunkitcompletodi sviluppo,naturalmentegratis.Sipossonocomunqueusare anchescriptdishell.PurtroppoNONesisteorologioRTCsu cuiappoggiareCRON,masenepuosempremettereuno esternochecomunichiviaseriale.
19 29/10/06

Server:Perch Linux???
Perchaffidabile!!! CondistribuzioniadeguatepoteteusarevecchiPCcomeserver riducendoilconsumoelettrico TantagenteusaVisualBasicpersperimentare,machiparlapensa chesianegativo.Eaccattivanteperchinpochipassiviconsente dicreareinterfaccegrafichemoltocarine,malasintassitroppo lassivadelbasictendeacrearviprestoproblemidiaffidabilit comeperilrestodellapiattaformaInoltreunprogrammacreatoin quell'ambientehaspessoproblemidiportabilit,amenodinon creareinstalleretc... NonabbiatepauradiLinux,limportantecominciare!Unavolta addentratinellusoresteretecolpitiadesempiodallapotenzadi scriptdishell

20 29/10/06

PerchLinux???
Windowsdiprimoimpattosemplicedausaremainrealtmolti programmisonoconcepitiperunaforteinterazionedirettacon lutenteepocoautomatizzabili,adesempioquelloperla centralinaX10 CRONvipermettediautomatizzarefacilmentemolteoperazioni Consempliciscriptdishellpoteteeffettuareoperazioniche altrimentirichiederebberoveriepropriprogrammiscrittiadhoc Esisteunasterminataquantitdiscriptperinviaremessaggi, generaregrafici(gnuplot)comunicareconprogrammiviarete (hose)

21 29/10/06

Softwareperillatoserver: chelinguaggio?
Pythonmoltosempliceefaciledaimparare Eadoggettiemoltocompleto Inpocherighesipossonoimplementareunainterfacciadirete, aggiornamentidisitiweb,messaggisticaemailedaltro Perunaguidaprocurarsi:Python2.1biblediDaveBrueckand StephenTannerISBN076448077

22 29/10/06

LeporteserialiinLinuxsonoaccessibiliviafilevirtuali/dev/ttySxx, qualunquelinguaggiochepossaleggereescriveresuunfilepu quindiaccedervi,questomoltopiusemplicecheinwindows.Un esempio?eccolo!nonc'nemmenobisognodiunlinguaggio, bastailpromptdeicomandi:


stty -F /dev/ttyS0 9600 cs8 -parenb raw -echo echo prova di messaggio > /dev/ttyS0

Softwareperillatoserver: Accederealleporte

Persettareiparametridicomunicazionebastausareilcomandostty inunoscriptcheavviaancheilserver Ilsoftwareserverdevegirarecontinuamenteedesserescrittoin mododaevitarechesiblocchi!Usareperquantopossibilei costruttitryneipunticritici Devegestirefiledilogpercontrollareperiodicamentesequalcosava storto


23 29/10/06

Softwareperillatoserver: Accederealleporte
globaldom2c #inizializzaeapreportaserialecentralinecurrentloop #pianoterra os.system('sttyF/dev/ttyR44800crtsctsparenbcs8cstopbrawecho') fds=os.open('/dev/ttyR4',os.O_RDWR|os.O_NONBLOCK) dom2c=os.fdopen(fds,'r+')

Leportevannoaperteinmodononblockingperevitarecheil programmaprincipalesiblocchiincasodimancatarispostadiuna dellecentraline.

24 29/10/06

Softwareperillatoserver: Accederealleporte
Gestiteuntimeoutcheproseguaoltre(emettaalogl'evento)in casodimancatarispostaentrountempopredefinito(200msec bastano!)diamounesempio:
dom2c.write('#1q') #chiediilreportallacentralina dom2c.flush() time.sleep(0.2) #attendiamo0.2secpoileggiamolarisposta datirx="" try: datirx=dom2c.read(4) if(datirx!=''): dom2instat=int(datirx[0:1],16)etcetc else: dservices.updateerr('errorericezionecentralinadomot1')

25 29/10/06

Softwareperillato server:struttura tipo


Inizializzatetuttelevariabilinecessarie,apriteifile cheviservonopoiavviateunloopprincipale Ogniloopinterrogatelecentralineperrilevarelo statodegliingressiedeidispositivicontrollati Elaboratelostatodelleuscite Sequalcheuscitacambiatainviateneirelativo comandoallacentralinainfondoalprogramma

26 29/10/06

Software:ilprotocollo
Fraserverecentralinecheprotocolloutilizziamo? Viconsigliocaldamentediusaresolocaratteriasciiilpipossibilemnemonici. Usarecaratteriasciivipermetterundebugpiuvelocedatochepotreteleggere checomanditransitanosullareteconunsempliceprogrammaditerminale comeminicom.Inoltrevisemplificherilprotocollo. Adesempioiohousateilseguente: Ognicomandoiniziaconuncaratterediattenzione'#'chenonpumaiessere usatodiversamente. Seguel'indirizzodidestinazionedellacentralinacompostodaunacifraascii09 ProseguiamoconuncomandoletteraleadesempioS(set)peraccendere,R (reset)persepgnereeQ(query)perinterrogaresullostatocorrente Seguonoidatiadesempioilnumero1perindicareilprimodispositivo comandatodallacentralina,magariinviateliduevolteperridurrelapossibilit dierrori. Uncomandocheadesempioaccendelalucedell'ingressodicasamia: #1S11
27 29/10/06

Possibiliespansioni:
Collegandouncellulareconuncavettoserialepotetemandaremessaggi smsincasodieventigravi(fughedigas,intrusioni?) (Iohousatounmodulospecificogsmperautomazione:EricssonGM47) Unaltoparlanteatrombamiavvisaseilcaricodireteeccessivoestacco dispositivicritici(forno,lavatrice). Sondetermichepercontrollarelatemperaturadeifrigoriferi,sevannooltre unasogliadiamol'allarme! Aveteilserversottogruppodicontinuit?aggiungeteuncellularegsmed inviateviunsmssesaltalacorrente(magarimentresieteviainvacanza...) Bastaunpodifantasia!

28 29/10/06

Possiamocreareclientperilcontrollodellimpiantodaunpc IllinguaggioTCL/TKmoltosempliceegrazieaVTclpermettedi generareinterfacceutenteconunambientegraficocompleto Inquestolinguaggiofacileinterfacciarsialserverpythonviasocketdi retetcp/ip Perunaguidaprocurarsi:GraphicalApplicationswithTCL&TKdiEric FosterJohnsonISBN1558515690maesistonoanchetutorialin rete IlTclleprimevoltesembraunpostrano,lasintassiqualcosadimai vistoinaltrilinguaggi,mamentreleggevoillibroquiindicato restavostupitodallasemplicitcostruttiva Dimenticavolacosapiimportante...TCL/TKmultipiattaforma! occorreinstallarel'interprete,mapoiunprogrammascrittoperLinux funzionerancheinWindowsoaddiritturaMacOs!!!
29 29/10/06

Softwarepericlient

Adesempio:perinterrogareunserver(inpythonoaltro,nonimporta): setnethdl[socket192.168.0.1021020] ovveronethdlsarilcanalesucuiopereremo,apertoall'indirizzo192.168.0.102alla porta1020 putsnonewline$nethdl"statreq" flush$nethdl gets$nethdlvalfrserv poiinviamoalserverlascrittastatreqeleggiamoinvalfrservlarisposta if{[lindex$valfrserv1]==1}{ .house1.L1configureimagelampon }else{ .house1.L1configureimagelampoff } asecondadellostatodellasecondavariabilerestituitadalservercambiamo l'immaginedell'iconaL1conduesimboli,rossoseaccesa,blusespenta.

SintassiTCL

30 29/10/06

Softwareclient:unesempio

31 29/10/06

ConVTCLfacile!

32 29/10/06

Nienteeffettispeciali!unvecchiosinclairZ88consumapochissima corrente(appena1/2W!)enell'ingressodicasapufornireinfosullostato dell'impianto

Unterminaleserialeabasso consumo

33 29/10/06

unGameBoy???
SesuElektornel2000l'hannotrasformato inunoscilloscopiodigitaleadoppia traccia...perchnondovremmopoterlo trasformareinunterminaleserialeper domotica?magariwireless! EsisteuntoolkitcompletodisviluppoinC gratuitocercatein www.gbdk.sourceforge.net

34 29/10/06

Limitiesicurezza
Senonvivetesoliattenzioneallaffidabilit!!! Attenzioneallaautocostruzionedellecentralinea 220v,documentatevisullenormedisicurezza Nonspingeteallestremolautomazione,potrebbe diventarepocopraticaecrearefalsiallarmi

35 29/10/06

Esempiconcreti
Sulmiositocdocumentatoquantohofatto: WWW.FUSOLUCI.IT Controllodellilluminazione.telecomandoescenari Controllodelriscaldamento Monitoraggiodipunticritici:sovraccaricofughediacqua/gas Messaggisticasmsealtoparlante Segreteriatelefonica Clientdiretepercontrollarelimpianto espansionifutureinprogramma: monitoraggiotemperaturafrigoriferi serrandeautomaticheincasodipioggia Irrigazioneautomatica

36 29/10/06

Vous aimerez peut-être aussi