网络配置和MQTT的移植请参阅连老师的
简单的Python网页实现请参考之前的文章
硬件模块:
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的时候,接收/发布消息会有问题
代码目录说明如下
代码中需要配置的地方
1.mqtt_led.c 的MQTT_LED_Task()中
- wifi_connect_ok_flg = start_sta_connect("SSID", strlen("SSID"), "Passwd", strlen("Passwd"));
- //填入你要连接的WIFI SSID和密码
复制代码2.mqtt_fun.h 中填入 你MQTT Broker 的信息
- #define _host "your server ip" //MQTT服务器IP
- #define _port 1883 //端口 默认1883
- #define _interval 180 //保持链接时间s
- #define _client_id "your id" //连接到mqtt服务器的id
- #define _username "usrer" //这个id下的使用的用户名
- #define _password "passwd" //密码
复制代码3.记得在applicationssamplewifi-iotappBUILD.gn 中添加"mqtt_led:mqtt_led",
- import("//build/lite/config/component/lite_component.gni")
- lite_component("app") {
- features = [
- "startup",
- "mqtt_led:mqtt_led",
- ]
- }
复制代码
具体实现有兴趣的朋友可以下载附件代码,学习参考,欢迎帮忙改进指正。
附件代码