本文來源電子發燒友社區,作者: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文章
2424瀏覽量
129558 -
HarmonyOS
+關注
關注
80文章
2153瀏覽量
36053 -
HiSpark
+關注
關注
1文章
156瀏覽量
7757
發布評論請先 登錄
相關推薦
熱點推薦
技術資訊 I Wi-Fi 模塊設計
。Wi-Fi模塊可實現無縫連接和數據交換,對設備進行遠程控制和監測。Wi-Fi模塊設計旨在打造一套緊湊且高效的軟硬件解決方案,使設備能夠通過Wi-Fi網絡通信。這類模塊常用
自動駕駛汽車如何應對移動式紅綠燈場景?
[首發于智駕最前沿微信公眾號]在交通的日常運轉中,由于電力系統維護、偶發性的供電故障或是道路施工引發的交通管制,交管部門會在十字路口臨時部署移動式紅綠燈。這種紅綠燈與我們習以為常的高懸于空中的固定
ESP32 Wi-Fi 控制 LED 燈的原理
在智能家居、物聯網設備中,用手機通過Wi-Fi控制燈光、風扇或插座,已經非常普遍。而在嵌入式開發中,ESP32是最常用的Wi-Fi模塊之一。本文將帶你系統理解:ESP32是如何通過Wi-Fi
Wi-Fi:無線連接的全球通用語
Wi-Fi 6(802.11ax)及未來的Wi-Fi 7,性能、效率與安全性不斷提升。 三、關鍵技術詞解析l IEEE 802.11:Wi-Fi技術的底層標準,由電氣電子工程師協會制定
發表于 01-07 09:49
自動駕駛汽車如何識別紅綠燈?
,很多老司機憑借視覺和經驗,可以快速判斷紅綠燈的情況。 這一簡單的場景對于自動駕駛汽車來說,卻有很多值得討論的地方。雖然只是根據燈的顏色決定行駛步驟,但紅綠燈識別無疑是自動駕駛系統最基礎、最重要的任務之一。如果
Wi-Fi模塊選型指南 | 低功耗藍牙/Wi-Fi 6模塊推薦 | 物聯網設備集成攻略
物聯網的快速發展,Wi-Fi技術的成熟的情況下,越來越多的場景需要用到Wi-Fi來無線傳輸數據,尤其是移動設備中,怎么再設備中選擇合適的Wi-Fi模塊呢?下面我們來介紹下
【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
?2128次閱讀
基于 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
【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】[soon][三]用python快速搭建MQTT控制紅綠燈測試頁面
評論