Мазмұны:

Arduino шолғышқа негізделген қашықтан басқару құралы (linux): 9 қадам (суреттермен)
Arduino шолғышқа негізделген қашықтан басқару құралы (linux): 9 қадам (суреттермен)

Бейне: Arduino шолғышқа негізделген қашықтан басқару құралы (linux): 9 қадам (суреттермен)

Бейне: Arduino шолғышқа негізделген қашықтан басқару құралы (linux): 9 қадам (суреттермен)
Бейне: NodeMCU ESP8266 WiFi басқару тақтасына HTTP клиентінің мысалымен кіріспе 2024, Қараша
Anonim
Arduino шолғышқа негізделген қашықтан басқару құралы (linux)
Arduino шолғышқа негізделген қашықтан басқару құралы (linux)
Arduino шолғышқа негізделген қашықтан басқару құралы (linux)
Arduino шолғышқа негізделген қашықтан басқару құралы (linux)

Бізде балалар бар. Мен оларды жақсы көремін, бірақ олар балаларға арналған арналарды қосқан кезде спутник пен теледидардың қашықтан басқару пультін жасырады. Бұл бірнеше жыл бойы күнделікті түрде болғаннан кейін және менің сүйікті әйелім Рождествоға Ардуино алуға рұқсат бергеннен кейін, мен Arduino -мен пайдалы нәрсе жасаудың уақыты келді деп шештім. Міне, осының шыңы бізде: менің қашықтан басқару пультін алмастыратын және менің ішкі желімнен қол жетімді Arduino веб-интерфейсі. Мен Ethernet қалқаны неге менің arduino эскизін сақтауға рұқсат бермейтінін түсінгенде, мен веб -сервер ретінде ethernet қалқанын қолданатын жаңа эскиз жазамын, яғни маған компьютерде апачаны орнату қажет емес. Күте тұрыңыз, мен жетемін!

1 -қадам: алғышарттар

Пререквизиттер
Пререквизиттер

Жабдық: Arduino жағы: Arduino - Мен Arduino Uno R2 Breadboard тақтасын қолданамын - сіздің жергілікті электроника дүкеніңіз немесе ас үй, егер сіз шынайы нан тақтасын орнатқыңыз келсе - мен мөлдір қақпағы бар ескі пластик корпусты қолдандым. сынған қашықтан басқару пультінің біреуі (балаларға рахмет!) Инфрақызыл қабылдағыш - мен сиқырлы көзді қашықтан басқаратын транзистордан алдым - мен BC547 резисторын қолдандым - мен 1к Ом -ға орнатылған 1,5км ауыспалы резисторды қолдандым. қатты ядролық RJ45 кабельдік катушкасынан Компьютер жағы: Компьютер USB сервері ретінде Arduino бағдарламалық жасақтамасына жетеді: Arduino бағдарламалық жасақтамасы - arduino.cc сырттай кітапханасынан - https://www.arcfn.com/2009/08/multi-protocol- infrared -remote -library.html (рахмет Кен, керемет жұмыс!) PHP орнатылған Apache веб -сервері - apache.org Ішкі IP -адрес - менікі 192.168.0.9 Қашықтан басқару пультіңіздің суреті - google немесе камераңызға түсірілген сурет. Мен өзімді 200x600 ажыратымдылықта сақтадым

2 -қадам: тақтаны құру

Тақтаны құру
Тақтаны құру

Ардуиноға арналған тақтаны пайдалану өте ұсынылады. Мен Arduino мен нан тақтасын бір корпуста орнаттым және үнемі қолданатын барлық түйреуіштерді тікелей тақтаға жалғадым. Осы жобада қолданылатын Arduino түйреуіштері: 5в, жерлендірілген цифрлық түйреуіштер 3, 11 (3 -ші түйін ИҚ -диодты жарықдиодты басқарады, 11 -түйін ИҚ қабылдағышқа қосылады)

3 -қадам: схемалық

Схемалық
Схемалық

Бұл схема өте қарапайым, 4 компоненттен және 6 сымнан тұрады. IR светодиодты қосылымдар: резистордың бір аяғын Arduino цифрлық түйреуішіне қосыңыз 3 резистордың екінші аяғын транзистордың негізгі істігіне қосыңыз (менің жағдайда ортаңғы аяғы) транзистор эмитентін жерге қосыңыз коллекторды қосыңыз жарықдиодты теріс аяғына транзистордың қосылуы сіздің жеке IR қабылдағышыңыз): GND түйрегіші жерге VS түйреуіші 5v VO түйреуішіне Arduino цифрлық пин 11

4 -қадам: Arduino бағдарламалық жасақтамасына Irremote кітапханасын қосыңыз

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 минут кетеді. Шығаруды сақтау үшін мәтіндік редакторды іске қосыңыз. Жаңа құжат жасаңыз және қашықтан басқару пультіндегі әр түймені бір жолға теріңіз: солдан оңға қарай өшіру.. және басқалары Arduino IDE іске қосыңыз және «Файлдар-> Мысалдар-> IRremote-> IRrecvDump» түймесін басып, оны жүктеңіз. сіздің 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: батырманың атымен, бірақ бұл сізге байланысты.

Әр түйме үшін қайталаңыз.

Бәрі аяқталды ма? Содан кейін біз жалғастырамыз. Беттің төменгі жағында «Код» бар, оны нұқыңыз, сонда сурет картасының кодын көрсететін терезе ашылады. Оны көшіріп, жаңа мәтіндік құжатқа қойыңыз. Бұл біздің веб -беттің негізгі бөлігі.

Міне менің толық веб -бетім, оны ауыстырыңыз …

жоғарыдағы өзіңіздің кодыңызбен және қашықтан басқару құралының суреттерімен бірге веб -каталогыңызда (/var/www) remote.php ретінде сақтаңыз. Жеке суреттердің жолдарын өзгертіңіз:

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

Arduino жарықдиодты басқару

7 -қадам: Қашықтан басқару кодын Arduino -ға жүктеңіз

Қашықтан басқару кодын Arduino -ға жүктеңіз
Қашықтан басқару кодын Arduino -ға жүктеңіз

Жаңа эскиз жасаңыз және оған келесі кодты қойыңыз:/ * * WebRemote * IR светодиоды Arduino PWM pin 3 -ке жалғануы тиіс. * Нұсқа 0,1 шілде, 2009 ж. * Бұл кодтың авторлық құқығы Грегори Фентон, https://labby.co. Ұлыбритания/2012/02/irremote-arduino-эксперимент/ * IRremote кітапханасының авторлық құқығы 2009 Ken Shirriff, https://arcfn.com */#include шаблон кірістірілген Print & operator << (Print & obj, T arg) {obj.print (arg); қайтару obj; } логикалық аяқталды = жалған; char inData [64]; // Өлшем сәйкесінше байт индексі = 0; #depine 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 {end = true; индекс = 0; үзіліс; } else {if (индекс <64) // Массив өлшемі {pch += inChar; индекс ++; }}} if (end) {// inData ішіндегі деректерді осында талдаңыз … pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); i ++; // ',' немесе '' // i арқылы өтіңіз, j = pch.lastIndexOf ('') он алтылықтың басын көрсетеді! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j енді sHex = 0 алтыбұрышынан кейін ',' немесе '' белгісін көрсетеді; sTemp = pch.substring (i, j); if (sTemp.substring (0, 2) == Жол («0X»)) sTemp = sTemp.substring (2); for (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; for (i = 0; i <sTemp.length (); i ++) {k = sTemp ; sBits *= 10; егер (k> = '0' && k <= '9') sBits += (k - '0'); } if (sType.length ()> 0) {Serial << pch << EOP << «Code type:» << sType << «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); } if 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 («»)))) {Сериялық << «Кешіктіру» << EOP; кешіктіру (450); } кешіктіру (30); }}

8 -қадам: Веб -серверге компьютерден қосылыңыз

Компьютерден веб -серверге қосылыңыз
Компьютерден веб -серверге қосылыңыз

.. немесе телефон немесе андроид немесе айпад немесе басқасы: браузердегі https:// веб -серверінің IP -мекен -жайы/remote.php -ге өтіңіз, мен үшін бұл мекен -жай https://192.168.0.9/remote.php, бірақ сіздікі басқаша болатыны сөзсіз. Егер бәрі жұмыс істеп тұрса, сіз қашықтан басқару пультінің суретін көруіңіз керек, оны басуға болады.

9 -қадам: Қосымша қадам: Пайдалануды жеңілдету үшін хост файлын өңдеңіз

Қосымша қадам: Пайдалануды жеңілдету үшін хост файлын өңдеңіз
Қосымша қадам: Пайдалануды жеңілдету үшін хост файлын өңдеңіз

Мен жасаған қадам - менің хост файлымды өңдеу (Linux жүйесінде/etc/hosts, C: / Windows / System32 / Drivers / etc / hosts). Бұл файлды тек әкімшілік пәрмен жолында (Windows) немесе su (linux) көмегімен өңдеуге болатынын ескеріңіз, ip.add.re.ss қашықтан басқару жолын қосыңыз, IP.add.re.ss сервердің IP мекенжайымен ауыстырыңыз және файлды сақтаңыз. Сіз мұны қысқа атауымен веб -бетке кіргіңіз келетін кез келген құрылғыда жасауыңыз керек. Енді сіз қашықтан басқару пультіне https://remote/remote.php арқылы қол жеткізе аласыз, бұл менің бірінші нұсқаулығым, жұмсақ болыңыз және маған ақаулар бар -жоғын айтыңыз, сонда мен оларды шеше аламын.

Ұсынылған: