ãã€ã³ã¿ãŒãããã¢ãŠãã¬ãããã®è£œé çµéšã«é¢ããèšäºãžã®ã³ã¡ã³ãã§
ã 2ã€ã®ã³ã¡ã³ããç§ã®æ³šç®ãéããŸããã ãã®ãããªããšã¯æ¬è³ªçã«åœ¹ã«ç«ããªããšäž»åŒµãããã®ã¯ãç§ã«ã¯äžå
¬å¹³ã«æããŸãã-äŸãã°ãããããªãããŒãªå°ããªãã®ããªã¢ãŒãã§ããªã»ãããããå¿
èŠããã£ãããšãéåžžã«ããèŠããŠãããç§ã¯äžäººã§ã¯ãªããšæããŸãã ããããããšãã°TP-LINK TL-MR3020 + OpenWRTã䜿çšããããšã§ããã®ãããªåé¡ã解決ã§ãããšããèãã¯ç°¡åã§å®äŸ¡ã§ãã ãŸããããã€ã¹ãããã°ã©ãã³ã°ãããã³ãã€ã¯ãã³ã³ãããŒã©ãŒãåè§£ããã«å®è¡ããããšã決å®ããŸãããèŠããã«ããœãªã¥ãŒã·ã§ã³ãã§ããã ãã¢ã¯ã»ã¹ããããããããã§ãã ãããŠãã»ãšãã©æåããŸããïŒ
åºåããã€ã¹ãšããŠãéåžžã®USBããŒããŒãã䜿çšããŸãã ã¹ãŒããŒããŒã±ããã§ã°ãããäŸ¡æ Œã§å«ãªå質ã®ããŒããŒãã«åºäŒã£ããšããç§ã¯ãã€ãçåã«æã£ãŠããŸãã-ãªããããå¿
èŠãªã®ã§ããïŒ ã¯ããäœã®ããã«ïŒ ããŒããŒãã«ã¯3ã€ã®LEDãããããã®ããŒããŒãããµããŒãããããã€ã¹ããããã°ã©ã ã§å¶åŸ¡ã§ããŸãã LEDãå¶åŸ¡åè·¯ã«çœ®ãæãããšã3ã€ã®è² è·ãå¶åŸ¡ã§ããŸãã ããŸããšããŠ-å
¥åããã€ã¹ãšããŠäœ¿çšããããã®ããã€ã¹ã®ãããªãæ¹è¯ã®å¯èœæ§ã ãã¡ãããéããã¹ãºã¡ãæã€ããšããã€ã¯ãã³ã³ãããŒã©ãŒäžã§æãç°¡åãªããã€ã¹ãçµã¿ç«ãŠãïŒãŸãã¯è³Œå
¥ããïŒããšã¯ã§ããŸãããããã¯çŽãããªãå©ç¹ïŒå
¥å/åºåã®å¢å ãéåžžã®è«çã¬ãã«ãªã©ïŒãæã¡ãŸãã ãããããããŒããŒããã¢ãããŒãã«ã¯å©ç¹ããããŸããããã¯ãããã°ã©ããŒãæããªãMKã«äžæ
£ããªäººã
ãå©çšã§ããŸãã ä»ãããªãã¯ä»æ¥ãæ©èœããããã€ã¹ãæã«å
¥ããŠäœãããšãã§ããŸãã ããã«ã次ã®å©ç¹ããããŸãã
- ãã®ãœãªã¥ãŒã·ã§ã³ã¯ä»ã®ãã©ãããã©ãŒã ã«ç°¡åã«ç§»æ€ã§ããŸããç§ã¯ãã¹ãããŠããŸããããçè«çã«ã¯ãASUSããŸãã¯ãD-Linkãã«éã蟌ããããé
ããã€ã³ã¿ãŒããããå¹³åçã«é
åžã§ããŸãïŒUSBãããå ŽåïŒã
- ã«ãŒã¿ãŒã¯æ¬æ¥ã®ç®çã«äœ¿çšã§ããŸãã
- ã«ãŒã¿ãŒãåè§£ããŠåè·¯ã劚害ããå¿
èŠã¯ãããŸããïŒãããŠãTL-MR3020ã¯ãåè§£ããã®ã¯ç°¡åã§ã¯ãããŸããïŒã
- ããã°ã©ãã³ã°ïŒå°ããªã·ã§ã«ã¹ã¯ãªãããšããŠã®ããã°ã©ã ãé€ãïŒãšã³ã³ãã€ã«ã¯å¿
èŠãããŸããã
- ãã¹ãŠã®ã³ã³ããŒãã³ãã¯ã³ã³ãã¥ãŒã¿ãŒã¹ãã¢ã§è³Œå
¥ã§ããŸãïŒãLEDãç¹æ»
ããããã ãã®å Žåãå®éã®å¶åŸ¡ã®ããã«äœ¿çšå¯èœãªç¡ç·ã³ã³ããŒãã³ããããã€ã賌å
¥ããå¿
èŠããããŸãïŒããç·ã³ã¹ãã¯1,500ã«ãŒãã«æªæºã§ãã
OpenWRTãé
眮ãããããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ãæ§æããŸã
ãã®ã¹ãããã§ã¯ãå®éã«ã«ãŒã¿ãŒãå¿
èŠã§ãã ç§ã¯850rããããŸããã
openwrt.orgã®ã¢ãã«ããŒãžã«ã¯ãå
æ¬çãªç¹æ»
æé ãèšèŒãããŠããããã©ã³ã¯ã¹ãããã·ã§ããã䜿çšã§ããŸãã ç§èªèº«ã
tiç
ãªæ
床ã§ããŒã¿çã®å§¿å¢èª¿æŽ12.09ãè¡ãããšãææ¡ããŸãã ããã«ãå
¬éæç¹ã§ã¯ãopenwrt Webãµã€ãã§ã¹ãããã·ã§ããã¯å©çšã§ãããAA12.09ãã€ãã«å
¬éãããŸããã
ã€ã³ã¹ããŒã«ã¯ãããã€ãã®åºæ¬æäœã§æ§æãããŸãã- PCã®ãããã¯ãŒã¯æ¥ç¶ãèšå®ããŠãIPã¢ãã¬ã¹ãèªåçã«ååŸããã«ãŒã¿ãŒãã€ãŒãµãããã±ãŒãã«ã§æ¥ç¶ããŸãïŒç¹æ»
åŸãWiFiã€ã³ã¿ãŒãã§ãŒã¹ã¯ç¡å¹ã«ãªããŸãïŒ
- ã«ãŒã¿ãŒç®¡çããŒãžã«ãã°ã€ã³ããŸãïŒããã©ã«ãã¢ãã¬ã¹ã¯192.168.0.254ãŠãŒã¶ãŒïŒadminããã¹ã¯ãŒãïŒadminïŒ
- [ã·ã¹ãã ããŒã«]> [ãã¡ãŒã ãŠã§ã¢ã¢ããã°ã¬ãŒã]ã¿ãã§ã以åã«ããŠã³ããŒããããã¡ãŒã ãŠã§ã¢ãéžæãã[ã¢ããã°ã¬ãŒã]ãã¯ãªãã¯ããŠãããŠã³ããŒãã€ã³ãžã±ãŒã¿ãŒã2å100ïŒ
ã«éãããŸã§åŸ
ã¡ãŸãã
- OpenWRTãããã¯ãŒã¯ãã©ã¡ãŒã¿ã¯ããã©ã«ãã§TP-LINKã®ãã©ã¡ãŒã¿ãšã¯ç°ãªããããã€ã³ã¿ãŒãã§ã€ã¹ãååæåããæãç°¡åãªæ¹æ³ã¯ãã€ãŒãµãããã±ãŒãã«ãåæããŠåæ¥ç¶ããããšã§ãã
- telnetïŒ192.168.1.1-ããã©ã«ãã§ã¯ãæ°é®®ãªãOpenWRTã®ã¢ãã¬ã¹ïŒçµç±ã§ã«ãŒã¿ãŒã«ã¢ã¯ã»ã¹ããpasswdã³ãã³ãã§ãã¹ã¯ãŒããèšå®ããŸã-ããã§ã«ãŒã¿ãŒã¯SSHçµç±ã§ã¢ã¯ã»ã¹ã§ããŸãïŒtelnetçµç±ã§ã¯ã¢ã¯ã»ã¹ã§ããŸããïŒã
远å ã®ããã±ãŒãžãã€ã³ã¹ããŒã«ããã«ã¯ãã€ã³ã¿ãŒãããçµç±ã§ãªããžããªã«ã¢ã¯ã»ã¹ããå¿
èŠããããŸããããã«ã¯ãããŒã«ã«ãããã¯ãŒã¯ã¯ã©ã€ã¢ã³ããšããŠã®æ§æãå¿
èŠã§ãã
äŸïŒ192.168.1.xã»ã°ã¡ã³ãã§éçIPãæ§æããã«ã¯ãæ¬¡ã®æé ãå®è¡ããŸãã
uci set network.lan.proto=static uci set network.lan.ipaddr=192.168.1.222 uci set network.lan.netmask=255.255.255.0 uci set network.lan.gateway=192.168.1.1 uci set network.lan.dns=8.8.8.8 uci changes uci commit /etc/init.d/network restart
ããã§ã192.168.1.1ã¯ãããã¯ãŒã¯å
ã®ã²ãŒããŠã§ã€ã¢ãã¬ã¹ã§ããã192.168.1.222ã¯æªäœ¿çšã®IPã§ãããããã¯ã¹ã«å²ãåœãŠãããŸãã uci changesã³ãã³ãã¯ãè¡ããããã¹ãŠã®å€æŽã衚瀺ããæ©èœãæäŸããŸãã ã€ã³ã¿ãŒãã§ãŒã¹ãæ£ããæ§æãããŠããªãããã€ã¹ã¯ãå€éšããã¢ã¯ã»ã¹ã§ããªããããããŸã³ããã«ãªãããããã®å¯èœæ§ãç¡èŠããªãããã«ããŠããŸãã
ãã¹ãŠåããã©ãã«ãçºçããå ŽåãOpenWRTã¯ããªã«ããªã¢ãŒãããæäŸããŸããããŒãäžãWPSãã¿ã³ãç¹æ»
ãå§ãããããã«æŒãç¶ããŸã-MR3020ã¯ãããã¯ãŒã¯ã®ããã©ã«ãèšå®ã§èµ·åããŸãããããã¯ãŒã¯ã§DHCPãå®è¡ãããŠããå Žåãèªåæ§æãèšå®ã§ããŸãã
uci set network.lan.proto=dhcp uci set network.lan.hostname=etherelay uci commit /etc/init.d/network restart
2è¡ç®ã¯ãªãã·ã§ã³ã§ãããããã€ã¹ãèŠã€ããã®ã«éåžžã«åœ¹ç«ã¡ãŸãã ãããã¯ãŒã¯ããµããŒãããŠããã°ãIPã§ã¯ãªããã¹ãåã§ããã€ã¹ã«ã¢ã¯ã»ã¹ã§ããŸãã ãããã¯ãŒã¯äžã®ããã€ã¹ã®æ€çŽ¢ã100ïŒ
åé¿ãããå Žåã¯ãéçæ§æã䜿çšããŸãã
TP-LINKã«çµã¿èŸŒãŸããŠããçµã¿èŸŒã¿ã®dhcpãµãŒããŒãç¡å¹ã«ããããšã圹ç«ã¡ãŸãã
uci set dhcp.lan.ignore=1 uci commit /etc/init.d/dnsmasq restart
ããã§ãããã¯ã¹ãã³ã³ãã¥ãŒã¿ãŒããåæãïŒãšã«ãããsshã»ãã·ã§ã³ã¯æåŸã®ã³ãã³ãã®åŸã§æ¢ã«çµäºããŠããŸãïŒãã«ãŒã¿ãŒãŸãã¯ã¹ã€ããã«æ¥ç¶ã§ããŸãã
ããŒããŒãæ¥ç¶ãšLEDå¶åŸ¡ãã¹ã
H-WRT Webãµã€ãã¯ãããŒããŒãã®ã€ã³ã¹ããŒã«ã«å¿
èŠãªã®ã¯kmod-usb-hidã¢ãžã¥ãŒã«ã®ã¿ã§ããããšãéç¥ããŠããŸãã
ã€ã³ã¹ããŒã«ããŠãã ããïŒ
opkg update opkg install kmod-usb-hid
ããŒããŒããæ¥ç¶ããèªèããããã©ããã確èªããŸãã
root@OpenWrt:~
æ®å¿µïŒ ããã¯ç§ãæåŸ
ãããã®ãšã¯ãŸã£ããç°ãªããŸãã åé¡ã¯äœã§ããïŒ
åæ§ã®
ãã°ã¬ããŒããããã«èŠã€ãããŸã-éçºè
ã¯ã䜿çšãããŠãããããã»ããã®ããŒããŠã§ã¢å¶éã«ãã£ãŠãã®åäœã説æããŸãã ãªã³ããŒãã®USBããã¯äœéããã€ã¹ã«ã¯åããŠããªãããã§ãã çŸæç¹ã§ã¯ãZenã®ã¹ããªããã¯è·¡åœ¢ããªãèžçºããŸããããå€éšUSBãããä»ããŠããŒããŒããæ¥ç¶ããããšã§giveããã«åé¡ã解決ããããšããŸãã
root@OpenWrt:~
ã¯ããã«è¯ãã ãã®ãããèšäºã®åé ã§ãã»ãŒå®æããšåçã«ãæäŸæ¹æ³ããèšè¿°ããªããã°ãªããªãã£ããããGeneric USB KeyboardããèªââèããããšããŸãã ããŒããŒãäžã«ã¯åžžã«2ã€ã®ãããã€ã¹ããäœæãããŸããããã®ç¹å®ã®ããŒããŒããããŠã¹ãšãåŒã°ããçç±ãèããªãã§ãã ãã...ãšã«ããããããŒããŠã§ã¢Hello Worldãã§LEDããªã³ã«ããæºåãã§ããŠããŸãã
cat /dev/input/event0 > /dev/null & printf "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x01\x00\x00\x00\x01" > /dev/input/event0
ããã§Caps Lock LEDãå³ããç¹ç¯ããã¯ãã§ãã ãã®äºå®ã«åçŽã«æºè¶³ããŠãã人ã¯ã次ã®ã¹ãããã«é²ãããšãã§ããŸãã äžèšã®ã©ã®ãããªåŠæ³åªæãäžããããŠããã®ãç¥ããã«å
ã«é²ãããšãã§ããªã人ã¯ã
æ··oticãšãã説æïŒããŒããŒãïŒãŸãã¯å¥ã®å
¥åããã€ã¹ïŒã§çºçãããã¹ãŠã«ã€ããŠã察å¿ãããã¡ã€ã«ã«è¡šç€ºãããå
¥åã€ãã³ããçæãããŸãïŒãã®å Žå/ dev / input / event0ã§ãããããã¯ä»ã®å
¥åããã€ã¹ãæ¥ç¶ãããŠããªããšããäºå®ã®ããã®ç¹æ®ãªã±ãŒã¹ã§ãïŒã ã€ãã³ãã®æ§é ã¯ãããããŒãã¡ã€ã«
input.hã§å®çŸ©ãããŠããŸãã
struct input_event { struct timeval time; __u16 type; __u16 code; __s32 value; };
typeã¯å
¥åèŠçŽ ã®ã¿ã€ãïŒããŒããŒããã¿ã³ãŸãã¯ããŠã¹/ãžã§ã€ã¹ãã£ãã¯ã®åããªã©ïŒã瀺ããcodeã¯åã¿ã€ãã«åºæã®èŠçŽ ã³ãŒãïŒããšãã°ãEV_KEYããŒããŒãã€ãã³ãã®ããŒçªå·ã¯ããã«éä¿¡ãããŸãïŒãããã³å€ã¯ããããçæããã广ãšå€§ããïŒããããµããŒãããããã€ã¹ã®å ŽåïŒã ããšãã°ãããŒããŒãã®QããŒãæŒããšã次ã®ããã«ãªããŸãã
root@OpenWrt:~
ããã§ãæåã®8ãã€ãïŒ505b 0ed9 000 * ****ïŒã¯ã€ãã³ãã®æéã§ãããæ¬¡ã®2ãã€ãïŒ0001ïŒã¯ã€ãã³ãã®ã¿ã€ãïŒEV_KEYïŒã次ã«ããŒçªå·ã®2ãã€ãïŒ0010ïŒã§ããããã¯è±æ°åããŒã®ã¹ãã£ã³ã³ãŒãã«å¯Ÿå¿ããŸããšããã§ãããªã¥ãŒã ã³ã³ãããŒã«ãåçã³ã³ãããŒã«ãªã©ã®ããã³ããããŒãæŒããš ããŒããŒãçšã«äœæããã2çªç®ã®ãã³ãã©ãŒïŒãã®å Žå/ dev / input / event1ïŒã«éä¿¡ãããŸãã èªåãªããŒãã€ãã³ãã¯çæãããŸãããããã¯éåžžã«äŸ¿å©ã§ããå
¥åã§åäœããããã€ã¹ã®ãããŒãã¹ãæ©èœã«ã€ããŠæžããããšãæãåºããŠãã ããã æåŸã®4ãã€ãïŒ0000 0001ãŸãã¯0000 0000ïŒã¯ããããããã¬ã¹ãŸãã¯ãªãªãŒã¹ãçºçããããšã瀺ããŸãã ãŒãã§æ§æããããã±ããã¯ç¹å¥ãªåé¢ã€ãã³ãEV_SYNã§ãããã¿ã€ã4ã®ã€ãã³ããå¿
èŠãªçç±ã¯ããããŸããã ã¿ã€ããšã³ãŒãã®å®çŸ©ã¯åã
input.hã§äžããããŠ
ããã®ããã¥ã¡ã³ãã§ãã詳现ã«èª¬æã
ããŸã ã ãã®åŸã楜ãã¿ãå§ãŸããŸãã ã»ãšãã©ã®ã€ãã³ãã¯ããã€ã¹ãããŠãŒã¶ãŒç©ºéã«éä¿¡ãããŸãããäžéšã®ã€ãã³ãã¯å察æ¹åã«é²ãå¯èœæ§ããããŸãã ããã¯ãäŸãã°ãååãžã§ã€ã¹ãã£ãã¯ãŸãã¯ïŒta-damïŒïŒLEDããµããŒãããããã«è¡ãããŸãã ã€ãŸããã¿ã€ãEV_LEDãLED_CAPSLã³ãŒããããã³1ã/ dev / event / input0ã®å€ã§ã€ãã³ããæžã蟌ããšãããŒããŒãã«Caps Lock LEDãç¹ç¯ããããã«åœä»€ããŸãã Brad Hardsã
Linux USBå
¥åãµãã·ã¹ãã ãããã³
å
¥åãµãã·ã¹ãã ã® äœ¿çš ïŒLEDãå¶åŸ¡ããããã®
ãµã³ãã«ã³ãŒããå«ããŠæåã®èšäºããç¶ãïŒã§ã¯ãå
¥åããã€ã¹ãç¹ã«USBã®æäœã«ã€ããŠããªã詳ãã説æããŠããŸãã åé¡ããã§ã«å®éšçã«è§£æ±ºãããŠããã®ã§ãããããé
ãããããšã«æ°ä»ããã®ã¯æ®å¿µã§ãã ãšããã§ãç§ã¯éåžžã«å¹žéã§ãã-ææ°ã®ã¹ãããã·ã§ãããšããŒã¿12.09ã«ã¯1ã€ã®
æ©èœããããããã€ã¹ãã¡ã€ã«ãåžžã«èªã¿èŸŒãŸããªããšã€ãã³ãã®éä¿¡ãäžå®å®ã«ãªãã®ã§ãã ãããããŒã ã®ç®çã§ã
cat /dev/input/event0 > /dev/null &
æåã«ãr31214ãã¡ãŒã ãŠã§ã¢ã§å®éšããŸãããããã®ãããªæ©èœã¯ãããŸããã§ããã®ã§ãããã«LEDãç¹ç¯ããŸããããããèµ·ãããªããã°ãé·ã鿣ããéãæ¢ããŠããã§ãããã
ã¹ã¯ãªãã
LEDã®ç®¡çãèªååããã«ã¯ãã¹ã¯ãªãããå¿
èŠã§ãã æ¬¡ã®ã¹ãããã§ããããHTTPã§ãã©ãã·ã¥ããããã«ãããã«/ www / cgi-binãã©ã«ããŒã«å
¥ããŸãïŒ
cd /www mkdir cgi-bin cd cgi-bin wget http://etherelay.googlecode.com/files/ctlrelay chmod +x ctlrelay
ãã®ããã¹ããšèª¬æã¯æ¬¡ã®ãšããã§ãã
ç§ãèšã£ãããã«ã宿°EV_LEDãLED_NUMLãLED_CAPSLãLED_SCROLLLã¯input.hã§å®çŸ©ãããŠã
ãŸã ã æéã¯æ°ã«ããŸãã-ãŒãã§æã¡ãŸãã ãã¡ãããåä¿¡ããã³ãã³ãã«åºã¥ããŠãªã³ã¶ãã©ã€ã§ãã€ãã³ãããäœæããã¹ã€ããã«äºåã«å
¥åããããã³ãã¬ãŒããéä¿¡ããã ãã§ãªããã³ãŒãã¯ããã³ã³ãã¯ãã«ãªããŸãããäž»ãªã¢ã€ãã¢ã¯ããæç¢ºã§ããããã«æãããŸããã æžã蟌ã¿äžã«ã€ãã³ããã¡ã€ã«ãèªã¿åãå¿
èŠããããŸãããããããæªåé«ãæŸèæãåºãŠããŸããã ç¹°ãè¿ããŸãããããã¯ä»¥åã®ã¢ã»ã³ããªã«ã¯å¿
èŠãããŸããã§ããããå°æ¥çã«ã¯ããããå¿
èŠãªããªãã§ãããã ãããä»ã®ãšãããææ
¢ããå¿
èŠããããŸãã æåŸã®ãã©ã°ã¡ã³ãã¯ã次ã®ãããª1è¡ã§æ§æãããLEDã®çŸåšã®ç¶æ
ã®ãã¡ã€ã«ã倿ŽããŸãã
{ãnumãïŒtrueããcapsãïŒfalseããscrollãïŒfalse}
ãã®ãããªãã¡ã€ã«ããªãå Žåããã¹ãŠã®åœã®å€ã§äœæãããŸãã OpenWRTã§ã¯ããã£ã¬ã¯ããª/ var /ã¯RAMã«ãããŸããããã¯ããã¹ãŠã®LEDããªãã®å Žåãåèµ·åã®ãã³ã«ãã¡ã€ã«ãäœæãããããšãæå³ããŸãã å±
å¿å°ã®è¯ãå°ããªã¹ããŒã ïŒ HTTPãªã¯ãšã¹ããããã©ã¡ãŒã¿ãŒãååŸããæ¹æ³ã
ããã§èªã¿
ãŸã ïŒããªãåã«èªã¿ãŸãããããªã³ã¯ãã³ãŒãè¡ã ãã§ä¿åããŸããã§ããããããã§ã¯éåžžã«ãã䌌ãŠããŸãïŒã CGIçµç±ã§åŒã³åºãããå Žåãã¹ã¯ãªããã¯
ãContent-typeïŒtext / plainãã衚瀺ããŸã
ããã以å€ã®å Žåãã¯ãšãªçµæã¯200ïŒOKïŒã§ã¯ãªã502ïŒBad GatewayïŒã«ãªããèŽåœçã§ã¯ãªããããã§ãã
ããã§ãLEDã®å¶åŸ¡ãç°¡åã«ãªããŸããã ããšãã°ããScroll LockãLEDããªã³ã«ããã«ã¯ã次ã®ããã«èšè¿°ããŸãã
./ctlrelay scroll_on
ãªãã«ããïŒ
./ctlrelay scroll_off
ç¹æ»
ããããšãã§ããŸãïŒscroll_pulseïŒã å€ãã®äººãå°æ¬ããŠããããã«ãã¢ãã³ãã¢ã¬ã«ã¯ã«ã¯ãã§ã«å€ãã®äººã«ããèšã£ãŠããŸãã ããã¯ãšãŠã楜ããã§ãïŒã ããã§ããæ¬¡ã®æ®µéã«é²ãã§äœæããŠã¿ãŸããã...
Webã€ã³ã¿ãŒãã§ãŒã¹
WebãµãŒããŒãªãã®Webã€ã³ã¿ãŒãã§ã€ã¹ãšã¯äœã§ããïŒ ãã®å¯çšæ§ã確èªããŸãã
opkg status uhttpd
åºåã«
StatusïŒinstall user installedãšããè¡ãå«ãŸããŠããå ŽåïŒããã³Attitude Adjustment 12.09 betaã䜿çšããå Žåã¯ãããªããŸãïŒããµãŒããŒã¯æ¢ã«ã€ã³ã¹ããŒã«ãããŠããŸãã ãã以å€ã®å Žåã¯ãã€ã³ã¹ããŒã«ããŠèµ·åãæ§æããŸãã
opkg update opkg install uhttpd /etc/init.d/uhttpd enable /etc/init.d/uhttpd start
次ã«ãWebããŒãžãå¿
èŠã§ãã <!DOCTYPE html> <html> <head> <title>Relay control</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <script type="text/javascript"> function command(action) { url="/cgi-bin/ctlrelay?command="+action; url=url+"&fuie=" + Math.random(); var xmlhttp=new XMLHttpRequest(); xmlhttp.open("GET",url,false); xmlhttp.send(); } function get_status() { var xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { ledstate = JSON.parse(xmlhttp.responseText) for (led in ledstate) { document.getElementById(led).checked=ledstate[led] } } } xmlhttp.open("GET","/ledstate?fuie="+ Math.random(),false); xmlhttp.send(); setTimeout("get_status()",500); } </script> </head> <body onload="get_status()"> <div class="controls"> <div class="control"> <label for="scroll">Scroll Lock LED</label> <input id="scroll" type="checkbox" onclick="if (this.checked) command ('scroll_on'); else command ('scroll_off')"> </div> <div class="control"> <label for="caps">Caps Lock LED</label> <input id="caps" type="checkbox" onclick="if (this.checked) command ('caps_on'); else command ('caps_off')"> </div> <div class="control"> <label for="num">Num Lock LED</label> <button id="num" type="button" onclick="command('num_pulse')">1s blink</button> </div> </div> </body> </html>
æåã¯JQuery.getïŒïŒã䜿çšãããã£ãã®ã§ãããGETãªã¯ãšã¹ããæ°åè¡ãããã«JQueryã䜿çšããå¿
èŠã¯ãªãããšãããããŸããã 2ã€ã®JavaScript颿°ããããŸãã æåã®
ã³ãã³ãïŒã¢ã¯ã·ã§ã³ïŒã¯ã¹ã¯ãªãããå®è¡ããGETãªã¯ãšã¹ãã®ãã³ãã³ãããã©ã¡ãŒã¿ãŒã«ãã³ãã³ãããæž¡ããŸãã ã³ã³ãããŒã«ã®onclickã€ãã³ãã§å®çŸ©ãããŠãããã®ã ããã¯éåžžã«ãšã¬ã¬ã³ãã§ã¯ãªãããšã¯ééããããŸãããããã¹ãŠãã©ã®ããã«æ©èœãããã«ã€ããŠã®è¯ãã¢ã€ãã¢ãæäŸããŸãã 2çªç®ã®é¢æ°
get_statusïŒïŒã¯ ã
onloadã€ãã³ãã«ãã£ãŠããªã¬ãŒãããLEDã®çŸåšã®ç¶æ
ïŒã¹ã¯ãªããã®æåŸã«åœ¢æããããã®ïŒããã¡ã€ã«ã«èŠæ±ããããŒãžã³ã³ãããŒã«ã«åæ ããŸãã ä¿¡ããããªãã»ã©ã®å¶ç¶ã«ãããç¶æ
ãã¡ã€ã«ã¯é£æ³é
åã®JSON衚çŸã§ããã
JSON.parseïŒïŒã䜿çšããŠããŒã¿ã«éåžžã«ç°¡åã«ã¢ã¯ã»ã¹ã§ããŸãã 0.5ç§ããšã«ãªã¯ãšã¹ããç¹°ãè¿ãããšã«ãããå¥ã®ã¯ã©ã€ã¢ã³ãããè¡ãããç¶æ
ã®å€åã远跡ã§ããŸãã url
fuie = Math.randomïŒïŒãžã®è¿œå
㯠ãã¢ãã¬ã¹ãæ¯åäžæã«ãªãããã«å¿
èŠã§ã-ãã©ãŠã¶ãŒã¯ãããŒãžãæ¢ã«ãã£ãã·ã¥ã«ããããšãèæ
®ããŠãããŒãžã®èŠæ±ãæåŠã§ããªããªããŸãã 倿°ã®ååããæšæž¬ã§ããããã«ãInternet Explorerã¯ç¹ã«ãã®åäœãèµ·ãããããã§ãã
å°ããªãã¥ã¢ã³ã¹-ãã©ãŠã¶ãŒã¯ãã¡ãããµãŒããŒäžã®/ varãã©ã«ããŒã«ã¢ã¯ã»ã¹ã§ããªããããã·ã³ããªãã¯ãªã³ã¯ã䜿çšããŠãå°éãããå Žæããledstateãã¡ã€ã«ãèªã¿åãæ©äŒãäžããŸãã
ln -s /var/ledstate /www/ledstate
ãã®ããŒãžãããŠã³ããŒãããããã®ãªã³ã¯ã¯ããããã«å€æŽãããŠããŸãããèšäºã®ã»ãŒæåŸã«ãããŸãã ããã§ãããŒããŒãã®LEDãç¹æ»
ãããŠããã§ãã¯ããã¯ã¹ãã€ã€ãããšãã§ããŸãã ããããç¹æ»
ããLEDãä»ã§ã¯èª°ãé©ããªããšããäºå®ãèæ
®ããŠããªããŠããå®çšçãªèгç¹ããã¯çµ¶å¯Ÿã«åœ¹ã«ç«ããªãããšã«åæããå¿
èŠããããŸãã ãããã£ãŠãéã«åãããããŸãããïŒ
ã¹ããŒã
ããŒããŒãããã§ã«åè§£ããŠãããŒããåãå€ãããšãã§ããŸãã

ããŒããŒãLEDã¹ã€ããã³ã°åè·¯ããæ¬¡ã®ïŒéåžžã«åçŽåãããïŒã¢ãã«ïŒãªã³ç¶æ
ã®å ŽåïŒã§ç€ºããŸãã
å³1.ããŒããŒãLEDããªã³ã«ããããã¿ãã»ã°ã¡ã³ãã®3ã€ã®ãã¹ãæžã¿ãã¯ã©ããã«ã¯ãLEDãå«ãŸããŠããã ãã§ã黿µã®ã¿ãç°ãªããŸããéåžžã¯çŽ18mAã§ãããæã«ã¯3mAã§ãã ä»ã®ã¹ããŒã ãå¯èœã§ããããšã«çæããå¿
èŠããããŸãã
æãç°¡åãªã®ã¯ãå°ããªé»å§ãšé»æµãåãæ¿ããå¿
èŠãããå Žåã§ãïŒããã€ã¹ã®ãªã¢ãŒãããªã»ããããŸãã¯ä»ã®ãã¿ã³/ããžãã¯ä¿¡å·ã®ãšãã¥ã¬ãŒã·ã§ã³ïŒã éåžžã®ãªããã«ãã©ãŒã§ã§ããŸãïŒ
ã¹ããŒã 2.è«çä¿¡å·ã®åœ¢æãããã¯ãŒã¯ããã®é»åã§ããã€ã¹ãå¶åŸ¡ããã«ã¯ããœãªããã¹ããŒããªã¬ãŒã䜿çšããŸãã
å³3.ãœãªããã¹ããŒããªã¬ãŒå¶åŸ¡170ã«ãŒãã«ã®äŸ¡æ Œã®ãããç§ã¯åœå
ã®ãªã¬ãŒ
K293KP13Pã䜿çšããŸããã èšèšãããŠããè² è·ã®æå€§é»æµã¯1Aã§ãã å¶åŸ¡LEDãæµãã黿µã¯ã䜿çšãããªã¬ãŒã®ã¿ã€ãã®æå°å€ïŒããã¥ã¡ã³ããŒã·ã§ã³ã§ã¯I
F minã§ç€ºãããŸãïŒããäœãããªãã§ãã ããã ããŒããŒãããŒãã®é»æµãå°ãªãå ŽåïŒLEDã®1ã€ã®åºåããªãã«ããã®ã£ããå
ã®é»æµã枬å®ããå ŽåïŒã远å ã®ãã©ã³ãžã¹ã¿ã¹ã€ããã圹ç«ã¡ãŸãã
ã¹ããŒã 4.ããŒãä»ãããœãªããã¹ããŒããªã¬ãŒã®æ¥ç¶é»å§ã§å¶åŸ¡ããããœãªããã¹ããŒããªã¬ãŒãŸãã¯ãå€å
žçãªã黿°æ©æ¢°åŒãªã¬ãŒã䜿çšãããå Žåã圌ã¯ç¯çŽããŸãã
ã¹ããŒã 5.黿°æ©æ¢°åŒãªã¬ãŒå¶åŸ¡ãœãªããã¹ããŒããªã¬ãŒã¯éåžžã«é«äŸ¡ã§ããããã匷åãªã»ã©é«äŸ¡ã§ãã åŸæ¥ã®ãªã¬ãŒã¯ãããå€ãã®ãã«ãŒãã«ãããã®ã¢ã³ãã¢ããäžããŸãããæ¬ ç¹ããããŸãã ãã®äžã«ã¯ããªã³ç¶æ
ã§ã®å€§ããªé»æµæ¶è²»ããããŸãã å³ãšåãã¢ãã«ã®3ã€ã®ãªã¬ãŒãåæã«ãªã³ã«ãããšãUSBããæ¶è²»ããã黿µã¯ã»ãŒ300 mAã«ãªããŸãã ããŒããããŸãããã«ã¯ãããããªãå Žåã¯ããšããã¿ãŒïŒå³ã®ç Žç·ïŒã§ã¯ãªããç¬ç«ãããœãŒã¹ã«ãšããã¿ãŒãæ¥ç¶ããŸãã
ã¹ããŒã 4ãš5ã¯ããã¡ããããå
±éã¢ããŒããïŒããŒãã®ã¢ããŒããã€ãªãŒããšããã©ã¹ãã®éã®æµæããã§ãã¯ããŸã-0ãªãŒã ã§ãªããã°ãªããŸããïŒã®ã¹ããŒã ã«åŸã£ãŠLEDããªã³ã«ãªã£ãŠããããŒããŒãã§ã®ã¿åäœããŸãã ããã«ç
©ããããããªãå Žåã¯ãããŒã®ä»£ããã«äœé»åã®å
ãªã¬ãŒã䜿çšã§ããŸãã éåžžã®LEDã®ä»£ããã«ç¹ç¯ããLEDããšã«5ã25 mAã®é»æµã§åäœããŸããã€ãŸãã99ïŒ
ã®ç¢ºçã§ãã¹ãŠã®ããŒããŒããªãã·ã§ã³ã«é©ããŠããŸãã æå€§60 Vã®é»å§ãšæå€§300 mAã®é»æµãåãæ¿ããå¿
èŠãããå Žåã¯ããªã¬ãŒãåãå€ããŠãå
ãªã¬ãŒãçŽæ¥äœ¿çšã§ããŸãã
ã¹ããŒã 6.ãªãããªã¬ãŒã䜿çšãã黿°æ©æ¢°åŒãªã¬ãŒã®å¶åŸ¡ã¹ããŒã ãšãã®å®è£
ã«ã¯å€ãã®åçŽåããããŸãïŒåè·¯ã«ãã¥ãŒãºã远å ããããšããå§ãããŸãã åè·¯5ã®ãã©ã³ãžã¹ã¿ã¯ãã»ãŒæå€§ã®ã³ã¬ã¯ã¿é»æµã§åäœããŸããããªãã黿µãå°ããããããå°ãªããšããã匷åãªãã©ã³ãžã¹ã¿ã䜿çšããããšããå§ãããŸãã ãœãªããã¹ããŒããªã¬ãŒã®åºåã§ãã¢ãŒã¿ãŒãŸãã¯ä»ã®èªå°è² è·ã§äœæ¥ããå Žåããã³ãã³ã°RCåè·¯ãé
眮ããå¿
èŠããããŸãã ã³ã³ããŒãã³ãã¯ãæãè¿ãïŒç§ã«ãšã£ãŠïŒéåžžã«é«äŸ¡ãªã©ãžãªã¹ãã¢ã§ã®å¯çšæ§ãšäŸ¡æ Œã®åºæºã«ãã£ãŠã®ã¿éžæãããŸãã-éžæè¢ãããå Žåã¯ãéåžžã®å£²ãæããåºãç¯å²ã®IFã§ææã®é»æµã®ããœãªããããã£ããéžæããã¹ã€ããã³ã°ã§è³ªåãéããŸãã ããã«ãæç€ºãããã¹ã€ããã³ã°ã¢ãã«ã¯äžæ£ç¢ºã§ããããŒããŒãããŒãã¯ãã¢ããŒãã§2.5 V以äžã®é»å§ã§ã®ã¿ãLEDãã«å¯ŸããŠé»æµæºãšããŠåäœããŸãâå¯èœã§ããã°ã亀æãããLEDãšåæ§ã®é»å§éäžã確ä¿ããããšããŸãããå§å¡äŒã¯ä»£æ¿ããæããªãã£ããã
åžžã«èæ
®ãã¹ãããšã¯ãèŠçŽ ã®é»æ°çå®å
šæ§ã§ãã ãã¹ãããã€ã¹ïŒ
ç¹ã«ãããããé
ç·ã®ã©ããã«ã¶ãäžããããããŒãã«ã®ãžã£ã³ã¯ããªã³ã«ãªã£ããšãã«å¿ããããå¯èœæ§ã®
ãããã¹ãããã€ã¹ïŒã§ããããããã¯ãŒã¯æ¥ç¶ãæäŸããå Žåã誀ã£ãп޻ç·éšã«è§Šããããšããä¿è·ããå¿
èŠããããŸãã ããããªããšã絶察ã«å®éã®é»æµãæµããå¯èœæ§ããããŸãã
ãªãã·ã§ã³3ãš6ããã¬ããããŒãã§åéããŸããããæ¬¡ã®ããã«ãªããŸããã

ããã¯ãæŠå¿µå®èšŒãã«ä»ãªããªããšããäºå®ã«ãããããããç§èªèº«ã®åé¯ããè§£éã§ã¯ããããå°ãªããšãå°ãã®ãçŸããããããããšãæãã§ããã ãããã¯ä»ã®æä»£ã§ããå€èŠ³ã¯æ©èœçè² è·ä»¥äžã«ããããŠæã«ã¯çç±ãªãè©äŸ¡ãããŸãã ããã¯ç§ãã¡ãæ¬¡ã®æ®µéã«å°ããŸãã
åç²§åãšãã¢ã³ã¹ãã¬ãŒã·ã§ã³
HTMLãã-ããã¡ãŒãã«ããšã®ã€ã³ã¿ãŒãã§ã€ã¹ã«ã¯ãã¬ã©ã¹ç¶ããã®ã¹ããŒã«ãšãã¹ã¿ãä»ããæ€ç©ã®èªè»¢è»ã·ã£ãããããŸãã

ãªããšãæããããŠã¿ãŸãããã
- ç§ã®èžè¡çèœåã¯ãŒãã§ãããå³ã¯ãããã®è¿ãã®ã©ããã«ããã®ã§ã
ããããã¢ã€ãã¢ãçã¿ãŸãããããããã€ã³ã¹ãã¬ãŒã·ã§ã³ãåŸãŸããïŒãããŠå°ãcssïŒïŒ http : //www.seanslinsky.com/demo/ios-toggle-switches/ ã - mudcu.be/bgã¯ãåŸé
ãžã§ãã¬ãŒã¿ãŒã䜿çšããŠã
éå±ãªå£çŽã®èæ¯ãäœæããŸããã - ã¯ãŒã«ãªãã°ã«ãžã§ãã¬ãŒã¿ãŒproto.io/freebies/onoffã¯ãã»ãšãã©ãã¹ãŠã®ãã©ãŠã¶ãŒã§åäœãããã¿ã³ãäœæããŸããOperaã§æ£æ¹åœ¢ã«ãããšãIEã§ã9以äžã®å Žåã«ãªããŸãã
- åçã¯ã·ã¹ãã ã«ãã£ãŠç°ãªãããã davidwalsh.name / change-text-size-onclick-with-javascriptããŒãžå
ã«ã¹ã±ãŒã«ãã¿ã³ãäœæããŸã
CSSã¯æå³ããããŸããã90ïŒ
ãèªåçã«çæãããHTMLãäžèšã®90ïŒ
ã®ç¹°ãè¿ãã§ããããã§ãã ãããã£ãŠãç§ã¯ãã ããŠã³ããŒãããæ¹æ³ãæžããŸãïŒ
cd /www mkdir luci mv index.html luci wget http://etherelay.googlecode.com/files/index.html wget http://etherelay.googlecode.com/files/style.css
2è¡ç®ãš3è¡ç®ã¯ãã«ãŒã¿ãŒã®Webã€ã³ã¿ãŒãã§ãŒã¹ãã¡ã€ã«ïŒã€ã³ã¹ããŒã«ãããŠããå ŽåïŒãå¥ã®ãã©ã«ããŒã«ãé ããããã«ãªããŸãããçŸåšã¯ãrouter_address / luciã®ã¢ãã¬ã¹ã§äœ¿çšã§ããŸãã
ãããŠããµãŒããŒã¢ãã¬ã¹ã§ã¢ã¯ã»ã¹å¯èœãªãã¡ã€ã³ãããŒãžãç§ãã¡ã®ãã®ã«ãªããŸãããããŠæåŸã«ã圌ãã¯çµµã¯åã®èšèã®äŸ¡å€ããããšèšããŸãããã®ãããªã«ã¯ã»ãŒåæã®åçããããŸãããããç§ã®åé·æ§ãšäœããã®åœ¢ã§ãã©ã³ã¹ããšãããšãé¡ã£ãŠããŸããæŽæ°ïŒ nm11ã¯ãWebãµãŒããŒã«æ¿èªã远å ããæ¹æ³ãææ¡ããŸããïŒããšãã°ããŠã£ã¶ãŒãã®ãã°ã€ã³ãšlumosãã¹ã¯ãŒãã䜿çšïŒïŒ uci set uhttpd.main.config=/etc/httpd.conf uci commit uhttpd echo "/:wizard:lumos" > $(uci get uhttpd.main.config) /etc/init.d/uhttpd restart