INHOUDSOPGAWE:
- Stap 1: Voorvereistes
- Stap 2: Bou die bord
- Stap 3: Skematiese
- Stap 4: Voeg Irremote -biblioteek by die Arduino -sagteware
- Stap 5: Teken die kodes van u afstandsbedienings op
- Stap 6: Skep die webblad vir u afstandbeheer
- Stap 7: Laai die afstandbeheerkode op na u Arduino
- Stap 8: Koppel vanaf u rekenaar aan die webbediener
- Stap 9: opsionele stap: wysig u gasheerlêer om dit makliker te maak om te gebruik
Video: Afstandsbediening gebaseer op Arduino -blaaier (Linux): 9 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:23
Ons het kinders. Ek is mal daaroor, maar hulle steek die afstandsbediening vir die satelliet en TV weg terwyl hulle die kinders se kanale aansit. Nadat dit 'n paar jaar lank daagliks gebeur het en nadat my liefste vrou my toegelaat het om 'n Arduino vir Kersfees te neem, het ek besluit dat dit tyd is om iets nuttigs (in haar oë!) Saam met die Arduino te maak. Hier het ons die hoogtepunt hiervan: 'n webgebaseerde koppelvlak vir die Arduino wat my afstandsbedienings vervang en toeganklik is vanaf my interne netwerk. As ek agterkom waarom my ethernet -skild my arduino nie toelaat om 'n skets te hou nie, sal ek 'n nuwe skets skryf wat die ethernet -skild as die webbediener gebruik, wat beteken dat ek nie apache op my rekenaar hoef te installeer nie. Bly ingeskakel, ek kom daar!
Stap 1: Voorvereistes
Hardeware: Arduino -kant: Arduino - ek gebruik 'n Arduino Uno R2 -broodbord - u plaaslike elektronikawinkel of die kombuis as u 'n outentieke omhulsel vir broodbord wil hê - ek het 'n ou plastiekhouer met 'n deursigtige deksel gebruik Komponente: Infrarooi LED - ek het gesoldeer een van 'n gebreekte afstandsbediening (dankie kinders!) Infrarooi ontvanger - ek het myne gekry van 'n magiese oogverlenger -transistor - ek het 'n BC547 -weerstand gebruik - ek het 'n 1.5k ohm veranderlike weerstand op 1k ohm Breadboard -jumperdrade gebruik - ek het myne gekry van 'n soliede kern RJ45 -kabelhaspel Rekenaarkant: rekenaar om as bediener -USB te gebruik, lei na Arduino -sagteware: Arduino -sagteware - vanaf arduino.cc irremote -biblioteek - vanaf https://www.arcfn.com/2009/08/multi-protocol- infrarooi -afstand -biblioteek.html (dankie Ken, puik werk!) Apache -webbediener met PHP geïnstalleer - apache.org Interne IP -adres - myne is 192.168.0.9 Beeld van u afstandbeheer - google of 'n foto wat op u kamera geneem is. Ek het myne met 'n resolusie van 200 x 600 gestoor
Stap 2: Bou die bord
Dit word sterk aanbeveel om 'n broodbord vir 'n arduino te gebruik. Ek het my Arduino en 'n broodbord in dieselfde omhulsel gemonteer en al die penne wat ek gereeld gebruik, permanent aan die broodbord vasgemaak. Arduino -penne wat vir hierdie projek gebruik word: 5v, grond Digitale penne 3, 11 (pen 3 beheer die IR -LED, pen 11 kan met die IR -ontvanger verbind word)
Stap 3: Skematiese
Hierdie skema is baie eenvoudig, met 4 komponente en 6 drade. IR LED -verbindings: Koppel een van die bene van die weerstand aan die Arduino digitale pen 3 Koppel die ander been van die weerstand aan die basispen van die transistor (die middelste been in my geval) Koppel die emitter van die transistor aan die aarde Sluit die kollektor aan van die transistor aan die negatiewe been van die LED (kort been, plat kant van die LED) Sluit die positiewe been (lang been, geboë kant) van die LED aan op die 5v -pen IR -ontvanger -aansluitings (u moet die pinout vind vir u spesifieke IR -ontvanger): GND -pen om die VS -pen na die 5v VO -pen na die Arduino digitale pen 11 te grond
Stap 4: Voeg Irremote -biblioteek by die Arduino -sagteware
irremote is 'n wonderlike biblioteek geskryf deur Ken Shirriff en is beskikbaar op sy blog op https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html Laai die biblioteek af van https:// arcfn.com/files/IRremote.zip en installeer dit soos enige ander biblioteek vir die arduino. Sy blog bevat baie nuttige inligting oor die biblioteek en hoe om dit te installeer.
Stap 5: Teken die kodes van u afstandsbedienings op
Hier is die begin van die vervelige (maar onvermydelike) deel: deur op elke knoppie op die afstandsbediening te druk, die uitvoerstring te stoor en dit aan die virtuele afstandsbediening toe te lig. U hoef dit slegs een keer te doen, en dit sal ongeveer 20 minute neem. Begin 'n teksredakteur om u uitvoer te stoor. Skep 'n nuwe dokument en tik elke knoppie op u afstandsbediening, een per reël: Skakel links regs in. Ensovoorts Begin die Arduino IDE en klik op "Files-> Voorbeelde-> IRremote-> IRrecvDump" en laai dit op na jou Arduino. Hierdie voorbeeld sal die afstandskodes na die seriële poort stort. Begin die seriële poortmonitor en druk 'n sleutel op u afstandbeheer. U sal 'n string in die seriële monitorvenster verskyn: "Gedecodeer *: * (* bits)". Kopieer hierdie reël en stoor dit in u dokument op die toepaslike reël. Herhaal totdat al u sleutels in die tekslêer gestoor is. Ek weet hoeveel pret hierdie stukkie is, ek het dit tot dusver twee keer gedoen: P Ons moet nou 'n bietjie soek en vervang in die tekslêer: soek na "Gedekodeer" vervang deur "" soek na ": 0x" vervang met "," soek na "(" vervang met "," soek na "stukkies)" vervang met "" So vir 'n reël soos: Gedecodeerde NEC: 0x000110 (15 bis) moet ons nou 'n reël hê wat sê: NEC, 000110, 15
Stap 6: Skep die webblad vir u afstandbeheer
Ons moet nou die knoppies op u beeld van u afstandbeheer in kaart bring.
Ek het https://www.maschek.hu/imagemap/imgmap gebruik om die knoppies in kaart te bring en die kode wat deur die webwerf gegee word, te verander sodat dit kan werk.
Klik op "Gebruik 'n prent op u rekenaar: [kies lêer]", kies u prent, klik [oplaai], klik [aanvaar] Laat reghoeke, sirkels, ens op elke knoppie val. Vir HREF sit /remote.php?command= en die reël vir die knoppie uit die teksdokument, byvoorbeeld /remote.php?command=NEC, 000110, 15 Dit sal verstandig wees (en baie help met ontfouting) as u ook invul Alt: met die knoppie se naam, maar dit is aan jou.
Herhaal vir elke knoppie.
Alles klaar? Dan gaan ons voort. Onderaan die bladsy is 'Kode', klik daarop en 'n venster sal oopmaak met die kode vir die beeldkaart. Kopieer dit en plak dit in 'n nuwe teksdokument. Dit is die belangrikste deel van ons webwerf.
Hier is my volledige webblad, vervang net die …
met u eie kode hierbo en stoor dit as remote.php in u webgids (/var/www op linux) saam met u afstandbeheerbeelde. Verander die reëls vir u eie beelde:
"https://www.w3.org/TR/html4/loose.dtd">
Arduino LED -beheer
Stap 7: Laai die afstandbeheerkode op na u Arduino
Skep 'n nuwe skets en plak die volgende kode daarin:/ * * WebRemote * 'n IR -LED moet aan Arduino PWM -pen 3 gekoppel word. * Weergawe 0.1 Julie, 2009 * Hierdie kode kopiereg 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); terugkeer obj; } boolean ended = false; char inData [64]; // Grootte soos gepaste byte -indeks = 0; #define EOP "\ n" IRsend irsend; ongeldige opstelling () {Serial.begin (9600); Seriële << "Seriële poort geïnisialiseer" << EOP; } leemte lus () {String pch, sType, sTemp; char inChar, sTest, k; int sBits; lang sHex; int i, j; terwyl (1) {while (Serial.available ()> 0) {inChar = Serial.read (); as (indeks == 0) {pch = ""; } as (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {ended = true; indeks = 0; breek; } anders {if (indeks <64) // Array grootte {pch += inChar; indeks ++; }}} if (geëindig) {// Ontleed die data in inData hier … pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); ek ++; // slaan oor ',' of '' // ek wys nou op die begin van hex j = pch.lastIndexOf ('')! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j wys nou na ',' of '' na hex sHex = 0; sTemp = pch.substring (i, j); as (sTemp.substring (0, 2) == String ("0X")) sTemp = sTemp.substring (2); vir (i = 0; i <sTemp.length (); i ++) {k = sTemp ; as (! ((k> = '0' && k = 'A' && k <= 'F'))) breek; sHex *= 16; as (k> = '0' && k <= '9') sHex += (k - '0'); anders as (k> = 'A' && k <= 'F') sHex + = ((k - 'A') + 10); as (! ((k> = '0' && k = 'A' && k <= 'F'))) breek; } sTemp = pch.substring (j+1); sBits = 0; vir (i = 0; i <sTemp.length (); i ++) {k = sTemp ; sBits *= 10; as (k> = '0' && k <= '9') sBits += (k - '0'); } if (sType.length ()> 0) {Serial << pch << EOP << "Code type:" << sType << "Hex:"; Serial.print (sHex, HEX); Seriële << "Bits:" << sBits; } sendIt (sType, sHex, sBits); pch = ""; geëindig = 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); } anders as (sType.equals (String ("RC5"))) {irsend.sendRC5 (sHex, sBits); } anders as (sType.equals (String ("SONY"))) {irsend.sendSony (sHex, sBits); } anders if (sType.equals (String ("NEC"))) {if (! i) irsend.sendNEC (sHex, sBits); } anders if (sType.equals (String (""))) {Serial << "Delaying" << EOP; vertraging (450); } vertraging (30); }}
Stap 8: Koppel vanaf u rekenaar aan die webbediener
.. of telefoon of android of ipad of wat ook al: gaan na https:// webserver IP -adres/remote.php in u blaaier Vir my is die adres https://192.168.0.9/remote.php, maar u s'n sal ongetwyfeld anders wees. As alles werk, moet u 'n foto van u afstandbeheer sien met knoppies waarop u kan klik.
Stap 9: opsionele stap: wysig u gasheerlêer om dit makliker te maak om te gebruik
'N Stap wat ek gedoen het, was om my hosts -lêer (/etc/hosts op linux, C: / Windows / System32 / Drivers / etc / hosts op windows) te wysig. Let daarop dat hierdie lêer slegs in 'n administratiewe opdragprompt (windows) of deur su (linux) gewysig kan word. Voeg die reël ip.add.re.ss remote ip.add.re.ss by die bediener se IP -adres en stoor die lêer. U moet dit doen op elke toestel wat u met die kort naam op die webblad wil besoek. Nou kan u toegang tot die afstandsbediening kry met https://remote/remote.php Dit is my eerste behoorlike instruksie, wees saggies en laat my weet as daar probleme is, sodat ek dit kan regmaak.
Aanbeveel:
Outomatiese model spoorweguitleg met twee treine (V2.0) - Arduino gebaseer: 15 stappe (met foto's)
Outomatiese model spoorweguitleg met twee treine (V2.0) | Arduino gebaseer: Die outomatisering van model spoorweguitlegte met behulp van Arduino mikrobeheerders is 'n uitstekende manier om mikrobeheerders, programmering en model spoorweë saam te voeg tot een stokperdjie. Daar is 'n klomp projekte beskikbaar om 'n trein outonoom op 'n modelrail te bestuur
TV -afstandsbediening word 'n RF -afstandsbediening -- NRF24L01+ Tutoriaal: 5 stappe (met foto's)
TV -afstandsbediening word 'n RF -afstandsbediening || NRF24L01+ Tutoriaal: In hierdie projek sal ek u wys hoe ek die gewilde nRF24L01+ RF IC gebruik het om die helderheid van 'n LED -strook draadloos aan te pas deur drie nuttelose knoppies van 'n TV -afstandsbediening. Laat ons begin
Draadlose afstandsbediening met 2,4 GHz NRF24L01 -module met Arduino - Nrf24l01 4 -kanaals / 6 -kanaals sender -ontvanger voor quadcopter - Rc Helikopter - Rc -vliegtuig met Arduino: 5 stappe (met foto's)
Draadlose afstandsbediening met 2,4 GHz NRF24L01 -module met Arduino | Nrf24l01 4 -kanaals / 6 -kanaals sender -ontvanger voor quadcopter | Rc Helikopter | Rc -vliegtuig met Arduino: om 'n Rc -motor te bestuur | Quadcopter | Drone | RC -vliegtuig | RC -boot, ons het altyd 'n ontvanger en sender nodig, veronderstel dat ons vir RC QUADCOPTER 'n 6 -kanaals sender en ontvanger nodig het en dat die tipe TX en RX te duur is, so ons maak een op ons
Skakel u IR -afstandsbediening om in RF -afstandsbediening: 9 stappe (met foto's)
Skakel u IR -afstandsbediening na RF -afstandsbediening om: In die instruksies van vandag sal ek u wys hoe u 'n generiese RF -module kan gebruik sonder 'n mikrobeheerder, wat ons uiteindelik sal lei om 'n projek te bou waar u 'n IR -afstandsbediening van enige toestel na 'n RF kan omskakel Afgeleë. Die grootste voordeel van die omskakeling van 'n
Olympus Evolt E510 afstandsbediening vir kabel (weergawe 2 met outomatiese fokus op afstandsbediening): 6 stappe (met foto's)
Olympus Evolt E510 afstandsbediening vir kabel (weergawe 2 met outomatiese fokus op afstandsbediening): Gister het ek 'n eenvoudige afstandsbediening vir my Olympus E510 gebou. Die meeste kameras het 'n ontspanknop (die een wat u druk om 'n foto te neem) met twee modusse. As die knoppie saggies ingedruk word, sal die kamera outomaties fokus en die lig meet