Obsah:

Diaľkové ovládanie založené na prehliadači Arduino (Linux): 9 krokov (s obrázkami)
Diaľkové ovládanie založené na prehliadači Arduino (Linux): 9 krokov (s obrázkami)

Video: Diaľkové ovládanie založené na prehliadači Arduino (Linux): 9 krokov (s obrázkami)

Video: Diaľkové ovládanie založené na prehliadači Arduino (Linux): 9 krokov (s obrázkami)
Video: Marlin Firmware 2.0.x Explained 2024, November
Anonim
Diaľkové ovládanie založené na prehliadači Arduino (Linux)
Diaľkové ovládanie založené na prehliadači Arduino (Linux)
Diaľkové ovládanie založené na prehliadači Arduino (Linux)
Diaľkové ovládanie založené na prehliadači Arduino (Linux)

Máme deti. Milujem ich, ale keď zapnú detské kanály, stále skryjú diaľkové ovládanie pre satelit a televíziu. Potom, čo sa to deje niekoľko rokov denne, a potom, čo mi moja milá manželka dovolila mať na Vianoce Arduino, rozhodol som sa, že je načase urobiť niečo užitočné (v jej očiach!) S Arduinom. Takže tu máme vrchol: webové rozhranie pre Arduino, ktoré nahrádza moje diaľkové ovládače a je prístupné z mojej vnútornej siete. Keď prídem na to, prečo môj ethernetový štít nedovolí môjmu arduinovi ponechať si skicu, napíšem nový náčrt, ktorý používa ethernetový štít ako webový server, čo znamená, že na svojom počítači nepotrebujem mať nainštalovaný apache. Zostaňte naladení, dostanem sa tam!

Krok 1: Predpoklady

Predpoklady
Predpoklady

Hardware: Arduino strana: Arduino - Používam Breadboard Arduino Uno R2 - váš miestny obchod s elektronikou alebo kuchyňa, ak chcete autentickú dosku na pečenie Montážny box - Použil som staré plastové puzdro s priehľadným vekom Komponenty: Infračervená dióda LED - Odspájkoval som jeden z pokazeného diaľkového ovládača (vďaka, deti!) Infračervený prijímač - môj som získal z diaľkového predlžovača s magickým okom Tranzistor - použil som odpor BC547 - použil som 1,5 k ohmový variabilný odpor nastavený na 1 k ohm prepojovacie vodiče Breadboard - dostal som svoje z navijaka kábla RJ45 s pevným jadrom Strana počítača: počítač, ktorý sa použije ako server, USB prepojenie s Arduino Software: softvér Arduino - z knižnice arduino.cc irremote - z https://www.arcfn.com/2009/08/multi-protocol- infrared -remote -library.html (vďaka Ken, skvelá práca!) Webový server Apache s nainštalovaným PHP - apache.org Interná adresa IP - moja je 192.168.0.9 Obrázok vášho diaľkového ovládača - google alebo obrázok nasnímaný pomocou fotoaparátu. Moje som uložil v rozlíšení 200x600

Krok 2: Zostavenie rady

Budovanie rady
Budovanie rady

Na arduino sa odporúča použiť dosku na chleba. Namontoval som Arduino a dosku do rovnakého krytu a natrvalo som zapojil všetky kolíky, ktoré pravidelne používam, priamo na dosku. Piny Arduino použité na tento projekt: 5v, pozemné digitálne piny 3, 11 (pin 3 ovláda IR LED, pin 11 sa pripája k IR prijímaču)

Krok 3: Schéma

Schematický
Schematický

Táto schéma je veľmi jednoduchá, pozostáva zo 4 komponentov a 6 drôtov. Pripojenia IR LED: Pripojte jednu z nožičiek rezistora k digitálnemu kolíku Arduino 3 Druhú nohu rezistora pripojte k základnému kolíku tranzistora (v mojom prípade stredná noha) Pripojte vysielač tranzistora k zemi Pripojte kolektor tranzistora na zápornú časť LED (krátka noha, plochá strana LED) Pripojte kladnú nohu (dlhá noha, zakrivená strana) LED k 5 -kolíkovým konektorom IR prijímača (budete musieť nájsť vývod pre váš konkrétny IR prijímač): GND pin na zem VS pin na 5v VO pin na Arduino digitálny pin 11

Krok 4: Pridajte knižnicu Irremote do softvéru Arduino

Pridajte knižnicu Irremote do softvéru Arduino
Pridajte knižnicu Irremote do softvéru Arduino

irremote je skvelá knižnica, ktorú napísal Ken Shirriff a je dostupná na jeho blogu na adrese https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html Stiahnite si knižnicu z https:// arcfn.com/files/IRremote.zip a nainštalujte ho ako akúkoľvek inú knižnicu pre arduino. Jeho blog obsahuje množstvo užitočných informácií o knižnici a o tom, ako ju nainštalovať.

Krok 5: Zaznamenajte kódy pomocou diaľkových ovládačov

Tu je začiatok nudnej (ale nevyhnutnej) časti: Stlačenie každého tlačidla na diaľkovom ovládači, uloženie výstupného reťazca a jeho mapovanie na virtuálne diaľkové ovládanie. Stačí to urobiť raz, počkajte približne 20 minút. Spustite textový editor, aby ste uložili výstup. Vytvorte nový dokument a zadajte každé tlačidlo na diaľkovom ovládači, jedno na riadok: Zapnutie nadol, vľavo, vpravo.. a ďalšie Spustite Arduino IDE a kliknite na „Súbory-> Príklady-> IRremote-> IRrecvDump“a nahrajte ho na vaše Arduino. Tento príklad uloží vzdialené kódy na sériový port. Spustite monitor sériového portu a stlačte tlačidlo na diaľkovom ovládači. V okne sériového monitora sa zobrazí reťazec: „Dekódovaný *: * (* bitov)“. Skopírujte tento riadok a uložte ho do dokumentu na príslušný riadok. Opakujte, kým nebudete mať všetky kľúče uložené v textovom súbore. Viem, aká zábava je tento kúsok, urobil som to zatiaľ dvakrát: P Teraz musíme trochu vyhľadať a nahradiť v textovom súbore: hľadať „Dekódované“nahradiť „„ hľadať “: 0x„ nahradiť "," hľadať "(" nahradiť "," hľadať "bity)" nahradiť "" Takže pre riadok ako: Dekódovaný NEC: 0x000110 (15 bitov) by sme teraz mali mať riadok, ktorý hovorí: NEC, 000110, 15

Krok 6: Vytvorte webovú stránku pre diaľkové ovládanie

Teraz musíme zmapovať tlačidlá na vašom obrázku diaľkového ovládača.

Na mapovanie tlačidiel som použil https://www.maschek.hu/imagemap/imgmap a upravil kód, ktorý vám web dáva, aby fungoval.

Kliknite na „Použiť obrázok na počítači: [vybrať súbor]“, vyberte svoj obrázok, kliknite na [odovzdať], kliknite na [prijať] Na každé tlačidlo vložte obdĺžniky, kruhy atď. Pre HREF zadajte /remote.php?command= a riadok pre toto tlačidlo z textového dokumentu, napríklad /remote.php?command=NEC, 000110, 15 Bolo by múdre (a nesmierne by to pomohlo pri ladení), ak by ste vyplnili aj Alt: s názvom tlačidla, ale je to na vás.

Opakujte pre každé tlačidlo.

Všetko hotové? Potom budeme pokračovať. V spodnej časti stránky je „Kód“, kliknite naň a otvorí sa pole s kódom mapy webu. Skopírujte ho a prilepte ho do nového textového dokumentu. Toto je hlavná časť našej webovej stránky.

Tu je moja úplná webová stránka, stačí nahradiť…

s vlastným kódom vyššie a uložte ho ako remote.php do svojho webového adresára (/var/www v linuxe) spolu s obrázkami diaľkového ovládača. Zmeňte riadky pre svoje vlastné obrázky:

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

Ovládanie Arduino LED

Krok 7: Nahrajte kód diaľkového ovládača do svojho Arduina

Nahrajte kód diaľkového ovládača do svojho Arduina
Nahrajte kód diaľkového ovládača do svojho Arduina

Vytvorte nový náčrt a vložte doň nasledujúci kód:/ * * WebRemote * IR dióda LED musí byť pripojená k pinu Arduino PWM 3. * Verzia 0.1, júl 2009 * Tento kód je chránený autorským právom Gregory Fenton, https://labby.co. uk/2012/02/irremote-arduino-experimentation/ * IRremote Library Copyright 2009 Ken Shirriff, https://arcfn.com */#include template inline Print & operator << (Print & obj, T arg) {obj.print (arg); vrátiť obj; } booleovský koniec = nepravda; char inData [64]; // Príslušná veľkosť bajtového indexu = 0; #define EOP "\ n" IRsend irsend; void setup () {Serial.begin (9600); Sériový << "Inicializovaný sériový port" << EOP; } void loop () {String pch, sType, sTemp; char inChar, sTest, k; int sBits; dlhý sHex; int i, j; while (1) {while (Serial.available ()> 0) {inChar = Serial.read (); if (index == 0) {pch = ""; } if (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {skončil = true; index = 0; prestávka; } else {if (index <64) // Veľkosť poľa {pch += inChar; index ++; }}} if (skončil) {// Analyzujte údaje v inData tu … pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); i ++; // preskočiť ',' alebo '' // i teraz ukazuje na začiatok hexu j = pch.lastIndexOf ('')! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j teraz ukazuje na ',' alebo '' za hex sHex = 0; sTemp = pch.substring (i, j); if (sTemp.substring (0, 2) == String ("0X")) sTemp = sTemp.substring (2); pre (i = 0; i <sTemp.length (); i ++) {k = sTemp ; if (! (((k> = '0' && k = 'A' && k <= 'F'))) break; sHex *= 16; ak (k> = '0' && k <= '9') sHex += (k - '0'); inak ak (k> = 'A' && k <= 'F') sHex + = ((k - 'A') + 10); if (! (((k> = '0' && k = 'A' && k <= 'F'))) break; } sTemp = pch.substring (j+1); sBits = 0; pre (i = 0; i <sTemp.length (); i ++) {k = sTemp ; sBits *= 10; ak (k> = '0' && k <= '9') sBits += (k - '0'); } if (sType.length ()> 0) {Serial << pch << EOP << "Typ kódu:" << sType << "Hex:"; Serial.print (sHex, HEX); Sériové << "Bity:" << sBits; } sendIt (sType, sHex, sBits); pch = ""; skončil = 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; oneskorenie (450); } oneskorenie (30); }}

Krok 8: Pripojte sa k webovému serveru z počítača

Pripojte sa k webovému serveru z počítača
Pripojte sa k webovému serveru z počítača

.. alebo telefón alebo android alebo ipad alebo čokoľvek: Prejdite vo svojom prehliadači na adresu https:// webová adresa IP servera/remote.php Pre mňa je adresa https://192.168.0.9/remote.php, ale tá vaša bude nepochybne iná. Ak všetko funguje, mali by ste vidieť obrázok diaľkového ovládača s tlačidlami, na ktoré môžete kliknúť.

Krok 9: Voliteľný krok: Upravte súbor hostiteľov, aby bolo používanie jednoduchšie

Voliteľný krok: Upravte súbor hostiteľov, aby bolo používanie jednoduchšie
Voliteľný krok: Upravte súbor hostiteľov, aby bolo používanie jednoduchšie

Krok, ktorý som urobil, bolo upraviť súbor hostiteľov (/etc/hosts v systéme Linux, C: / Windows / System32 / Drivers / etc / hosts v systéme Windows). Tento súbor je možné upravovať iba v príkazovom riadku pre správu (Windows) alebo pomocou su (linux). Pridajte riadok ip.add.re.ss remote, nahraďte ip.add.re.ss adresou IP servera a súbor uložte. To budete musieť urobiť na každom zariadení, na ktoré chcete získať prístup na webovú stránku s krátkym názvom. Teraz máte prístup k diaľkovému ovládaniu pomocou https://remote/remote.php Toto je môj prvý správny návod, buďte opatrní a dajte mi vedieť, ak existujú nejaké problémy, aby som ich mohol opraviť.

Odporúča: