0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】[soon][三]用python快速搭建MQTT控制红绿灯测试页面

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-11-04 16:36 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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


本文分享一种利用python搭建MQTT控制WIFI-IoT的红绿灯测试web页面的方法,实现按下 web页面按键后会发布topic为ledstatus,payload分别为RedLED、YellowLED、GreenLED的消息,如果刚好有兴趣的可以参考下。

WIFI-IoT上收到消息后反转对应LED 状态的相关代码,参阅
一、相关的软件和python库安装
ubuntu20.04中搭建MQTT Broker的指令如下
  1. sudo apt-get install mosquitto
  2. sudo apt-get install mosquitto-clients
  3. sudo apt-get install mosquitto-dev
复制代码
Ubuntu下用python搭建web会用到的库安装指令如下
  1. pip3 install paho.mqtt
  2. pip3 install web.py
复制代码
如果是在windows下mqtt的包安装要换成如下
  1. pip install web.py
  2. pip install paho-mqtt
复制代码
二、用html写个简单的页面"key.html"如下
    • Wifi-loT测试页面
    • Soon-Wifi-loT
  1. tion="/RedLED" method="POST">
复制代码

页面比较简洁只有标题和三个按键

三、Python相关代码如下
  1. import web
  2. import paho.mqtt.client
  3. import time
  4. HOSTNAME ="xxxxxx"#请填入你的Broker地址/可以是你局域网ubuntu虚拟机IP,或者云服务器地址
  5. MQTTPORT = 1883#默认1883 具体看你Broker配置
  6. USERNAME ="xxxxxx" #请填入用户名
  7. PASSWD="xxxxxx"#请填入用密码
  8. HTML_PAGE = "key.html"
  9. TOPICE = "ledstatus"
  10. mqtt = paho.mqtt.client
  11. urls = (
  12. '/RedLED', 'RedLED',
  13. '/YellowLED', 'YellowLED',
  14. '/GreenLED', 'GreenLED',
  15. '/(.*)', 'Wifi_lOT_home'
  16. )
  17. app = web.application(urls, globals())
  18. client_id = time.strftime('%Y%m%d%H%M%S',time.localtime(time.time()))
  19. client = mqtt.Client(client_id) # ClientId不能重复,所以使用当前时间
  20. # publish 消息
  21. def on_publish(topic, payload, qos):
  22. client.username_pw_set(USERNAME, PASSWD)# 必须设置,否则会返回「Connected with result code 4」
  23. client.connect(HOSTNAME, MQTTPORT, 60)
  24. client.publish(topic, payload, qos)
  25. class Wifi_lOT_home:
  26. def GET(self, name):
  27. file = open(HTML_PAGE, "rb+")
  28. return file.read()
  29. def POST(self):
  30. print ("test soon")
  31. class RedLED:
  32. def POST(self):
  33. print ("RedLED POST")
  34. on_publish(TOPICE, "RedLED".encode(),0)
  35. file = open(HTML_PAGE, "rb+")
  36. return file.read()
  37. class YellowLED:
  38. def POST(self):
  39. print ("YellowLED POST")
  40. on_publish(TOPICE,"YellowLED".encode(),0)
  41. file = open(HTML_PAGE, "rb+")
  42. return file.read()
  43. class GreenLED:
  44. def POST(self):
  45. print ("GreenLED POST")
  46. on_publish(TOPICE,"GreenLED".encode(),0)
  47. file = open(HTML_PAGE, "rb+")
  48. return file.read()
  49. if __name__ == "__main__":
  50. app.run()
复制代码

四、运行指令和效果
运行指令python3 -u xxxxxx.py 端口,如 python3 -u keyEvent.py 8080
然后在浏览器输入http://localhost:8080/或者http://(ubuntu IP/server IP):8080/ 就能看到以下页面

203233ll7l1l6ocgcn1ldl.png


附相关代码下载
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • wi-fi
    +关注

    关注

    15

    文章

    2379

    浏览量

    128898
  • HarmonyOS
    +关注

    关注

    80

    文章

    2146

    浏览量

    35574
  • HiSpark
    +关注

    关注

    1

    文章

    156

    浏览量

    7688
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【EASY EAI Nano-TB(RV1126B)开发板试用】命令行功能测试-shell脚本进行IO控制-红绿灯按钮项目

    0接上文【EASY EAI Nano-TB(RV1126B)开发板试用】命令行功能测试-shell脚本进行IO控制-红绿灯项目-实现开机起动 EASYEAINano-TB(RV1126
    发表于 11-03 10:00

    【EASY EAI Nano-TB(RV1126B)开发板试用】命令行功能测试-shell脚本进行IO控制-红绿灯项目

    Nano-TB(RV1126B)开发板,通过GPIO控制实现红绿灯板的种颜色LED灯交替闪烁功能。开发板使用SSH进行远程控制通过WiFi连接。 硬件 EASY EAI Nano-
    发表于 11-02 18:34

    浅谈Wi-Fi 6E与Wi-Fi 7的关键器件——BAW滤波器新技术

    ,美国联邦通信委员会(FCC)投票通过将6GHz频谱划为免许可频段供Wi-Fi使用,这标志着Wi-Fi正式进入“频”时代——除Wi-Fi 6及前代技术使用的2.4GHz和5GHz频段
    发表于 09-19 18:29 1320次阅读
    浅谈<b class='flag-5'>Wi-Fi</b> 6E与<b class='flag-5'>Wi-Fi</b> 7的关键器件——BAW滤波器新技术

    如何更新 NuMaker IoT 板上的 Wi-Fi 模块固件?

    更新 NuMaker IoT 板上的 Wi-Fi 模块固件
    发表于 09-04 08:28

    基于 SSID 的 Wi-Fi 定位:与其他定位服务的性能比较

    导航卫星系统(GNSS)的重要补充,尤其是在建筑物和密集城区,GNSS 可能会因信号衰减和中断而失效。 本博文将介绍我们基于 SSID 的 Wi-Fi 定位解决方案的工作原理以及如何开始测试。然后
    发表于 08-31 21:01

    LitePoint Wi-Fi测试软件减轻客户设计负担

    Wi-Fi 7于一年多前获得Wi-Fi联盟认证以来,作为最新一代通信技术,Wi-Fi正逐步成为用户实现无所不在无线连接的新选择。随着每一代Wi-Fi信号复杂性的提升,建议将硬件
    的头像 发表于 08-06 15:34 895次阅读
    LitePoint <b class='flag-5'>Wi-Fi</b><b class='flag-5'>测试</b>软件减轻客户设计负担

    使用PLC实现红绿灯控制示例

    如图为一个红绿灯控制时序图,启动信号导通后,红绿灯程序开始动作。
    的头像 发表于 05-29 09:45 1170次阅读
    使用PLC实现<b class='flag-5'>红绿灯</b><b class='flag-5'>控制</b>示例

    nRF Cloud Wi-Fi 定位服务

    、Predictive-GPS、Single-Cell、Multi-Cell 和 Wi-Fi 定位。通过利用 nRF Cloud 的优化定位算法,基于 Nordic SoC 和 模组的产品可在定位
    发表于 04-17 15:07

    Wi-Fi 定位服务

    Wi-Fi 是一种著名的无线网络技术,用于设备的局域网和互联网接入。Wi-Fi 通过 Wi-Fi 网络为家庭、办公室和学校等环境提供便捷的无线互联网接入服务。 Wi-Fi 定位是一种
    发表于 04-17 15:01

    【ELF 2学习板试用】命令行功能测试-shell脚本进行IO控制-红绿灯按钮项目

    接上文[【ELF 2学习板试用】命令行功能测试-shell脚本进行IO控制-红绿灯项目(https://bbs.elecfans.com/jishu_2475305_1_1.html)
    发表于 02-06 15:39

    【ELF 2学习板试用】命令行功能测试-shell脚本进行IO控制-红绿灯项目

    ) 红绿灯项目 硬件 ELF 2学习板 :一款用于嵌入式系统学习的开发板。 红绿灯板 :一个简单的外部设备,包含红、绿、黄个LED灯。 连接1* ELF 2学习板 红绿灯板 连接2
    发表于 02-06 11:55

    Wi-Fi 7 与频率控制的关系

    作者:Poornima Apte 投稿人:DigiKey 北美编辑 2024-12-18 Wi-Fi 需要使用一定范围的无线电频率才能让设备进行通信拨号。多年来,Wi-Fi 一直使用 2.4 GHz
    的头像 发表于 01-25 14:45 1188次阅读
    <b class='flag-5'>Wi-Fi</b> 7 与频率<b class='flag-5'>控制</b>的关系

    华为海思正式进入Wi-Fi FEM赛道?

    大家都知道了,2018年11 月离开锐迪科(RDA),前往福建晋江创立三伍微,专注于Wi-Fi射频前端芯片,从路由器Wi-Fi FEM,到手机Wi-Fi FEM,再到IoT FEM全覆
    发表于 12-11 17:42

    摩尔斯微电子发布Wi-Fi HaLow评估套件,加速物联网开发

    近日,全球领先的Wi-Fi HaLow解决方案提供商摩尔斯微电子正式推出一款开创性的评估套件——MM6108-EKH05。这款完全整合的开发平台,旨在推动各行业物联网解决方案的快速发展
    的头像 发表于 12-11 13:40 1052次阅读

    Wi-Fi 4到Wi-Fi 7:网速飙升40倍的无线革命

    1 Wi-Fi技术的快速发展 每一代新的Wi-Fi协议发布,都会带来更高的无线速率。   从Wi-Fi 4到Wi-Fi 7:无线网络技术显著
    的头像 发表于 12-09 10:10 1608次阅读
    从<b class='flag-5'>Wi-Fi</b> 4到<b class='flag-5'>Wi-Fi</b> 7:网速飙升40倍的无线革命