本文來源電子發燒友社區,作者: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文章
2147瀏覽量
124612 -
HarmonyOS
+關注
關注
79文章
1979瀏覽量
30274 -
HiSpark
+關注
關注
1文章
156瀏覽量
6938
發布評論請先 登錄
相關推薦
Wi-Fi 8要來了!未來Wi-Fi技術演進方向揭秘
產品銷售中,雖然Wi-Fi 7產品的銷量份額快速從年初的個位數百分比增長至14%,但Wi-Fi 6產品的銷量份額依然穩定在60%左右。如果從存量設備來看,那么Wi-Fi 7路由器的占比
華為海思正式進入Wi-Fi FEM賽道?
大家都知道了,2018年11 月離開銳迪科(RDA),前往福建晉江創立三伍微,專注于Wi-Fi射頻前端芯片,從路由器Wi-Fi FEM,到手機Wi-Fi FEM,再到IoT FEM全覆
發表于 12-11 17:42
從Wi-Fi 4到Wi-Fi 7:網速飆升40倍的無線革命
1 Wi-Fi技術的快速發展 每一代新的Wi-Fi協議發布,都會帶來更高的無線速率。 ? 從Wi-Fi 4到Wi-Fi 7:無線網絡技術顯著
【星閃派物聯網開發套件體驗連載】智能交通燈
感謝電子發燒友,感謝潤和軟件,提供星閃派物聯網開發套件試用。
本次試用計劃:
用星閃派物聯網開發套件,先實現本地交通燈項目,接入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
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
評論