Älyohjausta halvalle rgb-ledinauhalle - purnukka

purnukka

arkistojen dumppauspaikka.

Älyohjausta halvalle rgb-ledinauhalle

Olipa kerran tarjouksessa kymmenen metriä rgb-ledvalonauhaa Lidlissä kohtuulliseen hintaan. No, sieltä se sitten kotiutui, parin muun jo olemassa olleen vastaavanlaisen nauhan kanssa kotiin väriä tuomaan.

Pitkään olin kuitenkin haaveillut jonkinlaisesta älykkyydestä kodin valaistuksen ja sensoreiden kesken. Pitkään olen myös kauhistellut kaikenlaisia aukkoja, joita valmiit äly-IoT-vempaimet tuovat kotiverkkoihin. Siis täydellinen projekti löytyi: yritetäänpä viritellä halpis-ledvalonauhalle lähiverkon kautta toteutettava ohjaus! Sitä voi sitten myöhemmin liittää vaatehuoneserverillä hostattavaan automaatioviritelmään.

Ja mikä parasta, kun kaiken koodaa itse, ei voi ainakaan syyttää ketään tai mitään muuta tahoa niistä IoT-aukoista.

Sukellus infrapunan maailmaan

Jos et ole koskaan nähnyt tai omistanut oheisen kuvan mukaista värikästä kaukosäädintä, olet näkökulmastani poikkeuksellinen tapaus. Näitä nimittäin on meidän nurkissa pyörinyt useita: ainakin kolmelle eri ledinauhalle sekä vanhemmille rgb-lampuille, joista on jo aika jättänyt.

Näitä mokomia pyöri joka nurkassa.
Näitä mokomia pyöri joka nurkassa.

Tässä vaiheessa todettakoon myös tärkeä vahingossa tehty huomio: mikä tahansa pöydällä lojuneesta kolmesta vastaavasta värikkäästä nappiläpyskästä toimii Lidlin halvalle ledinauhalle. Ja Normalin vastaavalle. Ja vähän paremmalle silikonihökötykselle. Siispä voitto kotiin: ehkä näille on jokin halpisledinauhainfrapunaprotokolla?

Siis uhrataan yksi kaukosäätimistä! ...jos ei muuta hyötyä, niin ainakin ir-ledin saa kivasti käyttöön.
Siis uhrataan yksi kaukosäätimistä! ...jos ei muuta hyötyä, niin ainakin ir-ledin saa kivasti käyttöön.

Taiteellista tutkailua.
Taiteellista tutkailua.

Kovin paljoa ei sisuksista saa irti; halvalla tehtyä, jokin tiivis MCU ilmeisesti roikkuu namiskojen mukaan ir-lediä vilkuttelemassa. Taitaa siis olla fiksumpaa lähteä tutkimaan asiaa interwebsin syövereistä – ehkä joku muukin on yrittänyt samaa joskus (...kunhan ensin takavarikoidaan tästä kaukosäädinyksilöstä pian tarvittava infrapunavalodiodi).

Kaukosäätimen ir-lediä välkyttelee jonkinlainen kontrolleri.
Kaukosäätimen ir-lediä välkyttelee jonkinlainen kontrolleri.

Kas kummaa: interwebsin syövereistä löytyy kuin löytyykin suoria arvauksia näiden geneeristen kaukosäädinten namiskojen välkyntäkomennoille.

#define	IR_BPLUS  0xF700FF	
#define	IR_BMINUS 0xF7807F
#define	IR_OFF 	  0xF740BF	
#define	IR_ON 	  0xF7C03F	
#define	IR_R 	  0xF720DF	
#define	IR_G 	  0xF7A05F	
#define	IR_B 	  0xF7609F	
#define	IR_W 	  0xF7E01F	
#define	IR_B1	  0xF710EF	
#define	IR_B2	  0xF7906F	
#define	IR_B3	  0xF750AF	
#define	IR_FLASH  0xF7D02F	
#define	IR_B4	  0xF730CF	
#define	IR_B5	  0xF7B04F	
#define	IR_B6	  0xF7708F	
#define	IR_STROBE 0xF7F00F	
#define	IR_B7	  0xF708F7	
#define	IR_B8	  0xF78877	
#define	IR_B9	  0xF748B7	
#define	IR_FADE   0xF7C837	
#define	IR_B10	  0xF728D7	
#define	IR_B11	  0xF7A857	
#define	IR_B12	  0xF76897	
#define	IR_SMOOTH 0xF7E817

Nämä siis suoraan vastaisivat tuon väriläpyskämukakaukosäätimen namiskoja.

Siis kokeillaan! Nopeasti laatikosta hyppysiin ESP8266-breakoutti (jokin halpa D1-klooni), siihen kiinni kaukosäätimestä leikelty ir-ledi jonkun summanmutikassa lasketun etuvastuksen kanssa, ja ei muuta kuin IR-kirjasto laulamaan:

#include <Arduino.h>
#include <IRremoteESP8266.h>
#include <IRsend.h>

#define	IR_OFF 	  0xF740BF
#define	IR_ON 	  0xF7C03F

const uint16_t kIrLed = 4;
IRsend irsend(kIrLed);

void setup() {
  irsend.begin();
  Serial.begin(9600);
}


void loop() {

  irsend.sendNEC(IR_ON, 32);
  delay(1000);
  
  irsend.sendNEC(IR_OFF, 32);
  delay(1000);
  
}

...ja kappas kehveliä: ledinauha yllättäen vilkkuu komentojen tahtiin! Siis kaukosäädin juttelee NEC-muotoisia komentoja nauhan kontrollerille, joka sitten tekee ohjaustaikansa. Siis perusosat älyohjaukseen ovat kunnossa! Oheisella klipillä testissä eri värinappien komentojen lähettäminen loopissa eräällä toisella lednauhahukkapätkällä.

Kotelointi ja kaukosäätöserveri

Sitten pitäisi vielä alkaa rakentamaan sitä älyä. No, tämä ESP8266 on siitä hieno vempain, että sen saa aika pienellä vaivalla kiinni wifiin – tai luomaan sellaisen (ja onpa niillä mahdollista jonkinlainen wifi-mesh-verkkokin kai rakentaa).

D1-klooni, eli ESP8266 breakoutissaan
D1-klooni, eli ESP8266 breakoutissaan

Koodinakutusinspiraatio laulamaan, tuloksena askeettinen käyttöliittymä ja polut, joita http:llä tökkimällä saa ir-komennot ilmoille. Tulos: alkeellisesta käyttöliittymästä saa kännykällä ohjattua ledinauhaa! Koska kaikki namiskat tiedetään etukäteen, ja serveriä ajetaan erittäin pienimuistisella IoT-vekottimella, on koodi käytännössä staattista dataa, ja namiskojen polut miltei kovakoodattu ajamaan tietyt IR-komennot.

Kaukosäädinserverin koodi on saatavilla Gistinä. Kovin kummoisia virheensietoja tai kutsutarkistuksia ei tässä ole, koska mokoma pyörii meillä suljetussa ja salatussa IoT-wlanissa, johon ei ole pääsyä ulkoverkosta. Käytännössä ko. mutikka siis tarjoilee esivalmistellun veppisivun kenelle tahansa kutsujalle, ja emuloi eri napinpainalluksia huudoilla osoitteisiin /button/00 - /button/23, eli ohjausta voi toteuttaa suoraan selaimella, tai huutamalla espille GET-pyyntöjä.

ESP8266:n hostaama veppigui on alkeellinen, mutta toimiva.
ESP8266:n hostaama veppigui on alkeellinen, mutta toimiva.

Tässä vaiheessa voidaankin valmistella ja "koteloida" (lue: sulkea pois pölyltä) lopullinen ohjainpurkki. Siis inkiväärishottipullo hyötykäyttöön, IR-ledi roikkumaan Bilteman hälytinjohdon nokkaan ledinauhan ohjaimen lähettyville, ja valmista tulee!

Tämän "koteloinnin" tarkoitus on lähinnä suojata mokomaa pölyltä – se kun elää television takana olkkarinurkkauksessa. IR-ledi pitkän piuhan päässä kulkee siis Ikeahyllyjen tv-tason takaa nurkasta ylös nauhan kontrollerille ja osoittelee säteitään sitä kohti. Ehkä jokin fiksumpi kotelointi on syytä toteuttaa viimeistään siinä vaiheessa, kun led-nauhakontrollin on tarkoitus laajeta makuuhuoneen valaistuksen puolelle toisella ir-ledillä.

(Toim. huom. Artikkeli sisälsi aiemmin kuvan tästä "koteloinnista", mutta yleisen järjestyksen säilymisen kannalta lienee oleellista sensuroida se pois.)

IR-ledi osoittelee suurin piirtein ohjainpurkin suuntiin. Tuolla etuvastuksella se on melko virtapihi, ja samalla myös himmeä, joten ohjaus huoneen toiselta puolelta ei ainakaan onnistu.
IR-ledi osoittelee suurin piirtein ohjainpurkin suuntiin. Tuolla etuvastuksella se on melko virtapihi, ja samalla myös himmeä, joten ohjaus huoneen toiselta puolelta ei ainakaan onnistu.

Myöhemmin tämän voikin sitten valjastaa http-pyyntöjen pohjalta osaksi kokonaisvaltaisempaa kodin älykästä (älytöntä?) valaistusta. Ehdin jo asentaa vaatehuoneserverille avointa sorsaa olevan Home Assistantin, mutta sen setuppaaminen kotikäyttöön vaatii hitusen enemmän perehtymistä.

Toiveena olisi löytää käytettynä halvalla jo käytössä olevien Ikean Trådfri-lamppujen kontrollointiin sopiva gateway. Näin voisi toteuttaa esimerkiksi automaagisesti vaihtuvia päivä- ja yövalaistustilanteita, tai vaikkapa kotiintulovalaistuksen.

...mutta sitä jäätäneen odottamaan!

Kommentit

Ei vielä yhtään kommenttia!

Jätä kommentti

Kommentoidessasi ip-osoitteesi ja nimimerkkisi tallennetaan systeemiin.