




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
基于MQTT協(xié)議的溫濕度監(jiān)控系統(tǒng)設(shè)計(jì)物聯(lián)網(wǎng)云平臺開發(fā)實(shí)踐(第2版)01溫濕度監(jiān)控系統(tǒng)02遠(yuǎn)程LED控制系統(tǒng)目錄CONTENTS
第一部分
溫濕度監(jiān)控系統(tǒng)PART0101實(shí)驗(yàn)要求【實(shí)驗(yàn)?zāi)康摹浚?)掌握Python進(jìn)行MQTT協(xié)議綜合應(yīng)用開發(fā)的能力(2)掌握樹莓派采集DHT11溫濕度并通過MQTT協(xié)議進(jìn)行上傳的方法【實(shí)驗(yàn)設(shè)備】(1)樹莓派一臺(2)顯示器、鍵盤、鼠標(biāo)一套(3)DHT11傳感器一個、杜邦線若干【實(shí)驗(yàn)要求】在樹莓派采集DHT11溫濕度的基礎(chǔ)上,使用Python語言將采集到的信息發(fā)布至云平臺。硬件連線1腳——VCC:電源,范圍3.3V~5.5V2腳——信號:串行數(shù)據(jù),雙向口2號腳信號選擇連接樹莓派12管腳GPIO183腳——空4腳——GND庫文件在樹莓派系統(tǒng)中,同樣需要安裝paho-mqtt協(xié)議。打開LX終端,輸入pip3installpaho-mqtt進(jìn)行庫文件安裝。軟件流程importpaho.mqtt.clientasmqttimporttimeimportbase64importhmacfromurllib.parseimportquotefrom_sslimportCERT_NONE,CERT_OPTIONAL,CERT_REQUIREDimportjsonimportAdafruit_DHT#定義傳感器sensor=Adafruit_DHT.DHT11gpio=18#定義token計(jì)算函數(shù),此處省略token定義函數(shù)具體代碼,與上述相同deftoken(product_id,access_key,auth_info=None):……#定義回調(diào)函數(shù)功能defon_connect(client,userdata,flags,rc):
print(mqtt.connack_string(rc)+'rc:%s'%rc)ifrc==0:client.subscribe('$sys/%s/%s/dp/post/json/+'%(product_id,auth_info),qos=0)
defon_message(client,userdata,msg):print('ON_MESSAGE:'+msg.topic+"",msg.payload)軟件流程if__name__=='__main__':host='183.230.40.16'port=8883access_key=‘xxxxx’#設(shè)備keyauth_info=‘temp’#設(shè)備名稱product_id=‘xxxxxx’#產(chǎn)品ID#計(jì)算tokenapi_token=token(product_id,access_key,auth_info)print(api_token)client=mqtt.Client(client_id=auth_info,protocol=mqtt.MQTTv311)client.on_connect=on_connectclient.on_message=on_messageclient.tls_set(ca_certs='serverCert.pem',cert_reqs=CERT_REQUIRED)client.tls_insecure_set(True)client.username_pw_set(username=product_id,password=api_token)client.connect(host=host,port=port,keepalive=30)client.loop_start()軟件流程whileTrue:time.sleep(1)humidity,temperature=Adafruit_DHT.read_retry(sensor,gpio)body={"id":123,"dp":{"temperature":[{"v":temperature,}],"humidity":[{"v":humidity,}]}}pub_topic='$sys/%s/%s/dp/post/json'%(product_id,auth_info)print(pub_topic)print('dp:temperature->%s'%temperature)print('dp:humidity->%s'%humidity)client.publish(pub_topic,json.dumps(body),qos=0)time.sleep(10)數(shù)據(jù)可視化應(yīng)用1、創(chuàng)建項(xiàng)目:應(yīng)用開發(fā)-項(xiàng)目管理2、關(guān)聯(lián)設(shè)備:設(shè)備管理-設(shè)備列表3、創(chuàng)建數(shù)據(jù)可視化應(yīng)用可視化項(xiàng)目-新建項(xiàng)目-添加儀表盤-管理數(shù)據(jù)源userID為用戶賬號信息中的用戶IDaccessKey為設(shè)備密鑰4、預(yù)覽-保存
第二部分
遠(yuǎn)程智能燈控制系統(tǒng)PART0202實(shí)驗(yàn)要求【實(shí)驗(yàn)?zāi)康摹浚?)掌握Python進(jìn)行平臺下發(fā)命令的解析(2)掌握Python根據(jù)解析命令實(shí)現(xiàn)簡單邏輯控制LED燈【實(shí)驗(yàn)設(shè)備】(1)樹莓派一臺(2)顯示器、鍵盤、鼠標(biāo)一套(3)LED燈、杜邦線若干【實(shí)驗(yàn)要求】采用Python語言,基于MQTT協(xié)議實(shí)現(xiàn)與云平臺的發(fā)起連接,OneNET云平臺下發(fā)指令,樹莓派接受命令并解析,并通過GPIO口控制LED的亮暗。硬件連線LED燈的長腳為+、短腳為—,長腳直接連接樹莓派GPIO26口,短腳經(jīng)過限流電阻連接Ground。軟件importpaho.mqtt.clientasmqttimporttimeimportbase64importhmacfromurllib.parseimportquotefrom_sslimportCERT_NONE,CERT_OPTIONAL,CERT_REQUIREDimportRPi.GPIOasGPIO#導(dǎo)入函數(shù)#設(shè)置GPIO口Out1=26#設(shè)置GPIO口GPIO.setmode(GPIO.BCM)#設(shè)置GPIO模式GPIO.setup(Out1,GPIO.OUT)#設(shè)置輸出軟件deftoken(product_id,access_key,auth_info=None):……defon_connect(client,userdata,flags,rc):print(mqtt.connack_string(rc)+'rc:%s'%rc)ifrc==0:client.subscribe('$sys/%s/%s/cmd/#'%(product_id,auth_info),qos=0)defon_message(client,userdata,msg):print('ON_MESSAGE:'+msg.topic+"",msg.payload)if'$sys/%s/%s/cmd/request/'%(product_id,auth_info)inmsg.topic:cmd_resp_topic='$sys/%s/%s/cmd/response/'%(product_id,auth_info)cmd_id=msg.topic.split('/')[-1]topic=cmd_resp_topic+cmd_idclient.publish(topic,msg.payload)ifmsg.payload==b'1':GPIO.output(Out1,GPIO.HIGH)else:GPIO.output(Out1,GPIO.LOW)time.sleep(5)回調(diào)函數(shù):on_connect:成功建立連接后,訂閱接收云平臺指令的topicon_message:成功接收到指令后,解析指令,并執(zhí)行目標(biāo)操作登錄OneNET平臺,在建立連接的MQTT設(shè)備列表中,找到已建立連接的設(shè)備,選擇“更多操作”→“下發(fā)命令”選項(xiàng)。填寫下發(fā)命令參數(shù):“命令內(nèi)容”為字符串1,“超時(shí)時(shí)間”為10。軟件if__name__=='__main__':host='183.230.40.16'port=8883access_key='xxxxx'#devicekeyauth_info='temp'#client_idproduct_id='xxxxxx'#username#計(jì)算tokenapi_token=token(product_id,access_key,auth_info)print(api_token)client=mqtt.Client(client_id=auth_info,protocol=mqtt.MQTTv311)client.on_connect=on_connectclient.on_message=on_messageclient.tls_set(ca_certs='serverCert.pem',cert_reqs=CERT_REQUIRED)clie
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 非遺背景下河南通許女紅類方言詞匯調(diào)查研究
- 宮頸癌的主要護(hù)理診斷
- S71200通信與故障診斷
- 小班心理健康:高興的時(shí)候
- 露營設(shè)計(jì)方案規(guī)劃與實(shí)施
- 幼兒園生活常規(guī)教育課件
- 農(nóng)村健康科普超聲
- 頸椎肩周中醫(yī)課件
- 頸椎與腦部健康課件圖片
- 物業(yè)安保消防培訓(xùn)
- TCCES 44-2024 老舊房屋結(jié)構(gòu)安全監(jiān)測技術(shù)標(biāo)準(zhǔn)
- 2024年汽車維修工技能理論考試題庫含答案(滿分必刷)
- 核心素養(yǎng)下小學(xué)英語分層作業(yè)布置有效性探究
- 林下中藥材種植項(xiàng)目可行性研究報(bào)告
- 計(jì)量知識宣傳培訓(xùn)課件
- 2025浙江商業(yè)技師學(xué)院公開招聘24人高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 第一單元第3課《大地的肌理》課件-一年級美術(shù)下冊(人教版2024)
- 《嗜血細(xì)胞綜合征》課件
- 智能運(yùn)營平臺解決方案
- 2025年上半年山東省濟(jì)南市事業(yè)單位筆試易考易錯模擬試題(共500題)試卷后附參考答案
- 部編五年級道德與法治教學(xué)反思
評論
0/150
提交評論