物联网示例
这个例子演示了如何使用MQTT来控制GPIO。
注意
这个例子的应用目前只支持Linux或Mac
网络配置
在这个例子中,我们演示了使用Eclipse Mosquitto MQTT代理。确保你已经按照这里的说明安装了Mosquitto:https://mosquitto.org/download/。
备注
你可以修改示例代码以连接到不同的MQTT代理。这样做的时候,你也需要在运行文件系统设置脚本之前修改它们。这是为了确保正确的客户证书、私钥和CA证书被刷新。参见 filesystem_support/create_fs.sh 和下面的文件系统设置说明。
接下来,配置示例软件以连接到适当的MQTT代理。如果你在你的本地电脑上运行MQTT代理,你将需要知道该电脑的IP地址。这可以通过多种方式确定,例如
ifconfig
最后,在appconf.h中,将appconfMQTT_HOSTNAME设置为你的MQTT代理IP地址或URL:
#define appconfMQTT_HOSTNAME "your endpoint here"
构建固件
在xcore_sdk根目录下运行以下命令来构建固件:
- Linux and Mac
cmake -B build -DCMAKE_TOOLCHAIN_FILE=xmos_cmake_toolchain/xs3a.cmake
cd build
make example_freertos_iot
设置硬件
备注
主机应用程序需要创建文件系统。更多信息见SDK安装说明。
在运行演示之前,必须对文件系统进行配置和刷新:
- Linux and Mac
make flash_fs_example_freertos_iot
该脚本将创建TLS凭证,并提示你输入WiFi凭证。
Enter the WiFi network SSID:
Enter the WiFi network password:
Enter the security (0=open, 1=WEP, 2=WPA):
Add another WiFi network? (y/n):
备注
一旦创建了WiFi配置文件,它将自动被使用。如果你需要改变配置文件,请删除networks.dat。
运行固件
从xcore_sdk构建文件夹执行:
- Linux and Mac
make run_example_freertos_iot
测试MQTT消息
运行代理服务器(broker)
从iot实例的根文件夹中运行:
cd mosquitto
mosquitto -v -c mosquitto.conf
备注
你可能需要修改密码证书的权限,以便mosquitto使用它们
发送信息
要打开LED 0:
mosquitto_pub --cafile mqtt_broker_certs/ca.crt --cert mqtt_broker_certs/client.crt --key mqtt_broker_certs/client.key -d -t "explorer/ledctrl" -m "{"LED": "0",: "status": "on"}"
"LED"的支持值为["0", "1", "2", "3"],"status"的支持值为["on", "off"]。