Innehållsförteckning:

Automatiserad belysning med DMX och Perl: 6 steg
Automatiserad belysning med DMX och Perl: 6 steg

Video: Automatiserad belysning med DMX och Perl: 6 steg

Video: Automatiserad belysning med DMX och Perl: 6 steg
Video: The Third Industrial Revolution: A Radical New Sharing Economy 2024, November
Anonim
Automatiserad belysning med DMX och Perl
Automatiserad belysning med DMX och Perl
Automatiserad belysning med DMX och Perl
Automatiserad belysning med DMX och Perl
Automatiserad belysning med DMX och Perl
Automatiserad belysning med DMX och Perl

Varför automatisera dina lampor? För att vara ärlig är det mesta av mitt hus automatiserat, så det verkade vara självklart. Det finns många fördelar med att automatisera delar av ditt hus, i synnerhet belysning gör bara livet enklare, ljus som tänds när du går in i ett rum är bättre än att slå på dem själv! …. Och eftersom de tänder sig själva, stänger de av sig också, så du kan inte glömma! Förhoppningsvis finns det tillräckligt med information här för de flesta, men om (som jag) du älskar detaljer hittar du mer information på min sida

Steg 1: Installation

Installation
Installation
Installation
Installation
Installation
Installation

Ok, låt oss börja med själva ljusbrytarna.

Varje rum har antingen en dubbel (två lampor) eller en enda dimmerkontroll monterad på väggen. Bilderna nedan visar dimmerstyrenheterna monterade i väggen, du ser att de fortfarande är oavslutade, jag kan inte hitta lämpliga vred, som de enkla vita som du får på en vanlig dimmer, så tills jag gör det, där är inga. Dessa "styrenheter" ser ut precis som vanliga brittiska plattor med variabla motstånd som sticker ut framifrån, och det är för att det är vad de är! Nedan följer några bilder som visar insidan av dessa enheter: Först singeldimmer. Du kommer också att märka att det finns en liten svart enhet längst ner på enheten: Det här är en temperatursensor som jag använder för att styra uppvärmningen, den använder samma kapsling som dimmerenheter och samma kabeldragning, men de är två separata system. De dubbla enheterna är lite mer upptagna inuti, men i huvudsak bara två singlar i samma låda.

Steg 2: Kabeldragning

Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning

Dessa dimmerstyrenheter är anslutna med Cat5e -kablar tillbaka till mitt underskåp, där resten av satsen är.

Kontrollenheterna (som du kan se på bilderna ovan) kan enkelt kopplas bort från väggen genom att dra ur deras RJ45 -kontakt från kontakten. Varje dimmer plats i huset har en enda körning av Cat5e till det hela hemmet sprang tillbaka till under trappan. Själva enheterna fungerar helt enkelt som en potentiometer, de variabla motstånden har 3 ben, sett framifrån, den längst till vänster är jordad, den mellersta (torkaren) är utgången och den högra får 10 volt DC. Lägg märke till användningen av värmekrymphylsor och en klick epoxi för att hålla allt på plats. mittbenet stiger gradvis från 0v till 10v - Detta används för att styra dimmerenheterna manuellt. Här är några bilder på hur dimmerstyrkablarna slutar under trappan, jag har använt standard Cat5e -kablar hela tiden eftersom det är billigt och bra kvalitet, jag har också använt RJ45 -kontakter och kontakter av samma skäl, detta belysningssystem har ingenting att göra med ethernet, tcp-ip eller liknande, jag använder bara kablar och kontakter som normalt är associerade med den här typen av saker. På bilden ovan representerar varje gul patchkabel en dimmerkontrollplats, jag har använt RJ45 -vägguttagen som ett sätt att ansluta dessa cat5e -körningar upp till både dimmarna och temperaturgivarens styrkort. Dimmarna själva är 4-kanaliga enheter som stöder både DMX- och 0-10v-signal för att styra deras utgång. Jag förklarade inte detta särskilt bra från början, så här är lite mer information om hur 0-10v-signalen och DMX fungerar tillsammans. Inställningen av 0-10v-signalen (dvs inställningen för dimmerstyrenheten) kommer (om ljusare) att åsidosätta DMX-inställningen. Detta är inte idealiskt, eftersom det betyder att du kan lämna lampor på av misstag, eftersom att vrida dimmern hela vägen upp kommer att tvinga ljuset att stanna. Men vi använder faktiskt inte dimmerreglagen manuellt, lamporna tänds automatiskt om det är både mörkt ute (det finns en ljussensor i trädgården) och om någon är i rummet (PIR -sensorerna berättar för servern om detta Så är det aldrig nödvändigt att tända lamporna på dig själv! Det andra potentiella problemet är om systemet slog på lampan och du faktiskt ville stänga av det, att slå ner dimmerreglaget skulle heller inte ha någon effekt. I verkligheten har dock dimmerställen en konfigurationsomkopplare på dem, om jag någonsin skulle få problem där servern gjorde något jag inte gillade, kunde jag antingen slå en av DIP -switcharna på racket eller koppla ur DMX -kabeln! ! Jag hoppas att det här är mer meningsfullt nu.

Steg 3: Dimmerställ

Dimmerställ
Dimmerställ
Dimmerställ
Dimmerställ
Dimmerställ
Dimmerställ

Dimmeren tar 0-10v-signalen på en 5-stifts DIN-kontakt (1 stift är jordat, de andra 4 representerar de 4 kanalerna) och de tar DMX-signalen på en 3-stifts XLR-kontakt. DMX-enheter kan vara Daisy-kedjade eftersom var och en har sin egen ID-uppsättning. Om du tittar noga på bilden ovan kan du se en orange kabel (0-10v signal), en lila kabel (DMX daisy chain link) och en gul kabel (DMX in från DMX -styrenheten)

Här är några fler bilder på dimmerställen: På framsidan av racket kan du se en bunt med 1 mm T&E -kabel, var och en av dessa går till en annan belysningsplats i hela huset. Helt enkelt går den här kabeln från dimmern rakt till ljusarmaturen i taket, detta gör ledningarna för alla armaturer väldigt enkla, eftersom det bara finns en enda kabel att kämpa med. Dessa kablar är anslutna till dimmerställen med han -IEC -kontakter (hanversionen av en vattenkokare)

Steg 4: Seriell till DMX -konvertering

Konvertering från serie till DMX
Konvertering från serie till DMX
Konvertering från serie till DMX
Konvertering från serie till DMX
Konvertering från serie till DMX
Konvertering från serie till DMX

DMX -signalerna för att styra dimmarna kommer från enheten på bilden ovan. Denna enhet tar en RS232 (seriell) signal från min hemautomatiseringsserver och konverterar den till DMX -protokollet. Detta gör att jag kan styra belysningen i hela huset automatiskt, och innebär att du faktiskt inte behöver använda dimmerstyrenheterna i varje rum, det här är egentligen hela poängen med att automatisera belysningen, jag har sensorer i varje rum (standard säkerhets -PIR -sensorer) som övervakas av mitt hemautomatiseringssystem, om rörelse detekteras skickar servern en seriell signal till DMX -styrenheten för att få upp lamporna i det rummet osv …

Dessutom betyder det att du kan styra dina lampor över internet, via SMS, IVR etc.. vilket kan vara användbart. Slutligen en bild på baksidan av servern som ansluter till DMX -gränssnittet, denna server används för att styra DMX -gränssnittet. …. Mer om det i programvaruavsnittet nedan.

Steg 5: Programvara

programvara
programvara
programvara
programvara
programvara
programvara

All min andra hemautomation (säkerhet, värme, ström, cctv osv.) Är skriven (dåligt i delar) med hjälp av perl. Detta belysningsprojekt är inte annorlunda, även om det representerar mina första försök att använda webbtjänster. För webbtjänsterna har jag använt Apache 2.x och Soap:: Lite -modulen för perl, för att faktiskt prata seriellt med DMX -kontrollen, jag har använt perl -modulen Device:: SerialPort. Hela partiet körs under Redhat Linux Jag kallar webbtjänsterna från min egentliga hemautomatiseringsapplikation så här: (notera att detta är en del av ett mycket större program) # Tänds om ingen rörelse på tio minuter och rörelse mer nyligen i korridoren # if ($ epok - $ in11_lastmove> 600 && $ in11_lastmove <$ in23_lastmove && $ kitchenlights == 1) {& send_lights_soap (1, 0); $ köksbelysning = 0; } Den faktiska subrutinen som anropas är här: sub send_lights_soap {$ soap_response = SOAP:: Lite -> uri ('https://192.168.101.172/Lights') -> proxy ('https://192.168.101.172/cgi- bin/lights ') -> skicka ("$ _ [0]", "$ _ [1]"); $ res = $ soap_response-> resultat; } Och eftersom detta är en webbtjänst, ligger det egentliga seriella gränssnittet och webbtjänstkoden på en annan maskin i mitt nätverk, så ser webbtjänstkoden ut så här: #!/Usr/bin/perl -w use SOAP:: Transport:: HTTP; SOAP:: Transport:: HTTP:: CGI -> dispatch_to ('Lights') -> handle; # Ring som -> uri ('https://192.168.101.172/Lights') # -> proxy ('https://192.168.101.172/cgi-bin/lights') # -> skicka ("", "") förpackningsljus; sub skicka {använd enhet:: SerialPort; min $ port = Device:: SerialPort-> new ("/dev/ttyS0"); $ port-> baudrate (9600); $ port-> paritet ("ingen"); $ port-> handslag ("ingen"); $ port-> databiter (8); $ port-> stopbits (1); $ port-> read_char_time (0); $ port-> read_const_time (1); min ($ klass, $ kanal, $ intensitet) = @_; # skicka data ut $ port-> write (pack "C", $ channel); $ port-> skriv (pack "C", $ intensitet); sömn (1); $ port-> close (); return "Klart! Jag använde $ class med chn $ channel och inten $ intensitet"; } Ganska enkel kod, jag är säker på att du håller med, och bäst av allt, eftersom den kör webbtjänster kan jag sprida ut dessa noder över mitt nätverk och ringa dem enkelt. Dessutom kanske du har märkt att som de flesta andra har jag RFC1918 adresserat mitt nätverk, men med en lämplig NAT -regel kan dessa tjänster enkelt ringas från var som helst med en internetanslutning, vilket innebär att jag kan styra min belysning, uppvärmning etc… från var som helst (även en GPRS- eller 3G -telefon!)

Steg 6: Slutsatser

Slutsatser
Slutsatser

Jag hoppas att du har tyckt om det jag har gjort, jag älskar mina automatiska lampor!

Lycka till om du bestämmer dig för att göra något liknande. Om du behöver mer information än så, kolla in min sida på www.yourmissus.com/lighting/

Rekommenderad: