Arduino դիտարկիչի վրա հիմնված հեռակառավարում (linux). 9 քայլ (նկարներով)
Arduino դիտարկիչի վրա հիմնված հեռակառավարում (linux). 9 քայլ (նկարներով)
Anonim
Arduino դիտարկիչի վրա հիմնված հեռակառավարում (linux)
Arduino դիտարկիչի վրա հիմնված հեռակառավարում (linux)
Arduino դիտարկիչի վրա հիմնված հեռակառավարում (linux)
Arduino դիտարկիչի վրա հիմնված հեռակառավարում (linux)

Մենք երեխաներ ունենք: Ես նրանց շատ եմ սիրում, բայց նրանք անընդհատ թաքցնում են արբանյակի և հեռուստատեսության հեռակառավարման վահանակը, երբ միացնում են երեխաների ալիքները: Այն բանից հետո, երբ դա տեղի ունեցավ ամեն օր, մի քանի տարի շարունակ, և այն բանից հետո, երբ իմ սիրելի կինը թույլ տվեց ինձ ունենալ Arduino Սուրբ forննդյան տոներին, ես որոշեցի, որ ժամանակն է Arduino- ի հետ օգտակար (նրա աչքում) ինչ -որ բան պատրաստելու ժամանակը: Այսպիսով, այստեղ մենք ունենք դրա գագաթնակետը. Arduino- ին համացանցային ինտերֆեյս, որը փոխարինում է իմ հեռակառավարման վահանակները և հասանելի է իմ ներքին ցանցից: Երբ կհասկանամ, թե ինչու է իմ ethernet վահանը թույլ չի տալիս իմ arduino- ին պահել ուրվագիծը, ես կգրեմ նոր ուրվագիծ, որն օգտագործում է ethernet վահանը որպես վեբ սերվեր, այսինքն `ինձ պետք չէ համակարգչում տեղադրված apache: Շարունակեք հետևել, ես կհասնեմ այնտեղ:

Քայլ 1: Նախադրյալներ

Նախադրյալներ
Նախադրյալներ

Սարքավորումներ. Arduino կողմ. Arduino - Ես օգտագործում եմ Arduino Uno R2 տախտակ - ձեր տեղական էլեկտրոնիկայի խանութը կամ խոհանոցը, եթե ցանկանում եք վավերական տախտակի տեղադրման պարիսպ - ես օգտագործել եմ հին պլաստմասե պատյան թափանցիկ կափարիչով: Բաղադրիչներ. Ինֆրակարմիր LED - ես ապամոնտաժվել եմ մեկը կոտրված հեռակառավարման վահանակից (շնորհակալություն երեխաներին!) Ինֆրակարմիր ընդունիչ - ես իմը ստացա կախարդական աչքի հեռակառավարիչ տրանզիստորից - ես օգտագործեցի BC547 ռեզիստոր - ես օգտագործեցի 1.5k ohm փոփոխական ռեզիստոր, որը դրված էր 1k ohm Breadboard jumper լարերի վրա. RJ45 մալուխի ամուր կոճից Համակարգչային կողմ. Համակարգիչը որպես սերվեր օգտագործելու համար Arduino Software- ին. Arduino ծրագրակազմ - arduino.cc irremote գրադարանից - https://www.arcfn.com/2009/08/multi-protocol- ից infrared -remote -library.html (շնորհակալություն Քեն, հիանալի աշխատանք!) Apache վեբ սերվեր ՝ տեղադրված PHP- ով - apache.org Ներքին IP հասցեն - իմն է 192.168.0.9 Ձեր հեռակառավարման վահանակի նկարը ՝ google կամ ձեր տեսախցիկից արված նկար: Ես իմը պահեցի 200x600 բանաձևով

Քայլ 2. Կառուցեք խորհուրդը

Կառուցելով խորհուրդը
Կառուցելով խորհուրդը

Արդուինոյի համար հացահատիկի օգտագործումը խիստ խորհուրդ է տրվում: Ես տեղադրեցի իմ Arduino- ն և մի տախտակ նույն պատյանում և միացրեցի բոլոր կապում, որոնք ես կանոնավոր կերպով օգտագործում եմ, ուղղակիորեն մշտապես տախտակի վրա: Այս նախագծի համար օգտագործված Arduino կապում ՝ 5 վ, հիմք Թվային կապում 3, 11 (3 -րդը վերահսկում է IR LED- ը, 11 -ը միանում է IR ընդունիչին)

Քայլ 3: Սխեմատիկ

Սխեմատիկ
Սխեմատիկ

Այս սխեմատիկան շատ պարզ է ՝ 4 բաղադրիչ և 6 լար: IR լուսադիոդային միացումներ. Ռեզիստորի մի ոտքը միացրեք Arduino թվային փինին 3 Ռեզիստորի մյուս ոտքը միացրեք տրանզիստորի բազային կապին (իմ դեպքում միջին ոտքը) Տրանզիստորի էմիտորը միացրեք գետնին Միացրեք կոլեկտորը տրանզիստորի LED- ի բացասական ոտքին (կարճ ոտք, LED- ի հարթ կողմ) LED- ի դրական ոտքը (երկար ոտքը, կորացած կողմը) միացրեք 5v pin IR ընդունիչի միացումներին (դուք պետք է գտնեք քորոցը դրա համար ձեր հատուկ IR ընդունիչ).

Քայլ 4. Ավելացրեք Irremote գրադարան Arduino ծրագրին

Ավելացրեք Irremote գրադարան Arduino ծրագրին
Ավելացրեք Irremote գրադարան Arduino ծրագրին

irremote- ը Քեն Շիրիֆի գրած հիանալի գրադարան է և հասանելի է իր բլոգից ՝ https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html Ներբեռնեք գրադարանը https:// arcfn.com/files/IRremote.zip և տեղադրեք այն, ինչպես arduino- ի ցանկացած այլ գրադարան: Նրա բլոգը պարունակում է բազմաթիվ օգտակար տեղեկություններ գրադարանի և այն տեղադրելու եղանակների մասին:

Քայլ 5: Գրանցեք կոդերը ձեր հեռակառավարման վահանակից

Ահա ձանձրալի (բայց անխուսափելի) մասի սկիզբը. Հեռակառավարման վահանակի յուրաքանչյուր կոճակի սեղմում, ելքային տողի պահում և քարտեզագրում վիրտուալ հեռակառավարման վահանակի վրա: Դուք պետք է դա անեք միայն մեկ անգամ, ակնկալեք մոտ 20 րոպե տևել: Գործարկեք տեքստային խմբագիր `ձեր արտադրանքը պահելու համար: Ստեղծեք նոր փաստաթուղթ և մուտքագրեք ձեր հեռակառավարման վահանակի յուրաքանչյուր կոճակ ՝ մեկ տողում. Power Up Down Left Right.. և այլն ձեր Arduino- ն: Այս օրինակը հեռավոր կոդերը կթափի սերիական նավահանգիստ: Գործարկեք Սերիայի նավահանգստի մոնիտորը և սեղմեք ձեր հեռակառավարման վահանակի ստեղնը: Սերիական մոնիտորի պատուհանում կտեսնեք մի տող ՝ «Վերծանված *: * (* բիթ)»: Պատճենեք այս տողը և պահեք այն ձեր փաստաթղթում `համապատասխան տողում: Կրկնեք, մինչև տեքստային ֆայլում պահեք ձեր բոլոր բանալիները: Ես գիտեմ, թե որքան զվարճալի է այս հատվածը, ես դա արել եմ մինչ այժմ երկու անգամ: P Այժմ մենք պետք է մի փոքր փնտրենք և փոխարինենք տեքստային ֆայլում. Որոնել «վերծանված» -ի փոխարեն փոխարինել «" որոնելով: 0x " - ով փոխարինել "," որոնել "(" փոխարինել "-ով," որոնել "բիթերով" "փոխարինել" "-ով: Այսպիսով, տողի համար, ինչպիսին է` վերծանված NEC: 0x000110 (15 բիթ) մենք այժմ պետք է ունենանք մի տող, որն ասում է `NEC, 000110, 15

Քայլ 6: Ստեղծեք վեբ էջ ձեր հեռակառավարման վահանակի համար

Այժմ մենք պետք է քարտեզագրենք ձեր հեռակառավարման վահանակի կոճակները:

Ես օգտագործեցի https://www.maschek.hu/imagemap/imgmap կոճակները քարտեզագրելու համար և փոփոխեցի այն կոդը, որը տալիս է կայքը ՝ այն աշխատեցնելու համար:

Կտտացրեք «Օգտագործեք պատկեր ձեր համակարգչում. [Ընտրել ֆայլը]», ընտրեք ձեր պատկերը, կտտացրեք [վերբեռնում], կտտացրեք [ընդունեք] Յուրաքանչյուր կոճակի վրա գցեք ուղղանկյուններ, շրջանակներ և այլն: HREF- ի համար դրեք /remote.php?command= և տեքստային փաստաթղթից այդ կոճակի տողը, օրինակ /remote.php?command=NEC, 000110, 15 Խելամիտ կլինի (և անսահմանափակ օգնության դեպքում) Alt: կոճակի անունով, բայց դա ձեզն է:

Կրկնել յուրաքանչյուր կոճակի համար:

Ամեն ինչ արված է? Հետո կշարունակենք: Այդ էջի ներքևում «Կոդ» է, կտտացրեք դրա վրա և կբացվի տուփ, որը ցույց է տալիս պատկերային քարտեզի ծածկագիրը: Պատճենեք այն և տեղադրեք այն նոր տեքստային փաստաթղթում: Սա մեր վեբ էջի հիմնական մասն է:

Ահա իմ ամբողջական վեբ էջը, պարզապես փոխարինեք…

ձեր վերևի կոդով և պահեք այն որպես remote.php ձեր վեբ գրացուցակում (/var/www linux) ձեր հեռակառավարման պատկերների հետ միասին: Փոխեք տողերը ձեր սեփական պատկերների համար.

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

Arduino LED հսկողություն

Քայլ 7: Հեռակառավարման կոդը վերբեռնեք ձեր Arduino- ում

Վերբեռնեք հեռակառավարման կոդը ձեր Arduino- ում
Վերբեռնեք հեռակառավարման կոդը ձեր Arduino- ում

Ստեղծեք նոր ուրվագիծ և տեղադրեք հետևյալ կոդը դրա մեջ. uk/2012/02/irremote-arduino- փորձարկում/ * IRremote Library copyright 2009 Ken Shirriff, https://arcfn.com */#include template inline Print & operator << (Print & obj, T arg) {obj.print (arg); վերադարձ obj; } բուլյան ավարտված = կեղծ; char inData [64]; // Չափը `ըստ համապատասխան բայտի ինդեքսի = 0; #սահմանել EOP "\ n" IRsend irsend; void setup () {Serial.begin (9600); Սերիալ << «Սերիական նավահանգիստ սկզբնականացված» << EOP; } void loop () {String pch, sType, sTemp; char inChar, sTest, k; int sBits; երկար sHex; int i, j; while (1) {while (Serial.available ()> 0) {inChar = Serial.read (); եթե (ինդեքս == 0) {pch = ""; } if (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {ավարտված է = ճշմարիտ; ինդեքս = 0; ընդմիջում; } else {if (ինդեքս <64) // զանգվածի չափը {pch += inChar; ցուցանիշ ++; }}} եթե (ավարտված է) {// Տվյալների տվյալները վերլուծել այստեղ… pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); i ++; // բաց թողնել ',' կամ '' // i- ն այժմ ցույց է տալիս hex- ի սկիզբ j = pch.lastIndexOf ('')! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j այժմ ցույց է տալիս ',' կամ '' վեցանկյուն sHex = 0 -ից հետո; sTemp = pch.substring (i, j); եթե (sTemp.substring (0, 2) == String ("0X")) sTemp = sTemp.substring (2); (i = 0; i <sTemp.length (); i ++) {k = sTemp ; եթե (! ((k> = '0' && k = 'A' && k <= 'F'))) ընդմիջում; sHex *= 16; եթե (k> = '0' && k <= '9') sHex += (k - '0'); այլապես, եթե (k> = 'A' && k <= 'F') sHex + = ((k - 'A') + 10); եթե (! ((k> = '0' && k = 'A' && k <= 'F'))) ընդմիջում; } sTemp = pch.substring (j+1); sBits = 0; (i = 0; i <sTemp.length (); i ++) {k = sTemp ; sBits *= 10; եթե (k> = '0' && k <= '9') sBits += (k - '0'); } if (sType.length ()> 0) {Սերիա << pch << EOP << "Կոդի տեսակ." << s Տիպ << "Hex:"; Serial.print (sHex, HEX); Սերիական << "Բիթեր." << sBits; } sendIt (sType, sHex, sBits); pch = ""; ավարտվեց = 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; ուշացում (450); } ուշացում (30); }}

Քայլ 8: Միացեք վեբ սերվերին ձեր համակարգչից

Միացեք վեբ սերվերին ձեր համակարգչից
Միացեք վեբ սերվերին ձեր համակարգչից

.. կամ հեռախոս, android կամ ipad կամ որևէ այլ բան. գնացեք https:// webserver IP հասցե/remote.php ձեր դիտարկիչում Ինձ համար հասցեն է ՝ https://192.168.0.9/remote.php, բայց ձերն անկասկած տարբեր կլինի: Եթե ամեն ինչ աշխատում է, դուք պետք է տեսնեք ձեր հեռակառավարման վահանակի պատկերը, որի վրա կարող եք սեղմել:

Քայլ 9: Լրացուցիչ քայլ. Խմբագրեք ձեր տանտերերի ֆայլը `այն ավելի դյուրին դարձնելու համար

Լրացուցիչ քայլ. Խմբագրեք ձեր տանտերերի ֆայլը `այն ավելի դյուրին դարձնելու համար
Լրացուցիչ քայլ. Խմբագրեք ձեր տանտերերի ֆայլը `այն ավելի դյուրին դարձնելու համար

Մի քայլ, որը ես կատարեցի, խմբագրել էր իմ տանտերերի ֆայլը (/etc/hosts linux- ում, C: / Windows / System32 / Drivers / etc / hosts Windows- ում): Նկատի ունեցեք, որ այս ֆայլը կարող է խմբագրվել միայն վարչական հրամանի տողում (պատուհաններ) կամ su (linux) Ավելացնել տող ip.add.re.ss հեռակա փոխարինել ip.add.re.ss սերվերի IP հասցեով և պահպանել ֆայլը. Դուք պետք է դա անեք յուրաքանչյուր սարքի վրա, որտեղ ցանկանում եք մուտք գործել կարճ անունով վեբ էջ: Այժմ դուք կարող եք մուտք գործել հեռակառավարիչ ՝ https://remote/remote.php- ով: Սա իմ առաջին համապատասխան հրահանգն է, եղեք մեղմ և ինձ տեղեկացրեք, եթե որևէ խնդիր կա, որպեսզի կարողանամ դրանք շտկել:

Խորհուրդ ենք տալիս: