Satura rādītājs:

Arduino pārlūkprogrammas tālvadības pults (Linux): 9 soļi (ar attēliem)
Arduino pārlūkprogrammas tālvadības pults (Linux): 9 soļi (ar attēliem)

Video: Arduino pārlūkprogrammas tālvadības pults (Linux): 9 soļi (ar attēliem)

Video: Arduino pārlūkprogrammas tālvadības pults (Linux): 9 soļi (ar attēliem)
Video: CS50 2015 - Week 10 2024, Novembris
Anonim
Arduino pārlūkprogrammas tālvadības pults (Linux)
Arduino pārlūkprogrammas tālvadības pults (Linux)
Arduino pārlūkprogrammas tālvadības pults (Linux)
Arduino pārlūkprogrammas tālvadības pults (Linux)

Mums ir bērni. Es viņus ļoti mīlu, bet, ieslēdzot bērnu kanālus, viņi turpina slēpt satelīta un TV tālvadības pulti. Pēc tam, kad tas notika ikdienā vairākus gadus, un pēc tam, kad mana mīļā sieva man atļāva Ziemassvētkos uzņemt Arduino, es nolēmu, ka ir pienācis laiks ar Arduino izveidot kaut ko noderīgu (viņas acīs!). Tātad šeit mums ir tā kulminācija: tīmekļa saskarne Arduino, kas aizstāj manas tālvadības pultis un ir pieejama no mana iekšējā tīkla. Kad es sapratu, kāpēc mans Ethernet vairogs neļauj manam arduino paturēt skici, es uzrakstīšu jaunu skici, kurā kā tīmekļa serveris tiek izmantots Ethernet vairogs, kas nozīmē, ka man datorā nav jāinstalē apache. Sekojiet līdzi, es tur nokļūšu!

1. darbība. Priekšnosacījumi

Priekšnosacījumi
Priekšnosacījumi

Aparatūra: Arduino puse: Arduino - es izmantoju Arduino Uno R2 maizes dēli - jūsu vietējo elektronikas veikalu vai virtuvi, ja vēlaties autentisku maizes dēļa stiprinājuma korpusu - es izmantoju vecu plastmasas korpusu ar caurspīdīgu vāku Sastāvdaļas: Infrasarkanā gaismas diode - es atlaidu viens no salauztas tālvadības pults (paldies bērniem!) Infrasarkanais uztvērējs - es dabūju no burvju acu tālvadības pagarinātāja tranzistora - es izmantoju BC547 rezistoru - es izmantoju 1,5 k omu mainīgo rezistoru, kas iestatīts uz 1 k ohm Breadboard džempera vadi - es saņēmu savu no cietā kodola RJ45 kabeļa spoles Datora puse: dators, ko izmantot kā servera USB vadu uz Arduino programmatūru: Arduino programmatūra - no arduino.cc irremote bibliotēkas - no https://www.arcfn.com/2009/08/multi-protocol- infrared -remote -library.html (paldies Kenam, lielisks darbs!) Apache tīmekļa serveris ar instalētu PHP - apache.org Iekšējā IP adrese - mana ir 192.168.0.9 Jūsu tālvadības pults attēls - google vai attēls, kas uzņemts jūsu kamerā. Es saglabāju savu ar izšķirtspēju 200x600

2. solis: valdes veidošana

Valdes veidošana
Valdes veidošana

Arduino ir ļoti ieteicams izmantot maizes dēli. Es uzstādīju savu Arduino un maizes dēli vienā korpusā un pieslēdzu visas tapas, kuras es regulāri lietoju, pastāvīgi uz maizes dēļa. Šim projektam izmantotās Arduino tapas: 5V, zemētas digitālās tapas 3, 11 (3.tapa kontrolē IR LED, 11.tapa savienojas ar IR uztvērēju)

3. darbība. Shēma

Shematisks
Shematisks

Šī shēma ir ļoti vienkārša, 4 komponenti un 6 vadi. IR LED savienojumi: pievienojiet vienu no rezistora kājām Arduino digitālajai tapai no tranzistora līdz gaismas diodes negatīvajai kājiņai (īsa kāja, plakana gaismas diodes puse) Pievienojiet gaismas diodes pozitīvo kāju (garo kāju, izliekto pusi) ar 5 v kontaktu IR uztvērēja savienojumiem (jums jāatrod pinout jūsu konkrētais IR uztvērējs): GND tapa zemē VS tapa līdz 5 V VO tapa līdz Arduino digitālajai tapai 11

4. darbība: pievienojiet Irremote bibliotēku Arduino programmatūrai

Pievienojiet Irremote bibliotēku Arduino programmatūrai
Pievienojiet Irremote bibliotēku Arduino programmatūrai

irremote ir lieliska bibliotēka, kuras autors ir Kens Širifs, un tā ir pieejama viņa emuārā vietnē https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html Lejupielādējiet bibliotēku no https:// arcfn.com/files/IRremote.zip un instalējiet to tāpat kā jebkuru citu arduino bibliotēku. Viņa emuārā ir daudz noderīgas informācijas par bibliotēku un tās instalēšanu.

5. darbība: ierakstiet kodus no tālvadības pultīm

Šeit sākas garlaicīgā (bet neizbēgamā) daļa: nospiežot katru tālvadības pults pogu, saglabājot izvades virkni un kartējot to virtuālajā tālvadības pultī. Jums tas jādara tikai vienu reizi, paredzot, ka tas aizņems apmēram 20 minūtes. Lai saglabātu izvadi, palaidiet teksta redaktoru. Izveidojiet jaunu dokumentu un ierakstiet katru pogu uz tālvadības pults, vienu katrā rindā: ieslēdziet uz augšu uz leju pa kreisi pa labi un tā tālāk. Palaidiet Arduino IDE un noklikšķiniet uz "Faili-> Piemēri-> IRremote-> IRrecvDump" un augšupielādējiet to tavs Arduino. Šis piemērs attālos kodus nosūta uz seriālo portu. Palaidiet seriālā porta monitoru un nospiediet tālvadības pults taustiņu. Sērijas monitora logā redzēsit virkni: "Atšifrēts *: * (* biti)". Kopējiet šo rindu un saglabājiet to savā dokumentā attiecīgajā rindā. Atkārtojiet, līdz visas atslēgas ir saglabātas teksta failā. Es zinu, cik jautri tas ir, esmu to darījis divreiz līdz šim: P Tagad mums teksta failā ir nedaudz jāmeklē un jāaizstāj: meklējiet "Atšifrēts" aizstāt ar "" meklēt ": 0x" aizstāt ar "," meklēt "(" aizstāt ar "," meklēt "bitus") aizstāt ar "" Tātad tādai rindai kā: dekodēts NEC: 0x000110 (15 biti), mums tagad vajadzētu būt rindai, kas saka: NEC, 000110, 15

6. darbība. Izveidojiet tālvadības pults tīmekļa lapu

Tagad mums ir jāapzīmē jūsu tālvadības pults attēla pogas.

Es izmantoju https://www.maschek.hu/imagemap/imgmap, lai kartētu pogas, un mainīju kodu, ko vietne dod, lai tā darbotos.

Noklikšķiniet uz "Izmantot attēlu datorā: [izvēlieties failu]", atlasiet savu attēlu, noklikšķiniet uz [augšupielādēt], noklikšķiniet uz [pieņemt] Uz katras pogas nometiet taisnstūrus, apļus utt. HREF gadījumā ievadiet /remote.php?command= un šīs pogas rindiņu no teksta dokumenta, piemēram, /remote.php?command=NEC, 000110, 15 Būtu prātīgi (un ārkārtīgi palīdzētu atkļūdošanā), ja aizpildītu arī Alt: ar pogas nosaukumu, bet tas ir atkarīgs no jums.

Atkārtojiet katru pogu.

Viss pabeigts? Tad mēs turpināsim. Šīs lapas apakšā ir "Kods", noklikšķiniet uz tā, un tiks atvērts lodziņš, kurā parādīts attēla kartes kods. Kopējiet to un ielīmējiet to jaunā teksta dokumentā. Šī ir mūsu tīmekļa lapas galvenā daļa.

Šeit ir mana pilnā tīmekļa lapa, vienkārši nomainiet…

ar savu kodu iepriekš un saglabājiet to kā remote.php savā tīmekļa direktorijā (/var/www Linux) kopā ar tālvadības pults attēliem. Mainiet rindas saviem attēliem:

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

Arduino LED vadība

7. darbība: augšupielādējiet tālvadības pults kodu savā Arduino

Augšupielādējiet tālvadības pults kodu savā Arduino
Augšupielādējiet tālvadības pults kodu savā Arduino

Izveidojiet jaunu skici un ielīmējiet tajā šādu kodu:/ * * WebRemote * IR gaismas diodei jābūt savienotai ar Arduino PWM tapu 3. * Versija 0.1, 2009. gada jūlijs * Šis kods pieder autortiesībām Gregorijam Fentonam, https://labby.co. uk/2012/02/irremote-arduino-experimentation/ * IRremote bibliotēkas autortiesības 2009 Ken Shirriff, https://arcfn.com */#include template inline Print & operator << (Print & obj, T arg) {obj.print (arg); atgriezties obj; } Būla beigas = nepatiess; char inData [64]; // Izmērs atbilstoši baitu indeksam = 0; #define EOP "\ n" IRsend irsend; void setup () {Serial.begin (9600); Sērijas << "Sērijas ports inicializēts" << EOP; } void loop () {String pch, sType, sTemp; char inChar, sTest, k; int sBits; garš sHex; int i, j; while (1) {while (Serial.available ()> 0) {inChar = Serial.read (); ja (indekss == 0) {pch = ""; } ja (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {end = true; indekss = 0; pārtraukums; } else {if (indekss <64) // Masīva lielums {pch += inChar; indekss ++; }}} ja (beidzās) {// Parsējiet datus inData šeit … pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); i ++; // izlaist ',' vai '' // i tagad norāda uz heksadecimāla sākumu j = pch.lastIndexOf ('')! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j tagad norāda uz ',' vai '' aiz hex hex = 0; sTemp = pch.apakšvirkne (i, j); ja (sTemp.substring (0, 2) == String ("0X")) sTemp = sTemp.substring (2); par (i = 0; i <sTemp.length (); i ++) {k = sTemp ; ja (! ((k> = '0' && k = 'A' && k <= 'F'))) pārtraukums; sHex *= 16; ja (k> = '0' && k <= '9') sHex += (k - '0'); citādi, ja (k> = 'A' && k <= 'F') sHex + = ((k - 'A') + 10); ja (! ((k> = '0' && k = 'A' && k <= 'F'))) pārtraukums; } sTemp = pch.substring (j+1); sBits = 0; par (i = 0; i <sTemp.length (); i ++) {k = sTemp ; sBits *= 10; ja (k> = '0' && k <= '9') sBits += (k - '0'); } if (sType.length ()> 0) {Serial << pch << EOP << "Koda tips:" << sType << "Hex:"; Sērijas nospiedums (sHex, HEX); Sērijas << "Biti:" << sBiti; } sendIt (sType, sHex, sBits); pch = ""; beidzās = 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); } cits if (sType.equals (String ("RC5")))) {irsend.sendRC5 (sHex, sBits); } cits 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; kavēšanās (450); } kavēšanās (30); }}

8. darbība. Savienojuma izveide ar tīmekļa serveri

Izveidojiet savienojumu ar tīmekļa serveri no sava datora
Izveidojiet savienojumu ar tīmekļa serveri no sava datora

.. vai tālrunis vai android vai ipad vai kas cits: pārlūkprogrammā dodieties uz vietni https:// tīmekļa servera IP adrese/remote.php. Man šī adrese ir https://192.168.0.9/remote.php, taču jūsu adrese, bez šaubām, būs atšķirīga. Ja viss darbojas, jums vajadzētu redzēt tālvadības pults attēlu ar pogām, uz kurām varat noklikšķināt.

9. darbība: pēc izvēles: rediģējiet saimniekdatoru failu, lai to būtu vieglāk izmantot

Neobligāts solis: rediģējiet saimniekdatoru failu, lai to būtu vieglāk izmantot
Neobligāts solis: rediģējiet saimniekdatoru failu, lai to būtu vieglāk izmantot

Pirmais solis bija rediģēt saimniekdatora failu (/etc/hosts Linux, C: / Windows / System32 / Drivers / etc / hosts Windows). Ņemiet vērā, ka šo failu var rediģēt tikai administratīvā komandu uzvednē (logi) vai su (linux). Pievienojiet rindu ip.add.re.ss tālvadības pults, aizstājiet ip.add.re.ss ar servera IP adresi un saglabājiet failu. Tas jādara katrā ierīcē, kurai vēlaties piekļūt tīmekļa lapai ar īso nosaukumu. Tagad jūs varat piekļūt tālvadības pultij, izmantojot vietni https://remote/remote.php. Šī ir mana pirmā pareizā pamācība, esiet saudzīgs un dariet man zināmu, ja ir kādas problēmas, lai es varētu tās novērst.

Ieteicams: