eclipse视频网站开发,海珠做网站要多少钱,建设网站哪些公司好,长春网络推荐杰理芯片的封装简直太香了#xff08;比STM32香多了#xff09;#xff0c;SDK也封装得很好#xff0c;对于我这种手残党简直不要太友好。赶紧学起来#xff0c;快速实现你想要的功能吧#xff01; 芯片选型
杰理AC79
资料文档
环境搭建以及点亮第一盏灯请访问#x… 杰理芯片的封装简直太香了比STM32香多了SDK也封装得很好对于我这种手残党简直不要太友好。赶紧学起来快速实现你想要的功能吧 芯片选型
杰理AC79
资料文档
环境搭建以及点亮第一盏灯请访问
官方文档欢迎使用杰理 JieLi_AC79 开源项目文档 — JL Project Documentation (zh-jieli.com)
版本描述本文SDK使用realse_1.2.0版本
需求描述 现在有很多智能家居可以实现远程操作本文实现需求将LED灯的状态同步到阿里云物联网平台再从平台上下发远程指令开灯和关灯。
实现原理 芯片连上WIFI实现联网功能进入阿里云物联网平台创建产品和设备获得设备号和密码芯片通过MQTT协议将灯的状态同步到物联网平台在物联网平台设置灯的状态为开启或关闭动手能力强的伙伴可以写个APP通过安卓MQTT或IOS来给实现芯片发指令哟~
MQTT协议
MQTTMessage Queuing Telemetry Transport是一种轻量级的消息传输协议设计用于在低带宽和不稳定网络环境下进行高效的通信。以下是MQTT协议的主要特点
发布/订阅模式MQTT采用发布/订阅模式其中客户端可以订阅一个或多个主题Topic而服务器则负责将消息发布到这些主题。这种模式使得多个客户端可以同时接收到感兴趣的消息。
轻量级MQTT协议非常轻量级协议头部信息很小有效减少了网络传输的开销和数据流量。这使得MQTT非常适合在低带宽和有限资源的设备上使用例如物联网设备。
QoS级别MQTT支持三个不同的消息传输质量QoS级别0、1和2。QoS级别决定了消息传输的可靠性和保证程度。较高的QoS级别会增加通信开销但可以提供更可靠的消息传输。
可靠性和持久性MQTT协议具有可靠性和持久性机制。客户端可以选择是否要求服务器保留未传递的消息以便在客户端重新连接时重新发送。这确保了即使在网络中断或重新连接时消息也不会丢失。
安全性MQTT协议支持使用TLS/SSL进行加密和身份验证以确保通信的安全性。这对于保护敏感数据和防止未经授权的访问非常重要。
总结而言MQTT协议是一种灵活、可靠且适用于物联网应用的通信协议。它具有低开销、轻量级和可扩展等特点使得它成为物联网设备之间进行高效通信的理想选择。
阿里云物联网平台配置
基本配置 其他物联网平台也可以因为阿里云可以免费试用的里面的公共实例也可以用对个人开发者友好。绝对不是广告。 https://iot.console.aliyun.com/lk/summary/new 阿里云物联网平台点此访问 阿里云参考的开发文档如何调用Python的Paho MQTT类库将设备接入物联网平台_物联网平台(IoT)-阿里云帮助中心 (aliyun.com)
主要步骤
创建产品、创建设备获取设备证书阅读SDK文档下载Python版本DEMO先用python调通SDK的订阅和发布后续在杰理芯片调试时不易出错千万别省否则等会儿会各种错误修改Python DEMO中的示例代码将自己的产品和设备填上去调通订阅和发布订阅和发布地址见下图 Python Demo 调试
运行pythonDEMO前必须要装依赖库否则会报错
pip install paho-mqtt1.6.1
Python DEMO 要修改的地方 发送的JSON数据组织格式是参照从阿里云调试发过来的JSON数据来的
data {method:thing.service.property.post,id:117116779,params:{PowerSwitch:1,SprayLevel:27,TargetHumidity:88},version:1.0.0}
运行这个python文件在设备中你就可以看到你设置的数据被更新到物联网平台了。 从阿里云下发数据到设备 首先要运行上面的Python DEMO不然你的设备不会在线要设备在线才能发点击【监控运维】-【在线调试】选择你的设备和产品点击【属性调试】输入你要发的属性值点击【设置】然后你就可以看到运行Python DEMO控制台中有日志信息打印出来就代表订阅调通了 订阅成功的日志如下
publish msg: {method: thing.service.property.post, id: 117116779, params: {PowerSwitch: 1, SprayLevel: 27, TargetHumidity: 88}, version: 1.0.0}
receive message ---------- topic is : /sys/k10phTLeV8n/Oy9fCp6wuH2zLcC9LJBB/thing/service/property/set
receive message ---------- payload is : {method:thing.service.property.set,id:1991251952,params:{PowerSwitch:0},version:1.0.0}
reveice property_set command, need to post ---------- topic is: /sys/k10phTLeV8n/Oy9fCp6wuH2zLcC9LJBB/thing/event/property/post
reveice property_set command, need to post ---------- payload is: {params:{PowerSwitch: 0}}
杰理芯片配置
请阅读杰理AC79的文档根据文档来做会快很多。需要阅读【模块例程】中【3. WIFI部分】和【8.网络协议】中关于MQTT CLIENT 部分。
文档连接欢迎使用杰理 JieLi_AC79 开源项目文档 — JL Project Documentation (zh-jieli.com)
DEMO示例工程fw-AC79_AIoT_SDK: Firmware for Generic WiFi Bluetooth Combo SDKAC79 series (gitee.com)
芯片联网
运行DEMO示例发数据给阿里云
从阿里云接收数据点灯
代码实现
常见问题
设备同时只能一个客户端去连接在线如果Python DEMO一直在运行杰理芯片连不上的杰理芯片无法订阅和发布的可能原因有MQTT示例中设备名称、账号密码、订阅地址、发布地址、发送的数据格式、以及USE_MQTT_TEST未在头文件中启用。无法发布数据到阿里云时不要方通过串口检查日志搜索关键字“MQTT”相关的日志看看MQTT有没有被启动如果有“kill for mqtt”类似的说明MQTT配置出错了被芯片杀掉了请按照第二条仔细检查MQTT的配置杰理芯片一定要先联网进入STA模式不联网是不能通过MQTT协议访问阿里云物联网平台的。