Tartalomjegyzék:

Arduino böngésző alapú távirányító (linux): 9 lépés (képekkel)
Arduino böngésző alapú távirányító (linux): 9 lépés (képekkel)

Videó: Arduino böngésző alapú távirányító (linux): 9 lépés (képekkel)

Videó: Arduino böngésző alapú távirányító (linux): 9 lépés (képekkel)
Videó: Сокровища технологий: как добиться больших успехов, используя бывшие в употреблении серверы! 2024, November
Anonim
Arduino böngésző alapú távirányító (linux)
Arduino böngésző alapú távirányító (linux)
Arduino böngésző alapú távirányító (linux)
Arduino böngésző alapú távirányító (linux)

Gyerekeink vannak. Nagyon szeretem őket, de folyamatosan elrejtik a műhold és a TV távirányítóját, amikor bekapcsolják a gyermekcsatornákat. Miután ez több éven keresztül naponta megtörtént, és miután kedves feleségem megengedte, hogy karácsonyra Arduino -t fogyasszak, úgy döntöttem, hogy itt az ideje, hogy valami hasznosat készítsek (az ő szemében!) Az Arduino -val. Tehát itt van a csúcspontja: egy webes felület az Arduino-hoz, amely helyettesíti a távirányítóimat, és elérhető a belső hálózatomról. Amikor rájövök, hogy az ethernetpajzsom miért nem teszi lehetővé az arduino -mnak, hogy vázlatot tartson, új vázlatot fogok írni, amely az ethernet pajzsot használja webszerverként, vagyis nincs szükségem az apache telepítésére a számítógépre. Maradjatok velünk, odaérek!

1. lépés: Előfeltételek

Előfeltételek
Előfeltételek

Hardver: Arduino oldal: Arduino - Én egy Arduino Uno R2 kenyértáblát használok - a helyi elektronikai boltot, vagy a konyhát, ha autentikus kenyérsütő deszkát szeretne. az egyik törött távirányítóból (köszönöm gyerekek!) Infravörös vevő - az enyémet egy varázslatos szem távirányítóból szereztem be tranzisztorból - BC547 ellenállást használtam - 1,5 k ohmos változó ellenállást használtam 1 k ohmos kenyérpult jumper vezetékekhez - megkaptam az enyémet tömör magú RJ45 kábeltekercsből Számítógép oldal: Számítógép, amelyet szerverként kell használni USB -vezeték az Arduino szoftverhez: Arduino szoftver - az arduino.cc irremote könyvtárból - a https://www.arcfn.com/2009/08/multi-protocol- infrared -remote -library.html (köszönöm Ken, nagyszerű munka!) Apache webszerver telepített PHP -vel - apache.org Belső IP -cím - az enyém 192.168.0.9 A távirányító képe - google vagy a fényképezőgéppel készített kép. Az enyémet 200x600 -as felbontásban mentettem

2. lépés: A tábla felépítése

A tábla építése
A tábla építése

Kenyérsütő deszkát használni az arduinohoz erősen ajánlott. Az Arduino -t és a kenyérsütő deszkát ugyanabba a házba szereltem fel, és az összes rendszeresen használt csapot állandóan a kenyérlapra kötöttem. Arduino csapok, amelyeket ehhez a projekthez használtak: 5V, földelt Digitális csapok 3, 11 (a 3 -as érintkező az IR LED -et vezérli, a 11 -es tű az IR -vevőhöz csatlakozik)

3. lépés: Vázlatos

Vázlatos
Vázlatos

Ez a vázlat nagyon egyszerű, 4 komponens és 6 vezeték. IR LED csatlakozások: Csatlakoztassa az ellenállás egyik lábát az Arduino digitális tüskéhez. A tranzisztor a LED negatív lábához (rövid láb, a LED lapos oldala) Csatlakoztassa a LED pozitív lábát (hosszú lábát, ívelt oldalát) az 5 V -os IR -vevőcsatlakozásokhoz (meg kell találnia a az Ön IR -vevőkészüléke): GND érintkező a földeléshez VS -érintkező 5 V -os VO -érintkezőhöz - Arduino digitális tű 11

4. lépés: Adja hozzá az Irremote könyvtárat az Arduino szoftverhez

Adja hozzá az Irremote könyvtárat az Arduino szoftverhez
Adja hozzá az Irremote könyvtárat az Arduino szoftverhez

Az irremote egy nagyszerű könyvtár, amelyet Ken Shirriff írt, és elérhető a blogjáról: https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html Töltse le a könyvtárat a https:// arcfn webhelyről.com/files/IRremote.zip fájlt, és telepítse úgy, mint az arduino bármely más könyvtárát. Blogja sok hasznos információt tartalmaz a könyvtárról és annak telepítéséről.

5. lépés: Jegyezze fel a kódokat a távirányítóiról

Itt kezdődik az unalmas (de elkerülhetetlen) rész: A távirányító minden gombjának megnyomása, a kimeneti karakterlánc mentése és a virtuális távirányítóhoz való hozzárendelése. Csak egyszer kell megtenni, körülbelül 20 percet vesz igénybe. Indítson el egy szövegszerkesztőt a kimenet mentéséhez. Hozzon létre egy új dokumentumot, és írja be a távirányító minden gombját, soronként egyet: Bekapcsolás Le, Balra Jobbra stb. Indítsa el az Arduino IDE-t, és kattintson a "Fájlok-> Példák-> IRremote-> IRrecvDump" elemre, és töltse fel a az Arduino -d. Ez a példa a távoli kódokat a soros portra dobja. Indítsa el a soros port figyelőt, és nyomja meg a távirányító egyik gombját. A soros monitor ablakában megjelenik egy karakterlánc: "Dekódolt *: * (* bit)". Másolja ezt a sort, és mentse a dokumentumba a megfelelő sorba. Ismételje meg mindaddig, amíg az összes kulcsot el nem tárolja a szövegfájlban. Tudom, milyen szórakoztató ez a rész, eddig kétszer csináltam: P Most egy kis keresést és cserét kell végeznünk a szövegfájlban: keressük a "Dekódolt" helyettesítést "" kereséssel ": 0x" cseréljük le "," keresés "(" helyettesítés "," keresés "bitekhez" "helyettesítés" "-al, 15

6. lépés: Hozza létre a weboldalt a távirányítóhoz

Most le kell térképeznünk a távirányító képén található gombokat.

A https://www.maschek.hu/imagemap/imgmap segítségével feltérképeztem a gombokat, és módosítottam a kódot, amelyet a webhely ad, hogy működjön.

Kattintson a "Kép használata a számítógépen: [fájl kiválasztása]" elemre, válassza ki a képét, kattintson a [feltöltés] gombra, majd az [elfogad] gombra. Téglalapok, körök stb. A HREF esetén írja be a /remote.php?command= parancsot és a gomb sorát a szöveges dokumentumból, például /remote.php?command=NEC, 000110, 15 Bölcs dolog lenne (és rendkívül sokat segítene a hibakeresésben), ha kitölti Alt: a gomb nevével, de ez rajtad múlik.

Ismételje meg minden gombnál.

Minden kész? Akkor folytatjuk. Az oldal alján a "Kód", kattintson rá, és megnyílik egy ablak, amely a képkép kódját mutatja. Másolja ki és illessze be egy új szöveges dokumentumba. Ez a weboldalunk fő része.

Itt a teljes weboldalam, csak cseréld le a…

a fenti saját kóddal, és mentse el remote.php néven a webkönyvtárába (/var/www Linuxon) a távirányító képeivel együtt. Változtassa meg a sorokat a saját képeihez:

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

Arduino LED vezérlés

7. lépés: Töltse fel a távirányító kódját Arduino készülékére

Töltse fel a távirányító kódját Arduino készülékére
Töltse fel a távirányító kódját Arduino készülékére

Hozzon létre egy új vázlatot, és illessze be a következő kódot:/ * * WebRemote * Egy IR LED -et kell csatlakoztatni az Arduino PWM 3. tűjéhez. * 0.1 verzió, 2009. július uk/2012/02/irremote-arduino-experimentation/ * Az IRremote Library szerzői joga 2009 Ken Shirriff, https://arcfn.com */#include template inline Print & operator << (Print & obj, T arg) {obj.print (arg); return obj; } logikai véget ért = hamis; char inData [64]; // Méret megfelelő bájt index = 0; #define EOP "\ n" IRsend irsend; void setup () {Serial.begin (9600); Soros << "Soros port inicializálva" << EOP; } void loop () {String pch, sType, sTemp; char inChar, sTest, k; int sBits; hosszú 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; szünet; } else {if (index <64) // Tömb mérete {pch += inChar; index ++; }}} if (véget ért) {// Itt elemezze az inData adatait itt … pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); i ++; // ugrás a ',' vagy a '' // i fölött most a hexa j = pch.lastIndexOf ('') elejére mutat! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j most ',' vagy '' pontra mutat hexadex után sHex = 0; sTemp = pch.substring (i, j); ha (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; ha (k> = '0' && k <= '9') sHex += (k - '0'); egyébként, ha (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; ha (k> = '0' && k <= '9') sBits += (k - '0'); } if (sType.length ()> 0) {Soros << pch << EOP << "Kódtípus:" << sType << "Hex:"; Sorozatnyomat (sHex, HEX); Soros << "Bits:" << sBits; } sendIt (sType, sHex, sBits); pch = ""; vége = 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 (""))) {Soros << "Késleltetés" << EOP; késleltetés (450); } késleltetés (30); }}

8. lépés: Csatlakozás a webszerverhez a számítógépről

Csatlakozás a webszerverhez a számítógépről
Csatlakozás a webszerverhez a számítógépről

.. vagy telefon vagy android vagy ipad vagy bármi más: menjen a https:// webszerver IP -cím/remote.php oldalra a böngészőben Számomra a cím https://192.168.0.9/remote.php, de a tiéd kétségkívül más lesz. Ha minden működik, látnia kell egy képet a távirányítóról, amelyre kattinthat.

9. lépés: Választható lépés: Szerkessze a Hosts fájlt a könnyebb használat érdekében

Választható lépés: Szerkessze a Hosts fájlt a könnyebb használat érdekében
Választható lépés: Szerkessze a Hosts fájlt a könnyebb használat érdekében

Egy lépés volt, hogy szerkesztettem a hosts fájlt (/etc/hosts Linuxon, C: / Windows / System32 / Drivers / etc / hosts Windowson). Ne feledje, hogy ez a fájl csak adminisztrátori parancssorban (Windows) vagy su (linux) segítségével szerkeszthető. Ezt minden olyan eszközön meg kell tennie, amelyhez rövid névvel szeretne hozzáférni a weboldalhoz. Most elérheti a távvezérlőt a https://remote/remote.php segítségével. Ez az első megfelelő utasításom, legyen szelíd, és tudassa velem, ha bármilyen probléma merül fel, hogy kijavíthassam őket.

Ajánlott: