本文來源電子發(fā)燒友社區(qū),作者:soon順soon, 帖子地址:https://bbs.elecfans.com/jishu_2010903_1_1.html
本文分享一種利用python搭建MQTT控制WIFI-IoT的紅綠燈測試web頁面的方法,實現(xiàn)按下 web頁面按鍵后會發(fā)布topic為ledstatus,payload分別為RedLED、YellowLED、GreenLED的消息,如果剛好有興趣的可以參考下。
本文分享一種利用python搭建MQTT控制WIFI-IoT的紅綠燈測試web頁面的方法,實現(xiàn)按下 web頁面按鍵后會發(fā)布topic為ledstatus,payload分別為RedLED、YellowLED、GreenLED的消息,如果剛好有興趣的可以參考下。
WIFI-IoT上收到消息后反轉(zhuǎn)對應(yīng)LED 狀態(tài)的相關(guān)代碼,參閱
一、相關(guān)的軟件和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">
-
-
頁面比較簡潔只有標(biāo)題和三個按鍵
三、Python相關(guān)代碼如下
- import web
- import paho.mqtt.client
- import time
- HOSTNAME ="xxxxxx"#請?zhí)钊肽愕腂roker地址/可以是你局域網(wǎng)ubuntu虛擬機(jī)IP,或者云服務(wù)器地址
- MQTTPORT = 1883#默認(rèn)1883 具體看你Broker配置
- USERNAME ="xxxxxx" #請?zhí)钊胗脩裘?/li>
- PASSWD="xxxxxx"#請?zhí)钊胗妹艽a
- 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不能重復(fù),所以使用當(dāng)前時間
- # publish 消息
- def on_publish(topic, payload, qos):
- client.username_pw_set(USERNAME, PASSWD)# 必須設(shè)置,否則會返回「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/或者h(yuǎn)ttp://(ubuntu IP/server IP):8080/ 就能看到以下頁面

附相關(guān)代碼下載
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
wi-fi
+關(guān)注
關(guān)注
15文章
2376瀏覽量
128859 -
HarmonyOS
+關(guān)注
關(guān)注
80文章
2146瀏覽量
35511 -
HiSpark
+關(guān)注
關(guān)注
1文章
156瀏覽量
7674
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
【EASY EAI Nano-TB(RV1126B)開發(fā)板試用】命令行功能測試-shell腳本進(jìn)行IO控制-紅綠燈按鈕項目
0接上文【EASY EAI Nano-TB(RV1126B)開發(fā)板試用】命令行功能測試-shell腳本進(jìn)行IO控制-紅綠燈項目-實現(xiàn)開機(jī)起動
EASYEAINano-TB(RV1126
發(fā)表于 11-03 10:00
【EASY EAI Nano-TB(RV1126B)開發(fā)板試用】命令行功能測試-shell腳本進(jìn)行IO控制-紅綠燈項目
Nano-TB(RV1126B)開發(fā)板,通過GPIO控制實現(xiàn)紅綠燈板的三種顏色LED燈交替閃爍功能。開發(fā)板使用SSH進(jìn)行遠(yuǎn)程控制通過WiFi連接。
硬件
EASY EAI Nano-
發(fā)表于 11-02 18:34
淺談Wi-Fi 6E與Wi-Fi 7的關(guān)鍵器件——BAW濾波器新技術(shù)
,美國聯(lián)邦通信委員會(FCC)投票通過將6GHz頻譜劃為免許可頻段供Wi-Fi使用,這標(biāo)志著Wi-Fi正式進(jìn)入“三頻”時代——除Wi-Fi 6及前代技術(shù)使用的2.4GHz和5GHz頻段
發(fā)表于 09-19 18:29
?1302次閱讀
基于 SSID 的 Wi-Fi 定位:與其他定位服務(wù)的性能比較
導(dǎo)航衛(wèi)星系統(tǒng)(GNSS)的重要補(bǔ)充,尤其是在建筑物和密集城區(qū),GNSS 可能會因信號衰減和中斷而失效。
本博文將介紹我們基于 SSID 的 Wi-Fi 定位解決方案的工作原理以及如何開始測試。然后
發(fā)表于 08-31 21:01
LitePoint Wi-Fi測試軟件減輕客戶設(shè)計負(fù)擔(dān)
自Wi-Fi 7于一年多前獲得Wi-Fi聯(lián)盟認(rèn)證以來,作為最新一代通信技術(shù),Wi-Fi正逐步成為用戶實現(xiàn)無所不在無線連接的新選擇。隨著每一代Wi-Fi信號復(fù)雜性的提升,建議將硬件
nRF Cloud Wi-Fi 定位服務(wù)
、Predictive-GPS、Single-Cell、Multi-Cell 和 Wi-Fi 定位。通過利用 nRF Cloud 的優(yōu)化定位算法,基于 Nordic SoC 和 模組的產(chǎn)品可在定位用例
發(fā)表于 04-17 15:07
Wi-Fi 定位服務(wù)
Wi-Fi 是一種著名的無線網(wǎng)絡(luò)技術(shù),用于設(shè)備的局域網(wǎng)和互聯(lián)網(wǎng)接入。Wi-Fi 通過 Wi-Fi 網(wǎng)絡(luò)為家庭、辦公室和學(xué)校等環(huán)境提供便捷的無線互聯(lián)網(wǎng)接入服務(wù)。
Wi-Fi 定位是一種
發(fā)表于 04-17 15:01
【ELF 2學(xué)習(xí)板試用】命令行功能測試-shell腳本進(jìn)行IO控制-紅綠燈按鈕項目
接上文[【ELF 2學(xué)習(xí)板試用】命令行功能測試-shell腳本進(jìn)行IO控制-紅綠燈項目(https://bbs.elecfans.com/jishu_2475305_1_1.html)
發(fā)表于 02-06 15:39
【ELF 2學(xué)習(xí)板試用】命令行功能測試-shell腳本進(jìn)行IO控制-紅綠燈項目
)
紅綠燈項目
硬件
ELF 2學(xué)習(xí)板 :一款用于嵌入式系統(tǒng)學(xué)習(xí)的開發(fā)板。
紅綠燈板 :一個簡單的外部設(shè)備,包含紅、綠、黃三個LED燈。
連接1*
ELF 2學(xué)習(xí)板
紅綠燈板
連接2
發(fā)表于 02-06 11:55
Wi-Fi 7 與頻率控制的關(guān)系
作者:Poornima Apte 投稿人:DigiKey 北美編輯 2024-12-18 Wi-Fi 需要使用一定范圍的無線電頻率才能讓設(shè)備進(jìn)行通信撥號。多年來,Wi-Fi 一直使用 2.4 GHz
華為海思正式進(jìn)入Wi-Fi FEM賽道?
大家都知道了,2018年11 月離開銳迪科(RDA),前往福建晉江創(chuàng)立三伍微,專注于Wi-Fi射頻前端芯片,從路由器Wi-Fi FEM,到手機(jī)Wi-Fi FEM,再到IoT FEM全覆
發(fā)表于 12-11 17:42
摩爾斯微電子發(fā)布Wi-Fi HaLow評估套件,加速物聯(lián)網(wǎng)開發(fā)
近日,全球領(lǐng)先的Wi-Fi HaLow解決方案提供商摩爾斯微電子正式推出一款開創(chuàng)性的評估套件——MM6108-EKH05。這款完全整合的開發(fā)平臺,旨在推動各行業(yè)物聯(lián)網(wǎng)解決方案的快速發(fā)展
從Wi-Fi 4到Wi-Fi 7:網(wǎng)速飆升40倍的無線革命
1 Wi-Fi技術(shù)的快速發(fā)展 每一代新的Wi-Fi協(xié)議發(fā)布,都會帶來更高的無線速率。 ? 從Wi-Fi 4到Wi-Fi 7:無線網(wǎng)絡(luò)技術(shù)顯著

【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】[soon][三]用python快速搭建MQTT控制紅綠燈測試頁面
評論