Sisällysluettelo:

Arduino -selainpohjainen kaukosäädin (linux): 9 vaihetta (kuvilla)
Arduino -selainpohjainen kaukosäädin (linux): 9 vaihetta (kuvilla)

Video: Arduino -selainpohjainen kaukosäädin (linux): 9 vaihetta (kuvilla)

Video: Arduino -selainpohjainen kaukosäädin (linux): 9 vaihetta (kuvilla)
Video: KUINKA ASENTAA KÄYTTÖJÄRJESTELMÄ! (Tutoriaali) 2024, Marraskuu
Anonim
Arduino -selainpohjainen kaukosäädin (linux)
Arduino -selainpohjainen kaukosäädin (linux)
Arduino -selainpohjainen kaukosäädin (linux)
Arduino -selainpohjainen kaukosäädin (linux)

Meillä on lapsia. Rakastan heitä palasiksi, mutta he piilottavat jatkuvasti satelliitin ja television kaukosäätimen, kun he laittavat lasten kanavat päälle. Tämän jälkeen tapahtui päivittäin useita vuosia, ja kun rakas vaimoni antoi minulle mahdollisuuden saada Arduinon jouluksi, päätin, että on aika tehdä jotain hyödyllistä (hänen silmissään!) Arduinon kanssa. Joten tässä meillä on sen huipentuma: verkkopohjainen käyttöliittymä Arduinolle, joka korvaa kaukosäätimeni ja on käytettävissä sisäisestä verkostani. Kun ymmärrän, miksi ethernet -kilveni ei salli arduinoni pitää luonnosta, kirjoitan uuden luonnoksen, joka käyttää ethernet -suojaa verkkopalvelimena, eli en tarvitse apachea tietokoneeseeni. Pysy kuulolla, tulen sinne!

Vaihe 1: Edellytykset

Edellytykset
Edellytykset

Laitteisto: Arduino -puoli: Arduino - Käytän Arduino Uno R2 -leipälevyä - paikallista elektroniikkamyymälääsi tai keittiötä, jos haluat aitoa leipälevyä Asennuskotelo - Käytin vanhaa muovikoteloa läpinäkyvällä kannella Komponentit: Infrapuna -LED - I desoldered yksi rikkoutuneesta kaukosäätimestä (kiitos lapsille!) Infrapunavastaanotin - sain omani taikasilmäkauko -ohjaimesta Transistori - Käytin BC547 -vastusta - Käytin 1,5 k ohmin muuttuvaa vastusta, joka asetettiin 1 k ohmin leipälevyn hyppyjohtoihin - sain omani kiinteästä RJ45 -kaapelikelasta Tietokonepuoli: Tietokone, jota käytetään palvelimena USB -liitäntä Arduino -ohjelmistoon: Arduino -ohjelmisto - arduino.cc -irremote -kirjastosta - osoitteesta https://www.arcfn.com/2009/08/multi-protocol- infrared -remote -library.html (kiitos Ken, hienoa työtä!) Apache -verkkopalvelin, johon on asennettu PHP - apache.org Sisäinen IP -osoite - minun on 192.168.0.9 Kuva kaukosäätimestäsi - google tai kameralla otettu kuva. Tallensin omani 200x600 resoluutiolla

Vaihe 2: Hallituksen rakentaminen

Hallituksen rakentaminen
Hallituksen rakentaminen

Leipälaudan käyttäminen arduinoon on erittäin suositeltavaa. Asensin Arduinon ja leipälautani samaan koteloon ja johdotin kaikki säännöllisesti käyttämäni tapit suoraan leipälautaan pysyvästi. Tässä projektissa käytetyt Arduino -nastat: 5v, maadoitetut digitaaliset nastat 3, 11 (nasta 3 ohjaa IR -LEDiä, nasta 11 yhdistää IR -vastaanottimen)

Vaihe 3: Kaavio

Kaavamainen
Kaavamainen

Tämä kaavio on hyvin yksinkertainen, 4 komponenttia ja 6 johtoa. IR -LED -liitännät: Liitä yksi vastuksen jaloista Arduinon digitaaliseen nastaan 3 Kytke vastuksen toinen jalka transistorin pohjatappiin (minun tapaukseni keskijalka) Kytke transistorin lähetin maahan Kytke keräin transistorista LED -valon negatiiviseen osaan (lyhyt jalka, LED -valon tasainen puoli) IR -vastaanotin): GND -nasta maadoitettuun VS -nastaan 5 voltin VO -nastaan Arduinon digitaaliseen nastaan 11

Vaihe 4: Lisää Irremote -kirjasto Arduino -ohjelmistoon

Lisää Irremote -kirjasto Arduino -ohjelmistoon
Lisää Irremote -kirjasto Arduino -ohjelmistoon

irremote on loistava kirjasto, jonka on kirjoittanut Ken Shirriff ja joka on saatavilla hänen blogistaan osoitteessa https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html Lataa kirjasto osoitteesta https:// arcfn.com/files/IRremote.zip ja asenna se kuten mikä tahansa muu arduino -kirjasto. Hänen blogissaan on paljon hyödyllistä tietoa kirjastosta ja sen asentamisesta.

Vaihe 5: Tallenna koodit kaukosäätimistäsi

Tässä on tylsä (mutta väistämätön) osa: Kauko -ohjaimen jokaisen painikkeen painaminen, tulostusjonon tallentaminen ja sen yhdistäminen virtuaaliseen kaukosäätimeen. Sinun tarvitsee vain tehdä se kerran, odota noin 20 minuuttia. Käynnistä tekstieditori tallentaaksesi tuloksen. Luo uusi asiakirja ja kirjoita kaikki kaukosäätimen painikkeet, yksi per rivi: Käynnistä Alas Vasen Oikea.. jne. Käynnistä Arduino IDE ja napsauta "Tiedostot-> Esimerkit-> IRremote-> IRrecvDump" ja lataa se sinun Arduino. Tämä esimerkki tyhjentää etäkoodit sarjaporttiin. Käynnistä sarjaporttimonitori ja paina kaukosäätimen näppäintä. Sarjanäyttöikkunassa näkyy merkkijono: "Dekoodattu *: * (* bittiä)". Kopioi tämä rivi ja tallenna se asiakirjaan sopivalla rivillä. Toista, kunnes kaikki avaimet on tallennettu tekstitiedostoon. Tiedän kuinka hauskaa tämä bitti on, olen tehnyt sen kahdesti tähän mennessä: P Meidän on nyt tehtävä pieni haku ja korvattava tekstitiedosto: etsi "dekoodattu" korvaa "" etsi ": 0x" korvaa "," etsi "(" korvata "," etsi "bittejä" ") korvata" "Joten riville, kuten: Dekoodattu NEC: 0x000110 (15 bittiä), meillä pitäisi nyt olla rivi, joka sanoo: NEC, 000110, 15

Vaihe 6: Luo verkkosivu kaukosäätimellesi

Meidän on nyt kartoitettava kaukosäätimen kuvasi painikkeet.

Kartoitin painikkeet https://www.maschek.hu/imagemap/imgmap avulla ja muokkasin sivuston antamaa koodia, jotta se toimisi.

Napsauta "Käytä kuvaa tietokoneellasi: [valitse tiedosto]", valitse kuva, napsauta [lataa], napsauta [hyväksy] Pudota suorakulmiot, ympyrät jne. Jokaiseen painikkeeseen. Kirjoita HREF: lle /remote.php?command= ja kyseisen painikkeen rivi tekstiasiakirjasta, esimerkiksi /remote.php?command=NEC, 000110, 15 Olisi viisasta (ja auttaisi suuresti virheenkorjauksessa), jos täytät myös Vaihtoehto: painikkeen nimi, mutta se on sinun valintasi.

Toista jokaisen painikkeen kohdalla.

Valmista? Sitten jatkamme. Sivun alareunassa on "Koodi", napsauta sitä ja ruutu avautuu, jossa näkyy kuvakartan koodi. Kopioi se ja liitä se uuteen tekstiasiakirjaan. Tämä on verkkosivumme pääosa.

Tässä on täydellinen verkkosivuni, vaihda vain…

omalla koodillasi yllä ja tallenna se remote.php -tiedostona verkkohakemistoosi (/var/www Linuxissa) yhdessä kauko -ohjaimen kuvien kanssa. Muuta omien kuvien rivejä:

"https://www.w3.org/TR/html4/loose.dtd">

Arduino LED -ohjaus

Vaihe 7: Lataa kaukosäätimen koodi Arduinollesi

Lataa kaukosäätimen koodi Arduinollesi
Lataa kaukosäätimen koodi Arduinollesi

Luo uusi luonnos ja liitä siihen seuraava koodi:/ * * WebRemote * IR -LED on kytkettävä Arduino PWM -tappiin 3. * Versio 0.1, heinäkuu 2009 * Tämä koodi tekijänoikeus Gregory Fenton, https://labby.co. uk/2012/02/irremote-arduino-experimentation/ * IRremote-kirjaston tekijänoikeudet 2009 Ken Shirriff, https://arcfn.com */#include template inline Print & operator << (Print & obj, T arg) {obj.print (arg); paluu obj; } boolean päättyi = false; char inData [64]; // Koko sopiva tavuindeksi = 0; #define EOP "\ n" IRlähetä irsend; void setup () {Serial.begin (9600); Sarja << "Sarjaportti alustettu" << EOP; } void loop () {String pch, sType, sTemp; char inChar, sTest, k; int sBits; pitkä sHex; int i, j; while (1) {while (Serial.available ()> 0) {inChar = Serial.read (); jos (indeksi == 0) {pch = ""; } if (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {end = true; indeksi = 0; tauko; } else {if (indeksi <64) // Taulukon koko {pch += inChar; indeksi ++; }}} if (päättyi) {// Parsaa inDatan tiedot tästä… pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); i ++; // ohita ',' tai '' // i nyt osoittaa heksadesimaalin alkuun j = pch.lastIndexOf ('')! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j osoittaa nyt ',' tai '' heksadesimaalin jälkeen sHex = 0; sTemp = pch.substring (i, j); jos (sTemp.substring (0, 2) == String ("0X")) sTemp = sTemp.substring (2); for (i = 0; i <sTemp.length (); i ++) {k = sTemp ; jos (! ((k> = '0' && k = 'A' && k <= 'F'))) tauko; sHex *= 16; jos (k> = '0' && k <= '9') sHex += (k - '0'); muuten jos (k> = 'A' && k <= 'F') sHex + = ((k - 'A') + 10); jos (! ((k> = '0' && k = 'A' && k <= 'F'))) tauko; } sTemp = pch.substring (j+1); sBits = 0; for (i = 0; i <sTemp.length (); i ++) {k = sTemp ; sBittiä *= 10; jos (k> = '0' && k <= '9') sBittiä += (k - '0'); } if (sType.length ()> 0) {Sarja << pch << EOP << "Koodityyppi:" << sType << "Hex:"; Sarjajälki (sHex, HEX); Sarja << "Bittiä:" << sBittiä; } sendIt (sType, sHex, sBits); pch = ""; päättynyt = 0; }}} void sendIt (String sType, long sHex, int sBits) {for (int i = 0; i <2; i ++) {if (sType.equals (String ("RC6"))) {irsend.sendRC6 (sHex, sBittiä); } else if (sType.equals (String ("RC5"))) {irsend.sendRC5 (sHex, sBits); } else if (sType.equals (String ("SONY")))) {irsend.sendSony (sHex, sBits); } else if (sType.equals (String ("NEC"))) {if (! i) irsend.sendNEC (sHex, sBits); } else if (sType.equals (String (""))) {Sarja << "Viivästyy" << EOP; viive (450); } viive (30); }}

Vaihe 8: Muodosta yhteys verkkopalvelimeen tietokoneeltasi

Muodosta yhteys verkkopalvelimeen tietokoneeltasi
Muodosta yhteys verkkopalvelimeen tietokoneeltasi

.. tai puhelin tai android tai ipad tai mikä tahansa: siirry selaimessasi osoitteeseen https:// web -palvelimen IP -osoite/remote.php. Minulle osoite on https://192.168.0.9/remote.php, mutta omasi on varmasti erilainen. Jos kaikki toimii, sinun pitäisi nähdä kuva kauko -ohjaimesta painikkeilla, joita voit napsauttaa.

Vaihe 9: Valinnainen vaihe: Muokkaa isäntätiedostoa sen käytön helpottamiseksi

Valinnainen vaihe: Muokkaa isäntätiedostoa sen käytön helpottamiseksi
Valinnainen vaihe: Muokkaa isäntätiedostoa sen käytön helpottamiseksi

Vaihe, jonka tein, oli muokata isäntätiedostoani (/etc/hosts Linuxissa, C: / Windows / System32 / Drivers / etc / hosts Windowsissa). Huomaa, että tätä tiedostoa voidaan muokata vain järjestelmänvalvojan komentokehotteessa (Windows) tai su (linux).. Sinun on tehtävä tämä kaikilla laitteilla, joilla haluat käyttää verkkosivua lyhyellä nimellä. Nyt voit käyttää kaukosäädintä osoitteessa https://remote/remote.php. Tämä on ensimmäinen oikea ohjeeni, ole lempeä ja kerro minulle, onko ongelmia, jotta voin korjata ne.

Suositeltava: