Բովանդակություն:

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

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

Video: Arduino դիտարկիչի վրա հիմնված հեռակառավարում (linux). 9 քայլ (նկարներով)
Video: Octopus Max EZ v1.0 - Klipper MainSail Quick Install 2024, Նոյեմբեր
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- ով: Սա իմ առաջին համապատասխան հրահանգն է, եղեք մեղմ և ինձ տեղեկացրեք, եթե որևէ խնդիր կա, որպեսզի կարողանամ դրանք շտկել:

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