ã¯ããã«
ç§ã¯çµéšã®ããåœå
ã®æ°è±¡èŠ³æž¬æã®ãŠãŒã¶ãŒã§ãããããã¯äºéã®çœå®³ã§ãã ãŸããç§ã¯å®¶ã®å
å€ã®å€©æ°ãç§ã«ç¥ãããŠãããšããäºå®ã«éåžžã«æ
£ããŠããããã®æ
å ±ããªããšèªç¥çäžååé³ã®ç¶æ
ã«ãªããŸãã 第äºã«ãç§ã¯æ
¢æ§çã«æ°è±¡èŠ³æž¬æã«äžéã§ãã ãããã®ãã¡ã®2ã€ãæ
éããããããçš®é¡ã®ã€ã³ãžã±ãŒã¿ãŒããã€ã¹ã«ã€ããŠèšãããã«ãã倩æ°ã衚瀺ãããããã«ãªããŸãããããŸã£ããéã§ã倩æ°ã ãã§ã¯ãªããäœã§ã衚瀺ããŸããã ç§ã¯ã¢ã¡ãªã«ãã3åã®1ãé£ããŠæ¥ãŠã1幎éå¿ å®ã«å¥ä»ãããã£ãããšãªã©ãã¯ã¹ãå§ããŸãããã䞡芪ãå¶ç¶ã«èµ°ã蟌ãã§ããŸããŸããïŒãããŠåŠ»ãšç§ã«äžæçã«è©ãèè² ã£ãŠå®¶ããéãåºãæ©äŒãäžããŸããïŒåŒ·å¶ä»è·ã®æ»æã«ãããçªãæŽããšããåå®ãªæ¬²æ±ãçããŸããã çªã培åºçã«ãããããšã®çµæã¯ãèŒãçªã ãã§ãªããé£ã³éããæ°è±¡ã¹ããŒã·ã§ã³ã®ã»ã³ãµãŒã§ããããŸãã 2éãªã®ã§ãã»ã³ãµãŒã¯ã»ãšãã©ã¯ã©ãã·ã¥ããŸããã§ãããããåç¥ã®ããã«ãåé«å±€ãã«ã®çªã®äžã«ã¯ç®ã«èŠããªãæ空ã®ç¹ç°ç¹ããããŸãã ãã®çŸè±¡ãæšæºã¢ãã«ã®æ å
ã§èª¬æã§ãããã©ããã¯ããããŸãããããèœã¡ããã®ã倱ãããããšããååãç¹ç°æ§ã®åºç€ã§ããããšã¯ééããããŸããã ãã®ãããã»ã³ãµãŒãèŠã€ãããŸããã§ããã
åœç¶ã®ããšãªãããããã€ã¹ãå€æŽããå¿
èŠæ§ã¯å®å
šã«é«ãŸããŸãããããexeãã®ã©ããç§ã®å®¶ã«1幎以äžæ»åšããŠããªãã£ããšããèãã¯é©ãã¹ããã®ã§ããã ãããŠããèªåã§ãããªãã£ãããšããèããé ã«æµ®ããã ã
ãã®ãããªã€ãã³ãã®éçºã«ã¯åææ¡ä»¶ããããŸããã æè¡æè²ã¯åœŒã®åŒ·ã¿ãå·éã«è©äŸ¡ããããšãå¯èœã«ããŸãããè±ããªã¢ããã¥ã¢ç¡ç·ã®åäŸæ代ã¯ããœãããŠã§ã¢éšåã ãã§ãªããå°ãªããšãåå§çãªéçã§ãåé¡ã«ãªããªãããã«å¯ŸåŠããããšãå¯èœã§ãããšããåžæãäžããŸããã ããã«ã賌å
¥ããã¹ããŒã·ã§ã³ãšã¯ç°ãªããèªäœã®ãœãªã¥ãŒã·ã§ã³ã®ä¿å®æ§ã¯ã¯ããã«é«ããç§ã¯äžè¬çã«ã«ã¹ã¿ãã€ãºæ§ã«ã€ããŠæ²é»ããŠããŸãã
åœåã¯ã家ã®ããŸããŸãªéšåãå€å£ãäžå€®ãŠãããã«äžå®æ°ã®æž©åºŠããã³æ¹¿åºŠã»ã³ãµãŒãäœæãããšããã¢ã€ãã¢ã§ããã ã»ã³ãµãŒã¯ããŒã¿ãååŸããŠäžå€®ãŠãããã«éä¿¡ããå¿
èŠããããäžå€®ãŠãããã¯ãããèŠèŠåããå¿
èŠããããŸããã å¯æ¬¡çãªæ©èœãšããŠãçµ±èšãåéããããã«ã€ãŒãµãããããŒã¿ãæ¢åã®ãµãŒããŒã«éä¿¡ããå¯èœæ§ïŒãã©ãã ã£ãããã確èªãããïŒãšããã®åŸã®iPadãiPhoneãAndroidãªã©ã®é»åæ©åšã®ãããªããŒã ããŒã¹ã®ã¬ãžã§ãããžã®è»¢éãæ€èšããŸããã
éåžžã«è¿
éã«ïŒã€ãŸããããã»ã©é«äŸ¡ã§ã¯ãªããã€ã¯ãã³ã³ãããŒã©ãŒãšåžè²©ã®åšèŸºæ©åšã®æ©èœãç 究ãã段éã§ïŒãäžå€®ãŠãããã®èŠèŠåã®ã¢ã€ãã¢ã¯æ¶æ»
ããããããµãŒããŒã«éä¿¡ããå³èã®ããã€ã¹ã®èŠèŠåãç¶ããŠãããã¹ããŒã¿ã¹ãååŸããŸããã
Arduinoã¯ããã®ã¢ã€ãã¢ãå®è£
ããããã®ãã©ãããã©ãŒã ãšããŠéžã°ããŸããã çç±ïŒéçºãããã€ã³ãã©ã¹ãã©ã¯ãã£ãå€ãã®äŸã販売äžã®å€ãã®ã³ã³ããŒãã³ããäŸ¡æ ŒïŒæ¬ç©ã®Arduinoã§ã¯ãªããäžåœã®ãã©ãŒã¯ããŒã³ã«ã€ããŠè©±ãå ŽåïŒãã¢ã¯ã»ã·ããªãã£ïŒEbayã®å©ç¹ã¯ããããã奜ã¿ã«èŠãããŸãïŒã ååãšããŠãããåºãã®ã³ã³ãããŒã©ãŒã«ãåãããšãå®è£
ã§ããŸããããã¯ãããžãŒãå
¥åããã ããªã®ã§ãæ¢åã®ãšã³ããªãŒãããå€ãäžããããããŸããã§ããã å¯äžã®æ°è±¡ã»ã³ãµãŒã¯çŸçãªããã€ã¹ã§ã¯ãããŸããã§ããããå£ã«20 cmã®çŽç·ãµã€ãºã®coããããããªãã£ãã®ã§ãArduino Pro MiniãããŒã¹ãšããŠéžæãããããã€ãã®å°è±¡çãªUnoãµã€ãºã§ã¯ãããŸããã§ããã
ãããã£ãŠãæŠå¿µçã«ã¯ãã·ã¹ãã ã¯4ã€ã®éšåã§æ§æãããŠããŸãã
- æ°è±¡ã»ã³ãµãŒã ã¿ã¹ã¯ã¯å€©æ°ã枬å®ããããŒã¿ãç¡ç·ã§äžå€®ãŠãããã«éä¿¡ããããšã§ã
- äžå€®ãŠãããã ã¿ã¹ã¯ã¯ãæ°è±¡ããŒã¿ãåä¿¡ããHTTPã§ã©ããããŠãµãŒããŒã«æçš¿ããããšã§ãã
- ãµãŒã㌠ã¿ã¹ã¯ã¯ãäžå€®ãŠãããããããŒã¿ãåä¿¡ããããŒã¿ããŒã¹ã«ä¿åããŠãããããçš®é¡ã®å®¶åºçšæ©åšã§ã®èŠèŠåã«é©ãã圢åŒã§è»¢éããããšã§ãã
- èŠèŠåããã€ã¹ã ã¿ã¹ã¯ã¯ãŠãŒã¶ãŒã«å€©æ°ã衚瀺ããããšã§ã
亀æãããã³ã«
ã·ã¹ãã ã®ã³ã³ããŒãã³ãã®èª¬æã«é²ãåã«ããããã³ã«ãšç©ºäžã®ããŒã¿äº€æã®åçã«ã€ããŠç°¡åã«èª¬æããŸãã ç¡ç·äº€æã¯ã
VirtualWireã©ã€ãã©ãªã«åºã¥ããŠããŸãããã®ã©ã€ãã©ãªã«ã¯ããã³ãã§ã¹ã¿ãŒã³ãŒãã£ã³ã°ããã§ãã¯ãµã æ€èšŒãªã©ã®ãæ£ãããéä¿¡æ段ãæ¢ã«ãããŸãã ãã±ããæ§é ãåºå®ããããã€ã¯ããããã³ã«ãããã®ã©ã€ãã©ãªã®äžã«å®è£
ãããŸããã åãã±ããã¯ãéä¿¡ããã€ã¹ã®ã¢ãã¬ã¹ïŒuint16ïŒãã»ã³ãµãŒã®ã¿ã€ãïŒint16ïŒãããã³ããŒã¿ïŒfloatïŒã®3ã€ã®ãã£ãŒã«ãã§æ§æãããŠããŸãã è¿œå ã®ã»ãã¥ãªãã£å¯ŸçããµãŒããŒåŽã§å®è£
ãããŠããããããã±ããã®é·ãããã§ãã¯ããããšãé€ããŠãçä¿¡ããŒã¿ã®æ£ç¢ºæ§ã«é¢ããè¿œå ã®æ€èšŒã¯ãããŸããã éä¿¡ããã€ã¹ã®ã¢ãã¬ã¹ã¯ãããã€ã¹ããªã³ã«ãªã£ããšãã«ã以åã«çæãããŠããªãå Žåã¯ã©ã³ãã ã«çæãããEEPROMã«èšé²ãããŸãã åããã€ã¹ã«ã¯ãããŸããŸãªã¿ã€ãã®ã»ã³ãµãŒã®å€ãã®èªã¿åãå€ãä»»æã«éä¿¡ããæš©å©ããããŸãã ãã®ãããåæ°è±¡ã»ã³ãµãŒã¯2ã€ã®ãã±ãããéä¿¡ããŸã-枩床枬å®å€ãšæ¹¿åºŠæž¬å®å€ãæã€ãã±ããã
ãããã£ãŠãäžè¬çãªãã¹ããããžãæã€ç¡ç·ãããã¯ãŒã¯ãç·šæãããŸãããè¡çªæ€åºãé
ä¿¡ä¿èšŒãªã©ã®é«åºŠãªæ©èœã¯ãããŸããã 2ã€ã®ããã€ã¹ãåæã«ããŒã¿ãéä¿¡ããããšãããšãè¡çªã®çµæãšããŠããŒã¿ã倱ãããŸãã
ãã€ã¯ããããã³ã«ã®å®è£
ã¯ãéä¿¡ãšåä¿¡ãšãã2ã€ã®äž»èŠãªã¡ãœãããå«ãåå¥ã®ã©ã€ãã©ãªã§çºè¡ãããŸããã ä»ã®ãã¹ãŠã®ã¡ãœããã¯ãããšãã°éä¿¡ããã€ã¹ã®ã¢ãã¬ã¹ãçæããããã«å¿
èŠãªãµãŒãã¹ã¡ãœããã§ãã
ã©ã€ãã©ãªã®ãœãŒã¹ã³ãŒã æ°è±¡ã»ã³ãµãŒ
倩æ°ã»ã³ãµãŒã®äœæã¯ç°¡åã«æããŸããã æ¢åã®MKïŒããã¯Arduino Pro Miniã®äžéšãšããŠATMega328ã§ããããšãæãåºããŸãïŒã§æž©åºŠãšæ¹¿åºŠã»ã³ãµãŒïŒãããžã§ã¯ãã§ã¯DHT11ã§ããïŒãããã¯ãã433 MHz
OOKãã©ã³ã¹ããã¿ãŒãããã¯ããã»ã³ãµãŒããããŒã¿ããã³ããããã©ã³ã¹ããã¿ãŒã«ã¢ããããŒããããœãããŠã§ã¢ãã³ããäœæããããã ãã§ãã§ããã DHT11ãArduinoã«æ¥ç¶ããæ¹æ³ã«ã€ããŠã¯èª¬æããŸããããã®çš®ã®è³æã¯ãHabréïŒ
http://habrahabr.ru/post/171525/ãhttp://habrahabr.ru/post/184966/ ïŒãå«ããŠãã£ã±ãã§ãã OOKãã©ã³ã¹ããã¿ãŒã433 MHzã§æ¥ç¶ããããšãåé¡ã§ã¯ãããŸããïŒ
http://habrahabr.ru/post/210830/ ïŒã Adafruit DHTã©ã€ãã©ãªã¯ãããŒã¿ã®ååŸã«äœ¿çšãããŸãïŒã©ã€ãã©ãªã®ã»ããã¯ã
https ïŒ
//github.com/adafruitã«ãããŸã ïŒã ã³ãã¥ãã±ãŒã·ã§ã³ã®ç·šæã«ã¯ã説æãããŠãããã€ã¯ããããã³ã«ã䜿çšãããŸãã
å®ç§äž»çŸ©ãžã®æžæã®ããã§ã¯ãªãã«ããŠãããã¹ãŠãã·ã³ãã«ã«ãªããŸãã äºå®ã¯ãã»ã³ãµãŒã¯ããããªãŒã§åäœããªããã°ãªãããé·æéåäœãããšãã信念ã¯è³ã«æ ¹ãããŠãããšããããšã§ãã ãããŠãããã§åŸ
ã¡äŒããè¡ãããŸãããArduinoãå
ã®ç¶æ
ã§ãã¢ã¯ã·ã§ã³ãåãããªãã£ãå ŽåãçŽ50mAãæ¶è²»ããããã§ãã äžè¬çãªAAAããããªãŒã®æ¥œèŠ³çãªå®¹éã¯1200mAhã§ãã ãã®é£æ¬²ã«ãããããããªãŒã®ã»ããã¯24æéæç¶ããŸãã ãã¹ãŠã®ã»ã³ãµãŒã®ããããªãŒã1æ¥ã«1å亀æãããšããèãã¯ç±æãåŒãèµ·ãããªãã£ãã®ã§ãAtmelã®ã³ã³ãããŒã©ãŒã®çé»åã¢ãŒããç 究ããŠããã¹ãŠãè©ŠããŸããã ãœãããŠã§ã¢ã®ããªãã¯ã«å ããŠãåšèŸºæ©åšãã€ãŸãDHT11ãšãã©ã³ã¹ããã¿ãŒã§äœããããå¿
èŠããããŸããã ããããªãŒã絶ããæ¶èããªãããã«ã+ 5Vãé»æºãã¹ã§ã¯ãªããå¥ã®Arduinoèã«æ¥ç¶ããããšã«ããŸããã ããã«ãããå¿
èŠãªå Žåã«ã®ã¿åšèŸºæ©åšãå«ããããšãã§ããŸãã ãŸããæ°è±¡ããŒã¿ã5åã«1å以äžéä¿¡ããã®ã¯æå³ããªããããåšèŸºæ©åšã5åã«1åãæ°ç§éå¿
èŠã§ãã ä»æ§ã«ãããšãATmega328ã¯ãã³ãä»ããŠ40mAãäŸçµŠããããšãã§ããŸãããäžæ¹ã§ããã©ã³ã¹ããã¿ãŒã®æ¶è²»ã¯30mAãDHT11ã®æ¶è²»ã¯ã¯ããã«å°ãªããåæã«åäœããããšã¯ãããŸãããã»ã³ãµãŒããã®ããŒã¿ãæåã«èªã¿åãããéä¿¡ãããŸãã ãããã£ãŠã40mAã§ååã§ãã èŠçŽãããšãããã€ã¹ã«ã¯3ã€ã®ã³ã³ã·ã¥ãŒããŒããããŸãã
- åšèŸºæ©åšïŒå®è³ªçã«ã¯å¥ã®ã¬ãã°ããé»æºäŸçµŠãããŸãïŒ
- ãã€ã¯ãã³ã³ãããŒã©ãŒèªäœïŒããã§ã¯ãçãšãã«å¯ŸåŠããå¿
èŠããããŸãïŒ
- ArduinoããŒãäžã®äžå¿
èŠãªåšèŸºæ©åšïŒããšãã°ãé»æºã®ååšã瀺ãLEDïŒ
+ 6.5V ... 12Vãã5Vã®LEDããã³é»å§ã³ã³ããŒã¿ãŒã¯ãArduinoããŒãäžã«ããã12Vãè¶
ããŠäœãã«é»åãäŸçµŠãããå Žåã«å¿
èŠã§ããã»ã³ãµãŒã¯3ã€ã®ããããªãŒããé»åãäŸçµŠããããããããã«åæãããŸãããåèšé»å§ã3.7V ... 5.1Vã®AAAïŒé®®åºŠã®çšåºŠã«ããïŒã§ãããããéå§ã³ã³ããŒã¿ãŒã¯åœ¹ã«ç«ã¡ãŸããã LEDã¯ç§ã«ãšã£ãŠã圹ã«ç«ããªãããšã«ãã誰ãã±ãŒã¹ã®äžã«ãããèŠãŸããã äžæ³ãæè¡ã«ããé£æ¬²ãã»ãŒååã«æžå°ããŸãã-æ倧28mAã ããããããã¯ãŸã ãããããããŸãã 枬å®æãŸã§ã«ãåšèŸºé»æºã¯ãã§ã«MKãããããäŸçµŠãããŠããããã®æç¹ã§ãªãã«ãªã£ãŠããããã28mAãã³ã³ãããŒã©ãŒèªäœã®é£æ¬²ã§ãããšçµè«ä»ããããŸããã ãœãããŠã§ã¢ã®ã¿ãžã£ã ã§ããŸãã å€ãã®æ瀺ãšããã¥ã¢ã«ãèªãŸããŸããã ãã®ç¥èã«ã¯æãå€ãã®ç¥èãå«ãŸããŠããŸãã çãšãã®è©Šç·Žãã¹ããããããšããŠã©ããããã°ã¿ã€ããŒãããªã¬ãŒããããšãã«çµäºããçãšãã¢ãŒãSLEEP_MODE_PWR_DOWNãå«ããããšãã¢ããã°-ããžã¿ã«ã³ã³ããŒã¿ãŒããªãã«ãªãããšã蚱容ã§ããªãäœé»æºé»å§ã§ã®åäœã¢ãŒãã®æ€åºïŒãããããã©ãŠã³ã¢ãŠãã¢ãŒãïŒãæãå©ãã«ãªã£ããšèšããŸãã ç§ã®ãªã¹ãã®æåã®2ã€ã®ãã€ã³ãã ãã管çããŠãšãã«ã®ãŒå€ªã£ã人ãç¡é
žçŽ ç¶æ
ã«ããå Žåãæ¶è²»éã¯çŽ20uAã«ãªããŸãã ããã¯å
ã®28mAããã1000åå°ãããååãšããŠããã§åæ¢ã§ããŸãããATmega328ããŒã¿ã·ãŒãã«ã¯ããã€ã¯ãã³ã³ãããŒã©ãäœãã§ããžãŒã§ãªããšãã1uAæªæºããæ¶è²»ã§ããªããšæžãããŠããŸãïŒ
MCã®å
éšã§ã¯ãé»æºé»å§ã®äœäžã«å¯Ÿããããã€ã¹ã®å¿çãç°ãªããŸãã ãã®ãããäŸçµŠé»å§ãäœäžãããšãæ°Žæ¶ã®äž»èŠéšåãåäœããäžéšã®ããã€ã¹ãæ£åžžã«åäœããªããäžå®å®ã«ãªãããŸãã¯æ£åžžã«åäœããªããšããç¶æ³ãçºçããå¯èœæ§ããããŸãã ãã®ãããªéã®äžæŽåãåé¿ããããã«ãMCã¯é»æºé»å§ã®èšçã¬ãã«ä»¥äžã®äœäžãæ€åºããå®å
šã«ãªãã«ããããšãã§ããŸãã ãã ãããã®æ©èœã¯å€æãããšãããéåžžã«å€§ããªãã¯ãŒãå¿
èŠãšããŸãã ãã©ãŠã³ã¢ãŠããç¡å¹ã«ãããšããã€ã¯ãã¢ã³ãã¢é»æµã枬å®ããã¢ãŒãã®ç§ã®äžåœã®ãã«ãã¡ãŒã¿DT838ã¯ãäœãæããªãããšã瀺ããŸããã ããã«ããïŒ é»æµã1uAæªæºã«ãªã£ããšã¯èšããŸãããããã€ã¯ãé»æµèšã®æ床ãããå€ããã確å®ã«å°ãããªããŸãããããã¯ç¢ºãã«20uAæªæºã§ãã 枬å®ã®ç²ŸåºŠããã以äžã®ãã¬ãŒãã³ã°ãèš±å¯ããªãã£ããããçµæãæºè¶³ã®ãããã®ãšã¿ãªãããšãã«ã®ãŒæ¶è²»ã«é¢ããç 究ãçµäºããããšã決å®ãããŸããã
ãã®ãããã»ã³ãµãŒãçµã¿ç«ãŠãããã³ãŒããå
éšã«çž«ãä»ããããŸããããã¯ã5åããšã«ãªã³ã«ãªããæ®ãã®æéã¯ãã£ãŒãã¹ãªãŒãã«ãªãåããã³ããå®è£
ããŠããŸãã ãã¬ããããŒãã§ã¯ãéä¿¡ãããããŒã¿ã®åä¿¡æ©ããã€ããã¢ãããããŸããã ãã¹ãŠããã¯ãŒã¢ããããã...çç¥èšå·ã®åŸãéåžžã¯äºæããªãåäºè©©ãã¡ã€ã«ãæžã蟌ã¿ãŸãããããããã¹ãŠãã¹ã ãŒãºã«é²ã¿ããã¹ãã¬ã·ãŒããŒã¯ããŒã¿ãåä¿¡ãå§ããããŒã¿ã¯å®å
šã«é©åã«èŠããŸããïŒæž©åºŠ-25床ã湿床-40ïŒ
ã ã»ãã仲éïŒ ãžã§ããå®äºããŸããã èå³æ·±ãããšã«ããã£ãŒã«ãæ¡ä»¶ã«è¿ãæ¡ä»¶ã«ããã€ã¹ãé
眮ããããšãã€ãŸããéä¿¡æ©ãšåä¿¡æ©ã®éã®è·é¢ã10cmãã5mã«å¢ããããšã決å®ãããŸããã ãããŠãããã§åäºè©©ãã¡ã€ã«ã¯å¿ã³å¯ã£ãã 5mã®è·é¢ã§ã®çŽæ¥èŠçã®æ¡ä»¶ã§ã¯ãåä¿¡æ©ã¯äœãç»é²ããŸããã§ããã ç§ã¯ãã®ãããªã€ãã³ãã®æºåãã§ããŠããŠãäœãèµ·ãã£ãŠããã®ãç¥ã£ãŠãããšæããŸããã äºå®ã¯ããã®æç¹ã§åä¿¡æ©ãéä¿¡æ©ãã¢ã³ãããæã£ãŠããªãã£ããšããããšã§ãã ãã¹ãŠã®èŠåã«åŸã£ãŠã1察ã®1/4æ³¢é·ã¢ã³ãããå³åº§ã«æž¬å®ãããåæãããŸããïŒ433MHzã®å Žåãããã¯çŽ17.5 cmã®ã¯ã€ã€ã§ããããšãæãåºããŸãïŒã å°äœã¯ã¢ã³ãããšå¥è·¡ã®ä»£ããã«å¯éãããéä¿¡ã¯å®äºããŸããïŒ æ¬¡ã®ã¹ãããã¯ãã¬ã·ãŒããŒãšãã©ã³ã¹ããã¿ãŒã®éã«åã375 mmã®ã±ã€é
žå¡©å£ãé
眮ããããšã«ãããèŠéãç·ããªããããšã§ãã ãŸãããã©ãã«ãäŒéãã€ãŸãããã§ã¯ãããŸããã ããã€ã¹ãã¢ã³ããããããã®åœ¢ç¶ãããã³å
éšã®äœçœ®ã«åãããŠèžãïŒæãç·ãåè¯ãç°ãªã絶çžäœã§ïŒãªãïŒïŒïŒäœã«ãã€ãªãããŸããã§ããã äŒéé床ãéæ¹ããªã256 bpsã«äžããŠããç¶æ³ã¯ããã»ã©æ¹åããŸããã§ããã ã¢ã³ããã®ãã©ã³ãåãè©Šã¿ãŠãæŸå°ç·ç©çåŠã®åéã§ã®ç§ã®ç¥èäžè¶³ã«ããã3人ãæŸå°ç·ç©çæè²ã«æºãããŸããããã®ãã¡ã®1人ã¯ç©çç§åŠã®åè£è
ã§ãã ãã¹ãŠã®åå±å£ã¯ããã¢ã³ããã¯ãããšã¯äœã®é¢ä¿ããªãããããã®éä¿¡æ©ã¯ãä¿¡å·ãæ£ãããšã³ã³ãŒããããŠããã°ãã¢ã³ãããšããŠåãä»ãããããã¿ãšäžç·ã«åäœãããããã10ã¡ãŒãã«ä»¥å
ã«åäœããªãããã«äœãç¹å¥ãªããšãããã ã VirtualWireããã³ãã§ã¹ã¿ãŒã³ãŒãã䜿çšãããã®äžã«è¿œå ã®ãã§ãã¯ãå ããŠãããããç®èãåã¿ç ããŠã³ãŒãã£ã³ã°ãæ£ãããšäž»åŒµãããããäœãééã£ãããšãããå¯èœæ§ããããšèãå§ããŸããã äžèŠæçœã«èŠããŸãããæ¬ é¥ã®ããéä¿¡æ©ãŸãã¯åä¿¡æ©ã«åºãããããšããä¿¡ããããªãã»ã©ã®ä»®å®ããã¹ãŠç Žæ£ãããšïŒ5ã€ã®ã»ããããããè©ŠããŠã¿ãŸããããçµæã¯åãã§ãïŒã1ã€ã®ããŒãžã§ã³ãããããŸããã§ãã-ç§ã¯éä¿¡æ©ãå®æããŠããŸããã å®éšç®çã®ããã«ãMKããããã+ 5Vãã¹ãšéä¿¡æ©ã«éä¿¡æ©ã®é»åã転éããŸãããåä¿¡æ©ã«ããŒã¿ããããŸãã ããã«ãã¢ã³ããã®äœçœ®ãã¢ã³ããã®æ§æãåä¿¡æ©ãšéä¿¡æ©ã家ã®ã©ãã«ãããã«é¢ä¿ãªãããããã¯ããã«ãããŸãã äŒéãäžæããããšãã§ããå¯äžã®ç¶æ³ã¯ãéä¿¡æ©ãéã®ãã£ããã§èŠãããšã§ããïŒãã ããããã¯ãã§ã«ãaaaaaããšããã·ãã¢äººã®å³ããç·æ§ã«ããã·ãªãŒãºã§ãïŒã ããã«ã10ç§éæŽè³ããŸããïŒä»¥åã«ãã£ãããšããªãã®ã¯ãªãã§ããïŒãOOKãã©ã³ã¹ããã¿ãŒã¯ãäœãéä¿¡ããªããšãã«äœãé£ã¹ãªãã®ã§ããå€éšãã®æ¹æ³ã§ããããªãŒãä¿è·ããæå³ããããŸããã ãã©ã³ã¹ããã¿ãŒã®é»æºãMKãããã«ãã£ãŠååã«äŸçµŠãããªãããŒãžã§ã³ã®æéã ãã®ããŒãã«é¢ããçè«ãæ£åŒã«ç¢ºèªããããšã¯ãããŸãããããªã·ãã¹ã³ãŒãã¯ãããŸããããªã·ãã¹ã³ãŒãã¯ãããŸãããæ£ç¢ºã«èŠã€ããããšã¯ããããäžå¯èœã§ããããã®ãããªæå¹ãªä»®èª¬ã§ãã åæ¢ãªäžåœäººã«ãã£ãŠéä¿¡æ©ã«å®£èšããã30mAã¯ãäœãæå³ããŠãããŸããŸããã ããšãã°ããã¹ãã·ãŒã±ã³ã¹ãéä¿¡ãããšãã®å¹³åæ¶è²»éã åæã«ããŠãããã®è»¢éäžã®ããŒã¯æ¶è²»ã¯ã40mA以äžãå«ããäœã§ãããŸããŸããã äžæ¹ãMKåºåçšã«å®£èšããã40mAã¯æ£ç¢ºã«äžéã§ããããããè¶
ãããšäœãä¿èšŒãããªããšç¢ºä¿¡ããŠããŸãã ãã®ããããã©ã³ã¹ããã¿ã®ããŒã¯æ¶è²»éã¯ãMKã®èœåãç°¡åã«è¶
ããå¯èœæ§ããããŸãã ã»ã³ãµãŒãèšèšãã2é±éïŒåœåã¯æ°æ¥ãèšç»ãããŠããŸããïŒã®ãã¡ãéä¿¡æ©ã®åé¡ã解決ããããã«æéã®90ïŒ
ãè²»ãããããšã¯æ³šç®ã«å€ããŸãã
ããããªé»æ°åè·¯ã¯æ¬¡ã®ããã«ãªããŸãã

ã»ã³ãµãŒãœãŒã¹ã³ãŒã #include <avr/sleep.h> #include <avr/wdt.h> #include <DHT.h> #include <VirtualWire.h> //workaround for the stupid arduino problem of not being able to include a library from another library, so i'm including the libs needed by WSP here #include <EEPROM.h> #include <WirelessSensorPipe.h> //#define DEBUG #define KIDROOM //#define OUTDOOR /* hardware configuration */ #define ACCESSORIESPOWERPIN 3 #define DHTPIN 4 #define TRANSMITPIN 2 #if defined (KIDROOM) #define DHTTYPE DHT22 #define TCORRECTION (0) #define HCORRECTION (0) #elif defined (OUTDOOR) #define DHTTYPE DHT22 #define TCORRECTION (0) #define HCORRECTION (0) #endif #ifdef DEBUG #define SLEEPDURATION 0 //sleep duration in seconds, shall be a factor of 8 #else #define SLEEPDURATION 320 //sleep duration in seconds, shall be a factor of 8 #endif DHT dht(DHTPIN, DHTTYPE); void sleepFor8Secs() { // disable ADC ADCSRA = 0; // clear various "reset" flags MCUSR = 0; // allow changes, disable reset WDTCSR = bit (WDCE) | bit (WDE); // set interrupt mode and an interval WDTCSR = bit (WDIE) | bit (WDP3) | bit (WDP0); // set WDIE, and 8 seconds delay wdt_reset(); // pat the dog set_sleep_mode (SLEEP_MODE_PWR_DOWN); sleep_enable(); // turn off brown-out enable in software MCUCR = bit (BODS) | bit (BODSE); MCUCR = bit (BODS); sleep_cpu (); // cancel sleep as a precaution sleep_disable(); } // watchdog interrupt ISR (WDT_vect) { wdt_disable(); // disable watchdog } // end of WDT_vect WirelessSensorPipe pipe; void setup () { #ifdef DEBUG Serial.begin(9600); Serial.println("Entered setup"); #endif dht.begin(); pinMode(ACCESSORIESPOWERPIN, OUTPUT); pipe.begin(TRANSMITPIN, 0); #ifdef DEBUG Serial.print("Sensor id:"); Serial.print(pipe.id()); #endif } void loop() { pinMode(ACCESSORIESPOWERPIN, OUTPUT); digitalWrite(ACCESSORIESPOWERPIN, HIGH); //turn on the DHT sensor and the transmitter delay(2000); //sleep till the intermediate processes in the accessories are settled down float humidity = dht.readHumidity() + HCORRECTION; float temperature = dht.readTemperature() + TCORRECTION; digitalWrite(ACCESSORIESPOWERPIN, LOW); // turn off the accessories power pinMode(ACCESSORIESPOWERPIN, INPUT); //change pin mode to reduce power consumption #ifdef DEBUG Serial.print("Humidity: "); Serial.println(humidity); Serial.print("Temperature: "); Serial.println(temperature); /* blink the LED to indicate that the readings are done */ digitalWrite(13, HIGH); delay(100); digitalWrite(13, LOW); #endif pipe.send(WirelessSensorPipe::TEMPERATURE, temperature); delay(1000); pipe.send(WirelessSensorPipe::HUMIDITY, humidity); for (int i = 0; i < SLEEPDURATION / 8; i++) sleepFor8Secs(); }
泚ææ·±ãèªè
ã¯ããã¡ãŒã ãŠã§ã¢ãDHTããèªã¿åãããããŒã¿ã®ä¿®æ£ãå°å
¥ããããšãå¯èœã«ããããšã«æ°ä»ãã§ãããã å®éã®ãšãããDHT11ã«ã¯å€ãã®æ¬ ç¹ããããŸããããªãã¡ãæŽæ°åºŠã®ç²ŸåºŠã極端ã«äœããã£ãªãã¬ãŒã·ã§ã³ã枬å®ãã枬å®ãããã³ã»ã³ãµãŒããã»ã³ãµãŒãžã®çµæã®åçŸæ§ã§ãã ãã®ãããè¿ãã«ç«ã£ãŠãã2å°ã®DHT11ã¯2床ã®æž©åºŠå·®ã瀺ãããšããããŸãããããã¯ç§ã«ã¯é©ããŠããŸããã§ããã ããã«ã次ã®èšäºã®ãããã¯ã«ç®ãåãããšãç§ã®å®¶ã¯ãã€ã©ãŒã§å ç±ãããŠãããšèšããŸãããã€ã©ãŒã¯ãã®ç¬éã«æã§å¶åŸ¡ãããŠããŸããã è·¯äžã®ç¶æ³ã«åºã¥ããŠãç®çã®ãã€ã©ãŒåºåãèšå®ããŸãã ã»ãšãã©ãã¹ãŠã®ææ°ã®ãã€ã©ãŒã«ã¯ãå°ãªããšããªã³/ãªãã¢ãŒãã§å¶åŸ¡ããæ©èœããããŸãã ãã®ããã次ã®ãããžã§ã¯ãã§ã¯ãéããéšå±ã§å©çšå¯èœãªæž©åºŠããŒã¿ã䜿çšããŠã宀å
ç°å¢ããµãŒã¢ã¹ã¿ããã§å¶åŸ¡ããŸãã ãã®ç®çã®ããã«ãéšå±ã®å
éšã®æž©åºŠãããçšåºŠã®ç²ŸåºŠã§æž¬å®ããããšã¯éåžžã«ç¡ç€Œã§ãããã®ãããªç¡ç€Œã¯æž©åºŠå¶åŸ¡ã·ã¹ãã ã®èªå±æ¯åã«ã€ãªãããŸãã ãã®ãããDHT11ããä¿®æ£ãå¿
èŠãšããªãã¯ããã«é«äŸ¡ãªDHT22ã«çœ®ãæããããšã決å®ãããŸããïŒ2ã€ã®DHT22ã1ç®æã«ç«ã€ãšãèªã¿åãå€ã¯10åã®1床ãŸã§äžèŽããŸãïŒã
äžå€®ãŠããã
ãã®ãããæ°è±¡ããŒã¿ã¯ãªã³ãšã¢ã§å©çšã§ããŸãã åé¡ã¯ã次ã«äœããã¹ããã§ãã ãããŠããããããã£ããããHTTPã§ã«ãã»ã«åããæ¢åã®ããŒã ã®ãµãŒããŒã«è»¢éããå¿
èŠããããŸãã ãããè¡ãããã«ãäžå€®ãŠãããã«Arduino Nanoã433MHzè¶
åçã¬ã·ãŒããŒãENC28J60ã€ãŒãµãããã¢ãžã¥ãŒã«ãè£
åããããšã«ããŸããã ProããŒãã®ä»£ããã«Nanoã䜿çšããã«ã¯ãNanoããŒãã«3V3ã³ã³ããŒã¿ãŒãå¿
èŠã§ãããENC28J60ã¯ãæ
å ±ãã³ã®+ 5Vã®èš±å®¹å€ã«ããããããã3V3ã®é»åãå¿
èŠãšããŸãã
ã¹ããŒã ã¯æ¬¡ã®ããã«ãªããŸãã

ã芧ã®ããã«ãENC28J60ã«å ããŠãåè·¯ã«ã¯äžå€®ãŠãããã®äœçœ®ã®æž©åºŠ/湿床ãååŸããããã®DHTã»ã³ãµãŒïŒæçµçã«ã¯DHT22ïŒãšãå§åã®æž¬å®ã«äœ¿çšãããBMP085ã»ã³ãµãŒãå«ãŸããŠããŸãã ããŒããŠã§ã¢å®è£
ã®æ©èœã®ãã¡ãBMP085ãç°ãªããã»ã³ãµãŒèªäœã¯3V3ã§é§åãããããšã«æ³šæãã䟡å€ããããŸãããçµã¿èŸŒã¿ã®5V-> 3V3ã³ã³ããŒã¿ãŒã§è³Œå
¥ãããããäž¡æ¹ã®é»å§ã§é§åã§ããŸãã Nanoã®å Žåãç¬èªã®ã³ã³ããŒã¿ãŒããããããããã¯ç¡é¢ä¿ã§ãããPro Miniã䜿çšããå Žåã¯äŸ¿å©ãªæ©èœã«ãªããŸãã
ããŒããŠã§ã¢éšåã«é©ãã¯ãããŸããã§ãããããœãããŠã§ã¢ã«ã¯é©ããŸããã ãµãã©ã€ãºã¯ã€ãŒãµãããã³ã³ãããŒã©ãŒã«æ¥ç¶ãããŠããŸãã ãŸããENC28J60ã¯ãã€ãŒãµãããã·ãŒã«ãã§åºã䜿çšãããŠããW5100ãšã¯ç°ãªããTCP / IPããŒããŠã§ã¢å®è£
ãå«ãŸããã¹ã¿ãã¯ã¯ããã°ã©ã ã§å®è£
ããããã®ãããã§åäœããã©ã€ãã©ãªãåããŠããŸãã 第äºã«ãã³ãã¥ããã£äœéšå
šäœã¯Arduinoã§ã®ããªããã£ãHTTPãµãŒããŒã®å®è£
ã«éäžããŠããŸãããç§ã®ä»äºã¯ãArduinoãHTTP GETãªã¯ãšã¹ããä»ããŠãµãŒããŒã«ããŒã¿ãéä¿¡ããããã©ãŠã¶ãã«ããããšã§ãã ãã®ãããªãã©ãŠã¶ãå®è£
ããããšãããšãããªãã®å°é£ã«çŽé¢ããŸããã
ã€ãŒãµã«ãŒãã©ã€ãã©ãªã¯å¿
èŠãªããšãè¡ãbrowseUrlã¡ãœãããå®çŸ©ããŠããã«ããããããããã®åäœã¯å®å®ããŠããŸããã ã¡ãœããèªäœã¯ãGETèŠæ±ãçæããããã®ã©ã€ãã©ãªãžã®èŠæ±ã®ã¿ãæå³ããŸãã èŠæ±èªäœãå®è¡ããã«ã¯ããµãŒããŒããããŒã¿ãåä¿¡ãããšãã«åŒã³åºãããã³ãŒã«ããã¯ã¡ãœãããå®çŸ©ããbrowseURLãåŒã³åºããåŸãçŽæ¥ãã©ãã£ãã¯ããã³ãã³ã°ããpacketLoopã¡ãœãããåŒã³åºãå¿
èŠããããŸãã ãããã£ãŠãçè«çã«ã¯ãã¡ãã»ãŒãžãéä¿¡ããäœæ¥ã¯ãbrowseUrlãžã®åäžã®åŒã³åºããšãèŠæ±ããã³ãã³ã°ããŠå¿çãåä¿¡ããpacketLoopãžã®è€æ°ã®åŒã³åºãã®2ã€ã®æ®µéã§æ§æãããŸãã packetLoopãäœåãã«ããå¿
èŠããããã¯å®å
šã«ç解ã§ããŸããã ãã®ã¡ãœããã¯ã¹ããŒã¿ã¹ãè¿ããŸããã å
¥åã¯ããã±ããã®é·ããåãå
¥ããŸããããã¯ãpacketReceiveã¡ãœãããåŒã³åºãããšã§æ±ºå®ã§ããŸãã ç§ãæåã«èããã®ã¯ãpacketReceiveããŒã以å€ãè¿ããŸã§packetReceiveãšpacketLoopããã«ããããšã§ããã ãã ãããŸããbrowseUrlãåŒã³åºããçŽåŸã«ãå€ãã®packetReceiveåŒã³åºãããŒããè¿ããŸãã 第äºã«ãæåã®éãŒããåºçŸããåŸãäžé£ã®ãŒãã移åããåã³ãŒãã§ã¯ãªããªããŸãã ãµãŒããŒããã®åçã¯ç§ã«ã¯èå³ããªãã®ã§ãäž»ãªåé¡ã¯ããµãŒããŒãžã®GETãªã¯ãšã¹ããååŸããããã«å¿
èŠãªåæ°ã ãpacketLoopãåŒã³åºãããšã§ããå察æ¹åã®è»¢éã¯ã¹ããããããŸãã ããã§ã³ãŒã«ããã¯ã圹ç«ã¡ãŸãããããã¯ãããŒã¿ãENC28J60ãããã¡ã«è¡šç€ºããããšãã«ã€ãŒãµã«ãŒããåŒã³åºããã®ã§ãã æåã®åŒã³åºããåŸ
ã£ãŠããµãŒããŒãžã®è»¢éãè¡ããã転éãå察æ¹åã«éå§ãããããšã確èªããã ãã§ååã§ãã ãã®åŸãpacketLoopåŒã³åºããçµäºã§ããŸãã åé¡ã¯ãã³ãŒã«ããã¯ãbrowseUrlã®åŸã«åŒã³åºãããªãå Žåãããããã®åŸpacketLoopåŒã³åºãã®ã«ãŒãã§æ°žä¹
ã«åŒã³åºãããå Žåãããããšã§ãã ãã®æé ãæéã«å¶éããå¿
èŠããããŸããã Arduinoã5ç§ä»¥å
ã«ãµãŒããŒããå¿çãåä¿¡ããªãå ŽåãçŸåšã®èŠæ±è©Šè¡ãã¹ããŒããŸãã å¥ã®éåžžã«äžå¿«ãªé©ãã¯ãæã
éä¿¡ãããŸãïŒéåžžã«äžå®å®ã«åçŸãããŸããã確å®ã«1æ¥ã«1åçºçããŸãïŒã¿ã³ãã ENC28J60 /ã€ãŒãµã«ãŒãã¯ãäœãéåä¿¡ãããªãå Žåã«å®å®ç¶æ
ã«ãªããŸãã MKãåèµ·åããããšã§åŠçãããŸãã ãã®ããã転éã«å€±æããè©Šè¡ãæ€èšãããããã倧éã«èç©ããå Žåãã³ã³ãããŒã©ãŒã匷å¶çã«ãªãŒããŒããŒãããå¿
èŠããããŸããã
ããããã¹ãŠã®ããªãã¯ã«ãããäžå€®ãŠãããã¯å®å®ããŠåäœããŸããç§ã¯çŸåšã1ãæéããã®åäœã«å¹²æžããŠããŸããã
äžå€®ãŠãããã®ã¹ã±ãã #include <Wire.h> #include <DHT.h> #include <VirtualWire.h> #include <EtherCard.h> #include <EEPROM.h> #include <Time.h> #include <WirelessSensorPipe.h> #include <Adafruit_BMP085.h> #define DEBUG /* Hardware configuration */ #define RECEIVEPIN 2 #define DHTPIN 4 #define DHTTYPE DHT22 /* Sensor corrections */ #define TCORRECTION (0) #define HCORRECTION (0) /* Timeouts */ #define RECEIVETIMEOUT 30 // wireless receive timeout #define MEASUREUPDATEPERIOD 300 //self measuring period /* Own sensors */ DHT dht(DHTPIN, DHTTYPE); Adafruit_BMP085 bmp; /*Sensor pipe*/ WirelessSensorPipe pipe; /* Ethercard stuff */ #define BUFFER_SIZE 400 byte Ethernet::buffer[BUFFER_SIZE]; #define FAILEDSENDATTEMPTSALLOWED 10 //if it fails to send data more than FAILEDSENDATTEMPTSALLOWED attempts the reboot is forced static uint8_t mymac[6] = { 0x54,0x55,0x58,0x12,0x34,0x56 }; char PROGMEM websrvip_str[] = "192.168.1.250"; byte answer_received = 0; // called when the client request is complete static void my_callback (byte status, word off, word len) { #ifdef DEBUG Serial.print(F("HTTP GET status: ")); Serial.println(status); // Ethernet::buffer[off+300] = 0; // Serial.print((const char*) Ethernet::buffer + off); #endif answer_received = 1; } void(* resetFunc) (void) = 0; int num_of_failed_send_requests = 0; void sendSensorData(int sensor_id, int sensor_type, float data) { char buffer[40]; char conv_buffer[11]; buffer[0] = 0; strcat_P(buffer, PSTR("?script=updS")); strcat_P(buffer, PSTR("&id=")); strcat(buffer, itoa(sensor_id, conv_buffer, 10)); strcat_P(buffer, PSTR("&t=")); strcat(buffer, itoa(sensor_type, conv_buffer, 10)); strcat_P(buffer, PSTR("&v=")); strcat(buffer, dtostrf(data, 2, 2, conv_buffer)); #ifdef DEBUG Serial.print(hour()); Serial.print(":"); Serial.print(minute()); Serial.print(":"); Serial.print(second()); Serial.print(" :"); Serial.print(F("Sending request with params: ")); Serial.println(buffer); #endif answer_received = 0; ether.browseUrl(PSTR("/objects/"), buffer, websrvip_str, &my_callback); int packet_len = 1; int begin_waiting_time = now(); while(!answer_received || packet_len != 0) { packet_len = ether.packetReceive(); ether.packetLoop(packet_len); if (now() - begin_waiting_time > 5) { num_of_failed_send_requests++; Serial.print(F("Failed to send data ")); Serial.print(num_of_failed_send_requests); Serial.println(F(" times")); if (num_of_failed_send_requests >= FAILEDSENDATTEMPTSALLOWED) { Serial.println(F("Resetting the device")); resetFunc(); } break; } } } void setup () { #ifdef DEBUG Serial.begin(9600); Serial.println(F("Entered setup")); #endif pipe.begin(0, RECEIVEPIN); #ifdef DEBUG Serial.print("Sensor id:"); Serial.println(pipe.id()); #endif dht.begin(); bmp.begin(); if (ether.begin(sizeof Ethernet::buffer, mymac) == 0) { Serial.println(F("Failed to access Ethernet controller")); resetFunc(); } if (!ether.dhcpSetup()) { Serial.println(F("DHCP failed")); resetFunc(); } ether.printIp(F("IP: "), ether.myip); ether.printIp(F("GW: "), ether.gwip); ether.printIp(F("DNS: "), ether.dnsip); if (!ether.dnsLookup(websrvip_str)) { Serial.println(F("DNS failed")); resetFunc(); } ether.printIp(F("SRV: "), ether.hisip); } time_t previous_measure_time = -1; void loop() { time_t current_time = now(); if(current_time - previous_measure_time > MEASUREUPDATEPERIOD) { float dhttemperature = dht.readTemperature() + TCORRECTION; float humidity = dht.readHumidity() + HCORRECTION; float temperature = bmp.readTemperature(); float pressure = bmp.readPressure()/133.33; sendSensorData(pipe.id(), 500, temperature); sendSensorData(pipe.id(), WirelessSensorPipe::TEMPERATURE, dhttemperature); sendSensorData(pipe.id(), WirelessSensorPipe::HUMIDITY, humidity); sendSensorData(pipe.id(), WirelessSensorPipe::PRESSURE, pressure); previous_measure_time = current_time; } WirelessSensorPipe::Packet packet; if (pipe.receive(packet, RECEIVETIMEOUT * 1000)) { sendSensorData(packet.id, packet.type, packet.value); } }
å®æããããã€ã¹ã®åç ã芧ã®ãšãããDHT22ã¯åŽé¢ã«ã¶ãäžãããã±ãŒã¹ã«é
眮ããããšã¯ã§ããŸãããããã«ãã±ãŒã¹å
ã«é
眮ããããšã¯ã§ããŸãããããã€ã¹ã¯ã枩床ã»ã³ãµãŒãé
眮ããã®ã«ååãªå°éã®ç±ãçæããããã§ããäŸãšããŠãã±ãŒã¹å
ã«ããBMP085ã»ã³ãµãŒã®æž©åºŠæž¬å®å€ã¯ãæ£ããå€ãã2床å®å®ããŠããŸãããµãŒããŒåŽ
åŸã§è¡šç€ºããæ°åãä¿åããããã®ãã®ãäœæãããšãã«é ã«æµ®ãã¶æåã®èãã¯ããããããã®ãã€ãŒã«ãçºæããããšããŠããæåã®äººã§ã¯ãªãã§ããããã€ã³ã¿ãŒãããã®ç°¡åãªèª¿æ»ã¯ããœãªã¥ãŒã·ã§ã³ã®ç¯å²ããããã°ã©ããŒã®chtoliã§ã¯ãªããäœããïŒããšéåžžã«åºãããšã瀺ããŸãããããã«ããªãã®VisualBasicãããããããããã°ã©ã ããããã§ãããã§å°ã調æŽããŠããã¹ãŠãç®±ããåºããŠåäœããŸããçå®ã¯ããã€ãã®ããã«ãäžéã®ã©ããã«ãããŸããäžæ¹ã§ã¯ããã¹ãŠãçŸããè¡ãããã«ã¯ãã³ãŒãã«åŸ¹åºçã«æè³ããå¿
èŠããããç±æãç°¡åã«æ¶ãããšãã§ããããšã¯æããã§ããäžæ¹ãããã¯ã¹åããããœãªã¥ãŒã·ã§ã³ã¯ã圌ããæããã®ã決ããŠå®è¡ããŸããã圌ãã¯ã«ã¹ã¿ãã€ãºã«æ¬ ããŠããŸãã MajordomoïŒsmartliving.ruïŒãšããçŽ æŽããããããžã§ã¯ããããããã®ç®çã¯ã¹ããŒãããŒã çšã®ãã©ãããã©ãŒã ãäœæããããšã§ãããšããäºå®ã«ãç§ã¯ãã£ãããšå°ãããŸãããããªãååã«è³¢ãæ°è±¡èŠ³æž¬æãã¹ããŒãããŒã ã®äžéšã§ã¯ãªãã®ã§ããïŒãç§ã¯èããŠåº§ã£ãŠåé¡ãç 究ããŸããã Majordomo IMHOã®çŸããã¯ãéåžžã«ã·ã³ãã«ã§å
žåçãªãã®ããå°ãã«ã¹ã¿ãã€ãºããŠããã«äœ¿çšã§ããããšã§ããããããäœãæ°ã«å
¥ããªãå Žåã¯ãè¿œå ããïŒPHPã«ããéçºãããã¹ã¯ãªããããŒã«ãããããïŒããæžãçŽãïŒãã©ãããã©ãŒã ãéããŠããããœãŒã¹ã³ãŒããå©çšã§ããïŒæ©äŒãåžžã«ãããŸãã Majordomoã§ãµããŒããããŠããããŒã«ã®ãã¡ããªããžã§ã¯ãã¯æçšã§ãããHTTPãªã¯ãšã¹ããšããŒã ããŒãžãä»ããŠå€éšããæŽæ°ã§ããããŒã¿ã§ãHTML / JS / CSSããã³ãã®ä»ã®Webãã¯ãããžãŒåç©åã§å¥œããªãã®ãæç»ããŠãµããŒãã§ããŸããããããäœãæ°ã«å
¥ããªãå Žåã¯ãè¿œå ããïŒPHPã«ããéçºãããã¹ã¯ãªããããŒã«ãããããïŒããæžãçŽãïŒãã©ãããã©ãŒã ãéããŠããããœãŒã¹ã³ãŒããå©çšã§ããïŒæ©äŒãåžžã«ãããŸãã Majordomoã§ãµããŒããããŠããããŒã«ã®ãã¡ããªããžã§ã¯ãã¯æçšã§ãããHTTPãªã¯ãšã¹ããšããŒã ããŒãžãä»ããŠå€éšããæŽæ°ã§ããããŒã¿ã§ãHTML / JS / CSSããã³ãã®ä»ã®Webãã¯ãããžãŒåç©åã§å¥œããªãã®ãæç»ããŠãµããŒãã§ããŸããããããäœãæ°ã«å
¥ããªãå Žåã¯ãè¿œå ããïŒPHPã«ããéçºãããã¹ã¯ãªããããŒã«ãããããïŒããæžãçŽãïŒãã©ãããã©ãŒã ãéããŠããããœãŒã¹ã³ãŒããå©çšã§ããïŒæ©äŒãåžžã«ãããŸãã Majordomoã§ãµããŒããããŠããããŒã«ã®ãã¡ããªããžã§ã¯ãã¯æçšã§ãããHTTPãªã¯ãšã¹ããšããŒã ããŒãžãä»ããŠå€éšããæŽæ°ã§ããããŒã¿ã§ãHTML / JS / CSSããã³ãã®ä»ã®Webãã¯ãããžãŒåç©åã§å¥œããªãã®ãæç»ããŠãµããŒãã§ããŸããArduinoã®ã»ã³ãµãŒçšã«ã次ã®æ§é ãæã€ãªããžã§ã¯ãã®åå¥ã®ã¯ã©ã¹ãç·šæãããŸãã
ãDeviceIDã¯ããã€ã¯ããããã³ã«ãã±ããã«åå ããããã€ã¹ã®ãŸãã«ã¢ãã¬ã¹ã§ããæ®ãã®ãã£ãŒã«ãã®èª¬æã¯ãããèªäœãç©èªã£ãŠããŸããäœæ¥ã®ããžãã¯ã¯æ¬¡ã®ãšããã§ããäžå€®ãŠããããããŒã¿ãéä¿¡ãããšããã®ã¯ã©ã¹ã®ãªããžã§ã¯ãã®äžã§ãDeviceIDãšSensorTypeãéä¿¡ããããã®ãšäžèŽãããã®ãæ€çŽ¢ãããŸããèŠã€ãã£ããªããžã§ã¯ãã«å¯ŸããŠãæž¡ãããå€ïŒmicroprotocolãã±ããã®floatãã£ãŒã«ãã®å€ïŒãèšå®ãããUpdateTimeãNowã«èšå®ãããActualã1ã«èšå®ãããŸããäžå€®ãŠããããŸãã¯ã»ã³ãµãŒèªäœã«äœããèµ·ãã£ãå Žåãã»ã³ãµãŒã¯é·æéæŽæ°ãããŠããªããããã»ã³ãµãŒã¯ç¡é¢ä¿ã§ãããã®ãããªã»ã³ãµãŒãããã€ããããŸãã
ãããã®ã»ã³ãµãŒã®å€ã¯ãããŒã ããŒãžã䜿çšããŠèŠèŠåãããŸããç°ãªãããŒãžã䜿çšããŠãç°ãªãããŒã¿ãŸãã¯åãããŒã¿ããç°ãªãããã€ã¹ã§ã®è¡šç€ºã«æé©åããã圢åŒã§è¡šç€ºããŸããããã£ã¹ãã¬ã€ããã€ã¹
ããªãã®éã®ã»ããã§èŠãããå€ãDell Streak 5ã¯ãäžå€®ãã£ã¹ãã¬ã€ããã€ã¹ãšããŠäœ¿çšãããŸããã[ãã£ã¹ãã¬ã€ããã€ã¹ã®éžæãå«ã段èœã®èšäºã®åé ãåç
§]ã¯ãArduinoã«çŽæ¥ãã蟌ãŸãã1.8ãŸãã¯2.2ã€ã³ãã¹ã¯ãªãŒã³ãããã¯ããã«æçã§ãæ倧ã§ããã¹ããš8x8ã¢ã€ã³ã³ã衚瀺ã§ããŸããDolphinãã©ãŠã¶ãéå§æã«èªåå®è¡ããããã«ã»ããã¢ãããããæ°è±¡ããŒãžãéããæ°è±¡ã¹ããŒã·ã§ã³ã®æºåãæŽã£ãé¡ã«ãªããŸããïŒæ°è±¡ã¹ããŒã·ã§ã³ã ãã§ãªãã枩床å¶åŸ¡ã«é¢ããä»åŸã®èšäºãåã³çºè¡šããŸãïŒã察å¿ããMajordomoããŒã ããŒãžã®ããã¹ãã§ã¯ããã©ãŠã¶ãŒããã«ã¹ã¯ãªãŒã³ã¢ãŒãã«ããã¢ãã¬ã¹ããŒãAndroidã¹ããŒã¿ã¹ããŒãªã©ã®äœåãªãã®ããã¹ãŠé ãããªãã¯ã«é Œããªããã°ãªããªãã£ãããšã«æ³šæããŠãã ãããããã«ãåäŸéšå±ã®æ°åç¶æ³ãç£èŠããããã«ãããŒã¿ã¯äž»ã«é
å¶è
ã«ãã£ãŠiPhoneããã³iPadã§è¡šç€ºãããŸããåçã®ãã®æè¡çãªå¯ãéãã®çµæDell Streak:

Streak:

12 , :

iPhone:

ãã¹ããçµè«ãèšç»
çŸåšãŸã§ã«ãã·ã¹ãã ã¯çŽ1ãæå皌åããŠããŸãã ENC28J60ãå®å
šã«ãªãã«ãªã£ãŠããïŒãªã³ã¯LEDãšã¢ã¯ãã£ããã£LEDãç¹ç¯ããªãã£ãïŒäžå€®ãŠãããã2åãããªã³ã°ããããšãé€ããŠãç¹ã«äžæºã¯ãããŸãããæ°ç§éããŠãããã®é»æºãåãããšã§å¯ŸåŠããŸããããã®æ¯ãèãã®çç±ã¯ã家ã®è»å
ãããã¯ãŒã¯ã®é»æ°ã®è³ªãããŸãè¯ããªãããšãèšé²ãããŠããŸãããäžç¬ã®ãã¡ã«æ¶ããŸãããã®ãããªæ¡ä»¶äžã§é»åæ©åšãã©ã®ããã«åäœãããã¯äžæã§ãããã®èŠå ã®åœ±é¿ãé²ãæ段ãšããŠã1Fã«2ã€ã®ã€ãªãã¹ã¿ïŒ5Vã³ã³ãããŒã©ã®é»æºçšãã€ãŒãµãããã¢ããã¿çšã®3V3ïŒãèšçœ®ããããšãèšç»ãããŠããŸãããèé»æ± ãããããªãŒã®åœ¢ã§ç®¡çããããšã¯å¯èœã§ããããã¯ããã«é«äŸ¡ã§ãïŒã€ãªãã¹ã¿ã®ã³ã¹ãã¯æ°åã«ãŒãã«ãéåžžã®ããããªãŒã»ããã¯500ãã«ããããŸãããããã¯ããããããããŸããïŒããããªãŒãäœåºŠãèŠãŸããããåããŠã€ãªã³æ€åºåšãç®ã«ããŸãïŒãç®æšãéæããŸããïŒç®æšã¯ãããã¯ãŒã¯å
ã®çæã®åä»ãªç§æ°ã®åœ±é¿ãé²ãããšã§ãããé»æ°ããªãç¶æ
ã§ãŠãããã«é»åãäŸçµŠããªãããã§ãïŒ ïŒçµè«ã§ã¯ãè
ºã®ã»ããã¯ãã®ã¿ã¹ã¯ã«å¯ŸåŠãã次ã®æ¹åã«æ¡åŒµããããã®æºåãã§ããŠãããšæžãããšãã§ããŸãïŒ- ã»ã³ãµãŒã®ãããã¯ãŒã¯ãæ¡å€§ããŸããã»ã³ãã©ã«ãŠãããã¯ããã€ã¯ããããã³ã«ãä»ããŠéä¿¡ãããããŒã¿ãåä¿¡ã§ããŸããã€ãŸããæ°è±¡ã»ã³ãµãŒã ãã§ãªããæ³åããããšãã§ããŸããäŸïŒæ°Žéã¡ãŒã¿ãŒãšãæ確ãªç©çã€ã³ã¿ãŒãã§ã€ã¹ãåããé»åã¡ãŒã¿ãŒãžã®ã€ã³ã¿ãŒãã§ã€ã¹ã¢ãžã¥ãŒã«-RS232ããã³ãŸã ç解ãããŠããªãéä¿¡ãããã³ã«
- ã¢ã¯ãã¥ãšãŒã¿ã·ã¹ãã ã®çŽ¹ä»
è¿ãå°æ¥ã®æŠèŠã¯æ¬¡ã®ãšããã§ãã- ãã€ã©ãŒã³ã³ãããŒã©ãŒã¯ãæ°è±¡ã»ã³ãµãŒãšäžç·ã«ã家ã®äžã«éãã枩床å¶åŸ¡ã·ã¹ãã ã圢æããŸãããããã¿ã€ãã¯ãã§ã«äœæãããŠããããã¹ãäžã§ããç§ã¯ãã®æè¡ã«å¥ã®èšäºãæ§ããããšãçŽæããŸãã
- æŒæ°Žæ€ç¥ã¢ãžã¥ãŒã«ä»ãã®é»æ°ããã³æ°Žéã¡ãŒã¿ãŒã«èšå