Intelã¢ãã®ã€ã³ã¿ãŒãããã²ãŒããŠã§ã€ãAmazon Web ServicesïŒAWSïŒã«æ¥ç¶ããNode-REDãšPythonã䜿çšããŠãã®ãã©ãããã©ãŒã ã§åäœããããã«èšèšãããã¢ããªã±ãŒã·ã§ã³ã®äœæãéå§ããæ¹æ³ã«ã€ããŠèª¬æããŸãã ãã®çµæãMQTTãããã³ã«ã䜿çšããŠã²ãŒããŠã§ã€ãããŒã¿ãã¯ã©ãŠãã«éä¿¡ãããã©ããã決å®ããŸãã
è°è«ããå
容ãå®éã«ãã¹ãããã«ã¯ãIDP 3.1以äžã®Intelã€ã³ã¿ãŒãããã²ãŒããŠã§ã€ãã€ã³ã¿ãŒãããæ¥ç¶ãããã³ã²ãŒããŠã§ã€ãžã®ã¿ãŒããã«ã¢ã¯ã»ã¹ãæé
ã§ããã³ã³ãã¥ãŒã¿ãŒãå¿
èŠã§ãã
ã²ãŒããŠã§ã€ãæ§æããå¿
èŠãããå Žåã¯ã
ãã®è³æãåç
§ã
ãŠãã ããã
ã²ãŒããŠã§ã€ãšAWSã®æºå
ã³ã©ãã¬ãŒã·ã§ã³ã®ããã«ã²ãŒããŠã§ã€ãšAWSãæºåããããšããå§ããŸãããã
gatewayã²ãŒããŠã§ã€ãžã®IoT Cloudãªããžããªã®ã€ã³ã¹ããŒã«
ã²ãŒããŠã§ã€ã«IoT Cloudãªããžããªãã€ã³ã¹ããŒã«ããŸãã
- ã¢ãã¿ãšããã«çŽæ¥æ¥ç¶ãããããŒããŒãã®ããããã䜿çšããŠã²ãŒããŠã§ã€ã³ã³ãœãŒã«ã«å
¥ããŸãããŸãã¯ããªã¢ãŒãã³ã³ãã¥ãŒã¿ããSSHçµç±ã§ãããå®è¡ããããšããå§ãããŸãã
- 次ã®ã³ãã³ããå
¥åããŠãã¯ã©ãŠããªããžããªã®GPGããŒãè¿œå ããŸãã
rpm --import http:
- ã³ã³ãã¥ãŒã¿ãŒã§ãã©ãŠã¶ãŒãéããã¢ãã¬ã¹ããŒã«ã²ãŒããŠã§ã€ã®IPã¢ãã¬ã¹ãå
¥åããŠãIntel IoT Gateway Developer Hubã«æ¥ç¶ããŸãã ã²ãŒããŠã§ã€ã®IPã¢ãã¬ã¹ã確èªããã«ã¯ã
ifconfig
ã³ãã³ãã䜿çšã§ããŸãã
- ã¢ã«ãŠã³ãæ
å ±ã䜿çšããŠIoT Gateway Developer Hubã«ãã°ã€ã³ããŸãã ããã©ã«ãã®ãŠãŒã¶ãŒåãšãã¹ã¯ãŒãã¯rootã§ãã
IoT Gateway Developer Hubãžã®ãã°ã€ã³
- IoT CloudãªããžããªãŒãã·ã¹ãã ã«è¿œå ããŸãã
IoT Cloudãªããžããªã®è¿œå
- [ ããã±ãŒãž ]ã»ã¯ã·ã§ã³ã«ç§»åãã[ ã¬ããè¿œå + ]ãã¿ã³ãã¯ãªãã¯ããŸãã
ãªããžããªèšå®ãæ§æãã
- 次ã®ããã«è¡šç€ºããããŠã£ã³ããŠã®ãã£ãŒã«ãã«å
¥åããŸãã
åå ïŒIoT_Cloud
URL ïŒ iotdk.intel.com/repos/iot-cloud/wrlinux7/rcpl13
次ã«ãã ãªããžããªãŒã®è¿œå ããã¿ã³ãã¯ãªãã¯ããŸãã
- æåŸã«ãã ãªããžããªãŒã®æŽæ°ããã¿ã³ãã¯ãªãã¯ããŠãããã±ãŒãžã®ãªã¹ããæŽæ°ããŸãã
gatewayã²ãŒããŠã§ã€ã§ã®AWSãµããŒãã®æ§æ
ã²ãŒããŠã§ã€ã«ã¢ããŸã³ãŠã§ããµãŒãã¹ãè£
åããããã«å¿
èŠãªæé ã¯æ¬¡ã®ãšããã§ãã
- [ ããã±ãŒãžã®è¿œå + ]ãã¿ã³ãã¯ãªãã¯ããŸãã ããã«ãããã€ã³ã¹ããŒã«å¯èœãªããã±ãŒãžã®ãªã¹ãã衚瀺ãããŸãã
ããã±ãŒãžã®ã€ã³ã¹ããŒã«ããã»ã¹ã®éå§
- æ°ããããã±ãŒãžã®è¿œå ãŠã£ã³ããŠã®äžéšã«ããããã¯ã¹ã«å
¥åããŠã cloud-awsããŒã¯ãŒããæ€çŽ¢ããŸãã 次ã«ãç®çã®ããã±ãŒãžãèŠã€ãã£ãã ã packagegroup-cloud-awsãšã³ããªã®å³åŽã«ãã[ã€ã³ã¹ããŒã« ]ãã¿ã³ãã¯ãªãã¯ããŸãã
ããã±ãŒãžã®ã€ã³ã¹ããŒã«
AWSAWSã§ã®ã«ã¹ã¿ãã€ãº
Amazon Web Servicesã§ã¢ã«ãŠã³ãèšå®ãã»ããã¢ããããŸãã ããã¯ãã¯ã©ãŠãã«æ¥ç¶ããããã«å¿
èŠã«ãªããŸãã
- ãã©ãŠã¶ã§ãAWSã³ã³ãœãŒã«ã®ã¢ãã¬ã¹ã«ç§»åãã Amazon Web Sevicesã¢ã«ãŠã³ãã«ãã°ã€ã³ããŸãã
- AWSIoTFullAccessããªã·ãŒãèšå®ããŸãã
AWSã¢ã«ãŠã³ãã®ã¢ã¯ã»ã¹èš±å¯ãæ§æãã
- ãŠã£ã³ããŠã®å³äžéšåã§ã¢ã«ãŠã³ãåãã¯ãªãã¯ããããããããŠã³ã¡ãã¥ãŒãã[ ã»ãã¥ãªãã£èªèšŒæ
å ±]ã³ãã³ããéžæããŸãã
ã»ãã¥ãªãã£èšå®ãžã®ã¢ã¯ã»ã¹ã«é¢ããèŠåã¡ãã»ãŒãž
äžã®å³ã«ç€ºããããã¢ããã¡ãã»ãŒãžã衚瀺ããããã[ ã»ãã¥ãªãã£è³æ Œæ
å ±ã«é²ã ]ãã¿ã³ãã¯ãªãã¯ããŸãã
- ãŠã£ã³ããŠã®å·ŠåŽã§ã[ ãŠãŒã¶ãŒ ]ãªã³ã¯ãã¯ãªãã¯ããŠãAWSã¢ã«ãŠã³ãã®ãŠãŒã¶ãŒã®ãªã¹ãã衚瀺ããŸãã ãªã¹ãã«ãŠãŒã¶ãŒãããªãå Žåã¯ã[æ°ãããŠãŒã¶ãŒãäœæ ]ãã¿ã³ãã¯ãªãã¯ããæ°ãããŠãŒã¶ãŒã®ååãå
¥åããŠ[ äœæ ]ãã¿ã³ãã¯ãªãã¯ããŸã ã ãã®åŸãäœæããããŠãŒã¶ãŒã®ã¬ã³ãŒãããªã¹ãã«è¡šç€ºãããŸãã
AWSã¢ã«ãŠã³ãã«æ°ãããŠãŒã¶ãŒãè¿œå ãã
- ãŠãŒã¶ãŒåãã¯ãªãã¯ããŠã圌ã«é¢ããæ
å ±ãå«ãããŒãžã衚瀺ããŸãã [ ã¢ã¯ã»ã¹èš±å¯ ]ã¿ããéžæãã[ ããªã·ãŒã®æ·»ä» ]ãã¿ã³ãã¯ãªãã¯ããŸãã
ãŠãŒã¶ãŒãžã®ã»ãã¥ãªãã£ããªã·ãŒã®å²ãåœãŠãéå§ããŸã
- ãªã¹ãã§AWSIoTFullAccessããªã·ãŒãèŠã€ããŸãã ããªã·ãŒã®ååã®æšªã«ãããã§ãã¯ããã¯ã¹ããªã³ã«ãã[ ããªã·ãŒãã¢ã¿ãã ]ãã¿ã³ãã¯ãªãã¯ããŠãŠãŒã¶ãŒã«å²ãåœãŠãŸãã
ãŠãŒã¶ãŒãžã®ã»ãã¥ãªãã£ããªã·ãŒã®å²ãåœãŠ
- ããã€ã¹ã®ãã¹ããŒãäœæããŸãã
- ãŠãŒã¶ãŒã®è©³çŽ°ç»é¢ã«æ»ãã[ ã»ãã¥ãªãã£è³æ Œæ
å ± ]ã¿ãã®[ ã¢ã¯ã»ã¹ããŒã®äœæ ]ãã¿ã³ãã¯ãªãã¯ããŸãã
ããã€ã¹ã®ãã¹ããŒãäœæãã
ãã®åŸãåãŠãŒã¶ãŒã«åºæã®ããŒãã¢ãå«ããŠã£ã³ããŠã衚瀺ãããŸãã [ ã·ãŒã¯ã¬ããã¢ã¯ã»ã¹ããŒ]ãã£ãŒã«ãã«è¡šç€ºãããããŒã¯1åã ã衚瀺ããããŠã£ã³ããŠãéãããšè¡šç€ºãããªããªããŸãã ããã¯ãå€ãããŒãäœæãããåŸãã©ãã«ãä¿åããŠããªãå Žåãã·ã¹ãã ã«åã¢ã¯ã»ã¹ããããã«æ°ããããŒãçæããå¿
èŠãããããšãæå³ããŸãã
ãã¹ããŒãäœæ
泚æïŒ æ¬¡ã®ã»ã¯ã·ã§ã³ã®æé ãå®äºãããŸã§ããã®ãŠã£ã³ããŠãéããªãã§ãã ããã
Gatewayã²ãŒããŠã§ã€ã®èšå®
ã³ãã³ããç°¡åã«ã³ããŒããã«ã¯ãSSHçµç±ã§ã²ãŒããŠã§ã€ã«æ¥ç¶ããããIoT Gateway Developer Hubã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããŠã³ãã³ãã©ã€ã³ã䜿çšããããšããå§ãããŸãã 次ã®ã»ã¯ã·ã§ã³ã§ãã¢ãã¿ãŒãšããŒããŒãã䜿çšããŠã²ãŒããŠã§ã€ã«çŽæ¥æ¥ç¶ããŠã³ãã³ãã©ã€ã³ãæäœããå Žåã¯ããã¹ããŒãšã·ãŒã¯ã¬ããããŒãæåã§å
¥åããå¿
èŠããããŸãã
- ã²ãŒããŠã§ã€ã«ãŠãŒã¶ãŒè³æ Œæ
å ±ãè¿œå ããŸãã ãããè¡ãã«ã¯ã次ã®ã³ãã³ããå
¥åããŸãã
aws configure
ããã«å¿ããŠãã·ã¹ãã ã¯æ¬¡ã®å
¥åãæ±ããããã³ããã衚瀺ããŸãã
- AWSã¢ã¯ã»ã¹ããŒID ïŒæ°ããçæãããã¢ã¯ã»ã¹ããŒIDãã¢ã¯ã»ã¹ããŒã
- AWSã·ãŒã¯ã¬ããã¢ã¯ã»ã¹ã㌠ïŒã·ãŒã¯ã¬ããã¢ã¯ã»ã¹ããŒãçæãããã¢ã¯ã»ã¹ããŒã«äžèŽããã·ãŒã¯ã¬ããããŒã
- ããã©ã«ãã®å°å ïŒ ããã§å°åã®ãªã¹ããèŠã€ããããšãã§ããŸãïŒããšãã°ãeu-west-1ïŒ
- ããã©ã«ãã®åºååœ¢åŒ ïŒããã§ã¯æšæºèšå®ãé©ããŠããããã EnterãæŒããŸãã
- AWSã€ã³ã¹ã¿ã³ã¹ã«é¢é£ä»ããããããã®ããäœæããŸãã ãããè¡ãã«ã¯ãã²ãŒããŠã§ã€ã§æ¬¡ã®ã³ãã³ããå
¥åããŸãã
aws iot create-thing
ããã®ãã®è¿œå ãæåãããšãäžå³ã«ç€ºããããªæ
å ±ãã³ã³ãœãŒã«ã«è¡šç€ºãããŸãã
ãã¢ããã®äœæã«æå
- èš±å¯ãèšå®ããŸãã ãããè¡ãã«ã¯ãã³ã³ãœãŒã«ã§æ¬¡ã®ã³ãã³ããå
¥åããŠãAWSã€ã³ã¹ã¿ã³ã¹ã®æ°ããã¢ã¯ã»ã¹èš±å¯ããªã·ãŒãäœæããŸãã
aws iot create-policy --policy-name gateway-policy --policy-document '{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action":["iot:*"], "Resource": ["*"] }] }'
ã³ã³ãœãŒã«ã®ã¡ãã»ãŒãžã«ãããããªã·ãŒãæ£åžžã«è¿œå ãããããšã確èªã§ããŸãã
ããªã·ãŒãè¿œå ããŸãã
- ããã®ãã®ããŒãšèšŒææžãäœæããŸãã ãããè¡ãã«ã¯ã次ã®ã³ãã³ããå
¥åããŸããããã«ãããAWSãšã®ããåããæŽçããããã«å¿
èŠãªããŒãšèšŒææžãäœæãããŸãã
wget -O rootCA.pem https://www.symantec.com/content/en/us/enterprise/verisign/roots/VeriSign-Class%203-Public-Primary-Certification-Authority-G5.pem aws iot create-keys-and-certificate
ãã¹ãŠãæ£åžžã«å®è¡ããããšã以äžã«ç€ºããããªã¡ãã»ãŒãžãã³ã³ãœãŒã«ã«è¡šç€ºãããŸãã ãããã®åŸã«ãJSONããŒã¿ã®å€§ããªãã©ã°ã¡ã³ããç¶ããŸãã äœæ¥ãç¶è¡ããã«ã¯ãæåã«ããcertificateArnãã©ã¡ãŒã¿ãŒã®ã¿ãå¿
èŠã§ãã
éµãšèšŒææžãæ£åžžã«è¿œå ããŸã
- ããã§ãããªã·ãŒãšèšŒææžããã€ã³ãããå¿
èŠããããŸãã ãããè¡ãã«ã¯ã次ã®ã³ãã³ãã䜿çšããŸãã
aws iot attach-principal-policy --policy-name ${POLICY_NAME} âprincipal ${CERTIFICATE_ARN}
åã®æé ã§ååŸããããªã·ãŒåïŒããšãã°ã gateway-policy ïŒããã³certificateArnå€ãæ£ããå
¥åãããŠããããšã確èªããŸãã ããã¯ãã¹ãŠæ¬¡ã®ããã«ãªããŸãã
aws iot attach-principal-policy --policy-name gateway-policy --principal arn:aws:iot:eu-west-1:681450608718:cert/122c86b84c6e0b919353882c03ca37385855897e16804438a20d44b3f9934cb3
- AWS IoTã³ã³ãœãŒã«ã§ããã€ã¹ã確èªããŸãã ãããè¡ãã«ã¯ãããŒãžã®å·Šäžã«ããAWSã¢ã€ã³ã³ãã¯ãªãã¯ããŠãã³ã³ãœãŒã«ã®ããŒã ç»é¢ã«ç§»åããŸãã 次ã«ãã²ãŒããŠã§ã€ã®æ§æã«äœ¿çšãããå°åïŒã¢ã€ã«ã©ã³ããªã©ïŒãå³äžé
ã§éžæãããŠããããšã確èªããŸãã 次ã«ããªã¹ãå
ã®AWS IoTãµãŒãã¹ã¢ã€ã³ã³ãã¯ãªãã¯ããŸãã
AWSããŒã ç»é¢ãAWS IoTãžã®ç§»è¡
ããã§ãAWS IoTã³ã³ãããŒã«ããã«ã«ãäœæããããã®ããšãäžèšã§èšå®ããããªã·ãŒãšèšŒææžã衚瀺ãããŸãã
AWSã³ã³ãããŒã«ããã«
ãã®æ®µéã§ãã²ãŒããŠã§ã€ãèšå®ããåŸãAWSãšããŒã¿ã亀æã§ããŸãã 次ã«ãã²ãŒããŠã§ã€ãšã¯ã©ãŠãã®çžäºäœçšã®2ã€ã®ãªãã·ã§ã³ãNode-REDãšPythonã®äœ¿çšãæ€èšããŸãã åè¿°ã®ã¢ããªã±ãŒã·ã§ã³éçºãã©ãããã©ãŒã ã®ãããã1ã€ã ãã«èå³ãããå Žåã¯ãããå°çšã®ã»ã¯ã·ã§ã³ã®ã¿ãèªãããšãã§ããŸãã
AWS IoTãšã®çžäºäœçšã ããŒãã¬ãã
Node-REDç°å¢ã§ã®äœæ¥ãéå§ããã«ã¯ãOSã®ææ°ããŒãžã§ã³ã䜿çšããŠããããšã確èªããå¿
èŠããããŸãã AWSã«ã¯Node-RED 0.14.xãå¿
èŠã§ãã
âAWSã®ã»ããã¢ãã
AWSã³ã³ãœãŒã«ã䜿çšããŠãAWSãšã²ãŒããŠã§ã€éã®çžäºäœçšãå¶åŸ¡ã§ããŸãã
- AWS IoTã³ã³ãœãŒã«ã§ããŠã£ã³ããŠã®å³äžã«ããMQTT Clientãªã³ã¯ãã¯ãªãã¯ããŸãã
MQTTã¯ã©ã€ã¢ã³ããªã³ã¯
- ãMQTT ClientããŠã£ã³ããŠã§ã以åã«å²ãåœãŠãããããã®ãã®ååïŒäŸãã°ã gateway-test-01 ïŒãå
¥åããã æ¥ç¶ããã¿ã³ãã¯ãªãã¯ããŸãã
ããã®ããžã®æ¥ç¶
AWSãã²ãŒããŠã§ã€ãšéä¿¡ã§ããå Žåãæ¥ç¶ã¹ããŒã¿ã¹ã¡ãã»ãŒãžã¯æ¥ç¶æžã¿ã«å€ãããç·è²ã«å€ãããŸãã
AWSã²ãŒããŠã§ã€ã®æ¥ç¶ã¹ããŒã¿ã¹
- ã MQTT Client Actionsãã°ã«ãŒãã®ã Subscribe to topicããªã³ã¯ãã¯ãªãã¯ããŸãã
MQTTããŒããµãã¹ã¯ãªãã·ã§ã³ããã»ã¹ã®éå§
- [ ãµãã¹ã¯ãªãã·ã§ã³ãããã¯]ãã£ãŒã«ãã«ã
sdk/test/nodered
ãšå
¥åãã[ ãµãã¹ã¯ sdk/test/nodered
]ãã¿ã³ãã¯ãªãã¯ããŸãã
ãããã¯è³Œèª
ããã§ãã²ãŒããŠã§ã€ã«ãã£ãŠsdk / test / noderedãããã¯ã«æçš¿ãããã¡ãã»ãŒãžãã¡ãã»ãŒãžãŠã£ã³ããŠã«è¡šç€ºãããŸãã
ã²ãŒããŠã§ã€ããåä¿¡ããã¡ãã»ãŒãžã衚瀺ãããŠã£ã³ããŠ
NodeNode-REDã€ã³ã¿ãŒãã§ãŒã¹ãããŠã³ããŒããã
Node-REDãŠã£ã³ããŠãéãã«ã¯ã
IoT Gateway Developer Hub㮠管çã»ã¯ã·ã§ã³ã«ç§»åããå¿
èŠããããŸãã ããã§ã
Node-REDã¢ã€ã³ã³ã®äžã«ãã[
èµ·å ]ãã¿ã³ãã¯ãªãã¯ããŸãã
Node-REDãèµ·åããapplicationã¢ããªã±ãŒã·ã§ã³ãããŒãã£ãŒãã®èšå®
- mqttããã©ãã°ãã å·ŠåŽã«ããããŒãããã«ããçŸåšã®ã·ãŒãã«ããŒããæ¿å
¥ããŸãã ç®çã®ããŒãã衚瀺ãããŠããªãå Žåã¯ãããã«ãã¹ã¯ããŒã«ããŸãã
ããŒãã®æ¿å
¥ãšmqtt
- 次ã®å³ã«ç€ºãããã«ããŠã£ã³ããŠå
ã§ããŒããé
眮ããŠæ¥ç¶ããŸãã ã¿ã€ã ã¹ã¿ã³ãã«ååãå€æŽããã泚å
¥ããŒãããããæå®ãããééã§ãçŸåšã®æå»ã«é¢ããæ
å ±ãmqttããŒãã«éä¿¡ããŸãã mqttããŒã㯠ãåä¿¡ããããŒã¿ãMQTTãããŒã«ãŒã«éä¿¡ããŸãã ãã®å Žåã AWS IoTã«ãªããŸãã ããŒãããããã¯å³ã«é
眮ããŠæ¥ç¶ããããæ§æããå¿
èŠããããŸãã
Node-REDããŒãã®ã¬ã€ã¢ãŠããšãªã³ã¯å³
- ã€ã³ãžã§ã¯ãããŒããæ§æããã«ã¯ïŒçµæãšããŠã¿ã€ã ã¹ã¿ã³ãããŒãã«ãªããŸãïŒããããããã«ã¯ãªãã¯ããå¿
èŠããããŸããããã«ããããã€ã¢ãã°ããã¯ã¹ã衚瀺ãããŸãã äžã®å³ã«åãããŠã[ å®äº ]ãã¿ã³ãã¯ãªãã¯ããå¿
èŠããããŸãã ãããã®èšå®ã«ãããããŒãã¯5ç§ããšã«ããŒã¿ãéä¿¡ããŸãã
泚å
¥ããŒããæ§æãã
- mqttããŒããæ§æããã«ã¯ãããŒããããã«ã¯ãªãã¯ããèšå®ãŠã£ã³ããŠã§[ ãµãŒããŒ]ãã£ãŒã«ãã®[ç·šé]ãã¿ã³ãã¯ãªãã¯ããŸã ã
mqttããŒãã®æ§æãéå§ããŸã
- 次ã®å³ã«ç€ºãããã«ãMQTTæ¥ç¶ã®èšå®ãå
¥åããŸãã ç¬èªã®ãµãŒããŒURLãå
¥åããå¿
èŠããããŸãã ä»ãããªãã¯ãããã©ãã§æã«å
¥ããããèŠã€ããŸãã
mqttããŒãã®æ§æããµãŒããŒæ
å ±ã®å
¥å
- AWSã¡ãã»ãŒãžãéä¿¡ããããã®ãµãŒããŒã¢ãã¬ã¹ãååŸããã«ã¯ã次ã®ã³ãã³ããå
¥åããŸãã
aws iot describe-endpoint
ããã«å¿ããŠãã¢ãã¬ã¹æ
å ±ãã³ã³ãœãŒã«ã«è¡šç€ºãããŸãã ã€ãŸãã endpointAddressãã©ã¡ãŒã¿ãŒã«ã¯ãMQTTæ¥ç¶ãæ§æããããã«å¿
èŠãªãµãŒããŒã¢ãã¬ã¹ãå«ãŸããŸãã
ã³ã³ãœãŒã«ã®ãµãŒããŒã¢ãã¬ã¹
åŒçšç¬Šã§å²ãŸããURLãã³ããŒããŠã[ ãµãŒããŒ]ãã£ãŒã«ãã«è²Œãä»ããŸãã [ ããŒã]ãã£ãŒã«ãã¯ç©ºã§ãªããã°ãªããªãããšã«æ³šæããŠãã ããã
次ã«ãæ¥ç¶ã»ãã¥ãªãã£èšå®ãæ§æããå¿
èŠããããŸãã ãããè¡ãåã«ã ã»ãã¥ã¢ïŒSSL / TLSïŒæ¥ç¶ãæå¹ã«ãããã©ã°ãæå¹ã«ããŠããã TLSæ§æã»ã¯ã·ã§ã³ã®æåŸã«ããç·šéã¢ã€ã³ã³ãã¯ãªãã¯ããå¿
èŠããããŸã ã
- 以äžã«ç€ºããŠã£ã³ããŠã§ãèšå®ãæ§æããå¿
èŠããããŸãã ã€ãŸãã以åã«çæãããããŒããã³èšŒææžãã¡ã€ã«ãžã®ãã¹ãæå®ããå¿
èŠããããŸãã
ããŒããã³èšŒææžãã¡ã€ã«ãžã®ãã¹ã®æ§æ
- [ 蚌ææž]ãã£ãŒã«ãã«ã以åã«çæããã
cert.pem
ãã¡ã€ã«ãžã®ãã¹ãå
¥åããŸãã
- [ ãã©ã€ããŒãããŒ]ãã£ãŒã«ãã§ã
privkey.pem
ãžã®ãã¹ã ãã®ãã¡ã€ã«ãçæãããŸããã
- [ CA蚌ææž]ãã£ãŒã«ãã§ãããŠã³ããŒãããå¿
èŠããã
rootCA.pem
ãã¡ã€ã«ãžã®ãã¹ã
ãã¹ãŠã®èšŒææžãšããŒã¯åããã£ã¬ã¯ããªã«ä¿åããå¿
èŠããããŸãã ããã©ã«ãã§ã¯ãã²ãŒããŠã§ã€ã«æ¥ç¶ããŠäœãå€æŽããªãã£ãå Žåãããã¯/ rootã§ãã
ããã«ããµã³ãã«ã®å
¥åãã£ãŒã«ããã©ã®ããã«èŠãããã瀺ããŸãã
éµãã¡ã€ã«ãšèšŒææžãã¡ã€ã«ã®å
¥åãã¹ãã£ãŒã«ã
- æ§æãå®äºãããã[ è¿œå ]ãã¿ã³ãã¯ãªãã¯ããŠTLSæ§æãä¿åããŸãã ã»ããã¢ããç»é¢ã¯æ¬¡ã®ç»åã®ããã«ãªããŸãã
ã»ããã¢ããã®å®äº
- ããã§ã»ãŒãã¹ãŠã®æºåãæŽããŸããã ã¡ãã»ãŒãžãéä¿¡ããäºå®ã®ãããã¯ã®ååãå
¥åããã ãã§ãã å
¥åãããããã¯ã¯ãAWSã³ã³ãããŒã«ããã«ã§MQTTã¯ã©ã€ã¢ã³ããã»ããã¢ããããŠä»¥åã«ãµã€ã³ã¢ãããããããã¯ã«å¯Ÿå¿ããå¿
èŠãããããã[ ããã㯠]ãã£ãŒã«ãã«
sdk/test/nodered
è¡ãå
¥åãã[ å®äº ]ãã¿ã³ãã¯ãªãã¯ããå¿
èŠããããŸãã
MQTTããŒãã®æ§æ
Node-REDã¢ããªã±ãŒã·ã§ã³ãæ§æããããããã€ã®æºåãæŽããŸããã
applicationã¢ããªã±ãŒã·ã§ã³ã®å±éãšæ€èšŒ
- Node-REDãŠã£ã³ããŠã®å³äžé
ã«ãã[ ããã〠]ãã¿ã³ãã¯ãªãã¯ããŸãã å±éã®ç¢ºèªãæ±ãããŠã£ã³ããŠã衚瀺ããããããã®ãŠã£ã³ããŠã®[å±éã®ç¢ºèª ]ãã¿ã³ãã¯ãªãã¯ããŸãã
Node-REDã¢ããªã±ãŒã·ã§ã³ã®å±é
MQTTããŒããæ£åžžã«æ§æãããŠããå Žåããã®äžã«ã æ¥ç¶ãããããšããåèªã®ä»ããç·ã®ã€ã³ãžã±ãŒã¿ãŒã衚瀺ãããŸãã
MqttããŒãã®ç¶æ
- ãã¹ãŠãæ£ããæ©èœããŠããããšã確èªããã«ã¯ãAWSã³ã³ãããŒã«ããã«ã®MQTTã¯ã©ã€ã¢ã³ãã¡ãã»ãŒãžãŠã£ã³ããŠã«æ»ããŸãã æ°ããæçš¿ãããã¯ãã§ãã
AWS MQTTã¯ã©ã€ã¢ã³ããŠã£ã³ããŠã®æ°ããã¡ãã»ãŒãž
Node-REDã䜿çšããŠAWSã«ããŒã¿ãéä¿¡ããããã«èšå®ããŸããã Pythonã䜿çšããŠåãããã»ã¹ãæŽçããŸãããã
AWS IoTãšã®çžäºäœçšã Python
AWSãšããåãããããã«ã²ãŒããŠã§ã€ãæ§æããããPythonã¹ã¯ãªããã䜿çšããŠã¯ã©ãŠãã§åäœããããã«ã²ãŒããŠã§ã€ãæºåã§ããŸãã ãã®ãããªã¹ã¯ãªããã«ã¯å€ãã®äŸããããæè²ç®çãã·ã¹ãã ã®ãã¹ãã«äœ¿çšã§ããŸãã
âAWSã®ã»ããã¢ãã
- AWS IoTã³ã³ãœãŒã«ã§ãããã°ã©ã ãŠã£ã³ããŠã®å³äžéšåã«ããMQTTã¯ã©ã€ã¢ã³ããªã³ã¯ãã¯ãªãã¯ããŸãã
MQTTã¯ã©ã€ã¢ã³ããªã³ã¯
- ãMQTT ClientããŠã£ã³ããŠã§ã以åã«ã²ãŒããŠã§ã€ã«å²ãåœãŠãããããã®ãã®ååïŒããšãã°ã gateway-test-01 ïŒãå
¥åããã æ¥ç¶ããã¿ã³ãã¯ãªãã¯ããŸãã
ããã®ããžã®æ¥ç¶
AWSãã²ãŒããŠã§ã€ãšéä¿¡ã§ããå Žåãæ¥ç¶ã¹ããŒã¿ã¹ã¡ãã»ãŒãžã¯æ¥ç¶æžã¿ã«å€ãããç·è²ã«å€ãããŸãã
AWSã²ãŒããŠã§ã€ã®æ¥ç¶ã¹ããŒã¿ã¹
- [ MQTT Client Actions ]ã»ã¯ã·ã§ã³ã§ã[ Subscribe to topic ]ãã¯ãªãã¯ããŸãã
MQTTãµãã¹ã¯ãªãã·ã§ã³ãéå§ãã
- [ ãµãã¹ã¯ãªãã·ã§ã³ãããã¯]ãã£ãŒã«ãã«ã
sdk/test/Python
ãšå
¥åãã[ ãµãã¹ã¯ã©ã€ã ]ãã¿ã³ãã¯ãªãã¯ããŸãã
MQTTãµãã¹ã¯ãªãã·ã§ã³ãã»ããã¢ãããã
ã²ãŒããŠã§ã€ããåä¿¡ããã¡ãã»ãŒãžã¯ãã¡ãã»ãŒãžãŠã£ã³ããŠã§è¡šç€ºã§ããŸãã
ã¡ãã»ãŒãžããã¯ã¹
gatewayã²ãŒããŠã§ã€ããã¡ãã»ãŒãžãéä¿¡
- ã²ãŒããŠã§ã€ããMQTTã¡ãã»ãŒãžãéä¿¡ããããã«å¿
èŠãªãµãŒããŒã¢ãã¬ã¹ã確èªããã«ã¯ã次ã®ã³ãã³ããå®è¡ããŸãã
aws iot describe-endpoint
å¿çãšããŠã endpointAddressãã©ã¡ãŒã¿ãŒã®å€ãååŸããŸããããã«ã¯ãå¿
èŠãªãã®ãå«ãŸããŠããŸãã ã¢ãã¬ã¹ããŒãåŒçšç¬Šã§å²ãã§ã³ããŒããŸãã
ãµãŒããŒã¢ãã¬ã¹
- AWSã§ã®äœæ¥ã®äŸãå«ããã©ã«ããŒã«ç§»åããŸãã ããšãã°ããã®å Žåãããã«ã¯æ¬¡ã®ã³ãã³ããå¿
èŠã§ããã
cd /usr/share/awsiotsdk/samples/python/
- 次ã®ãããªã³ãã³ãã䜿çšããŠãã³ãŒãäŸã®1ã€ãå®è¡ããŸãã
python basicPubSub.py -e [ENDPOINT] -r [ROOTCA_PATH] -c [CERT_PATH] âk [PRIVATE_KEY_PATH]
ã¹ã¯ãªããåŒã³åºããã©ã¡ãŒã¿ãŒãèšå®ããæ¹æ³ã¯æ¬¡ã®ãšããã§ãã
- ãšã³ããã€ã³ã ïŒäžèšã§èŠã€ãããµãŒããŒã¢ãã¬ã¹ã
- ROOTCA_PATH ïŒä»¥åã«ããŠã³ããŒãããrootCA.pemãã¡ã€ã«ãžã®ãã¹ã
- CERT_PATH ïŒä»¥åã«çæãããcert.pemãã¡ã€ã«ãžã®ãã¹ã
- PRIVATE_KEY_PATH ïŒä»¥åã«çæãããprivkey.pemãã¡ã€ã«ãžã®ãã¹ã
蚌ææžãšããŒãã¡ã€ã«ã¯åããã£ã¬ã¯ããªã«é
眮ããå¿
èŠããããŸãã ã²ãŒããŠã§ã€ã«æ¥ç¶ããŠäœãå€æŽããŠããªãå Žåãããã©ã«ãã¯/ rootãŸãã¯$ HOMEã§ãã
ãã®å Žåãäžèšã®ã³ãã³ãã¯æ¬¡ã®ããã«ãªããŸããã
python basicPubSub.py -e a1gx5hswnkj6kf.iot.eu-west-1.amazonaws.com -r $HOME/rootCA.pem -c $HOME/cert.pem -k $HOME/privkey.pem
ãµã³ãã«ã¢ããªã±ãŒã·ã§ã³ãæ©èœããŠããå Žåãäžã®å³ã«ç€ºããããªããŒã¿ãã³ã³ãœãŒã«ã«è¡šç€ºãããŸãã ããã¯ãMQTTã¡ãã»ãŒãžãsdk / test / Pythonãããã¯ã«éä¿¡ãããŠããããšã瀺ããŠããŸãã
Pythonã¹ã¯ãªããããã®ã¡ãã»ãŒãž
- AWSããããã®ã¡ãã»ãŒãžãæ¬åœã«åä¿¡ãããã©ããã確èªããã«ã¯ãAWSãŠã§ããµã€ãã®ã¡ãã»ãŒãžãŠã£ã³ããŠã«æ»ãå¿
èŠããããŸãã æ°ããæçš¿ãããã¯ãã§ãã
ã²ãŒããŠã§ã€ããéä¿¡ãããæ°ããã¡ãã»ãŒãž
ãã®çµæãAWS IoTã«æ¥ç¶ãããã²ãŒããŠã§ã€ã§ã¯ã©ãŠããšå¯Ÿè©±ããPythonã¹ã¯ãªãããå®è¡ã§ããŸãã
çµè«
ã¯ã©ãŠãéšåã¯ãå€ãã®IoTã·ã¹ãã ã§éèŠãªåœ¹å²ãæãããŸãã ãã®ã¬ã€ããç¿åŸããã®ã§ãIntel IoTã²ãŒããŠã§ã€ãAmazon Web Servicesã«æ¥ç¶ããNode-REDãŸãã¯Pythonã§ã¯ã©ãŠããµãŒãã¹ãšé£æºã§ããã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸãã