Мазмуну:

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 алууга уруксат бергенден кийин, Arduino менен пайдалуу бир нерсе (анын көз алдында!) Жасоого убакыт келди деп чечтим. Ошентип, бул жерде биз анын туу чокусуна жетебиз: менин пультту алмаштыруучу жана менин ички тармагымдан жеткиликтүү болгон Arduino вебке негизделген интерфейси. Эмнеге менин ethernet калканчым менин ардуино эскизин сактоого жол бербей турганын түшүнгөндө, мен веб -сервер катары ethernet калканчын колдонгон жаңы эскиз жазам, башкача айтканда, менин компьютериме apache орнотулган эмес. Күтө туруңуз, мен жетем!

1 -кадам: Пререквизиттер

Алдын ала шарттар
Алдын ала шарттар

Техникалык жабдыктар: Arduino тарабы: Arduino - Мен Arduino Uno R2 Breadboard колдонуп жатам - сиздин жергиликтүү электроника дүкөнүңүз же ашкана, эгерде сиз накта нандын тактайын орнотууну кааласаңыз - Мен тунук капкагы бар эски пластик корпусту колдончумун. сынган алыстан башкаруу пультунун бири (балдарга рахмат!) Инфракызыл кабылдагыч - Мен сыйкырдуу көздүн алыстан кеңейтүүчү транзисторунан меники алдым - BC547 резисторун колдондум - 1к омго орнотулган 1.5k ом өзгөрмөлүү резисторду колдондум. катуу ядролук 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 казыктары: 5v, жер Digital казыктары 3, 11 (пин 3 IR LEDди көзөмөлдөйт, пин 11 IR алуучуга туташат)

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

Схемалык
Схемалык

Бул схема абдан жөнөкөй, 4 компонент жана 6 зым. IR LED туташуулары: Резистордун бир бутун Arduino санарип пинине 3 туташтырыңыз Резистордун экинчи бутун транзистордун базалык пинине туташтырыңыз (менин учурда орто бутум) Транзистордун эмитентин жерге туташтыр Коллекторду туташтыруу LEDдин терс бутуна транзистордун (кыска буту, светодиоддун жалпак жагы) LEDдин оң бутун (узун буту, ийилген тарабы) 5в пиндүү IR алуучу туташууларына туташтырыңыз (сиз pinout табышыңыз керек) Сиздин өзгөчө IR кабыл алгычыңыз): GND пин VS пин 5V VO пин Ардуино санарип пин 11 жерге

4 -кадам: Arrino программасына 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= жана текст документиндеги бул баскычтын сабын коюңуз, мисалы Alt: баскычтын аты менен, бирок бул сизге байланыштуу.

Ар бир баскыч үчүн кайталаңыз.

Баары бүттүбү? Андан кийин улантабыз. Ал барактын ылдый жагында "Код" бар, аны чыкылдатыңыз жана сүрөт картасынын кодун көрсөткөн кутуча ачылат. Аны көчүрүп, жаңы текст документине чаптаңыз. Бул биздин веб -баракчанын негизги бөлүгү.

Бул жерде менин толук веб -баракчам, жөн гана алмаштырыңыз…

жогорудагы жеке кодуңуз менен жана алыстан башкаруу сүрөттөрүңүз менен бирге веб -каталогуңузда remote.php катары сактаңыз (/var/www). Өз сүрөттөрүңүздүн саптарын өзгөртүңүз:

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

LED башкаруу Arduino

7 -кадам: Алыстан башкаруу кодун Arduinoго жүктөңүз

Алыстан башкаруу кодун жүктөө Arduino
Алыстан башкаруу кодун жүктөө Arduino

Жаңы эскизди түзүңүз жана ага төмөнкү кодду чаптаңыз:/ * * WebRemote * IR LED Arduino PWM pin 3 менен туташтырылышы керек. * Версия 0.1 Июль, 2009 * Бул коддун автордук укугу Грегори Фентон, https://labby.co. uk/2012/02/irremote-arduino-эксперимент/ * IRremote китепканасынын автордук укугу 2009 Ken Shirriff, https://arcfn.com */#incline шаблонду камтыйт Print & operator << (Print & obj, T arg) {obj.print (arg); return obj; } логикалык end = false; char inData [64]; // Өлчөмү ылайыктуу байт индекси = 0; #deopine EOP "\ n" IRsend irsend; void setup () {Serial.begin (9600); Serial << "Serial port initialized" << 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 (); if (index == 0) {pch = ""; } if (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {end = true; index = 0; тыныгуу; } else {if (index <64) // Массивдин өлчөмү {pch += inChar; индекс ++; }}} if (end) {// inDataдагы маалыматтарды бул жерден талдаңыз… pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); i ++; // ',' же '' // секирип өтүңүз, мен азыр hex j = pch.lastIndexOf ('')! = -1 башталышын көрсөтүп жатам! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j азыр алты бурчтуу sHex = 0 кийин ',' же '' көрсөтөт; sTemp = pch.substring (i, j); if (sTemp.substring (0, 2) == String ("0X")) sTemp = sTemp.substring (2); for (i = 0; i <sTemp.length (); i ++) {k = sTemp ; if (! ((k> = '0' && k = 'A' && k <= 'F'))) break; sHex *= 16; if (k> = '0' && k <= '9') sHex += (k - '0'); эгерде (k> = 'A' && k <= 'F') sHex + = ((k - 'A') + 10); if (! ((k> = '0' && k = 'A' && k <= 'F'))) break; } sTemp = pch.substring (j+1); sBits = 0; for (i = 0; i <sTemp.length (); i ++) {k = sTemp ; sBits *= 10; if (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); } 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 -кадам: Компьютериңизден веб -серверге туташыңыз

Компьютериңизден веб -серверге туташыңыз
Компьютериңизден веб -серверге туташыңыз

.. же телефон же андроид же ipad же башка: браузериңизде https:// веб -сервердин IP -дареги/remote.php дарегине өтүңүз, мен үчүн дарек https://192.168.0.9/remote.php, бирок сиздики башкачараак болот. Эгер баары иштеп жатса, баскычтар менен алыстан башкаруунун сүрөтүн көрүшүңүз керек.

9 -кадам: Кошумча кадам: Хосттор файлыңызды колдонууну оңой кылуу үчүн түзөтүңүз

Кошумча кадам: Хосттор файлын колдонууну оңой кылуу үчүн түзөтүңүз
Кошумча кадам: Хосттор файлын колдонууну оңой кылуу үчүн түзөтүңүз

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

Сунушталууда: