以MQTT连结AMAZONWEBSERVICE物联网
2020-06-17
MQTT 是一个为了物联网而设计的协定,常见的 M2M资料传输方法之一, MQTT 的全名为 Message Queuing Telemetry Transport 。这一套对网路频宽需求相对较低、可以称为「轻量级」的协定是透过一个可靠的「发布/订阅 」模式来做讯息传递,也就是当讯息来源更新之时,有表示想要接受讯息并订阅的使用者就能马上能收到此讯息,而当需要还原资料时可以使用这个协定中 3 种资料传递服务的其中一种─确定一次 、至多一次 、至少一次 。关于 MQTT 的事例有很多,像是 Windows Dev Center 提供用 Visual Studio 来履行 M2Mqtt for .NET client 的例子,读者可以自行参考。
有兴趣打造自己的 M2M 资料传输系统的读者,可以安装 MQTT 中介或 IoT 闸道器,你还可以拥有不只一个 Galileo 或 Edison 电路板帮你蒐集并更新讯息,这些电路板拥有暂时蒐集、储存并处理原始 sensor 资料的初步处理能力,将资料处理成 compact 格式 。
这个文章提供逐步引导,如何以 MQTT 连接亚马逊 AWS ,以及进阶设定指令,与程式码範例。
AWS IoT 初步设定- 若您尚未于 https://aws.amazon.com 拥有帐号,请新建。
- 依照 http://docs.aws.amazon.com/cli/latest/userguide/installing.html. 指示安装 AWS CLI。
- 至 Control Panel 点选 System 。
- 点选 Advanced system settings 。
- 至 Advanced 点选 Environment Variables 。
- 于 User variables for me 方框中,点选 PATH 。
- 点选 New ,加入完整路径至 AWS CLI 的安装目录,点选 OK 。
- 于 System variables 方框中,点选 Path 。
- 若 AWS CLI 安装目录并未列出,重複第 5 步动作。
- 于 Environment Variables 视窗点选 OK 。
- 于 System Properties 视窗点选 OK 。
Note : 为了于 Windows 上方便使用,当使用 AWS CLI 时,请依照此教学后续步骤,複製储存点的目录。

您应得到以下输出:


您应得到以下输出:


您应得到以下输出:

- 提供一个凭证:
您应得到以下输出: - Create/attach 规则:
您应得到以下输出:


您应得到以下输出:

安装凭证至 Intel® Edison board

[email protected] 为您设定在主板上的帐号以及 IP 位置 。
我们将使用 WinSCP 以安装凭证至 Intel® Edison board安装指示请参考 https://github.com/intel-iot-devkit/how-to-code-samples/blob/master/docs/cpp/using-winscp.md.
- 使用 WinSCP 登入您的装置。
- 确定您的 host 机器位于您上次执行 AWS* CLI 指令之目录。
- 複製 cert.pem, privateKey.pem 以及 publicKey.pem 至您 Intel® Edison board 的 /home/root 目录
若您依照上述步骤执行,应已经拥有您的程式与 MQTT 伺服器连接所需资讯:
MQTT_SERVER – 使用您执行 aws iot describe-endpoint 指令取得的 host value 以及 ssl:// 或 mqtts:// protocol
MQTT_CLIENTID -- use < 您的装置名>
MQTT_TOPIC -- use devices/< 您的装置名>
MQTT_CERT -使用装置凭证档案名
MQTT_KEY -使用装置 key 档案名
MQTT_CA – 使用 CA 凭证档案名
在 Intel® Edison board 执行您的 C++程式码时,您需要在 Eclipse 设定 MQTT 客户端参数如下:
1. 于 Run configurations 以及 Commands to execute before application field 里执行以下设定

2. 点选 Apply 存取设定。
3. 点选 Run,于您的主板上执行该程式码。
Javascript 附加设定
下一篇:以MR展现台湾实力解密科技宝藏精彩亮相!