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
    +关注

    关注

    14

    文章

    2106

    浏览量

    124315
  • HarmonyOS
    +关注

    关注

    79

    文章

    1967

    浏览量

    30006
  • HiSpark
    +关注

    关注

    1

    文章

    156

    浏览量

    6901
收藏 人收藏

    评论

    相关推荐

    基于罗德与施瓦茨CMX500的Wi-Fi 7信令测试方案

    今天和大家聊聊Wi-Fi 7测试的一个重要话题 -“Wi-Fi 7信令测试”,大家知道Wi-Fi产品在正式上市之前均需经历研发
    的头像 发表于 11-22 16:06 154次阅读
    基于罗德与施瓦茨CMX500的<b class='flag-5'>Wi-Fi</b> 7信令<b class='flag-5'>测试</b>方案

    【星闪派物联网开发套件体验连载】智能交通灯

    感谢电子发烧友,感谢润和软件,提供星闪派物联网开发套件试用。 本次试用计划: 星闪派物联网开发套件,先实现本地交通灯项目,接入WiFi连上
    发表于 10-05 13:00

    TI Wi-Fi测试策略概述

    电子发烧友网站提供《TI Wi-Fi测试策略概述.pdf》资料免费下载
    发表于 09-20 10:46 1次下载
    TI <b class='flag-5'>Wi-Fi</b><b class='flag-5'>测试</b>策略概述

    IR900 Wi-Fi联网的配置过程

    , 通过SSID扫描可以查看;输入密码,点击保存; 在SSID扫描页面中查看是否连接成功, 如果没有请检查认证方式、加密方式、密码是否输入正确; Wi-Fi扫描显示“已连接”,进入“快速向导-新建WAN
    发表于 07-25 06:09

    PSoC6上的Wi-fi_mqtt_Client出现MQTT连接错误的原因?

    我在使用 PSoC6 板上的 Wi-Fi_MQTT_Client 示例时遇到了一个问题。 Wi-Fi 连接成功了,但在尝试连接 MQTT 代理(test.mositto.org)时却出现了以下错误
    发表于 07-04 07:25

    验证物联网Wi-Fi HaLow例的MM6108-EKH08开发套件来啦

    验证物联网Wi-Fi HaLow例的MM6108-EKH08开发套件来啦 MM6108-EKH08开发套件专为验证物联网Wi-Fi HaL
    的头像 发表于 04-11 12:01 1652次阅读
    验证物联网<b class='flag-5'>Wi-Fi</b> HaLow<b class='flag-5'>用</b>例的MM6108-EKH08开发<b class='flag-5'>套件</b>来啦

    Wi-Fi的诞生与发展

    短距离无线通信技术有Wi-Fi、ZigBee、蓝牙以及Z-Wave,今天我们先揭开Wi-Fi的神秘面纱。Chrent短距离无线通信技术——Wi-Fi过去的20多年,Wi-Fi靠着仅有的
    的头像 发表于 03-07 08:26 1128次阅读
    <b class='flag-5'>Wi-Fi</b>的诞生与发展

    PSoC6上的Wi-fi_mqtt_Client出现MQTT连接错误怎么解决?

    client.key, client.crt, 以及其他必需的配置。 Wi-Fi 连接成功,但在尝试 MULTICH_CONNECT_PCB MQTT 代理 (test.mosquitto.org) 时, 我遇到以下
    发表于 03-04 06:37

    揭秘 “红绿灯倒计时” 原理

    如今,高德“红绿灯倒计时”功能已服务遍布全国范围内近240个城市的8万多个红绿灯路口,未来还将进一步拓展至更高数量级。
    的头像 发表于 02-21 17:19 1776次阅读

    Wi-Fi HaLow和传统Wi-Fi的区别

    Wi-Fi HaLow和传统Wi-Fi的区别  Wi-Fi是一种无线网络技术,可以连接到互联网或局域网,为用户提供无线上网的便利。随着科技的发展和互联网的普及,Wi-Fi也在不断演进和
    的头像 发表于 02-02 15:28 1107次阅读

    BT Wi-Fi模式是否可以通过ModustoolBox对套件进行编程来实现?

    想配置用于分析 CYW43439 的 CY8CPROTO-062S2-43439 原型开发套件。 浏览文档我无法弄清楚如何在不同的 Wi-Fi 和蓝牙模式(电源模式、连接模式等)下配置套件。 在
    发表于 01-22 06:19

    【飞腾派4G版免费试用红绿灯项目-2飞腾派 openkylin 进行IO控制2

    | 接上文【飞腾派4G版免费试用红绿灯项目-2飞腾派 openkylin 进行IO控制
    发表于 01-17 19:46

    【飞腾派4G版免费试用红绿灯项目-2飞腾派 openkylin 进行IO控制

    接上文[【飞腾派4G版免费试用】2飞腾派 openkylin 进行IO控制-灯闪(https://bbs.elecfans.com/jishu_2405776_1_1.html) 红绿灯项目
    发表于 01-13 22:34

    RA AWS MQTT/TLS云连接解决方案-Wi-Fi DA16600

    电子发烧友网站提供《RA AWS MQTT/TLS云连接解决方案-Wi-Fi DA16600.pdf》资料免费下载
    发表于 01-03 10:00 0次下载
    RA AWS <b class='flag-5'>MQTT</b>/TLS云连接解决方案-<b class='flag-5'>Wi-Fi</b> DA16600

    Wi-Fi 6和Wi-Fi 5之间有哪些区别呢?

    Wi-Fi 6和Wi-Fi 5之间有哪些区别呢? Wi-Fi 6和Wi-Fi 5是无线局域网标准的两个版本,它们之间存在很多区别。Wi-Fi
    的头像 发表于 12-09 16:09 2187次阅读