鸿蒙设备研发Hi3861-IoT落地-自动门锁
发布时间:2022-04-19 11:02:10 所属栏目:应用 来源:互联网
导读:鸿蒙设备研发Hi3861-IoT落地-自动门锁 1. 项目来源 有一天半夜宿舍门被一个喝晕的哥们打开了,(说他晕吧他居然知道钥匙在门框上)于是有了设计自动门锁的想法。正好一直想用Hi3861做一个iot落地项目【之前挖的坑】,一切刚好! 2. 需求分析 无钥匙进入 手机端
鸿蒙设备研发Hi3861-IoT落地-自动门锁 1. 项目来源 有一天半夜宿舍门被一个喝晕的哥们打开了,(说他晕吧他居然知道钥匙在门框上)于是有了设计自动门锁的想法。正好一直想用Hi3861做一个iot落地项目【之前挖的坑】,一切刚好! 2. 需求分析 无钥匙进入 手机端操作 不影响使用钥匙开门 无损安装、卸载自动开门机构 3.方案设计 3.1 机械结构 典型的曲柄滑块结构。选取了绳索拉动、连杆方案。综合考虑耐用度和安装便携性,选取绳索驱动方案。 使用套壳的方式安装在门锁体上,拉闩自由移动,不影响手动开门。 #星光计划2.0# 鸿蒙设备开发Hi3861-IoT落地-自动门锁(附多案例-鸿蒙HarmonyOS技术社区 3.2 控制逻辑 Hi3861根据web端发送过来的质量控制舵机转动即可。控制信号来源于web端,采用MQTT协议来处理数据,电源使用5V 2A模块,一路单独给舵机。 #星光计划2.0# 鸿蒙设备开发Hi3861-IoT落地-自动门锁(附多案例-鸿蒙HarmonyOS技术社区 4. 软件层 4.1 MQTT移值 这个直接参考连老师的这篇文章【如何在鸿蒙系统中移植 Paho-MQTT 实现MQTT协议】即可,感谢连老师! 本项目只需要将:服务器地址改为自己的IP、订阅自己web端的Topic、提取消息数据。 主要代码如下: 复制 /*连接web端 只展示主要逻辑,完整见附件*/ int mqtt_connect(void) { //0.连接web端 char* payload = "Hello Kun,have a Nice Day!"; int payloadlen = strlen(payload); int len = 0; char *host = "192.168.xxx.xx"; //自己的ip int port = 1883; //mqtt服务端口 mysock = transport_open(host, port); /* 1.订阅web端话题 */ topicString.cstring = "porsche"; if (MQTTPacket_read(buf, buflen, transport_getdata) == SUBACK) /* wait for suback */ { rc = MQTTDeserialize_suback(&submsgid, 1, &subcount, &granted_qos, buf, buflen); } /*2. 循环接收发布者的话题消息 */ 4.2 .舵机控制 Hi3861控制舵机之前【这篇文章】有配置过,调整20ms控制周期内高电平的占空比模拟PWM代码如下,进行了一下简单的封装,使用哪个IO口记得要初始化输出即可。 4.3 业务逻辑 获取web端数据、匹配开门密令是否一致、一致则开门、每次输入密令可以开门三次、也可以一键上锁。 (编辑:东莞站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐