Turinys:

„Arduino“naršyklės nuotolinio valdymo pultas („Linux“): 9 žingsniai (su paveikslėliais)
„Arduino“naršyklės nuotolinio valdymo pultas („Linux“): 9 žingsniai (su paveikslėliais)

Video: „Arduino“naršyklės nuotolinio valdymo pultas („Linux“): 9 žingsniai (su paveikslėliais)

Video: „Arduino“naršyklės nuotolinio valdymo pultas („Linux“): 9 žingsniai (su paveikslėliais)
Video: ESET Remote administrator: naujos kartos centralizuotas valdymas nuotoliniu būdu 2024, Lapkritis
Anonim
„Arduino“naršyklės nuotolinio valdymo pultas („Linux“)
„Arduino“naršyklės nuotolinio valdymo pultas („Linux“)
„Arduino“naršyklės nuotolinio valdymo pultas („Linux“)
„Arduino“naršyklės nuotolinio valdymo pultas („Linux“)

Mes turime vaikų. Man jie labai patinka, bet įjungę vaikų kanalus jie nuolat slepia palydovo ir televizoriaus nuotolinio valdymo pultą. Po to, kai tai vyksta kasdien kelerius metus, ir po to, kai mano brangioji žmona leido man išgerti „Arduino“Kalėdoms, nusprendžiau, kad atėjo laikas padaryti kažką naudingo (jos akimis!) Su „Arduino“. Taigi čia mes turime kulminaciją: žiniatinklio sąsaja su „Arduino“, kuri pakeičia mano nuotolinio valdymo pultus ir yra prieinama iš mano vidinio tinklo. Kai išsiaiškinsiu, kodėl mano eterneto skydas neleidžia mano arduino išsaugoti eskizo, parašysiu naują eskizą, kuriame kaip tinklo serveris naudojamas eterneto skydas, o tai reiškia, kad man nereikia įdiegti „apache“kompiuteryje. Sekite naujienas, aš ateisiu!

1 žingsnis: Būtinos sąlygos

Būtinos sąlygos
Būtinos sąlygos

Techninė įranga: „Arduino“pusė: „Arduino“- aš naudoju „Arduino Uno R2“duonos lentą - jūsų vietinę elektronikos parduotuvę arba virtuvę, jei norite autentiškos kepimo lentos montavimo gaubto - naudojau seną plastikinį dėklą su skaidriu dangteliu. Komponentai: infraraudonųjų spindulių LED vienas iš sugedusio nuotolinio valdymo pulto (ačiū vaikams!) Infraraudonųjų spindulių imtuvas - aš gavau iš stebuklingų akių nuotolinio ilgintuvo tranzistoriaus - naudojau BC547 rezistorių - naudojau 1,5 k omo kintamąjį rezistorių, nustatytą į 1 k ohm duonos laido trumpiklius - aš gavau savo iš tvirto šerdies RJ45 kabelio ritės Kompiuterio pusė: Kompiuteris, naudojamas kaip serveris USB laidas į „Arduino“programinę įrangą: „Arduino“programinė įranga - iš arduino.cc irremote bibliotekos - iš https://www.arcfn.com/2009/08/multi-protocol- infrared -remote -library.html (ačiū Kenai, puikus darbas!) „Apache“žiniatinklio serveris su įdiegtu PHP - apache.org Vidinis IP adresas - mano 192.168.0.9 Nuotolinio valdymo pulto paveikslėlis - „Google“arba nuotrauka, padaryta fotoaparatu. Išsaugojau savo 200x600 raiška

2 žingsnis: valdybos kūrimas

Valdybos kūrimas
Valdybos kūrimas

Labai rekomenduojama naudoti duonos lentą arduino. Aš sumontavau „Arduino“ir duonos lentą tame pačiame korpuse ir prijungiau visus kaiščius, kuriuos reguliariai naudoju, nuolat prie duonos lentos. Šiam projektui naudojami „Arduino“kaiščiai: 5 V, įžeminti Skaitmeniniai kaiščiai 3, 11 (3 kaištis valdo IR šviesos diodą, 11 kaištis jungiasi prie IR imtuvo)

3 žingsnis: schema

Schema
Schema

Ši schema yra labai paprasta, 4 komponentai ir 6 laidai. IR šviesos diodų jungtys: Prijunkite vieną iš rezistoriaus kojelių prie „Arduino“skaitmeninio kaiščio 3 Prijunkite kitą rezistoriaus kojelę prie tranzistoriaus pagrindo kaiščio (mano atveju - vidurinė kojelė) prie neigiamo šviesos diodo kojelės (trumpa kojelė, plokščia šviesos diodo pusė) Prijunkite teigiamą šviesos diodo kojelę (ilgą koją, išlenktą pusę) prie 5 V kontaktų IR imtuvo jungčių (jums reikės rasti jūsų IR imtuvas): GND kaištis įžeminamas VS kaištis į 5 V VO kaištį prie „Arduino“skaitmeninio kaiščio 11

4 veiksmas: pridėkite „Irremote“biblioteką prie „Arduino“programinės įrangos

Pridėkite „Irremote“biblioteką prie „Arduino“programinės įrangos
Pridėkite „Irremote“biblioteką prie „Arduino“programinės įrangos

„Irremote“yra puiki biblioteka, kurią parašė Kenas Shirriffas ir kurią galima rasti jo tinklaraštyje adresu https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html Atsisiųskite biblioteką iš https:// arcfn.com/files/IRremote.zip ir įdiekite ją kaip ir bet kurią kitą arduino biblioteką. Jo tinklaraštyje yra daug naudingos informacijos apie biblioteką ir kaip ją įdiegti.

5 veiksmas: įrašykite kodus iš nuotolinio valdymo pulto

Štai nuobodžios (bet neišvengiamos) dalies pradžia: paspaudus kiekvieną nuotolinio valdymo pulto mygtuką, išsaugoma išvesties eilutė ir priskiriama virtualiam nuotolinio valdymo pultui. Tai reikia padaryti tik vieną kartą, tikimasi, kad tai užtruks maždaug 20 minučių. Norėdami išsaugoti išvestį, paleiskite teksto rengyklę. Sukurkite naują dokumentą ir įveskite kiekvieną nuotolinio valdymo pulto mygtuką po vieną eilutėje: įjunkite aukštyn žemyn kairę į dešinę.. ir tt Paleiskite „Arduino IDE“ir spustelėkite „Failai-> Pavyzdžiai-> IRremote-> IRrecvDump“ir įkelkite jį į tavo Arduino. Šis pavyzdys nuotolinius kodus išmes į nuoseklųjį prievadą. Paleiskite serijinio prievado monitorių ir paspauskite nuotolinio valdymo pulto klavišą. Serijinio monitoriaus lange pamatysite eilutę: „Iššifruotas *: * (* bitai)“. Nukopijuokite šią eilutę ir išsaugokite ją savo dokumente atitinkamoje eilutėje. Pakartokite, kol visi raktai bus išsaugoti teksto faile. Aš žinau, koks smagus šis bitukas, iki šiol tai padariau du kartus: P Dabar teks šiek tiek paieškoti ir pakeisti teksto failą: ieškoti „Atšifruotas“pakeisti į „„ ieškoti “: 0x„ pakeisti "," ieškoti "(" pakeisti su "," ieškoti "bitų") pakeisti į "" Taigi tokiai eilutei kaip: dekoduotas NEC: 0x000110 (15 bitų) dabar turėtume turėti eilutę, kuri sako: NEC, 000110, 15

6 veiksmas: sukurkite nuotolinio valdymo pulto tinklalapį

Dabar turime susieti jūsų nuotolinio valdymo pulto atvaizdo mygtukus.

Naudodama https://www.maschek.hu/imagemap/imgmap mygtukus susiejau ir pakeičiau kodą, kurį suteikia svetainė, kad ji veiktų.

Spustelėkite „Naudoti vaizdą kompiuteryje: [pasirinkite failą]“, pasirinkite savo paveikslėlį, spustelėkite [įkelti], spustelėkite [priimti] Į kiekvieną mygtuką įmeskite stačiakampius, apskritimus ir pan. Jei naudojate HREF, įveskite /remote.php?command= ir to mygtuko eilutę iš teksto dokumento, pvz., /Remote.php?command=NEC, 000110, 15 Būtų protinga (ir labai padėtų derinant), jei taip pat užpildytumėte Alt: su mygtuko pavadinimu, bet tai priklauso nuo jūsų.

Pakartokite kiekvieną mygtuką.

Viskas padaryta? Tada mes tęsime. To puslapio apačioje yra „Kodas“, spustelėkite jį ir atsidarys langelis, rodantis vaizdo žemėlapio kodą. Nukopijuokite jį ir įklijuokite į naują tekstinį dokumentą. Tai yra pagrindinė mūsų tinklalapio dalis.

Čia yra mano visas tinklalapis, tiesiog pakeiskite…

su savo kodu aukščiau ir išsaugokite jį kaip remote.php savo žiniatinklio kataloge (/var/www „Linux“) kartu su nuotolinio valdymo vaizdais. Pakeiskite savo vaizdų eilutes:

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

„Arduino“LED valdymas

7 veiksmas: įkelkite nuotolinio valdymo kodą į „Arduino“

Įkelkite nuotolinio valdymo kodą į „Arduino“
Įkelkite nuotolinio valdymo kodą į „Arduino“

Sukurkite naują eskizą ir įklijuokite į jį šį kodą:/ * * „WebRemote“* IR šviesos diodas turi būti prijungtas prie „Arduino PWM 3“kaiščio. * 0.1 versija, 2009 m. Liepos mėn. uk/2012/02/irremote-arduino-experimentation/ * „IRremote“bibliotekos autorių teisės 2009 Ken Shirriff, https://arcfn.com */#include template inline Print & operator << (Print & obj, T arg) {obj.print (arg); grįžti obj; } loginis pabaiga = klaidinga; char inData [64]; // Dydis kaip tinkamas baitų indeksas = 0; #define EOP "\ n" IRsend irsend; void setup () {Serial.begin (9600); Serijinis << "Serijinis prievadas inicijuotas" << EOP; } void loop () {Styga pch, sType, sTemp; char inChar, sTest, k; int sBits; ilgas sHex; int i, j; while (1) {while (Serial.available ()> 0) {inChar = Serial.read (); jei (indeksas == 0) {pch = ""; } if (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {end = true; indeksas = 0; pertrauka; } else {if (indeksas <64) // Masyvo dydis {pch += inChar; indeksas ++; }}} if (baigtas) {// Analizuokite duomenis inData čia … pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); i ++; // praleisti per ',' arba '' // i dabar rodo į šešiakampio pradžią j = pch.lastIndexOf ('')! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j dabar rodo „,“arba „“po šešiakampio sHex = 0; sTemp = pch.substring (i, j); if (sTemp.substring (0, 2) == String ("0X")) sTemp = sTemp.substring (2); (i = 0; i <sTemp.length (); i ++) {k = sTemp ; if (! ((k> = '0' && k = 'A' && k <= 'F'))) break; sHex *= 16; jei (k> = '0' && k <= '9') sHex += (k - '0'); kitaip, jei (k> = 'A' && k <= 'F') sHex + = ((k - 'A') + 10); if (! ((k> = '0' && k = 'A' && k <= 'F'))) break; } sTemp = pch.substring (j+1); sBits = 0; (i = 0; i <sTemp.length (); i ++) {k = sTemp ; sBits *= 10; jei (k> = '0' && k <= '9') sBits += (k - '0'); } if (sType.length ()> 0) {Serial << pch << EOP << "Kodo tipas:" << sType << "Hex:"; Serijinis atspaudas (sHex, HEX); Serijos << "bitai:" << sBits; } sendIt (sType, sHex, sBits); pch = ""; baigėsi = 0; }}} void sendIt (String sType, long sHex, int sBits) {for (int i = 0; i <2; i ++) {if (sType.equals (String ("RC6"))) {irsend.sendRC6 (sHex, sBits); } 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 (""))) {Serial << "Delaying" << EOP; vėlavimas (450); } uždelsimas (30); }}

8 veiksmas: prisijunkite prie žiniatinklio serverio iš savo kompiuterio

Prisijunkite prie žiniatinklio serverio iš savo kompiuterio
Prisijunkite prie žiniatinklio serverio iš savo kompiuterio

.. arba telefonas, „Android“ar „iPad“ar bet kas kitas: naršyklėje eikite į https:// web serverio IP adresą/remote.php. Man adresas yra https://192.168.0.9/remote.php, bet jūsų, be abejo, bus kitaip. Jei viskas veikia, turėtumėte pamatyti nuotolinio valdymo pulto nuotrauką su mygtukais, kuriuos galite spustelėti.

9 veiksmas: pasirenkamas žingsnis: redaguokite „Hosts“failą, kad būtų lengviau juo naudotis

Pasirenkamas veiksmas: redaguokite pagrindinio kompiuterio failą, kad būtų lengviau juo naudotis
Pasirenkamas veiksmas: redaguokite pagrindinio kompiuterio failą, kad būtų lengviau juo naudotis

Vienas žingsnis, kurį aš padariau, buvo redaguoti pagrindinio kompiuterio failą (/etc/hosts „Linux“, C: / Windows / System32 / Drivers / etc / hosts Windows). Atminkite, kad šį failą galima redaguoti tik administravimo komandinėje eilutėje („Windows“) arba naudojant „su“(„Linux“).. Tai turėsite padaryti kiekviename įrenginyje, kurį norėjote pasiekti tinklalapiu trumpuoju pavadinimu. Dabar galite pasiekti nuotolinio valdymo pultą naudodami https://remote/remote.php. Tai yra mano pirmasis tinkamas nurodymas, būkite švelnus ir praneškite man, jei yra kokių nors problemų, kad galėčiau jas išspręsti.

Rekomenduojamas: