本文來源電子發燒友社區,作者: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文章
2265瀏覽量
127148 -
HarmonyOS
+關注
關注
80文章
2127瀏覽量
33295 -
HiSpark
+關注
關注
1文章
156瀏覽量
7429
發布評論請先 登錄
相關推薦
熱點推薦
Wi-Fi 8要來了!未來Wi-Fi技術演進方向揭秘
產品銷售中,雖然Wi-Fi 7產品的銷量份額快速從年初的個位數百分比增長至14%,但Wi-Fi 6產品的銷量份額依然穩定在60%左右。如果從存量設備來看,那么Wi-Fi 7路由器的占比

基于 Wi-Fi 的定位服務
定位服務有三種精度模式:低精度、正常精度和高精度。精度越高,設備的耗電量就越大,但根據經驗,我們知道所有精度模式的耗電量都高于 Wi-Fi 和蜂窩定位服務。在 GNSS 定位服務測量中,我們預計即使
發表于 04-17 15:16
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。這款完全整合的開發平臺,旨在推動各行業物聯網解決方案的快速發展
從Wi-Fi 4到Wi-Fi 7:網速飆升40倍的無線革命
1 Wi-Fi技術的快速發展 每一代新的Wi-Fi協議發布,都會帶來更高的無線速率。 ? 從Wi-Fi 4到Wi-Fi 7:無線網絡技術顯著

Wi-Fi 7與Wi-Fi 6E有什么區別
也許很多人還在考慮是否要將使用的Wi-Fi設備升級到Wi-Fi 6或Wi-Fi 6E,而這些標準的繼任者卻已經開始“登堂入室”了。Wi-Fi 7是新一代
【星閃派物聯網開發套件體驗連載】智能交通燈
感謝電子發燒友,感謝潤和軟件,提供星閃派物聯網開發套件試用。
本次試用計劃:
用星閃派物聯網開發套件,先實現本地交通燈項目,接入WiFi連上
發表于 10-05 13:00
評論