本文來源電子發(fā)燒友社區(qū),作者:soon順soon, 帖子地址:https://bbs.elecfans.com/jishu_2010903_1_1.html
本文分享一種利用python搭建MQTT控制WIFI-IoT的紅綠燈測(cè)試web頁(yè)面的方法,實(shí)現(xiàn)按下 web頁(yè)面按鍵后會(huì)發(fā)布topic為ledstatus,payload分別為RedLED、YellowLED、GreenLED的消息,如果剛好有興趣的可以參考下。
本文分享一種利用python搭建MQTT控制WIFI-IoT的紅綠燈測(cè)試web頁(yè)面的方法,實(shí)現(xiàn)按下 web頁(yè)面按鍵后會(huì)發(fā)布topic為ledstatus,payload分別為RedLED、YellowLED、GreenLED的消息,如果剛好有興趣的可以參考下。
WIFI-IoT上收到消息后反轉(zhuǎn)對(duì)應(yīng)LED 狀態(tài)的相關(guān)代碼,參閱
一、相關(guān)的軟件和python庫(kù)安裝
ubuntu20.04中搭建MQTT Broker的指令如下
- sudo apt-get install mosquitto
- sudo apt-get install mosquitto-clients
- sudo apt-get install mosquitto-dev
Ubuntu下用python搭建web會(huì)用到的庫(kù)安裝指令如下
- pip3 install paho.mqtt
- pip3 install web.py
如果是在windows下mqtt的包安裝要換成如下
- pip install web.py
- pip install paho-mqtt
二、用html寫個(gè)簡(jiǎn)單的頁(yè)面"key.html"如下
-
-
-
Wifi-loT測(cè)試頁(yè)面
-
Soon-Wifi-loT
-
Wifi-loT測(cè)試頁(yè)面
-
tion="/RedLED" method="POST">
-
-
頁(yè)面比較簡(jiǎn)潔只有標(biāo)題和三個(gè)按鍵
三、Python相關(guān)代碼如下
- import web
- import paho.mqtt.client
- import time
- HOSTNAME ="xxxxxx"#請(qǐng)?zhí)钊肽愕腂roker地址/可以是你局域網(wǎng)ubuntu虛擬機(jī)IP,或者云服務(wù)器地址
- MQTTPORT = 1883#默認(rèn)1883 具體看你Broker配置
- USERNAME ="xxxxxx" #請(qǐng)?zhí)钊胗脩裘?/li>
- PASSWD="xxxxxx"#請(qǐng)?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)前時(shí)間
- # publish 消息
- def on_publish(topic, payload, qos):
- client.username_pw_set(USERNAME, PASSWD)# 必須設(shè)置,否則會(huì)返回「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()
四、運(yùn)行指令和效果
運(yùn)行指令python3 -u xxxxxx.py 端口,如 python3 -u keyEvent.py 8080
然后在瀏覽器輸入http://localhost:8080/或者h(yuǎn)ttp://(ubuntu IP/server IP):8080/ 就能看到以下頁(yè)面

附相關(guān)代碼下載
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
wi-fi
+關(guān)注
關(guān)注
14文章
2259瀏覽量
126965 -
HarmonyOS
+關(guān)注
關(guān)注
80文章
2126瀏覽量
32993 -
HiSpark
+關(guān)注
關(guān)注
1文章
156瀏覽量
7410
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
Wi-Fi 8要來了!未來Wi-Fi技術(shù)演進(jìn)方向揭秘
產(chǎn)品銷售中,雖然Wi-Fi 7產(chǎn)品的銷量份額快速從年初的個(gè)位數(shù)百分比增長(zhǎng)至14%,但Wi-Fi 6產(chǎn)品的銷量份額依然穩(wěn)定在60%左右。如果從存量設(shè)備來看,那么Wi-Fi 7路由器的占比

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í)板試用】命令行功能測(cè)試-shell腳本進(jìn)行IO控制-紅綠燈按鈕項(xiàng)目
接上文[【ELF 2學(xué)習(xí)板試用】命令行功能測(cè)試-shell腳本進(jìn)行IO控制-紅綠燈項(xiàng)目(https://bbs.elecfans.com/jishu_2475305_1_1.html)
發(fā)表于 02-06 15:39
【ELF 2學(xué)習(xí)板試用】命令行功能測(cè)試-shell腳本進(jìn)行IO控制-紅綠燈項(xiàng)目
)
紅綠燈項(xiàng)目
硬件
ELF 2學(xué)習(xí)板 :一款用于嵌入式系統(tǒng)學(xué)習(xí)的開發(fā)板。
紅綠燈板 :一個(gè)簡(jiǎn)單的外部設(shè)備,包含紅、綠、黃三個(gè)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)行通信撥號(hào)。多年來,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評(píng)估套件,加速物聯(lián)網(wǎng)開發(fā)
近日,全球領(lǐng)先的Wi-Fi HaLow解決方案提供商摩爾斯微電子正式推出一款開創(chuàng)性的評(píng)估套件——MM6108-EKH05。這款完全整合的開發(fā)平臺(tái),旨在推動(dòng)各行業(yè)物聯(lián)網(wǎng)解決方案的快速發(fā)展
從Wi-Fi 4到Wi-Fi 7:網(wǎng)速飆升40倍的無線革命
1 Wi-Fi技術(shù)的快速發(fā)展 每一代新的Wi-Fi協(xié)議發(fā)布,都會(huì)帶來更高的無線速率。 ? 從Wi-Fi 4到Wi-Fi 7:無線網(wǎng)絡(luò)技術(shù)顯著

基于羅德與施瓦茨CMX500的Wi-Fi 7信令測(cè)試方案
今天和大家聊聊Wi-Fi 7測(cè)試的一個(gè)重要話題 -“Wi-Fi 7信令測(cè)試”,大家知道Wi-Fi產(chǎn)品在正式上市之前均需經(jīng)歷研發(fā)

Wi-Fi 7與Wi-Fi 6E有什么區(qū)別
也許很多人還在考慮是否要將使用的Wi-Fi設(shè)備升級(jí)到Wi-Fi 6或Wi-Fi 6E,而這些標(biāo)準(zhǔn)的繼任者卻已經(jīng)開始“登堂入室”了。Wi-Fi 7是新一代
【星閃派物聯(lián)網(wǎng)開發(fā)套件體驗(yàn)連載】智能交通燈
感謝電子發(fā)燒友,感謝潤(rùn)和軟件,提供星閃派物聯(lián)網(wǎng)開發(fā)套件試用。
本次試用計(jì)劃:
用星閃派物聯(lián)網(wǎng)開發(fā)套件,先實(shí)現(xiàn)本地交通燈項(xiàng)目,接入WiFi連上
發(fā)表于 10-05 13:00
IR900 Wi-Fi聯(lián)網(wǎng)的配置過程
, 通過SSID掃描可以查看;輸入密碼,點(diǎn)擊保存;
在SSID掃描頁(yè)面中查看是否連接成功, 如果沒有請(qǐng)檢查認(rèn)證方式、加密方式、密碼是否輸入正確;
Wi-Fi掃描顯示“已連接”,進(jìn)入“快速向?qū)?新建WAN
發(fā)表于 07-25 06:09
評(píng)論