ãã€ã³ã¿ãŒãããã¢ãŠãã¬ãããã®è£œé çµéšã«é¢ããèšäºãžã®ã³ã¡ã³ãã§ã 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ãæ§æããã«ã¯ã次ã®æé ãå®è¡ããŸãã
ããã§ã192.168.1.1ã¯ãããã¯ãŒã¯å ã®ã²ãŒããŠã§ã€ã¢ãã¬ã¹ã§ããã192.168.1.222ã¯æªäœ¿çšã®IPã§ãããããã¯ã¹ã«å²ãåœãŠãããŸãã uci changesã³ãã³ãã¯ãè¡ããããã¹ãŠã®å€æŽã衚瀺ããæ©èœãæäŸããŸãã ã€ã³ã¿ãŒãã§ãŒã¹ãæ£ããæ§æãããŠããªãããã€ã¹ã¯ãå€éšããã¢ã¯ã»ã¹ã§ããªããããããŸã³ããã«ãªãããããã®å¯èœæ§ãç¡èŠããªãããã«ããŠããŸãã ãã¹ãŠåããã©ãã«ãçºçããå ŽåãOpenWRTã¯ããªã«ããªã¢ãŒãããæäŸããŸããããŒãäžãWPSãã¿ã³ãç¹æ» ãå§ãããããã«æŒãç¶ããŸã-MR3020ã¯ãããã¯ãŒã¯ã®ããã©ã«ãèšå®ã§èµ·åããŸãã
ãããã¯ãŒã¯ã§DHCPãå®è¡ãããŠããå Žåãèªåæ§æãèšå®ã§ããŸãã
2è¡ç®ã¯ãªãã·ã§ã³ã§ãããããã€ã¹ãèŠã€ããã®ã«éåžžã«åœ¹ç«ã¡ãŸãã ãããã¯ãŒã¯ããµããŒãããŠããã°ãIPã§ã¯ãªããã¹ãåã§ããã€ã¹ã«ã¢ã¯ã»ã¹ã§ããŸãã ãããã¯ãŒã¯äžã®ããã€ã¹ã®æ€çŽ¢ã100ïŒ åé¿ãããå Žåã¯ãéçæ§æã䜿çšããŸãã
TP-LINKã«çµã¿èŸŒãŸããŠããçµã¿èŸŒã¿ã®dhcpãµãŒããŒãç¡å¹ã«ããããšã圹ç«ã¡ãŸãã
ããã§ãããã¯ã¹ãã³ã³ãã¥ãŒã¿ãŒããåæãïŒãšã«ãããsshã»ãã·ã§ã³ã¯æåŸã®ã³ãã³ãã®åŸã§æ¢ã«çµäºããŠããŸãïŒãã«ãŒã¿ãŒãŸãã¯ã¹ã€ããã«æ¥ç¶ã§ããŸãã
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:~# dmesg | tail [ 66.380000] hub 1-0:1.0: connect-debounce failed, port 1 disabled [ 68.780000] hub 1-0:1.0: connect-debounce failed, port 1 disabled [ 71.180000] hub 1-0:1.0: connect-debounce failed, port 1 disabled root@OpenWrt:~#
æ®å¿µïŒ ããã¯ç§ãæåŸ ãããã®ãšã¯ãŸã£ããç°ãªããŸãã åé¡ã¯äœã§ããïŒ
åæ§ã®ãã°ã¬ããŒããããã«èŠã€ãããŸã-éçºè ã¯ã䜿çšãããŠãããããã»ããã®ããŒããŠã§ã¢å¶éã«ãã£ãŠãã®åäœã説æããŸãã ãªã³ããŒãã®USBããã¯äœéããã€ã¹ã«ã¯åããŠããªãããã§ãã çŸæç¹ã§ã¯ãZenã®ã¹ããªããã¯è·¡åœ¢ããªãèžçºããŸããããå€éšUSBãããä»ããŠããŒããŒããæ¥ç¶ããããšã§giveããã«åé¡ã解決ããããšããŸãã
root@OpenWrt:~# dmesg | tail [ 143.120000] usb 1-1: new high-speed USB device number 2 using ehci-platform [ 143.270000] hub 1-1:1.0: USB hub found [ 143.270000] hub 1-1:1.0: 4 ports detected [ 143.580000] usb 1-1.2: new low-speed USB device number 3 using ehci-platform [ 143.730000] input: Generic USB Keyboard as /devices/platform/ehci-platform/usb1/1-1/1-1.2/1-1.2:1.0/input/input0 [ 143.730000] generic-usb 0003:040B:2000.0001: input: USB HID v1.10 Keyboard [Generic USB Keyboard] on usb-ehci-platform-1.2/input0 [ 143.770000] input: Generic USB Keyboard as /devices/platform/ehci-platform/usb1/1-1/1-1.2/1-1.2:1.1/input/input1 [ 143.780000] generic-usb 0003:040B:2000.0002: input: USB HID v1.10 Mouse [Generic USB Keyboard] on usb-ehci-platform-1.2/input1 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ã§å®çŸ©ãããŠããŸãã
typeã¯å ¥åèŠçŽ ã®ã¿ã€ãïŒããŒããŒããã¿ã³ãŸãã¯ããŠã¹/ãžã§ã€ã¹ãã£ãã¯ã®åããªã©ïŒã瀺ããcodeã¯åã¿ã€ãã«åºæã®èŠçŽ ã³ãŒãïŒããšãã°ãEV_KEYããŒããŒãã€ãã³ãã®ããŒçªå·ã¯ããã«éä¿¡ãããŸãïŒãããã³å€ã¯ããããçæãããå¹æãšå€§ããïŒããããµããŒãããããã€ã¹ã®å ŽåïŒã ããšãã°ãããŒããŒãã®QããŒãæŒããšã次ã®ããã«ãªããŸãã
ããã§ãæåã®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ã€ã®æ©èœããããããã€ã¹ãã¡ã€ã«ãåžžã«èªã¿èŸŒãŸããªããšã€ãã³ãã®éä¿¡ãäžå®å®ã«ãªãã®ã§ãã ãããããŒã ã®ç®çã§ã
struct input_event { struct timeval time; __u16 type; __u16 code; __s32 value; };
typeã¯å ¥åèŠçŽ ã®ã¿ã€ãïŒããŒããŒããã¿ã³ãŸãã¯ããŠã¹/ãžã§ã€ã¹ãã£ãã¯ã®åããªã©ïŒã瀺ããcodeã¯åã¿ã€ãã«åºæã®èŠçŽ ã³ãŒãïŒããšãã°ãEV_KEYããŒããŒãã€ãã³ãã®ããŒçªå·ã¯ããã«éä¿¡ãããŸãïŒãããã³å€ã¯ããããçæãããå¹æãšå€§ããïŒããããµããŒãããããã€ã¹ã®å ŽåïŒã ããšãã°ãããŒããŒãã®QããŒãæŒããšã次ã®ããã«ãªããŸãã
root@OpenWrt:~# cat /dev/input/event0 | hexdump 0000000 505b 0ed9 0009 6bdd 0004 0004 0007 0014 0000010 505b 0ed9 0009 6be6 0001 0010 0000 0001 0000020 505b 0ed9 0009 6bec 0000 0000 0000 0000 0000030 505b 0ed9 000a 2756 0004 0004 0007 0014 0000040 505b 0ed9 000a 275e 0001 0010 0000 0000 0000050 505b 0ed9 000a 2762 0000 0000 0000 0000
ããã§ãæåã®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ã€ã®æ©èœããããããã€ã¹ãã¡ã€ã«ãåžžã«èªã¿èŸŒãŸããªããšã€ãã³ãã®éä¿¡ãäžå®å®ã«ãªãã®ã§ãã ãããããŒã ã®ç®çã§ã
æåã«ãr31214ãã¡ãŒã ãŠã§ã¢ã§å®éšããŸãããããã®ãããªæ©èœã¯ãããŸããã§ããã®ã§ãããã«LEDãç¹ç¯ããŸããããããèµ·ãããªããã°ãé·ãéæ£ããéãæ¢ããŠããã§ããããcat /dev/input/event0 > /dev/null &
ã¹ã¯ãªãã
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ã®çŸåšã®ç¶æ ã®ãã¡ã€ã«ãå€æŽããŸãã
#!/bin/sh KB_LEDS=/dev/input/event0 EV_LED="\x00\x11" LED_NUML="\x00\x00" LED_CAPSL="\x00\x01" LED_SCROLLL="\x00\x02" TURN_ON="\x00\x00\x00\x01" TURN_OFF="\x00\x00\x00\x00" DT_DUMMY="\x00\x00\x00\x00\x00\x00\x00\x00" # 16- NUM_ON=$DT_DUMMY$EV_LED$LED_NUML$TURN_ON NUM_OFF=$DT_DUMMY$EV_LED$LED_NUML$TURN_OFF CAPS_ON=$DT_DUMMY$EV_LED$LED_CAPSL$TURN_ON CAPS_OFF=$DT_DUMMY$EV_LED$LED_CAPSL$TURN_OFF SCROLL_ON=$DT_DUMMY$EV_LED$LED_SCROLLL$TURN_ON SCROLL_OFF=$DT_DUMMY$EV_LED$LED_SCROLLL$TURN_OFF #"", if ! ps | grep -qe "[c]at $KB_LEDS"; then cat $KB_LEDS > /dev/null & fi # "" command GET- # - if [ -z "$QUERY_STRING" ]; then COMMAND=$1; else COMMAND=`echo "$QUERY_STRING" | sed -n 's/^.*command=\([^&]*\).*$/\1/p'` printf "Content-type: text/plain\r\n\r\n" fi # case $COMMAND in num_on) printf $NUM_ON > $KB_LEDS;; num_off) printf $NUM_OFF > $KB_LEDS;; caps_on) printf caps_on > /var/rrr printf $CAPS_ON > $KB_LEDS;; caps_off) printf caps_off > /var/rrr printf $CAPS_OFF > $KB_LEDS;; scroll_on) printf $SCROLL_ON > $KB_LEDS;; scroll_off) printf $SCROLL_OFF > $KB_LEDS;; num_pulse) printf $NUM_ON > $KB_LEDS sleep 1 printf $NUM_OFF > $KB_LEDS ;; caps_pulse) printf $CAPS_ON > $KB_LEDS sleep 1 printf $CAPS_OFF > $KB_LEDS ;; scroll_pulse) printf $SCROLL_ON > $KB_LEDS sleep 1 printf $SCROLL_OFF > $KB_LEDS ;; *) WRONG_ARG=1;; esac # if [ -z $WRONG_ARG ] then STATE_FILE=/var/ledstate DEFAULT_STATE={\"num\":false,\"caps\":false,\"scroll\":false} if ! [ -e $STATE_FILE ]; then echo $DEFAULT_STATE > $STATE_FILE; fi AFFECTED_LED=`echo $COMMAND | sed -r -e 's/_[az]+$//'` NEW_STATE=`echo $COMMAND | sed -r -e 's/^[az]+_//' -e 's/on/true/' -e 's/off|pulse/false/'` sed -i -r 's/"'"$AFFECTED_LED"'":[az]+/"'"$AFFECTED_LED"'":'"$NEW_STATE"'/' $STATE_FILE fi
ç§ãèšã£ãããã«ãå®æ°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ããŒãžãå¿
èŠã§ãã
æåã¯JQuery.getïŒïŒã䜿çšãããã£ãã®ã§ãããGETãªã¯ãšã¹ããæ°åè¡ãããã«JQueryã䜿çšããå¿ èŠã¯ãªãããšãããããŸããã 2ã€ã®JavaScripté¢æ°ããããŸãã æåã®ã³ãã³ãïŒã¢ã¯ã·ã§ã³ïŒã¯ã¹ã¯ãªãããå®è¡ããGETãªã¯ãšã¹ãã®ãã³ãã³ãããã©ã¡ãŒã¿ãŒã«ãã³ãã³ãããæž¡ããŸãã ã³ã³ãããŒã«ã®onclickã€ãã³ãã§å®çŸ©ãããŠãããã®ã ããã¯éåžžã«ãšã¬ã¬ã³ãã§ã¯ãªãããšã¯ééããããŸãããããã¹ãŠãã©ã®ããã«æ©èœãããã«ã€ããŠã®è¯ãã¢ã€ãã¢ãæäŸããŸãã 2çªç®ã®é¢æ°get_statusïŒïŒã¯ ã onloadã€ãã³ãã«ãã£ãŠããªã¬ãŒãããLEDã®çŸåšã®ç¶æ ïŒã¹ã¯ãªããã®æåŸã«åœ¢æããããã®ïŒããã¡ã€ã«ã«èŠæ±ããããŒãžã³ã³ãããŒã«ã«åæ ããŸãã ä¿¡ããããªãã»ã©ã®å¶ç¶ã«ãããç¶æ ãã¡ã€ã«ã¯é£æ³é åã®JSONè¡šçŸã§ããã JSON.parseïŒïŒã䜿çšããŠããŒã¿ã«éåžžã«ç°¡åã«ã¢ã¯ã»ã¹ã§ããŸãã 0.5ç§ããšã«ãªã¯ãšã¹ããç¹°ãè¿ãããšã«ãããå¥ã®ã¯ã©ã€ã¢ã³ãããè¡ãããç¶æ ã®å€åã远跡ã§ããŸãã url fuie = Math.randomïŒïŒãžã®è¿œå 㯠ãã¢ãã¬ã¹ãæ¯åäžæã«ãªãããã«å¿ èŠã§ã-ãã©ãŠã¶ãŒã¯ãããŒãžãæ¢ã«ãã£ãã·ã¥ã«ããããšãèæ ®ããŠãããŒãžã®èŠæ±ãæåŠã§ããªããªããŸãã å€æ°ã®ååããæšæž¬ã§ããããã«ãInternet Explorerã¯ç¹ã«ãã®åäœãèµ·ãããããã§ãã
<!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