本文来源电子发烧友社区,作者: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
+关注
关注
14文章
2106浏览量
124315 -
HarmonyOS
+关注
关注
79文章
1967浏览量
30006 -
HiSpark
+关注
关注
1文章
156浏览量
6901
发布评论请先 登录
相关推荐
【星闪派物联网开发套件体验连载】智能交通灯
感谢电子发烧友,感谢润和软件,提供星闪派物联网开发套件试用。
本次试用计划:
用星闪派物联网开发套件,先实现本地交通灯项目,接入WiFi连上
发表于 10-05 13:00
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
Wi-Fi的诞生与发展
短距离无线通信技术有Wi-Fi、ZigBee、蓝牙以及Z-Wave,今天我们先揭开Wi-Fi的神秘面纱。Chrent短距离无线通信技术——Wi-Fi过去的20多年,Wi-Fi靠着仅有的
PSoC6上的Wi-fi_mqtt_Client出现MQTT连接错误怎么解决?
client.key, client.crt, 以及其他必需的配置。 Wi-Fi 连接成功,但在尝试 MULTICH_CONNECT_PCB MQTT 代理 (test.mosquitto.org) 时, 我遇到以下
发表于 03-04 06:37
Wi-Fi HaLow和传统Wi-Fi的区别
Wi-Fi HaLow和传统Wi-Fi的区别 Wi-Fi是一种无线网络技术,可以连接到互联网或局域网,为用户提供无线上网的便利。随着科技的发展和互联网的普及,Wi-Fi也在不断演进和
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次下载
Wi-Fi 6和Wi-Fi 5之间有哪些区别呢?
Wi-Fi 6和Wi-Fi 5之间有哪些区别呢? Wi-Fi 6和Wi-Fi 5是无线局域网标准的两个版本,它们之间存在很多区别。Wi-Fi
评论