物聯(lián)網(wǎng)云平臺應(yīng)用開發(fā) 課件 項(xiàng)目2-7、基于MQTT協(xié)議的溫濕度監(jiān)控系統(tǒng)設(shè)計(jì)_第1頁
物聯(lián)網(wǎng)云平臺應(yīng)用開發(fā) 課件 項(xiàng)目2-7、基于MQTT協(xié)議的溫濕度監(jiān)控系統(tǒng)設(shè)計(jì)_第2頁
物聯(lián)網(wǎng)云平臺應(yīng)用開發(fā) 課件 項(xiàng)目2-7、基于MQTT協(xié)議的溫濕度監(jiān)控系統(tǒng)設(shè)計(jì)_第3頁
物聯(lián)網(wǎng)云平臺應(yīng)用開發(fā) 課件 項(xiàng)目2-7、基于MQTT協(xié)議的溫濕度監(jiān)控系統(tǒng)設(shè)計(jì)_第4頁
物聯(lián)網(wǎng)云平臺應(yīng)用開發(fā) 課件 項(xiàng)目2-7、基于MQTT協(xié)議的溫濕度監(jiān)控系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論