ã¯ããã«
圌ãã¯æ lazãé²æ©ã®ãšã³ãžã³ã ãšèšããŸãã ããã¯ãååãšããŠãæ¬åœã®å£°æã§ã-ç§ã¯ãç§ãã»ãšãã©ç ã£ãŠãããšãã«èµ·ããŠãæãããæ¶ãå¿ èŠãããããšã«åžžã«æ©ãŸãããŠããŸããã ãããã£ãŠã倧åŠã§ã®2幎ç®ã«ãAVRkeã«ã·ã³ãã«ãªããã€ã¹ããŸãšããŠããªã¢ãŒãã³ã³ãããŒã«ã䜿çšããŠã·ã£ã³ããªã¢ã®ãªã³ãšãªããåãæ¿ããããããã«ããŸããã ãŸã åãéšå±ã«èšçœ®ãããŠãããçŸåš5幎éã24æé幎äžç¡äŒã§çšŒåããŠããŸãã
ãªã¢ã³ã³ãåãé€ãè©Šã¿ããã£ãåŸ-é³å£°ã³ãã³ãèªèã·ã¹ãã ãåãAVRã§ãç§ã¯åæã«å€§åŠã§ã³ãŒã¹ã¯ãŒã¯ãšããŠåæ ŒããŸãã-ããã¯æ©èœããŸããããç§ãæãã»ã©æºè¶³ã§ã¯ãªãã£ãã®ã§ãç§ã¯ãããå€æŽããŸããã§ããã
ãã°ããããŠãã»ãšãã©ã®å Žåãã©ã€ãããªã³ãŸãã¯ãªãã«ããå¿ èŠãããå Žåãæã®å±ãç¯å²å ã§PCãã¿ãã¬ããããŸãã¯ã³ãã¥ãã±ãŒã¿ãŒã®ãããããååšãããšããç解ã圢æãããŸããããããã£ãŠãæã䟿å©ãªæ¹æ³ã¯ããããå¶åŸ¡ããããšã§ãã
ç¹å¥ãªç¡ç·ã¢ãžã¥ãŒã«ã§ããNRF24L01Pã®å®è£ ãªãã·ã§ã³ãã¹ã±ããããŸãããããšãã°ããã®ã¢ãžã¥ãŒã«ã®SMDããŒãžã§ã³ã®ãµã€ãºã¯ããã10x15 mmã§ãã åæã«ã管çã䟿å©ã§ãããã¢ãã¬ã¹æå®ããã«ãåä¿¡ãåä¿¡ã®èªå確èªãªã©ãåŠçããç¬èªã®ãããã³ã«ãåããŠããŸãã
ãããã£ãŠãç§ã®æšå®ã«ãããšããã®ã¢ãžã¥ãŒã«ã«ã¯å°æ¥çã«äœããã®çš®é¡ã®USBãã³ã°ã«ãå¿ èŠã§ãããWebãµãŒããŒãåããã³ã³ãã¥ãŒã¿ãŒã«æ¥ç¶ããŠã¢ãã€ã«ããã€ã¹ããã®å¶åŸ¡ãå¯èœã«ãããšã°ãŒã¯ãã£ãããã€ã¹ã¯å¿çãã©ã³ã·ãŒããŒãåããŠããŸãã
éåžžã«é·ãéãç§ã®æã¯ãããã®ã·ã¹ãã ã®ãã¹ãŠã«å±ããŸããã§ãã-1幎ã®éãã¯ã€ã€ãŒãå£ããçªãåºãŠããŸãããã·ã£ã³ããªã¢ãå«ããŠãç§ã¯æ¯åæã§éããŠãããŸããè·å Žã§ç©ããããåãããµãŒãããããŒããåæ¥ç¶ããããšèªåã«èšããŸããã
幞ããªããšã«ãäœæ¥äžã®æåŸã®ãããžã§ã¯ãã¯ã¢ãã€ã«ããã€ã¹ã«é¢é£ããŠãããSTM32ãä»ã®Cortex M3ãæäŸã§ãã以äžã®ããšãå®è¡ã§ããã¯ãã§ããããŸããOpenWRTãææã®TL-MR3020ãTL- WR703ãç§ãæè¿èšäºãæžããã»ããã¢ããã«ã€ã㊠ã ãã®çµéšã«å ããŠãLinuxãšwi-fiãæèŒããããã€ã¹ã䜿çšããŠããã®ãããªã¿ã¹ã¯ãéåžžã«è¿ éãã€éåžžã«å¹æçã«è§£æ±ºã§ããããšã«æ°ä»ããŸããã Wi-Fiãã¯ããã«äŸ¿å©ãªããïŒãããŠããããª/ãªãŒãã£ãªã転éããå¿ èŠãããå Žå-ã»ãŒå¯äžã®å©çšå¯èœïŒããã¹ãŠã®ææ°ã®ããã€ã¹ã§ãµããŒããããã¯ã€ã€ã¬ã¹æ段ãæäŸããããã§ãã
ãã¡ãããå€æ°ã®å¶åŸ¡ãªããžã§ã¯ããããå Žåãã«ã¹ã¿ã ã¢ãžã¥ãŒã«ã§ããæããªã¢ã¯ãã¥ãšãŒã¿ãäœæããããŒãã®åœ¹å²ãLinuxãµãŒããŒã«ä»»ããã®ã¯çã«ããªã£ãŠããŸãã ããããä»®æ³ãªããžã§ã¯ãã«åºã¥ããŠããªããèªå® ã§å®éã«äœ¿çšãã補åã補é ããå Žåããã®ã¢ãããŒãã¯æéãšãéã®ã²ã©ãæ倱ã«ã€ãªãããŸãã
ãããã£ãŠãçŸããããã³ããšã³ããåããããŒãããã¡ãŒã ãŠã§ã¢ãããã³ãã©ã€ããŒã§å€§éšãããã«ãWi-Fiãä»ããŠå®¶é»ããªã³/ãªãããïŒæ倧1.6KWã®æ¶è²»ïŒããã€ã¹ãçµã¿ç«ãŠãŸãããã
ãœãããŠã§ã¢éš
äŒçµ±ã«åããŠãããŒããŠã§ã¢ã§ã¯ãªããœãããŠã§ã¢éšåããå§ããŸããããããã¯éåžžã«åçŽã§ãã«ãŒã¿ãŒãè³Œå ¥ããçŽåŸã«ãå解ããã«ç¢ºèªã§ããããã§ãã
ãã®æç¹ã§ãTL-MR3020ããã§ã«è³Œå ¥ããŠãããã«ãŒãã«ã®åæ§ç¯ã«é¢ããç§ã®èšäºãèªãã§ããããã°å¹žãã§ãã å®éãåæ§ç¯ããã«ãå ¬åŒã®OpenWRTãããžã§ã¯ãwikiã®ãã¡ãŒã ãŠã§ã¢ã§ãã©ãã·ã¥ããã ãã§æžã¿ãŸããåŸã§æ°ãã€ããããå¿ èŠãªã¹ã¯ãªãããåã蟌ãããšã§ç°¡åã«ç¬èªã®ãã¡ãŒã ãŠã§ã¢ãäœæã§ããŸãã
ã§ã¯ãããã€ã¹ã¯ã©ã®ããã«é 眮ãããã®ã§ããããïŒ
- æå°éã®è©³çŽ°ãç¶æããããšãéèŠã§ãããããå€éšãã©ãã·ã¥ãã©ã€ããŸãã¯ããã䜿çšããŸããããã®ããã䜿çšå¯èœãªã¡ã¢ãªã®ãµã€ãºã¯4 MBã«å¶éãããŠããŸããããã®ãã¡ã®ç©ºã容éã¯éåžž1ã1.5 MBã§ãã
- ãã€ã³ã1ãèãããšãCGIããµããŒãããæã軜ãWebãµãŒããŒãéžæããŸããçæ³çãªãªãã·ã§ã³ã¯ãã¢ããªã³ãªãã®20ãããã€ãã®ããhttpdã§ããã
- CGIã¹ã¯ãªãããšããŠãéåžžã®Bashovã¹ã¯ãªããã䜿çšããŸãã ååãšããŠããã®å Žæã§ã¯æå°éã®pythonã¢ã»ã³ããªãé 眮ã§ããŸãã 確ãã«ãã«ãŒãã«ãåæ§ç¯ããã«ãããè¡ãããšã¯ã§ããŸãã-ãªããªã ãã¡ãŒã ãŠã§ã¢ãJFFSã«ã€ã³ã¹ããŒã«ãããåŸã«ã€ã³ã¹ããŒã«ãããã¹ãŠã®ãã®ã¯ãå ã SquashFSã§ãã«ããããå Žåãããã¯ããã«æéãããããŸãã å®éšãšããŠãç§ã¯python-miniãšmini-httpdã®äž¡æ¹ãçŽæ¥ã€ã¡ãŒãžã«çµã¿èŸŒã¿ãããããäœåãªãã®ããã¹ãŠæšãŠãŸãã-ã€ã¡ãŒãžã®JFFSãã«ãã«ãããã·ã¹ãã ã¯ãªãŒããŒãµã€ãºã«é¢ãããšã©ãŒãã¹ããŒããã¡ã¢ãªã«æªå®æã®ããŒã¹ãæ®ããŸããããSquashFSã€ã¡ãŒãžã¯ããŸããããç§ããŸã æ®ããŸããã250 KBã®ç©ºãé åã§ååã§ãã ãã1ã€ã®æ³šæ-å éšãã©ãã·ã¥ãã©ã€ãããpythonãèµ·åãããšãBashã€ã³ã¿ãŒããªã¿ãŒãèµ·åãããããã¯ããã«é ãïŒå€éšUSBãã©ãã·ã¥ãã©ã€ããããæããã«é ããSPIã€ã³ã¿ãŒãã§ã€ã¹ã圱é¿ããŸãïŒãCGIã«Pythonã¹ã¯ãªããã䜿çšãããšãå¿çã¯çŽ1ç§ã«ãªããŸãéåžžã«éèŠã§ãããå°ãé¢åã§ãã ãã ãã1ã€ã®GPIOããžã£ãŒã¯ãããããè€éãªãã®ãæžããå Žåã巚倧ã§åä»ãªbashã¹ã¯ãªããã«éåžžã«æ©ãŸãããPythonã€ã³ã¿ãŒããªã¿ãŒã®2çªç®ã®éå§ã«ææ ¢ããããšæããŸãã
- bashã¹ã¯ãªããã¯ã䜿çšå¯èœãªGPIOã®1ã€ããã«ãããã®äžã§LEDããã³ã°ããŸãã 次ã«ãLEDã®ã¯ãã ä»ãã解é€ãããœãªããã¹ããŒããªã¬ãŒãåãä»ããŸãããã®å¶åŸ¡åè·¯ã¯åºæ¬çã«åãLEDã§ãã
- Index.htmlã«ã¯å°ããªjs-ââcodeãå«ãŸããŠãããçŸããç»åã衚瀺ããŸããé»çã¯æŒããããšç¹ç¯/æ¶ç¯ããCGIã¹ã¯ãªãããžã®éåæãªã¯ãšã¹ããå®è¡ããŸãããŸãããã§ã«é»çãç¹ç¯ããŠããå Žåã«Nç§ããšã«ãžã£ãŒã¯ããŸãå¥ã®ã³ã³ãã¥ãŒã¿ãŒãã-ç¶æ³ã«å¿ããŠç»åãæŽæ°ããŸãã
- ãããã«ä»å±ããŠããé»æºãããã¹ãŠãäŸçµŠãã以åã«å解ããæçµããã€ã¹ã®ãµã€ãºãå°ããããããã«ã¢ãžã¥ãŒã«èªäœãã±ãŒã¹ããåãå€ããŸãã å¿ èŠã«å¿ããŠããã®æé ã¯ãªãã·ã§ã³ã§ã-奜ããªããã«é£ã¹ãããšãã§ããŸãã
å§ããŸãããã ãã®æç¹ã§ãã«ãŒã¿ãŒãæ¢ã«OpenWRTã«ã¢ããã°ã¬ãŒãããã€ãŒãµãããã±ãŒãã«ã§æ¥ç¶ããå¿ èŠããããŸãã
SSH / WinSCPãçµç±ããŠã«ãŒã¿ãŒã«ç§»åãã / etcã«ç§»åããŸã
wifiãæ§æãã
ãã®ããã«ã¯ã / etc / config / networkã«ç§»åã ãããã«æžã蟌ã¿ãŸã
config interface 'wlan' option proto 'dhcp'
ããã«ãããWi-Fiã³ã³ãããŒã©ãŒã¯ãããŒã Wi-Fiãã£ã¹ããªãã¥ãŒã¿ãŒã®DHCPããå¥ã®ã«ãŒã¿ãŒã®åã«ããIPã«ãŒã¿ãŒã確å®ã«åä¿¡ããŸãã
/ etc / config / wirelessã§ã¯ãæãããã®ããæåã®èµ·åã¹ã¯ãªãããæ¢ã«ç¡ç·èšå®ãçæããŠãããwi-fiã¢ãžã¥ãŒã«ãå«ãè¡#option disabled 1ãã³ã¡ã³ãã¢ãŠããã以äžã®ã»ã¯ã·ã§ã³ã®ãããªã€ã³ã¿ãŒãã§ãŒã¹èšè¿°åãèšè¿°ããŸãã
config wifi-iface option device radio0 option network wlan option mode sta option ssid --- option encryption psk2 option key --
ãããã®èšå®ã¯WPA2-PSKçšã§ãã WPA-PSKæå·åã®å Žåã¯pskããªãŒãã³ãã€ã³ãã®å Žåã¯noneãVEPã®å Žåã¯ãããããwep-å ¬åŒwiki ã§è©³çŽ°ãèªãããšããå§ãããŸã ã
ãã¹ãŠãæ£åžžã§ããããšã確èªããŠãã ãã
wifi down wifi iwconfig wlan0
ãã¹ãŠãæ£åžžã§ããã°ã iwconfigã¯ã¢ã¯ã»ã¹ãã€ã³ãã«æ¥ç¶ããŠããããšãéç¥ããŸãããã®åŸãã¢ã¯ã»ã¹ãã€ã³ãã¯ã€ãŒãµãããããåæãããwi-fièšå®ãç¶è¡ããŸãã
GPIOãæ§æãã
次ã«ããŠãŒã¶ãŒç©ºéããGPIOãã³ãžã®ã¢ã¯ã»ã¹ãèš±å¯ããå¿ èŠããããŸãã ã³ã¢ã¯ç¬èªã«ãããè¡ãããšãã§ããŸãããã®ããã«äœãããå¿ èŠã¯ãããŸããããGPIOã¯LEDç¹æ» ãã©ã€ããŒã«ãã£ãŠæ¢ã«ãã£ããã£ãããŠããŸãã wikiã«ãããšãããã€ãã®ã¢ã€ãã«ç¶æ ã®GPIOãå°é¢ã«åŒã£åŒµãããŠããããã®ãµã¹ãã³ããŒãã¯ãã ä»ãããŠãèªåã®ç®çã«äœ¿çšã§ãããããLEDãšãã®ãã©ã€ããŒã«è§Šããããšã¯ã§ããŸããã ãã®å Žåããã©ã€ããŒãã¢ã³ããŒãããå¿ èŠã¯ãªããGPIOããšã¯ã¹ããŒãããã ãã§ãïŒä»¥äžãåç §ïŒã ãã ããäœæ¥çµæãããã«ç¢ºèªããã«ã¯ãLEDä»ãã®ãã³ã䜿çšããŸãã
/etc/rc.localã«æžã蟌ã¿ãŸã
rmmod leds_gpio echo 0 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio0/direction echo 0 > /sys/class/gpio/gpio0/value
ããã«ããããªãœãŒã¹ãååŸãããã©ã€ããŒãã¢ã³ããŒãããŸãããŠãŒã¶ãŒç©ºéã§ãã³0ã䜿çšããLEDããªãã«ããŠåºåãšåºå0ãèšå®ããããšãæå®ããåŸã ä»ãããªãã¯ã³ãã³ãã§ãããç §ããããšãã§ããŸã
echo 1 > /sys/class/gpio/gpio0/value
ãããŠå®æž-ããïŒ
echo 0 > /sys/class/gpio/gpio0/value
squeakããŸã å®äºããŠããªãããšãå¿ããªãã§ãã ããããŸããrebootã³ãã³ãã§ã«ãŒã¿ãŒãåèµ·åããåæã«åèµ·ååŸã«wi-fiãã©ã®ããã«äžæãããã確èªããŸãã
mini-httpdãæ§æãã
ã«ãŒãã«ãåæ§ç¯ãããã®äžã«mini-httpdãæ§ç¯ããå Žåã¯ãæ§æã«çŽæ¥é²ã¿ãŸã;ããã§ãªãå Žåã¯ããªããžããªããé 眮ããŸã
opkg update opkg install mini-httpd
/etc/mini-httpd.confã«ããã€ãã®å°ããªå€æŽãå ããŠãæåã®è¡ã次ã®ããã«ãªãããã«ããŸãã
cgipat=cgi-bin/**.sh
ãµãŒããŒã¯ã / www / cgi-bin /ã«ãããã¹ãŠã®ãã®ãããã¯ããååãã³ãã³ããšããŠ.shã§çµãããã®ããã¹ãŠããã¯ãããã®å¿çããã©ãŠã¶ã«å€æããŸãã
ããŒããŠã§ã¢ãã¿ã³ãæ§æãã
Wi-Fiã«ã¢ã¯ã»ã¹ããããªãå Žåã¯ã1ã€ã®ãã¿ã³ã«éè€ããã¢ã¯ã·ã§ã³ããã³ã°ã¢ããããŸãã/etc/hotplug2.rules㧠ã ãã¿ã³ãã¿ã³ã®ãã§ãã¯ãå€ããšã ãã¿ã³ãã¯ãªãã¯ãããšå¯Ÿå¿ãããã©ã«ããŒããåŠçã¹ã¯ãªãããåŒã³åºãããŸããè¡ã¯æ¬¡ã®ããã«ãªããŸãã
SUBSYSTEM ~~ (^net$|^input$|button$|^usb$|^ieee1394$|^block$|^atm$|^zaptel$|^tty$) {
ãã®åŸã/ etc/hotplug.d/ã«ç§»åããããã«ãã¿ã³ãã©ã«ããŒãäœæãããã®äžã«ãã¿ã³ã¹ã¯ãªãããäœæããŸã ïŒ chmod + xãã¿ã³ã§ã³ãã³ããå®è¡ããæš©éãèšå®ããããšãå¿ããªãã§ãã ããïŒ ã³ãã³ã ïŒã
#!/bin/sh if [ "$BUTTON" = "wps" ]; then if [ "$ACTION" = "released" ]; then state=`cat /sys/class/gpio/gpio0/value` if [ "$state" = "0" ]; then echo 1 > /sys/class/gpio/gpio0/value else echo 0 > /sys/class/gpio/gpio0/value fi fi fi
ãã¿ã³ãæŒããšãLEDã®ç¶æ ãåãæ¿ãããŸãã å¿ èŠã«å¿ããŠããã®ãã¿ã³ã®äžã®LEDãã³ã³ãããŒã«ãšéäœçžã§ç¹ç¯ãããããšãã§ããŸããã€ãŸããã·ã£ã³ããªã¢ããªãã®å ŽåãããŒããŠã§ã¢ã®é»æºãã¿ã³ã匷調衚瀺ãããæéã§ã®æ€çŽ¢ãç°¡åã«ãªããŸãããã³0ããšã¯ã¹ããŒãããããã«ãã³26ãrc.localã«ãšã¯ã¹ããŒãããã ãã§ããããŠãåæ§ã®åºåã©ã€ã³1/0ãããŒããã³ã®å€ã®åºåã®é£ã®å€ã«è¿œå ããŸãã
ããã¯ããã«ç¢ºèªã§ããŸãããã¹ãŠãæ£ããè¡ã£ãå Žåããã¿ã³ãæŒããšLEDã®ã¹ããŒã¿ã¹ãå€åããŸãã
CGIã¹ã¯ãªããã®äœæ
ããã§/ etcããåºãŠ/ wwwã«ç§»åãã cgi-binãã£ã¬ã¯ããªãäœæããŸããããã«ã¯ã以äžã®å 容ã®chmod + xãå®è¡ããlight-control.shã¹ã¯ãªããããããŸãã
#!/bin/sh echo "content-type: text/html" echo "" input=$(echo $QUERY_STRING | tr "&" "\n") for param in $input do name=`echo $param | cut -f 1 -d "="` value=`echo $param | cut -f 2 -d "="` if [ "$name" = "action" ]; then if [ "$value" = "on" ]; then echo 1 > /sys/class/gpio/gpio0/value elif [ "$value" = "off" ]; then echo 0 > /sys/class/gpio/gpio0/value fi fi done cat /sys/class/gpio/gpio0/value
ïŒïŒ/ Bin / shã®åŸã®æåã®2è¡ã¯CGIã¹ã¯ãªããã«å¿ èŠã§ã-ãã¹ãŠãåé¡ãªãããšããã©ãŠã¶ã«äŒããhtmlãçºè¡ããŸãããã®åŸãæšæºã®èŠä»¶ã«åŸã£ãŠãã«ã¡ããã2ã€\ r \ nã«ãªããŸãã
次ã«ãå€æ°$ QUERRY_STRINGããã泚ææ·±ãmini-httpdãé 眮ãããã©ã¡ãŒã¿ãŒãååŸãããããããnameãšvalueã«è§£æããŸã ã éåžžãããã§ã¯1ã€ã®ãã©ã¡ãŒã¿ãŒã®ã¿ã䜿çšããŸãããæ¡åŒµããå Žåã«åããŠãã³ãŒããããäžè¬çãªåœ¢åŒã«ããŠãã ããã
ããã«ç¢ºèªããŸã-action = onãäžããããå Žåã action = offã®å Žåããã€ãªãŒããç¹ç¯ããŸã -æ¶ç¯ããŸãã
ãã®åŸã å€ããèªã¿åã£ãå€ãåžžã«è¿ããŸãããã€ãªãŒãããªã³ã®å Žåã¯1ãããã§ãªãå Žåã¯0ãè¿ããŸãã ãããã£ãŠã action = on / off以å€ã®ãã©ã¡ãŒã¿ãŒãŸãã¯ãŸã£ãããã©ã¡ãŒã¿ãŒãæå®ããã«å€éšããã¹ã¯ãªããããã«ãããšãLEDã®çŸåšã®ã¹ããŒã¿ã¹ãååŸãããŸãã
ããã³ããšã³ããæžã
ãã£ã¬ã¯ããª/ wwwããããŠã³ããŒãããŸãã jqueryãµã€ãã®-ããã§ajaxã¯ãšãªãäœæããã®ã¯æ¬åœã«äŸ¿å©ã§ã-ç§ã¯äººçã§åããŠãããã®ãã¹ãŠã®Javaã¹ã¯ãªãããèŠãŸããïŒããã¯ç§ã®ç 究ãšèå³ããæãé ãé åã§ããããïŒããGoogleã䜿çšããŠ5åã§å¿ èŠãªã¢ã¯ã·ã§ã³ãç¿åŸããŸããã jqueryãjquery.jsãšããŠä¿åããŸã
ããã§ã¯ãã·ã£ã³ããªã¢ã象城ããåålamp_on.jpgããã³lamp_off.jpgã®äžã«åçãä¿åããŸãããããã¯ã2ã€ã®éšåã«åãåããŠç°¡åã«åãããŠGoogleããçãŸããåçã§ã§ããŠããŸãã å¿ èŠã«å¿ããŠãä»»æã®åçã䜿çšã§ããŸãã
![](https://habrastorage.org/storage2/b2e/6e2/3c2/b2e6e23c2a86ce31b3ba1a0d0e553710.jpg)
![](https://habrastorage.org/storage2/256/f94/fe0/256f94fe057013b39e66a9e9dd22219f.jpg)
åãå Žæã§index.htmlãäœæããŸãã
<html> <head> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> function LampImgOn() { $('#lamp_off').hide(); $('#lamp_on').show(); } function LampImgOff() { $('#lamp_on').hide(); $('#lamp_off').show(); } function ProcessResult(data) { if(data=="1\n") LampImgOn(); else LampImgOff(); } $(document).ready(function() { $.ajaxSetup({ cache: false }); $('#lamp_on').hide(); jQuery.get('/cgi-bin/light-control.sh', {'action': 'none'}, ProcessResult); $('#lamp_on').click(function() { jQuery.get('/cgi-bin/light-control.sh', {'action': 'off'}); LampImgOff(); }) $('#lamp_off').click(function() { jQuery.get('/cgi-bin/light-control.sh', {'action': 'on'}); LampImgOn(); }) window.setInterval("jQuery.get('/cgi-bin/light-control.sh', {'action': 'none'}, ProcessResult)",2000); }); </script> </head> <body bgcolor="#000000"> <img id = 'lamp_off' src = 'lamp_off.jpg' height = '40%' style='display:none'> <img id = 'lamp_on' src = 'lamp_on.jpg' height = '40%' style='display:none'> </body> </html>
ããã§ã¯ãã©ã³ããç¹ç¯ããã³æ¶ç¯ããŠãã2ã€ã®æåã¯äžå¯èŠã®ç»åãããŒãžã«é 眮ããéå§åŸãJavaã¹ã¯ãªããã¯CGIã«çŸåšã®ã¹ããŒã¿ã¹ãèŠæ±ãïŒ action = noneãã©ã¡ãŒã¿ãŒã䜿çšïŒãçµæãProcessResultã«éä¿¡ããã1ã€ãŸãã¯å¥ã®ç»åãã¢ã¯ãã£ãã«ãªããŸãã éåæã¹ããŒã¿ã¹ã¹ã€ããã³ã°ãªã¯ãšã¹ãïŒåçã®ã¯ãªãã¯ã€ãã³ããã³ãã©ãŒã§å®è¡ãããŸãïŒã®åŸã«åãé¢æ°ãåŒã³åºãããŸãããŸããã¿ã€ããŒãéå§ãããã¹ã¯ãªããã¯ã¹ããŒã¿ã¹ã2000ããªç§ããšã«ãã«ããŠã誰ããå€æŽããã€ãã³ãã®é¢é£ããŒã¿ã衚瀺ããŸãå¥ã®ããŒãžãŸãã¯ããŒããŠã§ã¢ãã¿ã³ã
å®éãããã§ãã¹ãŠã§ããã«ãŒã¿ãŒã®IPãã©ãŠã¶ã«ã¢ã¯ã»ã¹ããŠãLEDãå¶åŸ¡ããçŸããããŒãžãã楜ãã¿ãã ããã ããŒãžãéããç¶æ ã§ã«ãŒã¿ãŒãã¿ã³ãã¯ãªãã¯ããŠ2ç§éåŸ æ©ãããšãã¿ã€ããŒããã®èŠæ±ã«ããç»åèªäœãå€æŽãããŸãã
ããã§ããœãããŠã§ã¢ã®éšåã¯çµãããŸãããéçã«è¡ããŸãã
é
ããŒããŠã§ã¢ã«é¢ããŠã¯ãç¶æ³ã¯2ã€ãããŸãã å®éãç§ãã¡ãæã£ãŠããåè·¯ã¯æãåçŽã§ã-ãœãªããã¹ããŒããªã¬ãŒã®å¶åŸ¡åè·¯ã¯æ¬è³ªçã«åãLEDã§ãããå¿ èŠãªã®ã¯ãé»æµããªã³ã«ããã®ã«ååãªé»æµãæµããããšãä¿èšŒããããšã§ãã S202S02ã®å Žåãããã¯å°ãªããšã8 mAã§ãã
æ®å¿µãªãããGPIOããçŽæ¥ååŸããããšã¯ã§ããŸãããé»å§ã¯GPIO 2.6Vã§ãããã®åŸãéåžžã«å°ããªã±ãŒã¹ã«æµæããããå ¬ç§°å€ã¯260ãªãŒã ã§ãLEDã¯çŽ1.5Vã®é»å§éäžããããŸãã ãããã£ãŠãçŽ4ã5 mAãæµããŸãã S202S02ã®é»å§éäžã¯1.2ã1.4Vã§ãããããã»ãŒåãã§ãã ãã¡ãããåãã±ãŒã¹ã§æµæåšãæ¢ãããšãã§ããŸãããå ¬ç§°å€ãå°ããããŠåã¯ãã ä»ããã10 mAã§äžå¹žãªGPIOãããŒãããŸãããããç°¡åãªæ¹æ³ã§è¡ãæ¹ãè¯ãã§ã-NPNãã©ã³ãžã¹ã¿ã®ããŒã¹-ãšããã¿æ¥å0.75Vã§ã¯ã0.7 mAã®é»æµãæµããã³ã¬ã¯ã¿ãŒãžã®ãªã¬ãŒå¶åŸ¡åè·¯ããªã³ã«ããŸãã
åé¡ã¯ç°ãªããŸãã å®éã«ã¯2ã€ãããŸãã
- LEDã®ã¯ãã ä»ãã解é€ãïŒLED4ãããïŒã代ããã«ãã©ã³ãžã¹ã¿ãã¯ãã ä»ãããå¿ èŠããããŸã
- ãªã¬ãŒã±ãŒã¹ïŒç°¡åãå°ããïŒãšé»æºã®å éšã«äœããæŒã蟌ãå¿ èŠããããŸãã
ãã©ã°ã©ã1ã«ã€ããŠãåè·¯ãå®è¡ããããããœã©ã€ãã¯åçŽã§ãã
ãã©ãã¯ãšãããã¯å³åº§ã«åŒãã¡ãããããã¯ã¹ãã©ã€ãã«äžèŽããã¯ãã ã¯ããã®åããããœã©ã€ãããã§ã«çãå§ãããšãã«æº¶ãå§ããŸãã
ãã©ã°ã©ã2ã®å Žåãã±ãŒã¹ã5 mmé«ãå Žåã¯åé¡ãããŸããã ããããæ®å¿µãªãããé»æºãšãã«ã¹ãã©ã³ã¹ã®ã³ã³ãã³ãµã¯é«ãããŠã±ãŒã¹ãéããããšãã§ããŸããã
æ®å¿µãªãããç§ã¯ããªããã±ãŒã¹ã«ç¡æµãçŸããçŽ æ©ãè©°ã蟌ãããšãã§ããçæ³çãªéæ³ã®è§£æ±ºçãèŠã€ããŸããã§ããã å€ãã®æŸèæã®ãªãã·ã§ã³ããããŸã-é©åãããã©ã¹ããã¯ã±ãŒã¹ïŒéåžžã®äžè¬çãªãªãã·ã§ã³ïŒã®è³Œå ¥ããå§ãŸããå ã®ã±ãŒã¹ããã®ãŸãŸä¿æããããã«éãé»æ°ããŒããšãŽã ãã³ãã§çµãããŸãã
ç§ã¯ãã®éã«äœããéžãã -ãªããªã ç§ã¯ãŸã å€åœ¢ã®ãã©ã¹ããã¯ãæã£ãŠãããç§ã¯å ã®ã±ãŒã¹ã®åšå²ã«ããã®çãã¹ããªããã眮ããããã«èãæŒã蟌ãã ã
ã§ãããããã®åé¡ã«ã€ããŠã¯ãèªåã«åã£ã解決çãèŠã€ããããšã誰ãããå§ãããŸãã ãã¡ããã倧ããªã±ãŒã¹ã䜿çšããå ŽåããŸãã¯ãã®å°ããªã±ãŒã¹ã®å€åŽã«PSUãåãä»ããå ŽåãããŒãããã³ãã¯ã¿ãã¯ãã ä»ãããå¿ èŠã¯ãããŸãããç§ãè¡ã£ãããšã説æããŸãã
ããŒããé»æºãšãšãã«ã±ãŒã¹ã«åãŸãããã«ããã¹ãŠã®ã³ãã¯ã¿ïŒã€ãŒãµããããUSBãã¹ãããã€ã¯ãUSBé»æºïŒãã¯ãã ããå€ããã€ãŒãµããããã絶çžããŸããã ããŒãã¯çªç¶å¹³ãã«ãªããŸããã ãããè¡ãå Žåã¯ãéåžžã«æ³šæããŠãã ããã ãã¢ãã©ã€ã€ãŒããã®æµéãå€ãããããã«äžæ³šæãæã£ããããã·ã¹ãã ã«3.3 VãäŸçµŠããéèŠãªU5ã³ã³ããŒã¿ãŒãã¯ãã ä»ããããŠããŸããã§ããã ããã«ã圌ã¯åºã«å¹ãé£ã°ãããé·ãé圌ãæ¢ãå¿ èŠããããŸãã-ãããã幞ããªããšã«ãç§ãã¡ã¯åœŒãã¯ãã ä»ãããããšãã§ããŸããã
![](https://habrastorage.org/storage2/1f1/11d/c9d/1f111dc9d93a8da1d6136fd864233083.jpg)
ãžã£ã³ããŒR113 ïŒèµ€äžžïŒã«æ³šç®ããŸã-ããã©ã«ãã§ã¯éããŠããŸãã éããããUSBãã¹ãã³ãã¯ã¿ãä»ããŠã«ãŒã¿ãŒã«é»åãäŸçµŠã§ããŸãã 圌ã¯SMDã§ã¯ãããŸããã ãããã£ãŠã R113ãéããé»æºçšã®2æ¬ã®ã¯ã€ã€ãã³ãã¯ã¿ã®äžããç©Žã«éãã«ã¯ãã ä»ãããŸãã
ã¯ã€ã€ãŒããåãã®ç©Žã«ã¯ãã ä»ãããã®ãã©ãã»ã©é£ãããã«æ°ã¥ããŸãããïŒ ããã¯ãã¹ãŠã®å±€ã®åãç«ãŠå°ã«æ¥ç¶ãããŠããŸã-ããŒãã·ã³ã¯ã¯åçä¹±ã§ãç§ã®ã¯ãã ããŠã¯ã»ãšãã©ç®¡çãããŠããŸããã
ãããŠããããé»æºã®å éšã§ãïŒã¹ã±ãŒã«ã®ããã«ã«ãŒã¿ãŒããŒãã®é£ïŒ
![](https://habrastorage.org/storage2/665/e7c/24f/665e7c24fef1f377eae6ef33a4ebd82a.jpg)
ãã©ã°ã«æ¥ç¶ããããã«äœ¿çšããã2æ¬ã®è匱ãªã¯ã€ã€ãã¯ãã ä»ãããããã§ããä¿¡é Œæ§ã®é«ããã®ãã¯ãã ä»ãããŠããã220Vãããã¯ãŒã¯ã«æ¥ç¶ããŸãã åæã«ãã«ãŒã¿ã®é»æºç·ã«çŽæ¥æ¥ç¶ãããããUSBã³ãã¯ã¿ã®ã¯ãã ä»ãã解é€ããŸãã
é»æºç·ãäœã«ã觊ããªãããã«ãã¯ãã ä»ãã«ãããªã¬ãŒãæºåããŸãã ç§ã¯ãã®ããã«ã¯ãã ä»ãããŸããïŒ
![](https://habrastorage.org/storage2/ae7/5e9/b09/ae75e9b098a32344a2f25bdecd3843a8.jpg)
ã¯ãã ä»ãåŸãç±åçž®ãããŠæŒã蟌ã¿ãé»æ°ããŒãã§å ãããäœããã®ã·ãŒã©ã³ããªã©ã§èŠããŸãïŒã¡ãªã¿ã«ããã®ã·ãŒã©ã³ãã¯é»æºã®åçã§èŠãããšãã§ããŸã-å ã ã¯äžåœäººãTBã®é¢åãèŠãŠãããŸãïŒã
次ã«ããã©ã³ãžã¹ã¿ãã¯ãã ä»ãããŸããæåã«æã«å ¥ãã2N6517ãæã«åããLED4ã®ããé åã«ããŒã¹ã§ã¯ãã ä»ããã2çªç®ã«ãšããã¿ãŒã§ã¯ãã ä»ãããŸããã
![](https://habrastorage.org/storage2/f16/fe4/3f2/f16fe43f276360e8de9e161f83425b2a.jpg)
ã ããããã«ã ããã¯å¿ èŠãããŸããã 1åã®ééã£ãåãã§ååã§ãããäž¡æ¹ã®ããããå¥ãããããæµæåšã«ã¯ãã ä»ãããå¿ èŠããããŸãã 现ãã¯ã€ã€ãäž¡æ¹ã®ãããã«ã¯ãã ä»ãããããŒãäžã§åºå®ããŠå®å šãªå Žæã«é 眮ããããšããå§ãããŸãã ãããŠãã¯ã-ããªããäžæ£ç¢ºã«ã¯ãã ä»ããããšãç§ã®ããã«ãã¯ãã ããŠã§ã¡ã¢ãªãããã®çµè«ã«è§ŠããŠããããç絡ãããå±éºããããŸãã ãã®åŸãæ²ãã£ãæãåªããã¯ãã é€å»ãã³ããã¯ãã ä»ãçšã®äžã€ç·šã¿ãéã§1æéã¯ãªãŒãã³ã°ããŸã-èªåã§ç¢ºèªããŸãã 幞ããªããšã«ãç§ã¯ãããã¯ãªã¢ããããšãã§ããŸããããä¿¡ããããªãã»ã©æ¿ãããã®ã§ããã
æ®ãã¯ã»ãšãã©ãããŸãã-çŸåšããªãŒãã³ã³ã¬ã¯ã¿ãŒã¿ã€ãã®åºåïŒæ®ãã®ãã©ã³ãžã¹ã¿åºåïŒããããããã«ãªããã«ãã©ãŒã®1.3ãã«ãã®éäžã«åºã¥ããŠæµæåšãã¯ãã ä»ãããŸã-ã€ãŸãã3.3Vãã絊é»ãããå ŽåïŒã¯ãã ä»ããããŠããªãã³ãã¯ã¿ãŒP1ã«æ¥ç¶ããã®ãæãç°¡åãªæ¹æ³ã§ãïŒäžã®åçã®å³åŽã«ãã4çªç®ã®ãã³ïŒã10 mAã®ã©ããã«é»æµãäŸçµŠããå¿ èŠããããŸããããã¯æ£ç¢ºã«200ãªãŒã ãæå³ããŸãã
次ã«ãé»æºãŠããããæ éã«ã«ãŒã¿ãŒããŒãã«ã³ã³ããŒãäžãããŠçœ®ããŸããçŽã眮ãããšãå¿ããªãã§ãã ãããã³ã³ããŒã®éå±äžéšã«éé»ããªãã§ãã ããããã ããäœããç絡ããå¯èœæ§ãããã®ã§ãçŽã眮ããŠãã ããã ã«ãŒã¿ãŒã®é»æºç·ã¯ããŠãããã®USBã³ãã¯ã¿ããã®ç©Žã«å¯éããããªã¬ãŒã®ãã©ã¹ãã³ã¯3.3VïŒ P1ã®ç©Ž4ïŒããã€ãã¹-200Ωããã©ã³ãžã¹ã¿ã³ã¬ã¯ã¿ãžã®æµæã«ã¯ãã ä»ããããŠããŸãã
èã®ãã¹ã®1ã€ãé»æºè£ 眮ã«ããããªãããã«ã«ãããããã³ãã«ãŸãã¯åãå€åœ¢äœããããããåãåã£ãŠããã¿ã³ãæŒãããã®çªèµ·ã䌞ã°ããŸãã
ãŸããç§ãã¡ã¯ããããã¹ãŠèã§æŒããããªãã奜ããªããã«åºå®ããŸã-å€åœ¢ãé»æ°ããŒãã茪ãŽã -ããã¯æ³ååãšææã«ååã§ãã
ã«ãŒã¿ã®é»æºç·ã«220VãäŸçµŠããã·ã£ã³ããªã¢ãŸãã¯ãã®ä»ã®å®¶é»è£œåã®ã¹ã€ããã®ä»£ããã«ã¹ã€ããããªã¬ãŒç·ããªã³ã«ããŸãã
ããŸããããŸãããïŒ ããã§ãšãããããŸããã·ã£ã³ããªã¢ã«ã¯LinuxããŒã¹ã®CGI WebãµãŒããŒãããããŠãŒã¶ãŒã«JavaScript Webããã³ããšã³ããæäŸããŸãããã¹ãŠçŽ1,000ã«ãŒãã«ãš1æ¥ã®å€§éšãã§ãã