Sisukord:

Arduino brauseripõhine kaugjuhtimispult (linux): 9 sammu (piltidega)
Arduino brauseripõhine kaugjuhtimispult (linux): 9 sammu (piltidega)

Video: Arduino brauseripõhine kaugjuhtimispult (linux): 9 sammu (piltidega)

Video: Arduino brauseripõhine kaugjuhtimispult (linux): 9 sammu (piltidega)
Video: Уроки Ардуино #0 - что такое Arduino, куда подключаются датчики и как питать Ардуино 2024, November
Anonim
Arduino brauseripõhine kaugjuhtimispult (linux)
Arduino brauseripõhine kaugjuhtimispult (linux)
Arduino brauseripõhine kaugjuhtimispult (linux)
Arduino brauseripõhine kaugjuhtimispult (linux)

Meil on lapsed. Ma armastan neid tükkideks, kuid lastekanalite sisselülitamisel peidavad nad satelliidi ja teleri kaugjuhtimispulti. Pärast seda, kui see juhtus iga päev mitu aastat ja pärast seda, kui mu kallis naine lubas mul jõulude ajal Arduino võtta, otsustasin, et on aeg teha midagi kasulikku (tema silmis!) Arduinoga. Siin on meil selle kulminatsioon: veebipõhine liides Arduinole, mis asendab minu kaugjuhtimispuldid ja on juurdepääsetav minu sisevõrgust. Kui ma saan aru, miks mu Etherneti kilp ei luba arduinol visandit säilitada, kirjutan uue visandi, mis kasutab veebiserverina Etherneti kilpi, mis tähendab, et ma ei vaja arvutisse installitud apache'i. Püsige lainel, ma tulen kohale!

1. samm: eeltingimused

Eeldused
Eeldused

Riistvara: Arduino pool: Arduino - ma kasutan Arduino Uno R2 leivaplaati - teie kohalikku elektroonikapoodi või kööki, kui soovite autentset leivaplaati Paigalduskarp - kasutasin vana läbipaistva kaanega plastkorpust Komponendid: infrapuna -LED üks katkisest kaugjuhtimispuldist (aitäh lastele!) Infrapuna vastuvõtja - sain oma maagilise silma kaugjuhtimispikendist Transistor - kasutasin BC547 takistit - kasutasin 1,5k oomi muutuva takisti komplekti 1k ohm Leivaplaadi hüppaja juhtmed - sain oma tahke südamikuga RJ45 kaablirullilt Arvuti pool: arvuti, mida kasutada serverina USB -juhe Arduino tarkvarale: Arduino tarkvara - arduino.cc irremote raamatukogust - aadressilt https://www.arcfn.com/2009/08/multi-protocol- infrared -remote -library.html (aitäh Ken, suurepärane töö!) Apache veebiserver, kuhu on installitud PHP - apache.org Sisemine IP -aadress - minu oma on 192.168.0.9 Teie kaugjuhtimispuldi pilt - google või teie kaameraga tehtud pilt. Salvestasin oma eraldusvõimega 200x600

2. samm: juhatuse loomine

Juhatuse ehitamine
Juhatuse ehitamine

Arduino jaoks on väga soovitatav kasutada leivaplaati. Paigaldasin oma Arduino ja leivalaua samasse ümbrisesse ja ühendasin kõik tihvtid, mida regulaarselt kasutan, otse leivaplaadile. Selle projekti jaoks kasutatavad Arduino tihvtid: 5v, maandatud digitaalsed tihvtid 3, 11 (tihvt 3 juhib IR -LED -i, tihvt 11 ühendub IR -vastuvõtjaga)

3. samm: skemaatiline

Skeem
Skeem

See skeem on väga lihtne, 4 komponenti ja 6 juhtmest. IR -LED -ühendused: Ühendage takisti üks jalad Arduino digitaalse tihvtiga 3 Ühendage takisti teine jalg transistori aluspinnaga (minu puhul keskmine jalg) Ühendage transistori emitter maandusega transistorist LED -i negatiivse jala külge (lühike jalg, LED -i tasane külg) Ühendage LED -i positiivne jalg (pikk jalg, kõver külg) 5 -pin pistikuga IR -vastuvõtja ühendustega (peate leidma pistiku teie IR -vastuvõtja): GND tihvt maandatud VS -nööpnõel 5 -V VO -pinniga Arduino digitaalsele tihvtile 11

Samm: lisage Arduino tarkvarasse Irremote'i raamatukogu

Lisage Arduino tarkvarasse Irremote raamatukogu
Lisage Arduino tarkvarasse Irremote raamatukogu

irremote on suurepärane raamatukogu, mille on kirjutanud Ken Shirriff ja mis on saadaval tema ajaveebis aadressil https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html Laadige raamatukogu alla aadressilt https:// arcfn.com/files/IRremote.zip ja installige see nagu kõik muud arduino teegid. Tema ajaveebis on palju kasulikku teavet raamatukogu ja selle installimise kohta.

Samm: salvestage kaugjuhtimispuldi koodid

Siin on igava (kuid vältimatu) osa algus: iga kaugjuhtimispuldi nupu vajutamine, väljundstringi salvestamine ja virtuaalse kaugjuhtimispuldi vastendamine. Peate seda tegema ainult üks kord, eeldatavasti võtab see aega umbes 20 minutit. Väljundi salvestamiseks käivitage tekstiredaktor. Looge uus dokument ja tippige välja kõik kaugjuhtimispuldi nupud, üks rea kohta: sisselülitamine üles ja alla vasakule paremale jne. Käivitage Arduino IDE ja klõpsake "Failid-> Näited-> IRremote-> IRrecvDump" ja laadige see üles teie Arduino. See näide tühjendab kaugkoodid jadaporti. Käivitage jadapordi monitor ja vajutage kaugjuhtimispuldi klahvi. Näete jadamonitori aknas stringi: "Dekodeeritud *: * (* bitti)". Kopeerige see rida ja salvestage see oma dokumendile vastaval real. Korrake seda seni, kuni kõik võtmed on tekstifaili salvestatud. Ma tean, kui lõbus see bitt on, olen seda seni teinud kaks korda: P Nüüd peame tekstifailis natuke otsima ja asendama: otsige "dekodeeritud" asendage "" otsige ": 0x" asenda "," otsi "(" asenda "," otsi "bitte") asenda "" Nii et sellise rea puhul nagu: dekodeeritud NEC: 0x000110 (15 bitti) peaks meil nüüd olema rida, mis ütleb: NEC, 000110, 15

Samm: looge kaugjuhtimispuldi jaoks veebileht

Nüüd peame kaardistama teie kaugjuhtimispuldi kujutise nupud.

Kasutasin nuppude kaardistamiseks https://www.maschek.hu/imagemap/imgmap ja muutsin selle toimimiseks koodi, mille veebisait teile annab.

Klõpsake "Kasuta pilti oma arvutis: [vali fail]", vali oma pilt, klõpsa [üleslaadimine], klõpsa [nõustu] Viska ristkülikud, ringid jms igale nupule. HREF -i jaoks sisestage /remote.php?command= ja selle nupu rida tekstidokumendist, näiteks /remote.php?command=NEC, 000110, 15 Oleks mõistlik (ja aitaks silumisel tohutult kaasa), kui täidaksite ka Alt: nupu nimega, kuid see on teie otsustada.

Korrake iga nupu puhul.

Kõik tehtud? Siis jätkame. Selle lehe allosas on "Kood", klõpsake seda ja avaneb kast, mis näitab pildikaardi koodi. Kopeerige see ja kleepige see uude tekstidokumenti. See on meie veebisaidi peamine osa.

Siin on minu täielik veebisait, lihtsalt asendage…

oma ülaltoodud koodiga ja salvestage see koos kaugjuhtimispiltidega oma veebikataloogi (/var/www Linuxis) failina remote.php. Muutke oma piltide ridu:

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

Arduino LED -juhtimine

Samm: laadige kaugjuhtimispuldi kood oma Arduinole üles

Laadige kaugjuhtimispuldi kood oma Arduinole üles
Laadige kaugjuhtimispuldi kood oma Arduinole üles

Looge uus visand ja kleepige sinna järgmine kood:/ * * WebRemote * Arduino PWM pin 3. peab olema ühendatud IR -LED. * Versioon 0.1, juuli 2009 * Selle koodi autoriõigus Gregory Fenton, https://labby.co. uk/2012/02/irremote-arduino-experimentation/ * IRremote'i raamatukogu autoriõigus 2009 Ken Shirriff, https://arcfn.com */#include template inline Print & operator << (Print & obj, T arg) {obj.print (arg); tagastama obj; } loogiline lõpp = vale; char inData [64]; // Suurus vastavalt vajadusele baitindeks = 0; #define EOP "\ n" IRsaada irsend; void setup () {Serial.begin (9600); Seeria << "Sarjaport initsialiseeritud" << EOP; } void loop () {String pch, sType, sTemp; char inChar, sTest, k; int sBits; pikk sHex; int i, j; while (1) {while (Serial.available ()> 0) {inChar = Serial.read (); kui (indeks == 0) {pch = ""; } if (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {lõppenud = tõene; indeks = 0; murda; } else {if (indeks <64) // Massiivi suurus {pch += inChar; indeks ++; }}} if (lõppenud) {// Sõeluda inData andmed siin… pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.alamstring (0, i); i ++; // vahele jätta ',' või '' // i osutab nüüd heksade j = pch.lastIndexOf ('') algusesse! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j osutab nüüd ',' või '' peale kuusnurka sHex = 0; sTemp = pch.alamstring (i, j); if (sTemp.substring (0, 2) == String ("0X")) sTemp = sTemp.substring (2); jaoks (i = 0; i <sTemp.length (); i ++) {k = sTemp ; kui (! ((k> = '0' && k = 'A' && k <= 'F'))) murda; sHex *= 16; kui (k> = '0' && k <= '9') sHex += (k - '0'); muidu kui (k> = 'A' && k <= 'F') sHex + = ((k - 'A') + 10); kui (! ((k> = '0' && k = 'A' && k <= 'F'))) murda; } sTemp = pch.alamstring (j+1); sBits = 0; jaoks (i = 0; i <sTemp.length (); i ++) {k = sTemp ; sBitti *= 10; kui (k> = '0' && k <= '9') sBitti += (k - '0'); } if (sType.length ()> 0) {Serial << pch << EOP << "Koodi tüüp:" << sType << "Hex:"; Serial.print (sHex, HEX); Seeria << "Bits:" << sBits; } sendIt (sType, sHex, sBits); pch = ""; lõppenud = 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 (""))) {Seeria << "Viivitamine" << EOP; viivitus (450); } viivitus (30); }}

Samm 8: Ühendage oma arvutist veebiserveriga

Ühendage oma arvutist veebiserveriga
Ühendage oma arvutist veebiserveriga

.. või telefon või android või ipad või mis iganes: minge oma brauseris aadressile https:// veebiserveri IP -aadress/remote.php. Minu jaoks on aadress https://192.168.0.9/remote.php, kuid teie oma on kahtlemata erinev. Kui kõik töötab, peaksite nägema kaugjuhtimispuldi pilti nuppudega, mida saate klõpsata.

9. samm: valikuline toiming: muutke oma hostifaili, et seda oleks lihtsam kasutada

Valikuline samm: muutke oma hostifaili, et seda oleks lihtsam kasutada
Valikuline samm: muutke oma hostifaili, et seda oleks lihtsam kasutada

Minu samm oli redigeerida oma hostifaili (/etc/hosts Linuxis, C: / Windows / System32 / Drivers / etc / hosts Windowsis). Pange tähele, et seda faili saab redigeerida ainult administraatori käsureal (Windows) või su (linux). Lisage rida ip.add.re.ss remote asendage ip.add.re.ss serveri IP -aadressiga ja salvestage fail. Peaksite seda tegema igas seadmes, millele soovite lühikese nimega veebilehele pääseda. Nüüd pääsete kaugjuhtimispuldile juurde aadressil https://remote/remote.php. See on minu esimene õige juhend, olge õrn ja andke mulle teada, kui on probleeme, et saaksin need parandada.

Soovitan: