Gå til innhold

Hjemmeautomasjon fra scratch


Anbefalte innlegg

Har den siste tiden holdt på med et større elektronikkprosjekt. Det startet med at jeg demonterte en Doro Secur alarmtelefon, og begynte å skope diverse signaler jeg tok inn fra naboenes temperatursensorer, alarmsensorer, også videre. På et tidspunkt så jeg nytten i å lage meg en liten 433.92MHz ASK-transceiver med en mikrokontroller for å håndtere mange av disse protokollene. Jeg har per i dag laget en enhet som kan likne på tellstick, bortsett fra at jeg kan utvide funksjonaliteten i denne enheten akkurat slik jeg vil. Har per i dag implimentert støtte for å styre fjernstrømbrytere fra Nexa, CO-tech/GAO og Waveman ved å analysere signalene fra fjernkontrollene for de respektive merkene. Jeg har også lagt inn støtte for å dekode data fra Doro Secur alarmsensorer, og trådløse utegivere fra Clas Ohlson for temperatur og luftfuktighet står for tur.

 

De siste ukene har jeg gått over fra å jobbe med programvaren i mikrokontrolleren, til å utvikle PC-programvare og et PHP-GUI.

 

Jeg kommer sannsynligvis til å gi ut kompilert programvare til mikrokontrolleren (ikke kildekode), slik at andre kan bygge en slik enhet selv. Kostnaden for denne enheten har kommet på ca. 50kr for min del.

 

2.jpg

Bilde av enheten

 

inst2web.jpg

Screenshot fra programvare

 

Mer informasjon finnes her:

 

433.92MHz transceiver

Hovedside for prosjektet

Endret av jonpet55
Lenke til kommentar
Videoannonse
Annonse

Hvorfor legger du ikke ut kildekoden? Så kan du skrive følgende nederst på siden:

 

jonpet55, 2010. All rights reserved

 

Så kan ingen gjøre noe med koden din annet en å lese den. Hvis det skulle være noen som ikke respekterer rettighetene, så er det sikkert bare private som tester koden selv.

Lenke til kommentar

haavardgj: Takker :) Er bare å sette i gang! Det er utrolig artig med elektronikkprosjekter man faktisk merker praktisk nytte av i hverdagen.

 

Jee: Sant nok. På en annen side blir det mer finpussing av det estetiske og mindre skriving av ny kode hvis jeg skal kunne forsvare for meg selv å legge det ut for offentligheten ;)

Lenke til kommentar
  • 3 uker senere...

Tøft prosjekt. :)

 

Noen grunn til at du har valgt akkurat uC-kontrolleren?

 

 

Hva slags ambisjoner har du med dette? Hvis det kun er til hobby/utdanning så burde det jo være greit å publisere koden, da åpner du for tilbakemeldinger, forslag til forbedringer, feilrettinger og kanskje porting av koden til andre platformer (leker litt med AVR selv men jeg er vel ikke så dypt inne i det ennå at jeg er 'låst' på noen måte ;) )

Lenke til kommentar
  • 5 uker senere...

Hoi, her hadde jeg visst ikke på noe e-post-varsel. Takk for tilbakemeldinger, alltid artig å få litt respons på det man driver med :)

 

Kahuna: Hvorfor jeg valgte å bruke en uC, eller hvorfor jeg valgte akkurat den uCen? Prosjektet er først og fremst for egen interesse og læring. Det er dog basert på et "reelt behov", så det er ikke utelukkende for morro. Jeg er kanskje litt paranoid når det kommer til å legge ut kildekode og slikt, men vi får se; kanskje en dag legger jeg ut litt saker og ting.

 

Moskus: Artig å høre. Har fulgt med en del på tråden din, og synes det er morro å se hva andre har fått til med denne hobbyen. Skal legge ut litt byggeplaner etterhvert, så da hadde det vært veldig artig å se om noen skulle finne på å bygge noe av det jeg legger ut.

 

Tingo: Først og fremst har de billige og bra temperatur- og luftfuktighetssensorer. De har også mye annet rart som jeg vurderer å lage støtte for, bla. effektmåler. PIR-sensorer og slikt er nok ganske mye billigere på eBay, men de har det også.

 

haavardgj: Tja, du kunne sikkert fått PHP-koden, men det spørs hvor mye til hjelp det vil være. PHP-koden jeg viste ovenfor skriver bare til filer, og selve kommunikasjonen med maskinvaren tilkoblet serieporten skjer med et Python-program. Jeg kan sikkert hjelpe deg med å komme igang med en enkel applikasjon og et PHP-interface med f.eks. en submit-knapp. Bare fortell litt om oppsettet og hvor du stopper opp.

 

Har forøvrig laget en del nytt siden sist, bla. ny transceiver og videreutviklet en del termostat- og timerfunksjonalitet i applikasjonen. Etter eksamensperioden bestemte jeg meg dog for å "totalrenovere" systemet. Nå er ikke lenger systemet basert på skriving og lesing til filer, men WSGI mellom Apache (på sikt) og Python. For testing bruker jeg nå en integrert løsning der også webserveren kjører i Python, men ytelsen blir vesentlig bedre om jeg kjører dette i Apache. Det er fremdeles mye testing igjen, men denne løsningen blir mindre buggy og mye mer fleksibel!

 

Her er noen bilder av ny hardware og den siste versjonen av den "tekstfilbaserte" DCC:

1.jpg

Ny server og transceiver

 

2.jpg

 

dcc2.2.jpg

v2.2 av programvaren

Lenke til kommentar

Det er ikke nødvendig med koden lengre =) ettersom jeg har fått arduinoen til å fungere over nett, klarer jeg meg enn så lenge med den løsningen jeg har nå.

den virker på den måten at jeg får arduinoen til å printe siden til web-browseren, og leser tilbakemeldingen og handler deretter. gui-en ser helt crappy ut, men etter at jeg har fått forsket litt mer, skal jeg nok få det til å se litt bedre ut... det neste jeg tenker på, er å skaffe en dimming av lyset fra arduinoen, men det får bli senere. =) (håper bare at jeg klarer å få nok WAF til at madammen aksepterer løsningen.

Lenke til kommentar
  • 8 måneder senere...

Tenkte jeg skulle oppdatere litt om hva som skjer med dette prosjektet.

 

Firmware og hardware er oppgradert kraftig, og profesjonelt produserte kretskort kommer fra Kina om et par uker.

 

Enheten, som nå heter MultiTRX, støtter nå dekoding av Esic temperatursensorer fra Clas Ohlson, Doro Secur bevegelsessensorer, Nexa fjernstrømbrytere og Gao fjernstrømbrytere.

 

Enheten kan sende data til Nexa-, Gao- og Waveman-enheter

 

Enheten dekoder den unike IDen programmert inn i Gao og Nexa fjernstrømbrytere, og senderen kan etterlikne disse signalene slik at mottakere som kun kan parres med en enhetet fremdeles kan brukes med fjernkontrollen som følger med.

 

For å unngå at dette brukes til sabotasje har jeg laget en sperre i firmware på dekoding av ID som gjør at mottakeren må motta samme signal kontinuerlig i noen sekunder før enhets-ID skrives ut på serieporten.

 

v3.jpg

MultiTRX, prototype

 

Manual.

 

Oppdatert prosjektside.

Endret av jonpet55
Lenke til kommentar

Takk for interessen! Jeg hadde i utgangspunktet ikke tenkt til det, men etter å ha fått en del forespørsler ser det ut til at jeg kommer til å produsere noen ekstra for salg. Foreløpig har jeg bestilt fem kretskort, hvorav 3 skal brukes selv, og to går til kamerater.

 

Når utlegget er testet fungerende/feilfritt i en uke eller to sender jeg sannsynligvis inn en ordre på 15-20 kort til fra PCBCART. Prisen (ferdig loddet og klar til bruk) blir forhåpentligvis rundt 400-500 kr.

Lenke til kommentar

Heisann har du undersøkt mulighetene for å dekode protokollene som elko eller xcomfort benytter.Kan du forklare litt hvordan du går frem for og dekode protokollen som f.eks nexa benytter. Hadde vært gøy og eksperimentert litt med dette på egenhånd, Har tenkt og investere i et elko living system, men synes sentralen koster alt for mye. Liker heller ikke hvordan dette programmeres.

Lenke til kommentar

Si i fra når du kommer så langt. :)

 

Det skal jeg gjøre! :)

 

Heisann har du undersøkt mulighetene for å dekode protokollene som elko eller xcomfort benytter.Kan du forklare litt hvordan du går frem for og dekode protokollen som f.eks nexa benytter. Hadde vært gøy og eksperimentert litt med dette på egenhånd, Har tenkt og investere i et elko living system, men synes sentralen koster alt for mye. Liker heller ikke hvordan dette programmeres.

 

Hei. Jeg har ikke kikket noe på Elko eller Xcomfort sine protokoller. Det eneste jeg vet om disse er at begge opererer på 868 MHz ISM-båndet, og dermed er det ikke mulig å få styrt disse enhetene med USB-transceiveren jeg har laget.

 

På hjemmesiden min har jeg grovt fortalt hvordan jeg gikk fram for å forstå hvordan GAO-protokollen fungerte, men prinsippet er det samme for Nexa. Hvordan selve dekodingen foregår er mer opp til hvordan programmereren ønsker å løse dette, men det går i all enkelhet ut på å måle pulsbredder med timeren i mikrokontrolleren.

 

http://folk.ntnu.no/skagmo/doku.php?id=prosjekter:multitrx

Lenke til kommentar
  • 3 uker senere...

Da har endelig kortene fra BatchPCB kommet!

 

Jeg har loddet opp tre stykker nå, men venter på komponenter til resten.

Neste revisjon blir sendt inn til produksjon ganske snarlig også.

 

Kort oppdatering om produktet

 

Det som følger med i pakken er kun hardware, men en programvare med Web-UI kan lastes ned og legges ut som åpen kildekode. Denne programvaren er skrevet for å gi et innblikk i hvordan en kan snakke med modulen, og inneholder en god del "skitten" kode som i seg selv er langt fra noe ferdig produkt. Det er altså hardwaren og koden til mikrokontrolleren som er finpusset og utgjør det en betaler for.

 

Først og fremst er dette ikke en plug&play-løsning, men heller noe for den som har interesse av å scripte eller lage programvare for hjemmeautomasjon selv. Modulen er relativt lett å snakke med da den oppfører seg som en serieport, og bør lett kunne integreres i andre applikasjoner.

 

For en pris som er lavere enn det en Tellstick koster får man en enhet som kan både sende og motta en rekke protokoller og mye enklere kan integreres i hobbyprosjekter. Jeg har kommet fram til at jeg vil selge hardwaren for 500 kr ferdig loddet, og dette utgjør ikke særlig mye mer enn komponentkostnader og en drøy hundrelapp for den tiden det tar meg å lodde modulen...

 

En demonstrasjonsvideo vil bli produsert og lagt ut senere.

 

Om folk er interessert i produktet kommer jeg til å bestille opp en batch til, men den første batchen nå går stort sett til venner.

 

multitrx_batch_l.jpg

  • Liker 3
Lenke til kommentar
  • 3 uker senere...

Nå er neste batch med kretskort sannsynligvis fremme om et par dager :)

 

I mellomtiden tok jeg en test av antenner til MultiTRXen, og fikk en liten overraskelse:

 

http://folk.ntnu.no/skagmo/doku.php?id=multitrx_antenna

 

Jeg fintilpasset også bias til PAen i går, så nå skal uteffekten være ganske akkurat 10 mW.

Spektrumanalysatoren er satt til 5 MHz / div, og 20 dB dempeledd var koblet på inngangen.

 

5mhzdiv.jpg

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...