【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】MQTT 控制红绿灯的演示与代码分享

描述

本文来源电子发烧友社区,作者:soon顺soon, 帖子地址:https://bbs.elecfans.com/jishu_2016397_1_1.html


网络配置和MQTT的移植请参阅连老师的
如何在鸿蒙系统中移植 Paho-MQTT 实现MQTT协议

简单的Python网页实现请参考之前的文章
用python快速搭建MQTT控制红绿灯测试页面

硬件模块:
1.WF-H861-SSA1 WiFi 模组
2.OLED 显示屏模块
3.智能红绿灯板
功能描述
1.上电OLED显示开机信息
2.OLED 显示屏模块 按键S1控制红灯状态翻转,并在OLED显示提示信息
3.OLED 显示屏模块 按键S2控制黄灯状态翻转,并在OLED显示提示信息
4.智能红绿灯板模块 按键S1控制绿灯状态翻转,并在OLED显示提示信息
5.按下USER按键连接到指定的WIFI,并在OLED显示提示信息
6.连接到指定WIFI 后按下OLED 显示屏模块 按键S1,开启MQTT task和订阅消息,及MQTT 状态检测,并在OLED显示提示信息
7.电脑上运行python webpy页面控制发送MQTT 消息控制红绿灯状态翻转
8.当MQTT连接成功后,LED 状态变换会发布LED状态消息

已知问题
1.由于目前用的MQTT 是单任务的,当刚好在做MQTT ping的时候,接收/发布消息会有问题

代码目录说明如下
HiSpark

代码中需要配置的地方
1.mqtt_led.c 的MQTT_LED_Task()中
  1. wifi_connect_ok_flg = start_sta_connect("SSID", strlen("SSID"), "Passwd", strlen("Passwd"));
  2. //填入你要连接的WIFI SSID和密码
复制代码
2.mqtt_fun.h 中填入 你MQTT Broker 的信息
  1. #define _host "your server ip"       //MQTT服务器IP
  2. #define _port      1883                    //端口 默认1883
  3. #define _interval  180                      //保持链接时间s
  4. #define _client_id "your id"               //连接到mqtt服务器的id
  5. #define _username  "usrer"                  //这个id下的使用的用户名
  6. #define _password  "passwd"              //密码
复制代码
3.记得在applicationssamplewifi-iotappBUILD.gn 中添加"mqtt_led:mqtt_led",
  1.  
  2. import("//build/lite/config/component/lite_component.gni")
  3.  
  4. lite_component("app") {
  5.     features = [
  6.         "startup",
  7.         "mqtt_led:mqtt_led",
  8.     ]
  9. }
复制代码


具体实现有兴趣的朋友可以下载附件代码,学习参考,欢迎帮忙改进指正。

附件代码下载地址,详见作者原文链接。
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分