ዝርዝር ሁኔታ:

በአርዱዲኖ አሳሽ ላይ የተመሠረተ የርቀት መቆጣጠሪያ (ሊኑክስ) - 9 ደረጃዎች (ከስዕሎች ጋር)
በአርዱዲኖ አሳሽ ላይ የተመሠረተ የርቀት መቆጣጠሪያ (ሊኑክስ) - 9 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: በአርዱዲኖ አሳሽ ላይ የተመሠረተ የርቀት መቆጣጠሪያ (ሊኑክስ) - 9 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: በአርዱዲኖ አሳሽ ላይ የተመሠረተ የርቀት መቆጣጠሪያ (ሊኑክስ) - 9 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: Understanding Modbus Serial and TCP IP 2024, ህዳር
Anonim
በአርዱዲኖ አሳሽ ላይ የተመሠረተ የርቀት መቆጣጠሪያ (ሊኑክስ)
በአርዱዲኖ አሳሽ ላይ የተመሠረተ የርቀት መቆጣጠሪያ (ሊኑክስ)
በአርዱዲኖ አሳሽ ላይ የተመሠረተ የርቀት መቆጣጠሪያ (ሊኑክስ)
በአርዱዲኖ አሳሽ ላይ የተመሠረተ የርቀት መቆጣጠሪያ (ሊኑክስ)

ልጆች አሉን። በጣም ትንሽ እወዳቸዋለሁ ፣ ግን የልጆቹን ሰርጦች ሲያበሩ የሳተላይት እና የቴሌቪዥን የርቀት መቆጣጠሪያውን ይደብቃሉ። ይህ ለበርካታ ዓመታት በየቀኑ ከተከሰተ በኋላ እና ለገና አንድ አርዱዲኖ እንዲኖረኝ ከፈቀደልኝ በኋላ ከአርዱዲኖ ጋር አንድ ጠቃሚ ነገር (በዓይኖ in ውስጥ!) ለማድረግ ጊዜው እንደሆነ ወሰንኩ። ስለዚህ እዚህ የዚያ መደምደሚያ አለን-በድር ላይ የተመሠረተ በይነገጽ ወደ አርዱinoኖ የርቀት መቆጣጠሪያዎቼን የሚተካ እና ከውስጣዊ አውታረ መረቤ ተደራሽ ነው። የኤተርኔት መከለያዬ አርዱinoኖ ንድፉን እንዲይዝ የማይፈቅድበትን ምክንያት ሳውቅ የኤተርኔት መከላከያን እንደ የድር አገልጋይ የሚጠቀም አዲስ ረቂቅ እጽፋለሁ ፣ ማለትም በኮምፒተርዬ ላይ የተጫነ apache አያስፈልገኝም ማለት ነው። ይከታተሉ ፣ እዚያ እደርሳለሁ!

ደረጃ 1 ቅድመ -ሁኔታዎች

ቅድመ -ሁኔታዎች
ቅድመ -ሁኔታዎች

ሃርድዌር - አርዱinoኖ ጎን - አርዱinoኖ - እኔ አርዱዲኖ ዩኖ አር 2 ዳቦ ሰሌዳ - የአከባቢዎ የኤሌክትሮኒክስ ሱቅ ወይም እውነተኛ የዳቦ ሰሌዳ የመጫኛ መከለያ ከፈለጉ ወጥ ቤቱን እጠቀማለሁ - ግልፅ ሽፋን ካለው አሮጌ የፕላስቲክ መያዣ ተጠቀምኩ። አንድ ከተሰበረ የርቀት መቆጣጠሪያ (ልጆች አመሰግናለሁ!) የኢንፍራሬድ ተቀባይ - የእኔን ከአስማት ዓይን የርቀት ማራዘሚያ ትራንዚስተር አግኝቻለሁ - እኔ BC547 Resistor ን እጠቀማለሁ - እኔ 1k ohm የ 1.5k ohm ተለዋዋጭ ተከላካይ ወደ 1 ኪ ኦኤም የዳቦርድ መዝለያ ሽቦዎች ተቀናጅቻለሁ - የእኔን አገኘሁ ከጠንካራ ኮር RJ45 ኬብል ሪል የኮምፒዩተር ጎን - ኮምፒተር እንደ አገልጋይ ዩኤስቢ ወደ አርዱዲኖ ሶፍትዌር ይመራል - አርዱዲኖ ሶፍትዌር - ከ arduino.cc irremote ቤተ -መጽሐፍት - ከ https://www.arcfn.com/2009/08/multi-protocol- infrared -remote -library.html (አመሰግናለሁ ኬን ፣ ታላቅ ሥራ!) Apache የድር አገልጋይ በ PHP ተጭኗል - apache.org ውስጣዊ የአይፒ አድራሻ - የእኔ 192.168.0.9 ነው የርቀት መቆጣጠሪያዎ ስዕል - ጉግል ወይም በካሜራዎ ላይ የተወሰደ ስዕል። የእኔን በ 200x600 ጥራት አስቀምጫለሁ

ደረጃ 2 ቦርዱን መገንባት

ቦርዱን መገንባት
ቦርዱን መገንባት

ለአርዱዲኖ የዳቦ ሰሌዳ መጠቀም በጣም ይመከራል። እኔ በተመሳሳይ አርዶኖን እና የዳቦ ሰሌዳውን በተመሳሳይ ቅጥር ውስጥ ሰቅዬ በመደበኛነት የምጠቀምባቸውን ሁሉንም ፒኖች በዳቦ ሰሌዳ ላይ በቋሚነት አያያዝኩ። ለዚህ ፕሮጀክት ያገለገሉ አርዱዲኖ ፒኖች 5 ቪ ፣ መሬት ዲጂታል ፒኖች 3 ፣ 11 (ፒን 3 የ IR LED ን ይቆጣጠራል ፣ ፒን 11 ከ IR ተቀባዩ ጋር ይገናኛል)

ደረጃ 3: መርሃግብር

ንድፍታዊ
ንድፍታዊ

ይህ ንድፍ በጣም ቀላል ፣ 4 ክፍሎች እና 6 ሽቦዎች። የ IR LED ግንኙነቶች - ከተቃዋሚው እግሮች አንዱን ከአርዱዲኖ ዲጂታል ፒን 3 ጋር ያገናኙት ሌላውን የተቃዋሚውን እግር ከ ትራንዚስተር መሰረታዊ ፒን ጋር ያያይዙት (በእኔ ሁኔታ ውስጥ ያለው መካከለኛ እግር) ትራንዚስተሩን አምጪውን ከመሬት ጋር ያገናኙ ሰብሳቢውን ያገናኙ የ “ትራንዚስተር” ወደ የ LED አሉታዊ እግር (አጭር እግር ፣ የ LED ጠፍጣፋ ጎን) የ LED ን አዎንታዊ እግር (ረዣዥም እግር ፣ ጥምዝ ጎን) ከ 5 ቪ ፒን IR መቀበያ ግንኙነቶች ጋር ያገናኙ (ለፒኖው መፈለግ ያስፈልግዎታል የእርስዎ ልዩ የ IR ተቀባዩ) - GND ፒን ወደ መሬት VS ፒን እስከ 5 ቪ VO ፒን ለአርዱዲኖ ዲጂታል ፒን 11

ደረጃ 4: ኢርሞቶትን ቤተ -መጽሐፍት ወደ አርዱዲኖ ሶፍትዌር ያክሉ

ወደ አርዱዲኖ ሶፍትዌር Irremote ቤተ -መጽሐፍትን ያክሉ
ወደ አርዱዲኖ ሶፍትዌር Irremote ቤተ -መጽሐፍትን ያክሉ

irremote በኬን ሽሪፍ የተፃፈ ታላቅ ቤተ-መጽሐፍት ሲሆን ከጦማሩ በ https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html ላይብረሪውን ከ https:// arcfn ያውርዱ.com/ፋይሎች/IRremote.zip እና እንደማንኛውም ሌላ ለአርዲኖ ቤተ -መጽሐፍት ይጫኑት። የእሱ ብሎግ ስለ ቤተ -መጽሐፍት እና እንዴት እንደሚጫን ብዙ ጠቃሚ መረጃ አለው።

ደረጃ 5 ኮዶቹን ከርቀት መቆጣጠሪያዎችዎ ይመዝግቡ

አሰልቺው (ግን ሊወገድ የማይችል) ክፍል መጀመሪያ እዚህ አለ - በርቀት መቆጣጠሪያው ላይ እያንዳንዱን ቁልፍ በመጫን ፣ የውጤት ሕብረቁምፊውን በማስቀመጥ እና ወደ ምናባዊ የርቀት መቆጣጠሪያ ካርታ ማድረጉ። አንድ ጊዜ ብቻ ማድረግ ያስፈልግዎታል ፣ በግምት 20 ደቂቃዎች ወይም ከዚያ በላይ እንደሚወስድ ይጠብቁ። ውጤትዎን ለማስቀመጥ የጽሑፍ አርታኢን ይጀምሩ። አዲስ ሰነድ ይፍጠሩ እና በርቀት መቆጣጠሪያዎ ላይ እያንዳንዱን ቁልፍ ይተይቡ ፣ በመስመር አንድ-Power Up Down Left Right.. et cetera የአርዱዲኖ አይዲኢን ይጀምሩ እና “ፋይሎች-> ምሳሌዎች-> IRremote-> IRrecvDump” ላይ ጠቅ ያድርጉ እና ይስቀሉት የእርስዎ አርዱዲኖ። ይህ ምሳሌ የርቀት ኮዶችን ወደ ተከታታይ ወደብ ይጥላል። ተከታታይ ወደብ መቆጣጠሪያውን ይጀምሩ እና በርቀት መቆጣጠሪያዎ ላይ ቁልፍን ይጫኑ። በተከታታይ ማሳያ መስኮት ውስጥ አንድ ሕብረቁምፊ ሲታይ ያያሉ - “ዲኮድ *: * (* ቢት)”። ይህንን መስመር ይቅዱ እና በተገቢው መስመር ላይ በሰነድዎ ውስጥ ያስቀምጡት። ሁሉም ቁልፎችዎ በጽሑፍ ፋይል ውስጥ እስኪቀመጡ ድረስ ይድገሙ። ይህ ቢት ምን ያህል አስደሳች እንደሆነ አውቃለሁ ፣ እስካሁን ሁለት ጊዜ አድርጌዋለሁ። P አሁን በጽሑፍ ፋይል ውስጥ ትንሽ ፍለጋ እና መተካት አለብን - “ዲኮድድድድድድድድድድድድድድድድድድድድድድድድድድድድሰሚርበአንድ 0x” "፣" ይፈልጉ "(" በ "ይተኩ" ፣ "ለ" ቢትስ ይፈልጉ) "ይተኩ" "ስለዚህ ለ እንደዚህ ያለ መስመር - ዲኮድ NEC: 0x000110 (15 ቢት) እኛ አሁን የሚል መስመር ሊኖረን ይገባል - NEC ፣ 000110, 15

ደረጃ 6 ለርቀት መቆጣጠሪያዎ የድር ገጹን ይፍጠሩ

አሁን በርቀት መቆጣጠሪያዎ ምስልዎ ላይ ያሉትን አዝራሮች ካርታ ማዘጋጀት አለብን።

አዝራሮቹን ካርታ ለማድረግ https://www.maschek.hu/imagemap/imgmap ን ተጠቅሜ ድር ጣቢያው እንዲሰራ የሚሰጥዎትን ኮድ ቀይሬዋለሁ።

“በኮምፒተርዎ ላይ ምስል ይጠቀሙ - [ፋይል ይምረጡ]” ላይ ጠቅ ያድርጉ ፣ ምስልዎን ይምረጡ ፣ [ስቀል] ን ጠቅ ያድርጉ ፣ ጠቅ ያድርጉ [ተቀበል] በእያንዳንዱ አዝራር ላይ አራት ማዕዘኖችን ፣ ክበቦችን ወዘተ ጣል ያድርጉ። ለ HREF put /remote.php?command= እና ለዚያ አዝራር ከጽሑፍ ሰነዱ ለምሳሌ /remote.php Alt: በአዝራር ስም ግን ያ የእርስዎ ነው

ለእያንዳንዱ አዝራር ይድገሙት።

ሁሉም ተጠናቀቀ? ከዚያ እንቀጥላለን። በዚያ ገጽ ግርጌ “ኮድ” አለ ፣ እዚያ ላይ ጠቅ ያድርጉ እና የምስል ካርታውን ኮድ የሚያሳይ ሳጥን ይከፈታል። ያንን ገልብጠው ወደ አዲስ የጽሑፍ ሰነድ ይለጥፉት። ይህ የድረ -ገፃችን ዋና አካል ነው።

የእኔ የተሟላ የድር ገጽ እዚህ አለ ፣ በቀላሉ ይተኩ…

ከላይ ባለው የራስዎ ኮድ እና ከርቀት መቆጣጠሪያ ምስሎችዎ ጋር በድር ማውጫዎ (/var/www በሊኑክስ) ውስጥ እንደ remote.php አድርገው ያስቀምጡት። ለእራስዎ ምስሎች መስመሮችን ይለውጡ

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

አርዱዲኖ LED ቁጥጥር

ደረጃ 7 የርቀት መቆጣጠሪያ ኮዱን ወደ አርዱinoኖ ይስቀሉ

የርቀት መቆጣጠሪያ ኮዱን ወደ አርዱinoኖ ይስቀሉ
የርቀት መቆጣጠሪያ ኮዱን ወደ አርዱinoኖ ይስቀሉ

አዲስ ንድፍ ይፍጠሩ እና የሚከተለውን ኮድ ወደ ውስጥ ይለጥፉ// * * WebRemote * አንድ IR LED ከአርዱዲኖ PWM ፒን 3. * ስሪት 0.1 ሐምሌ ፣ 2009 * ይህ ኮድ የቅጂ መብት ግሪጎሪ ፌንቶን ፣ https://labby.co. uk/2012/02/irremote-arduino-experimentation/ * IRremote Library copyright 2009 ኬን ሽሪፍ ፣ https://arcfn.com */ #አብነት የውስጠ-መስመር አብነት እና አታሚ << (ህትመት & obj ፣ T arg) {obj.print (arg); obj ተመለስ; } ቡሊያን ተጠናቀቀ = ሐሰት; char inData [64]; // መጠን እንደ ተገቢው ባይት ኢንዴክስ = 0; #EOP "\ n" IRsend irsend ን ይግለጹ; ባዶነት ማዋቀር () {Serial.begin (9600); ተከታታይ << "ተከታታይ ወደብ ተጀምሯል" << EOP; } ባዶነት loop () {String pch ፣ sType ፣ sTemp; char inChar, sTest, k; int sBits; ረጅም sHex; int i, j; ሳለ (1) {ሳለ (Serial.available ()> 0) {inChar = Serial.read (); ከሆነ (መረጃ ጠቋሚ == 0) {pch = ""; } ከሆነ (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {አብቅቷል = እውነት ፤ መረጃ ጠቋሚ = 0; ሰበር; } ሌላ {ከሆነ (መረጃ ጠቋሚ <64) // የድርድር መጠን {pch += inChar; ኢንዴክስ ++; }}} ከሆነ (አብቅቷል) {// በዳታ ውስጥ ያለውን ውሂብ እዚህ ይለዩ… pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); i ++; // ዝለል '፣' ወይም '' // እኔ አሁን የሄክስ j = pch.lastIndexOf ('') ን ለመጀመር ይጠቁማል! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j አሁን ከሄክስ sHex = 0 በኋላ ወደ '፣' ወይም 'ያመላክታል። sTemp = pch.substring (i, j); ከሆነ (sTemp.substring (0, 2) == ሕብረቁምፊ ("0X")) sTemp = sTemp.substring (2); ለ (i = 0; i <sTemp.length (); i ++) {k = sTemp ; (((k> = '0' && k = 'A' && k <= 'F')))) ከተሰበረ; sHex *= 16; ከሆነ (k> = '0' && k <= '9') sHex += (k - '0'); ሌላ ከሆነ (k> = 'A' && k <= 'F') sHex + = ((k - 'A') + 10); (((k> = '0' && k = 'A' && k <= 'F')))) ከተሰበረ; } sTemp = pch.substring (j+1); sBits = 0; ለ (i = 0; i <sTemp.length (); i ++) {k = sTemp ; sBits *= 10; ከሆነ (k> = '0' && k <= '9') sBits += (k - '0'); } ከሆነ (sType.length ()> 0) {ተከታታይ << pch << EOP << '' የኮድ ዓይነት: '' << sType << '' ሄክስ: ''; Serial.print (sHex, HEX); ተከታታይ << "ቢቶች" << sBits; } ላክ (sType ፣ sHex ፣ sBits) ፤ pch = ""; አልቋል = 0; }}} ባዶነት ላኪ (ሕብረቁምፊ sType ፣ ረጅም sHex ፣ int sBits) {ለ (int i = 0; i <2; i ++) {if (sType.equals (String (“RC6”)))) {irsend.sendRC6 (sHex, sBits); } ሌላ ከሆነ (sType.equals (String ("RC5"))) {irsend.sendRC5 (sHex, sBits); } ሌላ ከሆነ (sType.equals (String ("SONY"))) {irsend.sendSony (sHex, sBits); } ሌላ ከሆነ (sType.equals (String ("NEC")))) {if (! i) irsend.sendNEC (sHex, sBits); } ሌላ ከሆነ (sType.equals (String (""))) {ተከታታይ << "መዘግየት" << EOP; መዘግየት (450); } መዘግየት (30); }}

ደረጃ 8 - ከኮምፒዩተርዎ ወደ ድር አገልጋዩ ይገናኙ

ከኮምፒዩተርዎ ወደ ድር አገልጋዩ ይገናኙ
ከኮምፒዩተርዎ ወደ ድር አገልጋዩ ይገናኙ

.. ወይም ስልክ ወይም android ወይም ipad ወይም ሌላ ማንኛውም ነገር - በአሳሽዎ ውስጥ ወደ https:// webserver IP አድራሻ/remote.php ይሂዱ ለእኔ አድራሻው https://192.168.0.9/remote.php ነው ፣ ግን የእርስዎ ጥርጥር የተለየ እንደሚሆን ጥርጥር የለውም። ሁሉም ነገር የሚሰራ ከሆነ ጠቅ ማድረግ በሚችሏቸው አዝራሮች የርቀት መቆጣጠሪያዎን ስዕል ማየት አለብዎት።

ደረጃ 9 - አማራጭ ደረጃ - ለመጠቀም ቀላል ለማድረግ የአስተናጋጆችዎን ፋይል ያርትዑ

አማራጭ ደረጃ - ለመጠቀም ቀላል ለማድረግ የአስተናጋጆችዎን ፋይል ያርትዑ
አማራጭ ደረጃ - ለመጠቀም ቀላል ለማድረግ የአስተናጋጆችዎን ፋይል ያርትዑ

እኔ ያደረግሁት አንድ እርምጃ የአስተናጋጆቼን ፋይል (/ወዘተ/አስተናጋጆች በሊኑክስ ፣ ሲ: ዊንዶውስ ሲስተም 32 ነጂዎች ወዘተ / አስተናጋጆች በመስኮቶች ላይ) ማረም ነበር። ይህ ፋይል በአስተዳደር ትዕዛዝ ጥያቄ (ዊንዶውስ) ወይም በሱ (ሊኑክስ) ብቻ ሊስተካከል እንደሚችል ልብ ይበሉ ip.add.re.ss የርቀት IP.add.re.ss ን በአገልጋዩ አይፒ አድራሻ ይተኩ እና ፋይሉን ያስቀምጡ. በአጭሩ ስም ድረ -ገጹን ለመድረስ በሚፈልጉት እያንዳንዱ መሣሪያ ላይ ይህንን ማድረግ ያስፈልግዎታል። አሁን የርቀት መቆጣጠሪያውን በ https://remote/remote.php መድረስ ይችላሉ። ይህ የመጀመሪያው ትክክለኛ አስተማሪዬ ነው ፣ ረጋ ያለ እና እነሱን ለማስተካከል ችግሮች ካሉ ያሳውቁኝ።

የሚመከር: