本文来源电子发烧友社区,作者:soon顺soon, 帖子地址:https://bbs.elecfans.com/jishu_2010903_1_1.html
本文分享一种利用python搭建MQTT控制WIFI-IoT的红绿灯测试web页面的方法,实现按下 web页面按键后会发布topic为ledstatus,payload分别为RedLED、YellowLED、GreenLED的消息,如果刚好有兴趣的可以参考下。
本文分享一种利用python搭建MQTT控制WIFI-IoT的红绿灯测试web页面的方法,实现按下 web页面按键后会发布topic为ledstatus,payload分别为RedLED、YellowLED、GreenLED的消息,如果刚好有兴趣的可以参考下。
WIFI-IoT上收到消息后反转对应LED 状态的相关代码,参阅
一、相关的软件和python库安装
ubuntu20.04中搭建MQTT Broker的指令如下
- sudo apt-get install mosquitto
- sudo apt-get install mosquitto-clients
- sudo apt-get install mosquitto-dev
Ubuntu下用python搭建web会用到的库安装指令如下
- pip3 install paho.mqtt
- pip3 install web.py
如果是在windows下mqtt的包安装要换成如下
- pip install web.py
- pip install paho-mqtt
二、用html写个简单的页面"key.html"如下
-
-
-
Wifi-loT测试页面
-
Soon-Wifi-loT
-
Wifi-loT测试页面
-
tion="/RedLED" method="POST">
-
-
页面比较简洁只有标题和三个按键
三、Python相关代码如下
- import web
- import paho.mqtt.client
- import time
- HOSTNAME ="xxxxxx"#请填入你的Broker地址/可以是你局域网ubuntu虚拟机IP,或者云服务器地址
- MQTTPORT = 1883#默认1883 具体看你Broker配置
- USERNAME ="xxxxxx" #请填入用户名
- PASSWD="xxxxxx"#请填入用密码
- HTML_PAGE = "key.html"
- TOPICE = "ledstatus"
- mqtt = paho.mqtt.client
- urls = (
- '/RedLED', 'RedLED',
- '/YellowLED', 'YellowLED',
- '/GreenLED', 'GreenLED',
- '/(.*)', 'Wifi_lOT_home'
- )
- app = web.application(urls, globals())
- client_id = time.strftime('%Y%m%d%H%M%S',time.localtime(time.time()))
- client = mqtt.Client(client_id) # ClientId不能重复,所以使用当前时间
- # publish 消息
- def on_publish(topic, payload, qos):
- client.username_pw_set(USERNAME, PASSWD)# 必须设置,否则会返回「Connected with result code 4」
- client.connect(HOSTNAME, MQTTPORT, 60)
- client.publish(topic, payload, qos)
- class Wifi_lOT_home:
- def GET(self, name):
- file = open(HTML_PAGE, "rb+")
- return file.read()
- def POST(self):
- print ("test soon")
- class RedLED:
- def POST(self):
- print ("RedLED POST")
- on_publish(TOPICE, "RedLED".encode(),0)
- file = open(HTML_PAGE, "rb+")
- return file.read()
- class YellowLED:
- def POST(self):
- print ("YellowLED POST")
- on_publish(TOPICE,"YellowLED".encode(),0)
- file = open(HTML_PAGE, "rb+")
- return file.read()
- class GreenLED:
- def POST(self):
- print ("GreenLED POST")
- on_publish(TOPICE,"GreenLED".encode(),0)
- file = open(HTML_PAGE, "rb+")
- return file.read()
- if __name__ == "__main__":
- app.run()
四、运行指令和效果
运行指令python3 -u xxxxxx.py 端口,如 python3 -u keyEvent.py 8080
然后在浏览器输入http://localhost:8080/或者http://(ubuntu IP/server IP):8080/ 就能看到以下页面

附相关代码下载
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
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次阅读
基于 SSID 的 Wi-Fi 定位:与其他定位服务的性能比较
导航卫星系统(GNSS)的重要补充,尤其是在建筑物和密集城区,GNSS 可能会因信号衰减和中断而失效。
本博文将介绍我们基于 SSID 的 Wi-Fi 定位解决方案的工作原理以及如何开始测试。然后
发表于 08-31 21:01
LitePoint Wi-Fi测试软件减轻客户设计负担
自Wi-Fi 7于一年多前获得Wi-Fi联盟认证以来,作为最新一代通信技术,Wi-Fi正逐步成为用户实现无所不在无线连接的新选择。随着每一代Wi-Fi信号复杂性的提升,建议将硬件
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
华为海思正式进入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。这款完全整合的开发平台,旨在推动各行业物联网解决方案的快速发展

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