ä»ãç§ã¯ããããæ倧éã«ã䜿ãããã
ãããŸã§ã®ãšããã次ã®ãªã¢ãŒã管çæ©èœãæ¬ èœããŠããŸãã
- ãµãŒããããã¬ãŒã«ãŒã®æéç¹æ§ãå€æŽããŸãã
- 圌ã®çŸåšã®ç¶æ ã調ã¹ãŠãã ããã
- 圌ã®ç¶æ ã管çããŸãã
çŸåšã®ç¶æ ã衚瀺ããWebããŒãžã®åœ¢åŒã§ã¹ã€ãããå¶åŸ¡ããŸãã
ããã«ãããã«åŠçããããã«ããŒã¿ããŒã¹ã«ããŒã¿ãä¿åããŸãïŒããšãã°ãçŸããã°ã©ããæç»ããŸãïŒã
é
ãããªãäœæ¥ã®ããã«ãç§ã¯äœ¿çšããŸãïŒ
- IBoardããŒããšnrf24l01 +ã¢ãžã¥ãŒã«ïŒãããããLANã²ãŒããŠã§ã€<=> RF24ãç·šæããŸãïŒ
- Synology NASïŒmySQLããŒã¿ããŒã¹ãåããWebãµãŒããŒãšããŠïŒ
åœç¶ãæå ã«ãããã®ïŒããšãã°ãWiznetã«ã€ãŒãµãããã·ãŒã«ããåããarduino-ã²ãŒããŠã§ã€ãäœæããããïŒãšãPHPãå®è¡ããŠmySQLã䜿çšããã³ã³ãã¥ãŒã¿ãŒã䜿çšã§ããŸãïŒç¹å¥ãªããšã¯äžåè¡ããŸããïŒã
ã¢ãžã¥ãŒã«éã®éä¿¡ãã©ã®ããã«ååŸãããããèŠãŠã¿ãŸãããã
圹å²åæ
ã¹ã€ããïŒããã³ãæç§æžãã«ããä»ã®ã¯ã€ã€ã¬ã¹ããã€ã¹ïŒãšã²ãŒããŠã§ã€ã®é-ãã¹ãŠãã·ã³ãã«ã§ãæ¢ã«å®çŸ©ãããŠããŸãïŒ åã®èšäºãåç § -éä¿¡ãããæ§é ã®å®å šãªèª¬æããããŸãïŒã
iBoardã§ããŠã§ããµãŒããŒããäžããããšã§åé¡ãããã«è§£æ±ºã§ããå¯èœæ§ããããŸãããå€æŽãå¿ èŠãªå Žåã¯èŠçã§é¢åã§ãã ïŒ
ãããã£ãŠãåä¿¡ããŒã¿ããããã°ãã©ã¶ãŒãã«éä¿¡ããiBoardããã²ãŒããŠã§ã€ãäœæããŸãïŒãã匷åã§ããããããã°èšé²ãWebããŒãžã§ã®æ å ±ã®è¡šç€ºãªã©ã®ã¿ã¹ã¯ãå§ä»»ãããŸãïŒã
åãã¢ãžã¥ãŒã«ããããã°ãã©ã¶ãŒããããã³ãã³ãããåä¿¡ãããããã空äžã«éä¿¡ãããå®è¡è ãããã®å¿çã«ã€ããŠå ±åããŸãã
ãè ºããžã®åœ¹å²ã¯åæ£ãããŠããŸã-ä»ãç§ãã¡ã¯ãããããäºãã«ãéä¿¡ãããæ¹æ³ãç解ããå¿ èŠããããŸãã
ç§ã¯ãããæ£ãããšä¿¡ããŠããŸãïŒ
- äžéšã®ã¢ãžã¥ãŒã«ã¯ãªã³ãšã¢ã§ãã®ã¹ããŒã¿ã¹ãå ±åããã²ãŒããŠã§ã€ã¯WebãµãŒããŒã«ããŒã¿ãéä¿¡ããŸãïŒPOSTã¡ãœããïŒã ãµãŒããŒã¯ãããçš®ã®ããŒã¿æ€èšŒãè¡ãããã®ããŒã¿ãããŒã¿ããŒã¹ã«ãæå ¥ãããŸãã
- èŠæ±ãWebãµãŒããŒïŒGETã¡ãœããïŒããã²ãŒããŠã§ã€ã«å±ããå Žåãã²ãŒããŠã§ã€ã¯ãã®èŠæ±ããã©ã¡ãŒã¿ãŒã«è§£æããèŠæ±ããªã³ãšã¢ã§ãããŒããã£ã¹ãããŸãã ãã®åŸãiBoardã¯å¿çãåä¿¡ïŒãŸãã¯åä¿¡ããªãïŒããå¿çïŒ JSON ïŒãçæããŸã ã
çããšããŠãµãŒããŒã«XMLãæäŸããããšã¯å¯èœã§ãããæ§ãããªatmega328ãªãœãŒã¹ïŒiBoardã¯ãã®MKäžã«æ§ç¯ãããŠããŸãïŒã«å®è£ ããã®ã¯ç°¡åã§ã¯ãããŸããããããé·ãè¡ã§æäœããå¿ èŠããããŸãã
åçã説æãããŠãããåé¡ã¯ç¹å®ã§ãã
LANã²ãŒããŠã§ã€<=> RF24
ãŸããã²ãŒããŠã§ã€ãžã®GETãªã¯ãšã¹ãã決å®ããŸãïŒIP 192.168.1.2ã«ããŸãïŒã 次ã®åœ¢åŒã®ã¯ãšãªã䜿çšããŸãã
http://192.168.1.2/?sid=701&cmd=2&pid=1&val=0
èŠæ±ã¯ãã¢ã¯ã»ã¹ãããŠããã¢ãžã¥ãŒã«ïŒsidãã©ã¡ãŒã¿ãŒïŒãã³ãã³ãïŒcmdïŒ1-èªã¿åãã2-èšå®ïŒãã¢ãžã¥ãŒã«ãã©ã¡ãŒã¿ãŒïŒpidïŒãããã³å¿ èŠãªå€ïŒvalïŒã«é¢ããæ å ±ãéä¿¡ããŸãã
ã人éãç解ã§ãããããã®ã³ãã³ãã¯æ¬¡ã®ããã«èãããŸãïŒã济宀ã®ã¹ã€ãããã©ã€ããæ¶ããïŒ åã®æçš¿ãåç §ïŒã
æäœã«å¿ èŠãªãã©ã¡ãŒã¿ãŒã®æå°æ°ã¯3ïŒsidãcmdãpidïŒã§ããåä¿¡ãããã©ã¡ãŒã¿ãŒãå°ãªãå Žåãã¢ãžã¥ãŒã«ã¯å ±åããã³å ±åããå¿ èŠããããŸãã
{ "message": "Bad request" }
ã¢ãžã¥ãŒã«ãèŠæ±ãžã®å¿çã§ãå ±åãããå Žåãã²ãŒããŠã§ã€ã¯å¿çãçºè¡ããå¿ èŠããããŸãã
{"message": "OK","sensor": 701,"parameter": {"pid": 1,"pval": 0.000,"st": 1,"note": "Ch.1 (Light)"}}
åçã«ã¯ã察å¿ãããã©ã¡ãŒã¿ãŒã«é¢ããå®å šãªæ å ±ãå«ãŸããŸãïŒåçã¯ãç¡ç·éä¿¡ã§äœ¿çšãããæ§é ã«å¯èœãªéãè¿ãïŒã
åçãå±ããªãå ŽåïŒ
{ "message": "No answer" }
ã²ãŒããŠã§ã€ã¯ã©ããããããããã€ãã®ã¿ã¹ã¯ãååŸããããã§ãããã®ãããNTPãä»ããŠæ£ç¢ºãªæéãååŸããæ©èœã䜿çšããŠããããã«ããŒããããŸãã
ã€ãŸã ã²ãŒããŠã§ã€ã¯ããæ¥ä»ããšãæå»ããšãã2ã€ã®ãã©ã¡ãŒã¿ãŒãæã€ãã»ã³ãµãŒãã«ããªããŸãã ãããè¡ãæ¹æ³ã«ã€ããŠã¯ãã§ã«èª¬æããŸããïŒ ãã¹ããŒãããŒã ãã®ã¯ã€ã€ã¬ã¹éä¿¡ãåç §ããŠãã ããã å®çšçãªç¬¬2éš ïŒã
ç¹°ãè¿ããŸãããã·ã¹ãã ã®ãã®éåžžã«éèŠãªã³ã³ããŒãã³ãã®ãçªç¬ããå¿ããªãã§ãã ããã
ã·ã¹ãã ã®ãã¹ãŠã®æ©èœã説æãããšãã é©åãªã¹ã±ãããæžãããšã¯æè¡ã®åé¡ã§ãã
iBoardããã©ãã·ã¥ããLANã±ãŒãã«ãæ¥ç¶ããé»æºãæå ¥ããŸãããã¹ãŠãæ£åžžã§ããã°ãGETãªã¯ãšã¹ããä»ããŠã¹ããŒã¿ã¹ãååŸããã¯ã€ã€ã¬ã¹ã¢ãžã¥ãŒã«ãå¶åŸ¡ããããšããã§ã«å¯èœã§ãã åé¡ã®äžéšã¯ãã§ã«éšåçã«è§£æ±ºãããŠããŸããããŸã 䟿å©ã§ã¯ãããŸããïŒããã«ä¿®æ£ããŸãïŒã
ãã¹ãŠã®ã¯ã€ã€ã¬ã¹ã¢ãžã¥ãŒã«ãŸã§ã®è·é¢ãæå°ã«ãªãããã«ãã²ãŒããŠã§ã€ãäžå€®ïŒã¢ããŒãã家ïŒã«é 眮ããããšããå§ãããŸãã
ãµãŒããŒåŽã«é²ãããšãã§ããŸãã
ãµãŒããŒã¯ãã§ã«æºåãããŠãããšèããŠããŸããPHPãšmySQLãåããWebãµãŒããŒã¯åäœããŠããŸãã
å 責äºé ïŒã³ãŒãã¯çæ³ããã¯ã»ã©é ããã®ã§ãããåºæ¬çãªåçã瀺ãããã ãã«æäŸãããŠããŸãã
æŠå¿µå®èšŒ-ããä»¥äž ãã®åœ¢åŒã§äœ¿çšããå Žå-ããªãèªèº«ã®å±éºãšãªã¹ã¯ãããå Žåã®ã¿ã
ãµãŒããŒ
æ確ã«ããããããµãŒããŒã®IPã¢ãã¬ã¹ã¯192.168.1.10ã§ãã ãã®ã¢ãã¬ã¹ã¯äžèšã®ã¹ã±ããã«è¡šç€ºãããŸããã²ãŒããŠã§ã€ããããŒã¿ãåä¿¡ããããŒãžã®ã¢ãã¬ã¹ããããŸãïŒ 192.168.1.10/sensors-ãã®ããŒãžããå§ããŸãã
ããŒã¿ããŒã¹
ãã ããããŒãžã®éçºãéå§ããåã«ãããŒã¿ããŒã¹ãæºåããŸãã æãç°¡åãªæ¹æ³ã¯ãphpMyAdminã§ãããè¡ãããšã§ãã
db_sensorsãšããããŒã¿ããŒã¹ããããsensor_listãšsensor_valueã®2ã€ã®ããŒãã«ã®ã¿ãå«ãŸããŠããŸãïŒããŒãã«ã®ç®çã¯ååããå®å šã«æšæž¬ãããŸãïŒã
ããŒãã«ãäœæããã¹ã¯ãªãã
-- -- `sensor_list` -- CREATE TABLE IF NOT EXISTS `sensor_list` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(16) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `unit` varchar(16) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL, `comment` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL, `SensorID` int(11) NOT NULL, `ParamID` int(11) NOT NULL, `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `value` float NOT NULL COMMENT ' ', `last` datetime NOT NULL COMMENT ' ', PRIMARY KEY (`id`) ) ; -- -------------------------------------------------------- -- -- `sensor_value` -- CREATE TABLE IF NOT EXISTS `sensor_value` ( `id` bigint(11) NOT NULL AUTO_INCREMENT, `sensor_id` int(11) NOT NULL, `value` float NOT NULL, `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ;
ããŒã¿ããŒã¹ã®æºåãã§ããããããŒã¿ãåãå ¥ããŠããŒã¿ããŒã¹ã«ä¿åããããŒãžãäœæããŸãã
ããŒã¿ãã®ã³ã°
ãããã°ãç°¡åã«ããããã«ããã®ããŒãžããããŒã¿ãèªåèªèº«ã«æçš¿ãããã®æå¹æ§ã確èªãããã©ãŒã ã®åœ¢åŒã«ããŸãã
ããã«ããç§ãã¡ãããã®ãªã¯ãšã¹ãã®ã¿ãåãå ¥ããããã«ãå¿ èŠãªãªã¯ãšã¹ãããŒã¿ã®ãªã¹ãã«æ£ããããŒïŒã²ãŒããŠã§ã€ã¹ã±ããã§æ瀺çã«èšå®ïŒãå ¥åããŸãã ãã¹ãŠãå®å šãããããã§ã¯ãªãããšã¯æããã§ãããå 責äºé ã«åºã¥ããŠãããã¯ãŸã£ããåãå ¥ããããŸãã
ã¹ã¯ãªããã®ããžãã¯ã¯æ¬¡ã®ãšããã§ãã
- å¿ èŠãªãã¹ãŠã®ãã©ã¡ãŒã¿ãŒã®åæãã§ãã¯ãšãããŒã®æå¹æ§ã®ãã§ãã¯ã
- sensor_listããŒãã«ã«ãã®ãããªãã»ã³ãµãŒãã«é¢ãããšã³ããªããããã©ããã確èªããŸãã ãã®ãããªã¬ã³ãŒãããªãå Žåãã¬ã³ãŒããäœæããŠã¬ã³ãŒãèå¥åãååŸããŸãããã以å€ã®å Žåã¯ãæ¢åã®èå¥åãååŸããŸãã
- ããŒãã«sensor_valueã«ããã»ã³ãµãŒãã®å¯Ÿå¿ããå€ãæžã蟌ã¿ãŸãã
- ããã«ãsensor_listããŒãã«å ã®å¯Ÿå¿ããã»ã³ãµãŒã®æåŸã®å€ãæŽæ°ããæåŸã®é£çµ¡ã®æå»ãä¿®æ£ããŸãã
åŸè ã¯ãæåŸã®å€ããã°ããååŸã§ããããã«ïŒæåã®ããŒãã«ããã®ãµã³ããªã³ã°ãã¯ããã«é«éïŒããã®ããŒã¿ã®é¢é£æ§ããã°ããè©äŸ¡ã§ããããã«è¡ãããŸãã
ãšããã§ã ãŠãããŒãµã«ãŠã£ãžã§ããã®ããŒã¿ãšããŠçŸåšã®ããŒã¿ã䜿çšããŠãã®ããŒãã«ã®éžæã䜿çšãããšäŸ¿å©ã§ãïŒéåžžã«é·ãéãããžã§ã¯ããæŽæ°ãããŠããªãã®ã¯æ®å¿µã§ãïŒã
ã¹ã¯ãªããã¯æºåããããã¡ã€ã«ã¯index.phpãšããååã§ã\ sensor \ãã©ã«ããŒã«é 眮ãããŸããïŒãµã€ãã®ã«ãŒãã«å¯ŸããŠïŒã
WebãµãŒããŒã®ãã¹ãŠã®ãã¡ã€ã«ãå«ãã¢ãŒã«ã€ãã¯ããªã³ã¯ããå ¥æã§ããŸãã
ä»ãããªãã¯åœŒã«é£çµ¡ããããšãã§ããŸãïŒ 192.168.1.10/sensors
ãã¹ãŠãæ£åžžã«å®äºãããšããã©ãŒã ããã®ã¢ãã¬ã¹ã§éãããã¹ãå€ãæåã§æ¿å ¥ããïŒããšãã°ãphpMyAdminãä»ããŠïŒããŒã¿ããã§ãã¯ãããããŒã¿ããŒã¹ã«æ£ããé 眮ãããŠããããšã確èªã§ããŸãã
ãã§ã«ç¡ç·ã¹ã€ãããšã²ãŒããŠã§ã€ãããå Žåããã®ããŒã¿ãããŒã¿ããŒã¹ã«éä¿¡ãããŸãã
ãã®ã³ã°ã®ã¿ã¹ã¯ã解決ããŸãããã¯ã€ã€ã¬ã¹ã¢ãžã¥ãŒã«ã®ãã©ã¡ãŒã¿ãŒãèªã¿åããå€æŽãããã䟿å©ãªæ¹æ³ãå®è£ ããŠããŸãã
ã¢ãžã¥ãŒã«ãã©ã¡ãŒã¿ã®èªã¿åããšå€æŽ
å¥ã®ã¹ã¯ãªããïŒ 192.168.1.10/tests ïŒãäœæããŠã¿ãŸããããããã¯ããµãŒããŒãã²ãŒããŠã§ã€ãžã®èŠæ±ã圢æããå¿çãåä¿¡ããåã圢åŒã§è¡šç€ºããããã®ãã©ãŒã ã§ããããŸãã
äžã®ç»åã¯ããã©ãŒã ã®åŠççµæããã§ã«ç€ºããŠããŸãã2ã€ã®äžéšãã£ãŒã«ããšã»ã¬ã¯ã¿ãŒããªã¯ãšã¹ãã®ããŒã¿ã圢æããŸãããOKãã¯å¿çã®ã¡ãã»ãŒãžãã©ã¡ãŒã¿ãŒã®å€ãæ®ãã®ãã©ã¡ãŒã¿ãŒã¯å¿çã®å¯Ÿå¿ããéšåã§ãã
å¿çã®è§£æã¯JavaScriptã䜿çšããŠè¡ãããŸãã
ãã®ã¹ã¯ãªããã«ã¯ã¡ãã£ãšããããªãã¯ããããŸãã ãã©ãŒã ããŒã¿ã¯ã²ãŒããŠã§ã€ã«çŽæ¥éä¿¡ãããŸããããjson-proxy.phpãã¡ã€ã«ãééããŸã
ãã®ã¢ãããŒãã«ãããå€éšãããã¯ãŒã¯ãããã¡ã€ã³ãã¹ã¯ãªããã«ã¢ã¯ã»ã¹ã§ããŸãããã²ãŒããŠã§ã€ã¯å éšãããã¯ãŒã¯ã«ãšã©ãŸãããšãã§ããŸãã
ãã®äžéãã¡ã€ã«ã§ã¯ãSQLã€ã³ãžã§ã¯ã·ã§ã³ãã身ãå®ãããã«ãå®å šãªããŒã¿ãã§ãã¯ãè¡ãå¿ èŠããããŸãã
ãã®ããŒãžã¯æ¢ã«æäœããã®ã«ã¯ããã«äŸ¿å©ã§ããããããŸã§ã®ãšããããã¹ãŠã¯ç¹å®ã®ã»ã³ãµãŒã®1ã€ã®ãã©ã¡ãŒã¿ãŒã®ã¬ãã«ã«ãããŸãã
ã³ã³ãããŒã«ã»ã³ã¿ãŒããŒã
çŸåšãç§ãã¡ã®ææãçµã¿åãããŠãAJAXã«ã€ããŠå°ãèªãã§ããã®ãããªããŒãžãäœæããããšãæ¢ã«å¯èœã§ãïŒ 192.168.1.10/tests/switch.php㧠ïŒïŒ
ç¹å®ã®ãã©ã¡ãŒã¿ãŒã®ããŒã¿ãæŽæ°ããã«ã¯ãé¢æ°chekItïŒ701ã1ã 'ch1'ïŒãåŒã³åºãããŸãã ïŒå®éã«ã¯ãã¢ãžã¥ãŒã«çªå·ããã©ã¡ãŒã¿ãŒçªå·ãdivèå¥åã®3ã€ã®åŒæ°ãããããã®å 容ãæŽæ°ããå¿ èŠããããŸãïŒã
ãã®ããŒãžã«ã¯ãã¢ãžã¥ãŒã«ã®æéãã©ã¡ãŒã¿ãŒã衚瀺ãããŸãïŒè匱ãªãªãœãŒã¹ã²ãŒããŠã§ã€ã«è² æ ããããªãããã«ããããïŒ-ãã®ããŒã¿ã¯5åããšã«ãªã¯ãšã¹ãããŸãã
ç §æããã³ææ°ãã£ãã«ã®ç¶æ ã«é¢ããããŒã¿ã¯ã5ç§ã«1åïŒããé »ç¹ã«æŽæ°ãããŸãïŒå€ãã®å Žåã察å¿ãããªã³ãŸãã¯ãªããã¿ã³ãæŒããåŸãç¶æ ã®å€åãé·æéåŸ ã€å¿ èŠããªãããã«ååã§ãïŒïŒã
doItïŒïŒé¢æ°ã®åŒã³åºãã¯ãã¿ã³ã§ããã³ã°ãããŸãïŒ
<input type="button" value="" onclick="doIt(701,1,1);">
é¢æ°ãã©ã¡ãŒã¿ãŒïŒã¢ãžã¥ãŒã«çªå·ããã©ã¡ãŒã¿ãŒçªå·ãããã³æ°ããå€ã
ããŒãžã®äžçªäžã«ãã²ãŒããŠã§ã€ã®å¿çã衚瀺ãããŸãã
ããŒãžäžã®ããŒã¿ã¯åèµ·åããã«è¡šç€ºããããã¹ãŠããåç¬ã§ãè¡ãããŸãã
çµæ
- çŸåšãç¡ç·å¶åŸ¡ã¹ã€ããã¯åç¬ã§æ©èœããã ãã§ãªããWebããŒãžããç°¡åã«å¶åŸ¡ã§ããŸãã
- ãŠãããŒãµã«LANã²ãŒããŠã§ã€<=> RF24ãäœæãããŸãããããã«ãããããŸããŸãªå®¶åºçšã¯ã€ã€ã¬ã¹ããã€ã¹ãæäœã§ããŸãã åãç¡ç·ãããã³ã«ã§æ°ããããã€ã¹ãè¿œå ããã ãã§ããã²ãŒããŠã§ã€ã³ãŒããå€æŽããå¿ èŠã¯ãããŸããã
- åŸåŠçïŒããšãã°ãåæãçŸããã°ã©ãã®äœæãªã©ïŒã®ããã®ã»ã³ãµãŒå€ã®æ°žç¶çãªãã°ãæ§æãããŸãã
ãããžã§ã¯ãã®ãããªãçºå±
ãµãŒããŒã§ã¯ãããŸããŸãªã·ããªãªãå®è£ ã§ããè¿œå ã®ããŒã¿åŠçãæŽçã§ããŸãã
äŸïŒã©ãžã³ã³ã¹ã€ããã®ç §æã®ãªã³/ãªããã¿ã³ãé·æŒããããšïŒã¢ãžã¥ãŒã«ãã©ã¡ãŒã¿ãŒã®1ã€ãã1ãã«èšå®ãããŠããããšãæãåºãããŠãã ããïŒããã¹ãŠã®å æºããªãã«ããã¹ã¯ãªãããããªã¬ãŒããŸãïŒåœç¶ãã©ãžã³ã³ãè£ åããå¿ èŠããããŸãïŒã¹ã€ããïŒã
ããã§ããã®ãããã¯ã«é¢ããããã¬ãŒãã³ã°è³æããå®æããŸããã ãæž èŽããããšãããããŸããããã³ãŒã¹ããç¶ããŠããããšãç³ãèš³ãããŸããã
Nikita_Rogatnevãè³æã®åºçæºåã«ååããŠãããããšã«æè¬ããŸãã