Përmbajtje:

Telekomanda e bazuar në shfletuesin Arduino (linux): 9 hapa (me fotografi)
Telekomanda e bazuar në shfletuesin Arduino (linux): 9 hapa (me fotografi)

Video: Telekomanda e bazuar në shfletuesin Arduino (linux): 9 hapa (me fotografi)

Video: Telekomanda e bazuar në shfletuesin Arduino (linux): 9 hapa (me fotografi)
Video: CS50 2013 - Week 9 2024, Nëntor
Anonim
Telekomandë e bazuar në shfletuesin Arduino (linux)
Telekomandë e bazuar në shfletuesin Arduino (linux)
Telekomandë e bazuar në shfletuesin Arduino (linux)
Telekomandë e bazuar në shfletuesin Arduino (linux)

Ne kemi fëmijë. I dua paksa, por ata vazhdojnë të fshehin telekomandën për satelitin dhe televizorin kur vendosin kanalet e fëmijëve. Pasi kjo ndodhi në baza ditore për disa vjet, dhe pasi gruaja ime e dashur më lejoi të kem një Arduino për Krishtlindje, vendosa që ishte koha për të bërë diçka të dobishme (në sytë e saj!) Me Arduino. Pra, këtu kemi kulmin e tij: një ndërfaqe e bazuar në ueb për Arduino që zëvendëson telekomandat e mia dhe është e arritshme nga rrjeti im i brendshëm. Kur të kuptoj pse mburoja ime ethernet nuk do të lejojë që arduino ime të mbajë një skicë, unë do të shkruaj një skicë të re që përdor mburojën ethernet si server në internet, që do të thotë se nuk kam nevojë për apache të instaluar në kompjuterin tim. Rrini në rregull, do të shkoj atje!

Hapi 1: Parakushtet

Parakushtet
Parakushtet

Pajisje kompjuterike: Ana Arduino: Arduino - Unë jam duke përdorur një Arduino Uno R2 Breadboard - dyqani juaj elektronik elektronik, ose kuzhinë nëse doni një rrethim të montimit të bordit të bukës - kam përdorur një kuti plastike të vjetër me një kapak transparent Komponentët: LED me rreze infra të kuqe - jam shkrirë një nga një telekomandë e prishur (faleminderit fëmijë!) Marrës me rreze infra të kuqe - e mora nga një transistor i largët i syrit magjik - kam përdorur një rezistencë BC547 - kam përdorur një rezistencë të ndryshueshme 1.5k ohm të vendosur në 1k ohm tela të kërcyesit të bukës - mora timen nga një mbështjellës kabllor me bazë të fortë RJ45 Ana kompjuterike: Kompjuteri që do të përdoret si server USB në Arduino Software: Softueri Arduino - nga biblioteka arremote arduino.cc - nga https://www.arcfn.com/2009/08/multi-protocol- infrared -remote -library.html (faleminderit Ken, punë e shkëlqyer!) Ueb server Apache me PHP të instaluar - apache.org Adresa IP e brendshme - e imja është 192.168.0.9 Fotografi e telekomandës tuaj - google ose një fotografi e marrë në aparatin tuaj. Unë e ruaj timen në rezolucion 200x600

Hapi 2: Ndërtimi i Bordit

Ndërtimi i Bordit
Ndërtimi i Bordit

Përdorimi i një bordi buke për një arduino rekomandohet shumë. Vendosa Arduino -n tim dhe një dërrasë buke në të njëjtën mbyllje dhe i lidha të gjitha kunjat që përdor rregullisht drejtpërdrejt në panelin e bukës përgjithmonë. Kunjat Arduino të përdorura për këtë projekt: 5v, tokë Kunjat dixhitale 3, 11 (kunja 3 kontrollon LED LED, kunja 11 lidhet me marrësin IR)

Hapi 3: Skematike

Skematike
Skematike

Kjo skemë është shumë e thjeshtë, 4 përbërës dhe 6 tela. Lidhjet IR IR: Lidhni njërën nga këmbët e rezistencës me kunjin dixhital Arduino 3 Lidhni këmbën tjetër të rezistencës me kunjin bazë të tranzistorit (këmba e mesme në rastin tim) Lidhni emetuesin e tranzistorit në tokë Lidhni kolektorin e tranzistorit në këmbën negative të LED (këmbë e shkurtër, ana e sheshtë e LED) Lidhni këmbën pozitive (këmbë e gjatë, ana e lakuar) e LED me lidhjet e marrësit IR 5 pin pin (do t'ju duhet të gjeni pinout për marrësi juaj i veçantë IR): PIN GND në tokë VS pin në 5v VO pin në Arduino pin dixhital 11

Hapi 4: Shtoni Bibliotekën Irremote në Softuerin Arduino

Shtoni Bibliotekën Irremote në Softuerin Arduino
Shtoni Bibliotekën Irremote në Softuerin Arduino

irremote është një bibliotekë e shkëlqyer e shkruar nga Ken Shirriff dhe është në dispozicion nga blogu i tij në https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html Shkarkoni bibliotekën nga https:// arcfn.com/files/IRremote.zip dhe instalojeni si çdo bibliotekë tjetër për arduino. Blogu i tij ka shumë informacione të dobishme në lidhje me bibliotekën dhe mënyrën e instalimit të saj.

Hapi 5: Regjistroni kodet nga telekomandat tuaja

Këtu është fillimi i pjesës së mërzitshme (por të pashmangshme): Shtypja e çdo butoni në telekomandë, ruajtja e vargut të daljes dhe hartimi i tij në telekomandën virtuale. Ju duhet ta bëni atë vetëm një herë, prisni të merrni afërsisht 20 minuta ose më shumë. Filloni një redaktues teksti për të ruajtur daljen tuaj. Krijoni një dokument të ri dhe shkruani çdo buton në telekomandën tuaj, një për rresht: Ndizeni poshtë Majtas Djathtas.. dhe të tjera Filloni Arduino IDE dhe klikoni në "Skedarët-> Shembujt-> IRremote-> IRrecvDump" dhe ngarkojeni atë në Arduino juaj. Ky shembull do të hedh kodet e largëta në portën serike. Nisni monitorin e portit serik dhe shtypni një çelës në telekomandën tuaj. Do të shihni një varg që shfaqet në dritaren e monitorit serik: "Dekoduar *: * (* bit)". Kopjoni këtë rresht dhe ruajeni në dokumentin tuaj në vijën e duhur. Përsëriteni derisa të ruani të gjithë çelësat tuaj në skedarin e tekstit. Unë e di se sa argëtuese është kjo pjesë, e kam bërë dy herë deri më tani: P Tani duhet të bëjmë pak kërkim dhe zëvendësim në skedarin e tekstit: kërko për "Dekoduar" zëvendëso me "" kërko për ": 0x" zëvendëso me "," kërko "(" zëvendëso me "," kërko "bit") zëvendëso me "" Pra për një linjë të tillë si: E deshifruar NEC: 0x000110 (15 bit) tani duhet të kemi një rresht që thotë: NEC, 000110, 15

Hapi 6: Krijoni faqen në internet për telekomandën tuaj

Tani duhet të hartojmë butonat në imazhin tuaj të telekomandës.

Kam përdorur https://www.maschek.hu/imagemap/imgmap për të hartuar butonat dhe modifikuar kodin që ju jep uebfaqja për ta bërë atë të funksionojë.

Klikoni në "Përdorni një imazh në kompjuterin tuaj: [zgjidhni skedarin]", zgjidhni imazhin tuaj, klikoni [ngarkoni], klikoni [pranoni] Hidhni drejtkëndësha, qarqe etj mbi secilin buton. Për HREF vendosni /remote.php?command= dhe rreshtin për atë buton nga dokumenti i tekstit për shembull /remote.php?command=NEC, 000110, 15 Do të ishte e mençur (dhe të ndihmoni pa masë në korrigjimin) nëse edhe ju plotësoni Alt: me emrin e butonit, por kjo varet nga ju.

Përsëriteni për çdo buton.

Të gjitha të bëra? Pastaj do të vazhdojmë. Në fund të asaj faqe është "Kodi", klikoni mbi të dhe do të hapet një kuti që tregon kodin për hartën e imazhit. Kopjoni atë dhe ngjiteni në një dokument të ri teksti. Kjo është pjesa kryesore e faqes sonë të internetit.

Këtu është uebfaqja ime e plotë, thjesht zëvendësoni…

me kodin tuaj më lart dhe ruajeni atë si distancë. php në drejtorinë tuaj të internetit (/var/www në linux) së bashku me imazhet tuaja të telekomandës. Ndryshoni linjat për imazhet tuaja:

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

Kontroll Arduino LED

Hapi 7: Ngarko kodin e telekomandës te Arduino -ja juaj

Ngarko kodin e telekomandës në Arduino -n tuaj
Ngarko kodin e telekomandës në Arduino -n tuaj

Krijoni një skicë të re dhe ngjisni kodin e mëposhtëm në të:/ * * WebRemote * Një LED IR duhet të lidhet me kunjin Arduino PWM 3. * Versioni 0.1 Korrik, 2009 * Ky kod i autorit Gregory Fenton, https://labby.co. uk/2012/02/irremote-arduino-experiment/ * IRremote Library copyright 2009 Ken Shirriff, https://arcfn.com */#include template inline Print & operator << (Print & obj, T arg) {obj.print (arg); kthehu obj; } përfundoi boolean = false; char inData [64]; // Madhësia sipas indeksit të bajtit të përshtatshëm = 0; #përcakto EOP "\ n" IRsend irsend; void setup () {Serial.begin (9600); Seriale << "Porta seriale e inicializuar" << EOP; } void loop () {String pch, sType, sTemp; char inChar, sTest, k; int sBits; sHex i gjatë; int i, j; ndërsa (1) {ndërsa (Seriali i disponueshëm ()> 0) {inChar = Serial.lexo (); nëse (indeksi == 0) {pch = ""; } nëse (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {përfundoi = e vërtetë; indeks = 0; pushim; } else {if (indeksi <64) // Madhësia e grupit {pch += inChar; indeks ++; }}} nëse (përfundoi) {// Analizoni të dhënat në të dhënat këtu… pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); i ++; // kaloni mbi ',' ose '' // i tani tregon fillimin e gjashtëkëndëshit j = pch.lastIndexOf ('')! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j tani tregon për ',' ose '' pas hex sHex = 0; sTemp = pch.substring (i, j); nëse (sTemp.substring (0, 2) == String ("0X")) sTemp = sTemp.substring (2); për (i = 0; i <sTemp.gjatësia (); i ++) {k = sTemp ; nëse (! ((k> = '0' && k = 'A' && k <= 'F'))) prishet; sHex *= 16; nëse (k> = '0' && k <= '9') sHex += (k - '0'); përndryshe nëse (k> = 'A' && k <= 'F') sHex + = ((k - 'A') + 10); nëse (! ((k> = '0' && k = 'A' && k <= 'F'))) prishet; } sTemp = pch.substring (j+1); sBits = 0; për (i = 0; i <sTemp.gjatësia (); i ++) {k = sTemp ; sBits *= 10; nëse (k> = '0' && k <= '9') sBits += (k - '0'); } if (sType.length ()> 0) {Serial << pch << EOP << "Lloji i kodit:" << sTipi << "Hex:"; Serial.print (sHex, HEX); Seriali << "Bit:" << sBits; } sendIt (sType, sHex, sBits); pch = ""; përfundoi = 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); } tjetër if (sType.equals (String ("RC5"))) {irsend.sendRC5 (sHex, sBits); } tjetër if (sType.equals (String ("SONY"))) {irsend.sendSony (sHex, sBits); } tjetër if (sType.equals (String ("NEC"))) {if (! i) irsend.sendNEC (sHex, sBits); } tjetër if (sType.equals (String (""))) {Serial << "Vonesa" << EOP; vonesa (450); } vonesë (30); }}

Hapi 8: Lidhuni me serverin e uebit nga kompjuteri juaj

Lidhuni me serverin në internet nga kompjuteri juaj
Lidhuni me serverin në internet nga kompjuteri juaj

.. ose telefon ose android ose ipad ose çfarëdo: shkoni te https:// webserver adresa IP/remote.php në shfletuesin tuaj Për mua adresa është https://192.168.0.9/remote.php por pa dyshim që e juaja do të jetë e ndryshme. Nëse gjithçka funksionon, duhet të shihni një fotografi të telekomandës tuaj me butona mbi të cilët mund të klikoni.

Hapi 9: Hapi Opsional: Ndryshoni skedarin e hosteve tuaj për ta bërë më të lehtë për t'u përdorur

Hapi Opsional: Ndryshoni skedarin e hosteve tuaj për ta bërë më të lehtë për t'u përdorur
Hapi Opsional: Ndryshoni skedarin e hosteve tuaj për ta bërë më të lehtë për t'u përdorur

Një hap që bëra ishte të redaktoja skedarin tim të hosteve (/etc/hosts në linux, C: / Windows / System32 / Drivers / etc / host në Windows). Vini re se ky skedar mund të redaktohet vetëm në një komandë administrative (dritare) ose nga su (linux) Shtoni rreshtin ip.add.re.ss të largët zëvendësoni ip.add.re.ss me adresën IP të serverit dhe ruani skedarin Me Ju do të duhet ta bëni këtë në çdo pajisje që dëshironi të hyni në faqen në internet me emrin e shkurtër. Tani mund të hyni në telekomandë me https://remote/remote.php Ky është udhëzuesi im i parë i duhur, jini të butë dhe më tregoni nëse ka ndonjë problem në mënyrë që t'i rregulloj ato.

Recommended: