項(xiàng)目3任務(wù)8-物聯(lián)網(wǎng)APP監(jiān)測(cè)壓力值_第1頁(yè)
項(xiàng)目3任務(wù)8-物聯(lián)網(wǎng)APP監(jiān)測(cè)壓力值_第2頁(yè)
項(xiàng)目3任務(wù)8-物聯(lián)網(wǎng)APP監(jiān)測(cè)壓力值_第3頁(yè)
項(xiàng)目3任務(wù)8-物聯(lián)網(wǎng)APP監(jiān)測(cè)壓力值_第4頁(yè)
項(xiàng)目3任務(wù)8-物聯(lián)網(wǎng)APP監(jiān)測(cè)壓力值_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2相關(guān)知識(shí)34任務(wù)小結(jié)與練習(xí)1任務(wù)實(shí)施任務(wù)引入與目標(biāo)物聯(lián)網(wǎng)APP監(jiān)測(cè)壓力值一、任務(wù)引入與目標(biāo)任務(wù)目標(biāo)任務(wù)8將參考溫濕度監(jiān)測(cè),實(shí)現(xiàn)壓力監(jiān)測(cè)。當(dāng)然壓力傳感器是模擬量傳感器,使用AD轉(zhuǎn)換得到數(shù)字量,在檢測(cè)原理方面和溫濕度傳感器還是有區(qū)別的。任務(wù)引入任務(wù)6實(shí)現(xiàn)了溫濕度的展示??梢韵胂?如果換一種傳感器,也是可以實(shí)現(xiàn)數(shù)據(jù)的采集、傳輸、解析、展示的。這樣就可以根據(jù)實(shí)際需要,拓展物聯(lián)網(wǎng)系統(tǒng)的功能,而網(wǎng)關(guān)、APP程序只需要微調(diào)即可。二、相關(guān)知識(shí)薄膜壓力傳感器介紹薄膜壓力傳感器是采用柔性壓力傳感技術(shù),在柔韌、輕薄的材料上印刷附著力強(qiáng)、耐彎折、靈敏度高的柔性納米功能材料。當(dāng)感知到外界壓力時(shí),傳感器電阻值發(fā)生變化,采用簡(jiǎn)單的電路即可轉(zhuǎn)換成相應(yīng)變化強(qiáng)度的電信號(hào)輸出。薄膜壓力傳感器外觀如圖3-41所示。圖3-41薄膜壓力傳感器外觀二、相關(guān)知識(shí)轉(zhuǎn)換電路轉(zhuǎn)換電路較為簡(jiǎn)單,將傳感器串聯(lián)一個(gè)固定電阻,測(cè)量固定電阻兩端的輸出電壓,公式為:一般情況下,固定電阻取值建議是取傳感器應(yīng)用電阻范圍值的1/3到1/2。另外,通過(guò)選擇合適的固定電阻,可以使壓力和輸出電壓在一定壓力范圍內(nèi)呈現(xiàn)一定程度的近似線性關(guān)系。根據(jù)測(cè)量電路的阻抗要求,分壓器后可以加一個(gè)運(yùn)算放大器,如圖3-42所示。Vout=VCC×R0/(R0+Rs)(3-1)圖3-42薄膜壓力傳感器轉(zhuǎn)換電路二、相關(guān)知識(shí)Arduino開(kāi)發(fā)環(huán)境下的模數(shù)轉(zhuǎn)換端口(ADC)在薄膜壓力傳感器應(yīng)用中,ADC引腳需要設(shè)置為輸入模式INPUT,當(dāng)然如果不設(shè)置則默認(rèn)就是輸入模式。ESP32的ADC引腳輸入電平可調(diào)用analogRead函數(shù)讀取,函數(shù)的返回值是ADC轉(zhuǎn)換后的數(shù)字量。ESP32的ADC是12位的,故數(shù)字量的范圍為0~4095。pinMode(PRES_PIN,INPUT);//ADC引腳為輸入模式analogRead(PRES_PIN);//讀取壓力值并轉(zhuǎn)換三、任務(wù)實(shí)施實(shí)施設(shè)備ESP32網(wǎng)關(guān)、薄膜壓力傳感器、轉(zhuǎn)換電路各一個(gè),杜邦線若干,安裝了Arduino開(kāi)發(fā)環(huán)境和AndroidStudio開(kāi)發(fā)環(huán)境的計(jì)算機(jī),部署了MQTT服務(wù)器的云服務(wù)器。1.網(wǎng)關(guān)和薄膜壓力傳感器硬件連接如圖3-43所示,轉(zhuǎn)換電路的AO連接網(wǎng)關(guān)的IO36(SVP引腳)實(shí)物如圖3-44所示。實(shí)施過(guò)程圖3-43硬件連接示意圖圖3-44硬件連接實(shí)物圖三、任務(wù)實(shí)施2.網(wǎng)關(guān)程序設(shè)計(jì)(1)宏、變量定義。#defineDHT11_PIN26#defineLED_PIN25#definePRES_PIN36/*需要操作的產(chǎn)品標(biāo)識(shí)符(溫度、濕度、壓力)*/StringTempIdentifier="temperature";StringHumiIdentifier="humidity";StringPresIdentifier="pressure";其中,該程序?qū)in36定義為宏名PRES_PIN。增加了“pressure”字段的定義,作為上報(bào)MQTT消息payload中的壓力字段。三、任務(wù)實(shí)施(2)初始化函數(shù)。在初始化函數(shù)中,將ADC引腳的工作模式設(shè)置為輸入,其他部分和前面任務(wù)中的網(wǎng)關(guān)程序一致。voidsetup(){pinMode(PRES_PIN,INPUT);pinMode(LED_PIN,OUTPUT);Serial.begin(115200);/*連接WIFI*/connectWiFi();client.setServer(mqtt_server,PORT);//沒(méi)有提供用戶名和密碼,因?yàn)镋MQX服務(wù)器允許公開(kāi)訪問(wèn),如果設(shè)置的話是需要提供的/*設(shè)置回調(diào)函數(shù),當(dāng)收到訂閱消息時(shí)會(huì)執(zhí)行回調(diào)函數(shù)*/client.setCallback(callback);/*連接到MQTT服務(wù)器*/reconnect();}三、任務(wù)實(shí)施(3)loop函數(shù)。每2分鐘上報(bào)3條消息。第3條消息中,壓力值為analogRead(PRES_PIN),假如返回值為200,則MQTT消息的payload為{"Pressure":200}。uint8_ttempTime=0;voidloop(){if(!client.connected()){reconnect();}/*兩分鐘上報(bào)兩次溫濕度信息*/if(tempTime>240){tempTime=0;DHT.read(DHT11_PIN);Serial.print("DHT.temperature=");Serial.println(DHT.temperature);Serial.print("DHT.humidity=");Serial.println(DHT.humidity);Serial.print("analogRead(PRES_PIN)=");Serial.println(analogRead(PRES_PIN));client.publish(pubTopic,("{\""+TempIdentifier+"\":"+DHT.temperature+"}").c_str());client.publish(pubTopic,("{\""+HumiIdentifier+"\":"+DHT.humidity+"}").c_str());client.publish(pubTopic,("{\""+PresIdentifier+"\":"+analogRead(PRES_PIN)+"}").c_str());}else{tempTime++;delay(500);}client.loop();}三、任務(wù)實(shí)施3.APP程序設(shè)計(jì)case3://MQTT收到消息回傳if(msg.obj.toString().contains("temperature")){StringT_val=msg.obj.toString().substring(msg.obj.toString().indexOf("temperature")+13,msg.obj.toString().indexOf("}"));Stringtext_val=T_val+"℃";binding2.text21.setText(text_val);}if(msg.obj.toString().contains("humidity")){StringH_val=msg.obj.toString().substring(msg.obj.toString().indexOf("humidity")+10,msg.obj.toString().indexOf("}"));Stringtext_val=H_val+"%";binding2.text22.setText(text_val);}if(msg.obj.toString().contains("pressure")){對(duì)于壓力值的解析展示程序,參照之前溫濕度消息的解析編寫(xiě)即可,將解析值更新在text23中。截取子字符串時(shí),起始索引是由字段首字符的索引加上偏移量得到的,偏移量需要計(jì)算準(zhǔn)確。StringH_val=msg.obj.toString().substring(msg.obj.toString().indexOf("pressure")+10,msg.obj.toString().indexOf("}"));Stringtext_val="壓力:"+H_val;binding2.text23.setText(text_val);}//Toast.makeText(SecondActivity.this,msg.obj.toString(),Toast.LENGTH_SHORT).show();break;三、任務(wù)實(shí)施4.結(jié)果展示當(dāng)薄膜壓力傳感器沒(méi)有壓力時(shí),數(shù)字量較大,如圖3-45所示。當(dāng)薄膜壓力傳感器受壓時(shí),數(shù)字量較小,如圖3-46所示。因?yàn)榇诖蛴〉膲毫χ岛蜕蠄?bào)的壓力值是在兩條語(yǔ)句監(jiān)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論