Cuprins:
- Pasul 1: premise
- Pasul 2: Construirea consiliului
- Pasul 3: Schematic
- Pasul 4: Adăugați Biblioteca Irremote la software-ul Arduino
- Pasul 5: Înregistrați codurile de pe telecomandă
- Pasul 6: Creați pagina Web pentru telecomanda dvs
- Pasul 7: Încărcați codul telecomenzii pe Arduino
- Pasul 8: Conectați-vă la serverul web de pe computer
- Pasul 9: Pasul opțional: Editați fișierul gazdelor pentru a fi mai ușor de utilizat
Video: Telecomandă bazată pe browser Arduino (linux): 9 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Avem copii. Îi iubesc până la capăt, dar ascund în continuare telecomanda pentru satelit și TV atunci când pun canalele pentru copii. După ce s-a întâmplat zilnic de câțiva ani și după ce draga mea soție mi-a permis să am un Arduino de Crăciun, am decis că este timpul să fac ceva util (în ochii ei!) Cu Arduino. Deci, aici avem punctul culminant: o interfață web către Arduino care îmi înlocuiește telecomenzile și este accesibilă din rețeaua mea internă. Când îmi dau seama de ce scutul meu Ethernet nu va permite arduino-ului meu să păstreze o schiță, voi scrie o schiță nouă care folosește scutul Ethernet ca server web, ceea ce înseamnă că nu am nevoie de apache instalat pe computer. Rămâneți la curent, voi ajunge acolo!
Pasul 1: premise
Hardware: partea Arduino: Arduino - Folosesc o placă de pâine Arduino Uno R2 - magazinul dvs. local de electronice sau bucătăria dacă doriți o placă de panouri autentică Carcasă de montare - Am folosit o cutie veche din plastic cu capac transparent Componente: LED cu infraroșu - Am desoldat unul de la o telecomandă ruptă (mulțumesc copiilor!) Receptor cu infraroșu - am primit al meu de la un ochi magic de la distanță Transistor - am folosit un rezistor BC547 - am folosit un rezistor variabil de 1,5k ohm setat la 1k ohm fire de jumper de panou - am primit al meu dintr-o bobină de cablu RJ45 cu nucleu solid Partea computerului: computerul de utilizat ca server USB conduce la software-ul Arduino: software Arduino - din biblioteca arduino.cc irremote - de la https://www.arcfn.com/2009/08/multi-protocol- infrared-remote-library.html (mulțumesc Ken, mare treabă!) Server web Apache cu PHP instalat - apache.org Adresă IP internă - a mea este 192.168.0.9 Imagine a telecomenzii dvs. - google sau o fotografie făcută pe camera dvs. Am salvat-o pe a mea la o rezoluție de 200x600
Pasul 2: Construirea consiliului
Folosirea unei plăci pentru un arduino este foarte recomandată. Mi-am montat Arduino și o placă de măsurare în aceeași incintă și am conectat permanent toți știfturile pe care le folosesc în mod regulat direct la tablă. Pinii Arduino utilizați pentru acest proiect: 5v, împământare Pinii digitali 3, 11 (pinul 3 controlează LED-ul IR, pinul 11 se conectează la receptorul IR)
Pasul 3: Schematic
Această schemă este foarte simplă, are 4 componente și 6 fire. Conexiuni cu LED-uri IR: Conectați unul dintre picioarele rezistorului la pinul digital Arduino. a tranzistorului la piciorul negativ al LED-ului (piciorul scurt, partea plană a LED-ului) Conectați piciorul pozitiv (piciorul lung, partea curbată) a LED-ului la conexiunile receptorului IR 5v pin (ar trebui să găsiți pinout-ul pentru receptorul IR special): pinul GND la pinul VS la sol la pinul VO de 5v la pinul digital Arduino 11
Pasul 4: Adăugați Biblioteca Irremote la software-ul Arduino
irremote este o mare bibliotecă scrisă de Ken Shirriff și este disponibilă de pe blogul său la https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html Descărcați biblioteca de pe https:// arcfn.com / files / IRremote.zip și instalați-l așa cum ați face orice altă bibliotecă pentru arduino. Blogul său conține o mulțime de informații utile despre bibliotecă și despre modul de instalare.
Pasul 5: Înregistrați codurile de pe telecomandă
Iată începutul părții plictisitoare (dar inevitabilă): Apăsarea fiecărui buton de pe telecomandă, salvarea șirului de ieșire și maparea acestuia pe telecomanda virtuală. Trebuie să o faceți o singură dată, așteptați să durați aproximativ 20 de minute. Porniți un editor de text pentru a salva rezultatul. Creați un document nou și tastați fiecare buton de pe telecomandă, câte unul pe fiecare linie: Power Up Down Left Right.. et cetera Porniți ID-ul Arduino și faceți clic pe „Fișiere-> Exemple-> IRremote-> IRrecvDump” și încărcați-l în Arduino-ul tău. Acest exemplu va arunca codurile de la distanță pe portul serial. Porniți monitorul portului serial și apăsați o tastă de pe telecomandă. Veți vedea un șir care apare în fereastra monitorului serial: „Decoded *: * (* bits)”. Copiați această linie și salvați-o în documentul dvs. pe linia corespunzătoare. Repetați până când aveți toate cheile stocate în fișierul text. Știu cât de distractiv este acest bit, l-am făcut de două ori până acum: P Acum trebuie să căutăm și să înlocuim puțin în fișierul text: căutați „Decodat” înlocuiți cu „„ căutați „: 0x„ înlocuiți cu "," căutare "(" înlocuiți cu "," căutați "biți)" înlocuiți cu "" Deci, pentru o linie precum: NEC decodificat: 0x000110 (15 biți) ar trebui să avem acum o linie care spune: NEC, 000110, 15
Pasul 6: Creați pagina Web pentru telecomanda dvs
Acum trebuie să mapăm butoanele de pe imaginea dvs. a telecomenzii.
Am folosit https://www.maschek.hu/imagemap/imgmap pentru a mapa butoanele și am modificat codul pe care vi-l oferă site-ul web pentru ca acesta să funcționeze.
Faceți clic pe „Utilizați o imagine pe computer: [alegeți fișierul””, selectați imaginea dvs., faceți clic pe [încărcați], faceți clic pe [acceptați] Plasați dreptunghiuri, cercuri etc. pe fiecare buton. Pentru HREF puneți /remote.php?command= și linia pentru butonul respectiv din documentul text de exemplu /remote.php?command=NEC, 000110, 15 Ar fi înțelept (și ar ajuta foarte mult la depanare) dacă completați și Alt: cu numele butonului, dar asta depinde de dvs.
Repetați pentru fiecare buton.
Totul este gata? Atunci vom continua. În partea de jos a acelei pagini este „Cod”, faceți clic pe acesta și se va deschide o casetă care afișează codul pentru imagemap. Copiați-l și lipiți-l într-un document text nou. Aceasta este partea principală a paginii noastre web.
Iată pagina mea web completă, doar înlocuiește …
cu propriul cod de mai sus și salvați-l ca remote.php în directorul dvs. web (/ var / www pe linux) împreună cu imaginile de control de la distanță. Schimbați liniile pentru propriile imagini:
„https://www.w3.org/TR/html4/loose.dtd”>
Control LED Arduino
Pasul 7: Încărcați codul telecomenzii pe Arduino
Creați o schiță nouă și lipiți următorul cod în ea: / * * WebRemote * Un LED IR trebuie să fie conectat la pinul Arduino PWM 3. * Versiunea 0.1 iulie, 2009 * Acest cod este protejat de 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); returnare obiect; } boolean ended = false; char inData [64]; // Mărimea după indicele de octet corespunzător = 0; #define EOP "\ n" IRsend irsend; void setup () {Serial.begin (9600); Serial << "Port serial inițializat" << EOP; } void loop () {String pch, sType, sTemp; char inChar, sTest, k; int sBits; sHex lung; int i, j; while (1) {while (Serial.available ()> 0) {inChar = Serial.read (); if (index == 0) {pch = ""; } if (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {încheiat = adevărat; index = 0; pauză; } else {if (index <64) // Dimensiunea matricei {pch + = inChar; index ++; }}} if (terminat) {// Analizați datele din inData aici … pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); i ++; // sări peste ',' sau '' // indic acum spre începutul hex j = pch.lastIndexOf ('')! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j arată acum spre ',' sau '' după hex sHex = 0; sTemp = pch.substring (i, j); if (sTemp.substring (0, 2) == String ("0X")) sTemp = sTemp.substring (2); pentru (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'); altfel if (k> = 'A' && k <= 'F') sHex + = ((k - 'A') + 10); if (! ((k> = '0' && k = 'A' && k <= 'F')))) break; } sTemp = pch.substring (j + 1); sBits = 0; pentru (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 << "Tipul codului:" << sType << "Hex:"; Serial.print (sHex, HEX); Serial << "Bits:" << sBits; } sendIt (sType, sHex, sBits); pch = ""; încheiat = 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; întârziere (450); } întârziere (30); }}
Pasul 8: Conectați-vă la serverul web de pe computer
.. sau telefon sau Android sau iPad sau orice altceva: accesați https:// adresa IP a serverului web / remote.php din browserul dvs. Pentru mine adresa este https://192.168.0.9/remote.php, dar fără îndoială că a dvs. va fi diferită. Dacă totul funcționează, ar trebui să vedeți o imagine a telecomenzii cu butoane pe care puteți face clic.
Pasul 9: Pasul opțional: Editați fișierul gazdelor pentru a fi mai ușor de utilizat
Un pas pe care l-am făcut a fost să-mi editez fișierul hosts (/ etc / hosts pe Linux, C: / Windows / System32 / Drivers / etc / hosts pe Windows). Rețineți că acest fișier poate fi editat numai într-un prompt de comandă administrativ (Windows) sau de su (linux) Adăugați linia ip.add.re.ss la distanță înlocuiți ip.add.re.ss cu adresa IP a serverului și salvați fișierul. Trebuie să faceți acest lucru pe fiecare dispozitiv pe care doriți să îl accesați pe pagina web cu numele scurt. Acum puteți accesa telecomanda cu https://remote/remote.php Acesta este primul meu instructiv adecvat, fii blând și anunță-mă dacă există probleme, astfel încât să le pot rezolva.
Recomandat:
Telecomandă bazată pe LoRa - Aparate de control de la distanțe mari: 8 pași
Telecomandă bazată pe LoRa | Controlați aparatele de la distanțe mari: Hei, ce se întâmplă, băieți! Akarsh aici de la CETech. În acest proiect, vom crea o telecomandă care poate fi utilizată pentru a controla o varietate de instrumente, cum ar fi LED-uri, motoare sau dacă vorbim despre viața noastră de zi cu zi, ne putem controla aplicația
Telecomanda TV devine o telecomandă RF -- NRF24L01 + Tutorial: 5 pași (cu imagini)
Telecomanda TV devine o telecomandă RF || Tutorial NRF24L01 +: În acest proiect vă voi arăta cum am folosit popularul IC nRF24L01 + RF pentru a regla luminozitatea unei benzi LED fără fir prin trei butoane inutile ale unei telecomenzi TV. Să începem
Unitate de telecomandă GSM / SMS bazată pe Arduino: 16 pași (cu imagini)
Unitate de telecomandă GSM / SMS bazată pe Arduino:! ! ! ÎNȘTIINȚARE ! ! ! Datorită modernizării turnului local de telefonie mobilă în zona mea, nu mai pot folosi acest modul GSM. Cel mai nou turn nu mai acceptă dispozitive 2G. Prin urmare, nu mai pot oferi niciun sprijin pentru acest proiect. Cu un astfel de wi
Telecomandă bazată pe Arduino pentru Eskate sau Hydrofoil: 5 pași (cu imagini)
Telecomandă bazată pe Arduino pentru Eskate sau Hydrofoil: Această instrucțiune vă va arăta cum să construiți o telecomandă fizică pentru a fi utilizată cu un eskate sau cu un hidrofil electric, inclusiv tot codul și hardware-ul de care aveți nevoie. Există o mulțime de lipire implicată, dar este, de asemenea, distractiv de făcut. Ce poate face telecomanda? Co
Convertiți telecomanda IR la telecomandă RF: 9 pași (cu imagini)
Convertiți telecomanda IR la telecomandă RF: În Instructable de astăzi, vă voi arăta cum puteți utiliza un modul RF generic fără microcontroler, ceea ce ne va conduce în cele din urmă la construirea unui proiect în care puteți converti o telecomandă IR a oricărui dispozitiv la un RF La distanta. Principalul avantaj al conversiei unui