1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
      基于STM32的物聯(lián)網(wǎng)環(huán)境監(jiān)測(cè)系統(tǒng)-創(chuàng)新互聯(lián)
      基于STM32的物聯(lián)網(wǎng)環(huán)境監(jiān)測(cè)系統(tǒng)(Internet of Things environmental monitoring system based on STM32) 摘 要

      摘 要:隨著人民對(duì)美好生活的向往,人們對(duì)于環(huán)境的重視程度越來越強(qiáng)烈,環(huán)境對(duì)生活的影響已經(jīng)成為一個(gè)熱點(diǎn)問題。本設(shè)計(jì)以STM32單片機(jī)作為控制和數(shù)據(jù)處理的單元,使用AHT10、BH1750和BMP280傳感器去監(jiān)測(cè)周圍的環(huán)境參數(shù),在LCD屏完成傳感器數(shù)據(jù)和相關(guān)信息的顯示。同時(shí),采用了無(wú)線模組與單片機(jī)之間進(jìn)行數(shù)據(jù)交互。當(dāng)無(wú)線通訊模組成功連接網(wǎng)絡(luò),并接入物聯(lián)網(wǎng)云平臺(tái)時(shí),用戶可以通過登錄物聯(lián)網(wǎng)云平臺(tái)后臺(tái)查看傳感器上報(bào)的數(shù)據(jù)和進(jìn)行遠(yuǎn)程控制。在設(shè)計(jì)過程中,開發(fā)Android上位機(jī)軟件,使用戶在上位機(jī)實(shí)現(xiàn)對(duì)于溫度、濕度、光照強(qiáng)度和氣壓等相關(guān)環(huán)境參數(shù)監(jiān)測(cè)。

      成都創(chuàng)新互聯(lián)公司長(zhǎng)期為近1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為夾江企業(yè)提供專業(yè)的做網(wǎng)站、網(wǎng)站制作,夾江網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。關(guān)鍵詞:STM32;物聯(lián)網(wǎng);環(huán)境監(jiān)測(cè) Abstract

      Abstract:With the people’s yearning for a better life, people pay more and more attention to the environment, the impact of the environment on life has become a hot issue.This design uses STM32 as the control and data processing unit. Meanwhile, the AHT10, BH1750, BMP280 sensors to monitor the surrounding environmental parameters. Display of sensor data and related information on the LCD screen. At the same time, the wireless module and the single chip microcomputer are used for data interaction. When the wireless communication module is successfully connected to the network, and connected to the Internet of Things cloud platform. By login to the background of the Internet of Things cloud platform. Users can view the data reported by the sensor and conduct remote control. In the design process, Android software application is developed to enable users to monitor relevant environmental parameters. Display temperature, humidity, light intensity and pressure data on the APP.
      Keywords:STM32; Internet of Things; Environmental Monitoring

      1 引 言 1.1 課題研究背景

      在我國(guó)經(jīng)濟(jì)穩(wěn)定發(fā)展的背景下,人們的生活質(zhì)量得到了明顯的提高。與此同時(shí)經(jīng)濟(jì)發(fā)展所帶來的環(huán)境的問題,開始慢慢展現(xiàn)出來。環(huán)境問題被越來越多的人們重視。為了擁有更健康的生存環(huán)境,治理環(huán)境污染,改善環(huán)境質(zhì)量,促進(jìn)綠色發(fā)展是目前社會(huì)發(fā)展的形勢(shì)所趨[1]。
      我國(guó)研究環(huán)境監(jiān)測(cè)系統(tǒng)的研究發(fā)展過程比較坎坷。我國(guó)發(fā)展起步比較晚,與其他西方國(guó)家相比較,相關(guān)領(lǐng)域落后幾十年。主要原因是由于當(dāng)時(shí)的社會(huì)生產(chǎn)水平不高,國(guó)內(nèi)相關(guān)的技術(shù)也沒有很多,國(guó)外的相關(guān)核心技術(shù)進(jìn)行封鎖,限制性太大。只能去引進(jìn)國(guó)外的環(huán)境監(jiān)測(cè)系統(tǒng)設(shè)備以及獲取服務(wù)。同時(shí)由于會(huì)操作國(guó)外先進(jìn)設(shè)備的人員較少,很難實(shí)現(xiàn)大規(guī)模使用。
      我國(guó)環(huán)境監(jiān)測(cè)工作是隨著國(guó)家對(duì)于環(huán)境保護(hù)的加大投入,向高質(zhì)量發(fā)展的目標(biāo),從而發(fā)展起來的。國(guó)內(nèi)的傳統(tǒng)的環(huán)境監(jiān)測(cè)裝置系統(tǒng),一般有易受到現(xiàn)場(chǎng)安裝使用環(huán)境被限制的缺點(diǎn)。場(chǎng)景的應(yīng)用適用性比較差。傳統(tǒng)的測(cè)量和控制操作手段比較單一,不能夠遠(yuǎn)距離的監(jiān)控和報(bào)警等提示功能。但是,隨著國(guó)家對(duì)物聯(lián)網(wǎng)信息技術(shù)的發(fā)展加大投入。國(guó)內(nèi)相關(guān)物聯(lián)網(wǎng)平臺(tái)和傳統(tǒng)的環(huán)境監(jiān)測(cè)的廠商之間共同合作。我國(guó)的環(huán)境監(jiān)測(cè)系統(tǒng)的發(fā)展的方向是明確的,是向著智能化方向前進(jìn)。實(shí)現(xiàn)傳感器設(shè)備端與云端之間的互聯(lián),進(jìn)一步向著萬(wàn)物互聯(lián)的方向發(fā)展。
      國(guó)外的環(huán)境監(jiān)測(cè)系統(tǒng)設(shè)備的研究發(fā)展情況如下。傳感器技術(shù)以及相關(guān)電子技術(shù)最先出現(xiàn)在西方國(guó)家。相關(guān)的傳感器芯片和數(shù)據(jù)處理軟件有著快速的發(fā)展,早實(shí)現(xiàn)了智能化操作。許多西方發(fā)達(dá)國(guó)家的環(huán)境監(jiān)測(cè)系統(tǒng)裝置,已經(jīng)能同時(shí)進(jìn)行多路采集各種周圍環(huán)境的相關(guān)質(zhì)量參數(shù)[2]。通過物聯(lián)網(wǎng)技術(shù)實(shí)現(xiàn)數(shù)據(jù)的云端監(jiān)測(cè)和進(jìn)行相關(guān)處理分析,從而進(jìn)行預(yù)測(cè)并得到相關(guān)結(jié)論。歷經(jīng)多年的發(fā)展和相關(guān)電子信息技術(shù)的進(jìn)步,研制出具有自動(dòng)化、智能化的監(jiān)測(cè)系統(tǒng)成為各個(gè)國(guó)家的目標(biāo)。

      1.2 課題研究目的及意義

      進(jìn)入21世紀(jì),隨著物聯(lián)網(wǎng)信息技術(shù)與電子信息技術(shù)的快速進(jìn)步。因此有必要去設(shè)計(jì)出一種以物聯(lián)網(wǎng)技術(shù)、傳感器技術(shù)和電子信息技術(shù)構(gòu)成的多功能環(huán)境監(jiān)測(cè)裝置。該系統(tǒng)可以同時(shí)監(jiān)測(cè)周圍環(huán)境的多路環(huán)境參數(shù)。通過環(huán)境監(jiān)測(cè)系統(tǒng)裝置[3],能夠幫助人們準(zhǔn)確的去監(jiān)測(cè)周圍環(huán)境的參數(shù)。力求以大的力度,尋求科學(xué)合理的方法,去解決日常生產(chǎn)生活出現(xiàn)的環(huán)境問題。
      通過監(jiān)測(cè)系統(tǒng)的長(zhǎng)期的積累的數(shù)據(jù),分析和追溯污染源頭,分析其變化規(guī)律。從而建立相關(guān)的預(yù)警和預(yù)報(bào)系統(tǒng)。環(huán)境監(jiān)測(cè)對(duì)于人們的日常生產(chǎn)生活非常重要。不但體現(xiàn)在環(huán)境保護(hù)和控制污染等方面,而且還是人類生存的重要的基石。堅(jiān)持促進(jìn)綠色發(fā)展,創(chuàng)建綠色中國(guó)的理念,才能擁有更美好的健康生活環(huán)境。

      2 總體方案設(shè)計(jì) 2.1 整體方案設(shè)計(jì)

      本環(huán)境監(jiān)測(cè)系統(tǒng)設(shè)計(jì)選取了控制和數(shù)據(jù)處理能力強(qiáng)的STM32單片機(jī)作為核心部件。使用溫濕度傳感器對(duì)周圍環(huán)境中的溫度與濕度監(jiān)測(cè),選取高精度的光強(qiáng)度傳感器完成對(duì)周圍環(huán)境的光照強(qiáng)度的測(cè)量,對(duì)于氣壓數(shù)據(jù)的測(cè)量,將選取高精度的氣壓傳感器完成工作。該系統(tǒng)使用液晶顯示屏幕完成對(duì)溫濕度數(shù)值,光照強(qiáng)度數(shù)值,大氣壓強(qiáng)數(shù)值以及設(shè)備的狀態(tài)信息的顯示。當(dāng)無(wú)線通訊模組成功連接網(wǎng)絡(luò)之后,接入云平臺(tái)。用戶可以通過登錄物聯(lián)網(wǎng)云平臺(tái)后臺(tái)[4],查看傳感器上報(bào)的數(shù)據(jù)信息和進(jìn)行遠(yuǎn)程控制。開發(fā)Android上位機(jī)軟件,使用戶在上位機(jī)程序上實(shí)現(xiàn)對(duì)各種環(huán)境質(zhì)量參數(shù)監(jiān)測(cè)。整個(gè)系統(tǒng)的整體框架圖如圖2-1所示。

      1661556321247.png

      2.2 控制模塊方案

      本環(huán)境監(jiān)測(cè)系統(tǒng)設(shè)計(jì)使用單片機(jī)作為整個(gè)系統(tǒng)的控制中心。需要完成傳感器數(shù)據(jù)的采集,無(wú)線通訊模組的數(shù)據(jù)交互,顯示傳感器數(shù)據(jù)的功能[5]。在本次的環(huán)境監(jiān)測(cè)系統(tǒng)中,控制模塊采用的是STM32系列單片機(jī)。
      例如在芯片選擇上面,有低功耗類型STM32L系列、主流類型F1系列、高性能F7/H7系列、以及異構(gòu)系統(tǒng)架構(gòu)下的 STM32MP157系列。在軟件程序設(shè)計(jì)過程中,官方提供了圖形化配置軟件STM32CubeMX。可以快速生成底層配置代碼,減少重復(fù)性移植。同時(shí)該32位芯片的相關(guān)技術(shù)資料和參考設(shè)計(jì)資料較多,因此被運(yùn)用到各種電子系統(tǒng)設(shè)計(jì)之中。本課題準(zhǔn)備使用控制性能強(qiáng)勁和數(shù)據(jù)處理能力強(qiáng)的STM32F103ZET6芯片作為核心控制模塊元件。

      2.3 環(huán)境監(jiān)測(cè)傳感器方案

      環(huán)境監(jiān)測(cè)系統(tǒng)主要需要監(jiān)測(cè)的數(shù)據(jù)有溫濕度數(shù)據(jù),光照強(qiáng)度數(shù)據(jù)和大氣壓強(qiáng)數(shù)據(jù)等基本環(huán)境質(zhì)量參數(shù)。因此需要選擇相應(yīng)的溫濕度傳感器,光強(qiáng)傳感器,精度較高的氣壓傳感器[6]。
      溫濕度數(shù)據(jù)采集傳感器選擇了AHT10。AHT10模塊上面有一個(gè)濕度傳感器元件和一個(gè)片上溫度傳感元件,該產(chǎn)品具有快速響應(yīng)、抗干擾能力強(qiáng)和高精度等優(yōu)點(diǎn)[7]。
      光照強(qiáng)度數(shù)據(jù)采集的傳感器選擇了BH1750。BH1750是標(biāo)準(zhǔn)(I2C)接口的16位數(shù)字輸出類型的環(huán)境光強(qiáng)度傳感器,可以利用BH1750模塊的高分辨率探測(cè)較大范圍內(nèi)的光照強(qiáng)度變化情況[8]。
      大氣壓強(qiáng)數(shù)據(jù)采集傳感器選擇了BMP280。數(shù)字式氣壓傳感器BMP280,具有高精度的特點(diǎn),而且也具有測(cè)量環(huán)境溫度和高度的功能。
      綜上所述的傳感器模塊,在選擇時(shí)考慮到了其成本,使用的方便性,相關(guān)設(shè)計(jì)資料的豐富性,傳感器模塊實(shí)物圖如圖2-2所示。

      1661556485469.png

      2.4 無(wú)線模塊方案

      隨著物聯(lián)網(wǎng)技術(shù)等相關(guān)通信技術(shù)的快速發(fā)展和更新迭代,目前的物聯(lián)網(wǎng)技術(shù)呈現(xiàn)出智能化的特點(diǎn)[9]。因此在本系統(tǒng)設(shè)計(jì)中,決定使用遠(yuǎn)程通信模塊進(jìn)行數(shù)據(jù)通信和進(jìn)行智能化操作。對(duì)接國(guó)內(nèi)開放的物聯(lián)網(wǎng)云平臺(tái),從而更加智能的,簡(jiǎn)單的完成整個(gè)設(shè)計(jì)的功能。
      方案一:對(duì)于長(zhǎng)距離無(wú)線通訊模塊的選擇。查詢資料后,了解了國(guó)產(chǎn)LTE無(wú)線通訊模組上海合宙公司。該公司研發(fā)的LTE Cat 1無(wú)線通信模組提供了豐富的通用外設(shè)接口,并且支持Lua二次開發(fā),合宙官方提供了嵌入式腳本運(yùn)行框架LuatOS。但是模組價(jià)格比較貴,而且開發(fā)過程比較復(fù)雜,相關(guān)資料和設(shè)計(jì)參考較少,開發(fā)難度較大。
      方案二: ESP8266芯片是國(guó)產(chǎn)芯片公司樂鑫科技所研發(fā)的一款WIFI無(wú)線模組芯片。內(nèi)置TCP/IP協(xié)議棧,支持AT本地升級(jí)和OTA遠(yuǎn)程升級(jí)。該無(wú)線模組能夠很好的接入國(guó)內(nèi)的開放的物聯(lián)網(wǎng)云平臺(tái),具有易操作化的特點(diǎn),主要是相關(guān)資料和設(shè)計(jì)參考較多,開發(fā)難度較小。
      經(jīng)過對(duì)上述方案對(duì)比,方案二中的ESP8266模塊,擁有豐富的相關(guān)設(shè)計(jì)資料。最終選擇了以ESP8266芯片作為核心的無(wú)線模組。作為單片機(jī)與物聯(lián)網(wǎng)云端進(jìn)行數(shù)據(jù)傳輸和交換的單元,無(wú)線模塊實(shí)物圖如圖2-3所示。

      1661556514874.png

      2.5 液晶顯示模塊方案

      本次環(huán)境監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)過程中,需要使用顯示模塊進(jìn)行顯示。需要的顯示的數(shù)據(jù),主要包括傳感器設(shè)備測(cè)量采集到的數(shù)據(jù)和系統(tǒng)的基本狀態(tài)信息。在電子系統(tǒng)設(shè)計(jì)過程中,常使用的顯示模塊主要有以下兩種,TFT彩屏和LCD1602兩種。方案對(duì)比如下。
      方案一:TFT屏幕是以背透和反射相結(jié)合的方式工作的,通過點(diǎn)脈沖直接控制[10]。從而實(shí)現(xiàn)顯示效果。查詢資料了解到了一種1.8寸的TFT彩屏模塊。在色彩顯示上,TFT屏幕的效果較好,色彩豐富且具有對(duì)比度高特點(diǎn)。同時(shí)在使用該LCD 顯示模組時(shí),需要用到的單片機(jī)的IO端口數(shù)量較少。
      方案二:LCD1602是一種字符型液晶顯示模塊,具有成本低等特點(diǎn)。但是缺點(diǎn)是在使用LCD1602需要較多的單片機(jī)的IO端口數(shù)量。而且需要通過調(diào)節(jié)變阻器的大小,才能改變屏幕的顯示效果,不能直接得到顯示效果。
      經(jīng)過上述兩個(gè)方案對(duì)比,由于需要對(duì)傳感器數(shù)據(jù)的實(shí)際測(cè)量值進(jìn)行顯示,選擇了顯示內(nèi)容更多和色彩效果更好的方案一,TFT顯示模塊實(shí)物圖如圖2-4所示。

      1661556536358.png

      3 系統(tǒng)硬件設(shè)計(jì) 3.1 STM32主控模塊

      環(huán)境監(jiān)測(cè)系統(tǒng)選取了STM32F103ZET6芯片作為電路的核心控制和數(shù)據(jù)處理單元。該芯片支持UART、SPI、I2C接口,芯片內(nèi)部集成了512KB閃存和64KB SRAM,可以存儲(chǔ)更多的程序和數(shù)據(jù)。環(huán)境監(jiān)測(cè)系統(tǒng)的主控電路設(shè)計(jì)如圖3-1所示。STM32芯片正常運(yùn)行所需要的電壓范圍為2.03.6V,實(shí)際運(yùn)行時(shí)的電流只有幾十毫安,因此芯片功耗非常低。芯片可對(duì)系統(tǒng)電路之中的電壓進(jìn)行檢測(cè),可與電源芯片相接一起完成開關(guān)電源調(diào)節(jié)。芯片正常運(yùn)行時(shí),需要一個(gè)外部時(shí)鐘觸發(fā)信號(hào),為此將使用頻率范圍在416MHz之間的晶體振蕩器。芯片內(nèi)部存在一個(gè)自動(dòng)校準(zhǔn)的RTC振蕩電路,其實(shí)際運(yùn)行的頻率能夠達(dá)到32KHZ。在本次設(shè)計(jì)中,因?yàn)镾TM32系列擁有豐富的串口接口,因此可以實(shí)現(xiàn)與多個(gè)通訊模組通信。同時(shí)可以添加調(diào)試接口,利用串口軟件實(shí)現(xiàn)調(diào)試功能,打印設(shè)備狀態(tài)信息。

      1661556591082.png

      3.2 溫濕度傳感器模塊

      溫濕度傳感器模塊核心是以AHT10芯片作為核心部分,還包括電平轉(zhuǎn)換電路。AHT10芯片的產(chǎn)品特性如下,芯片的輸入電壓范圍:2.3V至3.3V;具有低功耗的特點(diǎn);芯片通訊方式采用標(biāo)準(zhǔn)的I2C接口通信。該溫濕度傳感器芯片的精度如下,濕度精度±3%RH,溫度精度0.5℃。模塊的參考設(shè)計(jì)電路如圖3-2所示。

      1661556620677.png

      3.3 光照強(qiáng)度傳感器模塊

      光強(qiáng)傳感器模塊核心是以BH1750芯片作為核心部分,還包括電平轉(zhuǎn)換電路。BH1750芯片的產(chǎn)品特性如下,芯片的輸入電壓范圍:3.0V至3.6V之間;其峰值靈敏度波長(zhǎng)的典型值為560nm;輸入的光照強(qiáng)度范圍為1~65535Lx,其最小的分辨率為0.5Lx[11]。BH1750芯片采用的通訊方式是標(biāo)準(zhǔn)的I2C接口通信。模塊的參考設(shè)計(jì)電路如圖3-3所示。

      1661556642921.png

      3.4 大氣壓強(qiáng)傳感器模塊

      氣壓傳感器模塊核心是以BMP280芯片作為核心部分,還包括電平轉(zhuǎn)換電路。氣壓傳感器的產(chǎn)品特性如下,芯片的輸入電壓范圍:1.7~3.6V;芯片的氣壓工作范圍為300hPa至1100hPa;芯片工作溫度范圍為-40℃至85℃;BMP280芯片支持標(biāo)準(zhǔn)的I2C接口通信和SPI通信;模塊參考設(shè)計(jì)電路圖如圖3-4所示。

      1661556642921.png

      3.5 顯示模塊

      在本次的環(huán)境監(jiān)測(cè)系統(tǒng)設(shè)計(jì)中,選擇了1.8寸TFT彩色屏幕作為該系統(tǒng)的顯示模塊,LCD彩屏采用SPI接口通訊方式,驅(qū)動(dòng)IC是ST7735S,其支持的顯示的分辨率為128*160;支持16Bit RGB范圍 65K色顯示。該顯示模塊支字符,字符串,漢字,圖片等效果顯示。 彩色TFT顯示模塊接口電路圖如圖3-5所示。

      1661556703807.png

      3.6 無(wú)線通信模塊

      環(huán)境監(jiān)測(cè)系統(tǒng)選擇了ESP8266系列芯片作為無(wú)線通訊部分。ESP8266系列芯片,其CPU時(shí)鐘速率最高可以達(dá)到160MHz,同時(shí)具有豐富的外設(shè)接口;經(jīng)典的WIFI模式支持三種類型,包括Station客戶端模式、SoftAP服務(wù)端模式和SoftAP+Station混合模式[12];該無(wú)線模組支持TCP、HTTP、MQTT等基本網(wǎng)絡(luò)協(xié)議。無(wú)線通信模塊參考電路設(shè)計(jì)如圖3-6所示。

      1661556709993.png

      3.7 按鍵控制模塊

      在環(huán)境監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)中,通過按鍵模塊進(jìn)行GPIO輸入操作,從而無(wú)線通信模塊的配網(wǎng)操作。在本次環(huán)境監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)中,當(dāng)按鍵KEY1按下時(shí),LCD屏幕則會(huì)顯示傳感器數(shù)據(jù)監(jiān)測(cè)信息;當(dāng)按鍵KEY2按下時(shí),LCD屏幕則會(huì)顯示網(wǎng)絡(luò)狀態(tài)信息;當(dāng)按鍵KEY3按下時(shí),LCD屏幕則會(huì)顯示系統(tǒng)相關(guān)信息。按鍵模塊電路圖如圖3-7所示。

      1661556749771.png

      3.8 電源接口電路

      在電源供電方式選擇過程中,可以采用的是連接USB接口進(jìn)行供電。由于大部分的傳感器設(shè)備模塊的輸入電壓范圍在3.3V左右,所以需要設(shè)計(jì)電平轉(zhuǎn)換電路。該部分主要由電源線引入5V/1A的電源給系統(tǒng)供電,經(jīng)KIA1117芯片降壓為3.3V,給STM32主控系統(tǒng)和傳感器設(shè)備供電。電源接口電路圖如圖3-8所示。

      1661556766758.png

      4 系統(tǒng)軟件設(shè)計(jì) 4.1 主程序設(shè)計(jì)

      基于STM32的環(huán)境監(jiān)測(cè)系統(tǒng)的主程序流程如下。整個(gè)系統(tǒng),在提供電源之后,開始進(jìn)行系統(tǒng)模塊的初始化操作。如進(jìn)行傳感器設(shè)備的初始化,LCD模塊的初始化,無(wú)線通訊模組的初始化。當(dāng)完成初始化操作之后,LCD屏幕則會(huì)顯示初始化信息。此時(shí),利用路由器或手機(jī)熱點(diǎn)提供WIFI信號(hào),WIFI模塊會(huì)進(jìn)行聯(lián)網(wǎng)操作。當(dāng)聯(lián)網(wǎng)成功時(shí),系統(tǒng)開始接收傳感器設(shè)備采集的數(shù)據(jù),APP程序會(huì)顯示相關(guān)傳感器數(shù)據(jù)信息,LCD屏幕也會(huì)顯示環(huán)境監(jiān)測(cè)系統(tǒng)的主要監(jiān)測(cè)數(shù)據(jù)。如果聯(lián)網(wǎng)失敗,則會(huì)重新嘗試連接網(wǎng)絡(luò)。主程序設(shè)計(jì)流程圖如圖4-1所示。

      1661556784632.png

      4.2 傳感器數(shù)據(jù)采集及處理

      環(huán)境監(jiān)測(cè)系統(tǒng)主要需要監(jiān)測(cè)的數(shù)據(jù),有溫濕度數(shù)據(jù),光照強(qiáng)度數(shù)據(jù)和大氣壓強(qiáng)數(shù)據(jù)。選擇的環(huán)境監(jiān)測(cè)系統(tǒng)的傳感器,AHT10,BH1750,BMP280都是通過標(biāo)準(zhǔn)的I2C接口進(jìn)行通信。
      對(duì)于溫濕度數(shù)據(jù)的采集,使用AHT10傳感器。AHT10采集數(shù)據(jù)的流程。第一步,模塊進(jìn)行上電,等待40ms,目的是在讀取溫濕度數(shù)據(jù)過程之前,進(jìn)行初始化操作。第二步,當(dāng)?shù)却龝r(shí)間結(jié)束后,進(jìn)行觸發(fā)測(cè)量操作。第三步,等待測(cè)量過程完成,從而獲取傳感器采集到的溫濕度數(shù)據(jù)。流程如圖4-2所示。

      1661556803729.png

      對(duì)于光照強(qiáng)度數(shù)據(jù)的采集,使用BH1750傳感器。計(jì)算BH1750采集結(jié)果,單片機(jī)通過I2C協(xié)議讀取的第一個(gè)字節(jié)是 BH1750寄存器的高8位,第二字節(jié)為寄存器的低8位數(shù)據(jù),高8位數(shù)據(jù)左移8位再加上低8位數(shù)據(jù)[13],利用公式去計(jì)算最終的光照強(qiáng)度數(shù)值。測(cè)量步驟如圖4-3所示。

      1661556824979.png

      對(duì)于氣壓數(shù)據(jù)的采集,使用BMP280傳感器。 BMP280傳感器的初始化流程如下,第一步,芯片內(nèi)部數(shù)據(jù)全部清零;第二步,讀芯片ID;第三步,進(jìn)行測(cè)量控制寄存器操作;第四步,進(jìn)行測(cè)量,測(cè)量時(shí)間的間隔為0.5ms;第五步,讀取補(bǔ)償值數(shù)據(jù)。官方數(shù)據(jù)手冊(cè)提供的BMP280測(cè)量流程如圖4-4所示。

      1661556856970.png

      在讀取數(shù)據(jù)時(shí),需要進(jìn)行濾波操作使結(jié)果的更加穩(wěn)定。BMP280傳感器獲取氣壓數(shù)值的底層驅(qū)動(dòng)代碼如圖4-5所示。

      //==================================================================================================
      //  函數(shù)功能: BMP280 外設(shè)驅(qū)動(dòng)函數(shù)部分
      //  函數(shù)標(biāo)記: bmp280GetPressure
      //  函數(shù)說明: 傳感器獲取大氣壓數(shù)值
      //-------------------------------------------------------------------------------------------------
      //  |   -   |   -   |   0   |   1   |   2   |   3   |   4   |   5   |   6   |   7   |   8   |   9   
      //==================================================================================================
      static void bmp280GetPressure(void)
      {u8 data[BMP280_DATA_FRAME_SIZE];
      
          // read data from sensor
          BMP_iicDevRead(BMP280_ADDR,BMP280_PRESSURE_MSB_REG,BMP280_DATA_FRAME_SIZE,data);
          bmp280RawPressure=(s32)((((uint32_t)(data[0]))<<12)|(((uint32_t)(data[1]))<<4)|((uint32_t)data[2]>>4));
          bmp280RawTemperature=(s32)((((uint32_t)(data[3]))<<12)|(((uint32_t)(data[4]))<<4)|((uint32_t)data[5]>>4));
      }
      4.3 顯示模塊程序設(shè)計(jì)

      環(huán)境監(jiān)測(cè)系統(tǒng)選擇了1.8寸TFT彩屏作為顯示模塊部分。主要的顯示內(nèi)容是傳感器采集的數(shù)據(jù),網(wǎng)絡(luò)狀態(tài)信息,系統(tǒng)信息,NTP網(wǎng)絡(luò)時(shí)間以及系統(tǒng)開機(jī)啟動(dòng)的界面。LCD顯示驅(qū)動(dòng),提供了基本的顯示基本的英文字符,數(shù)字,以及顯示漢字和圖片的函數(shù)接口,同時(shí)支持不同的大小的字體的函數(shù)接口。

      第一部分,系統(tǒng)上電開機(jī)啟動(dòng)界面,顯示開機(jī)界面圖片及相關(guān)信息。在開機(jī)啟動(dòng)界面的設(shè)計(jì)中,使用彩色圖片取模軟件,進(jìn)行設(shè)置圖片尺寸大小,色彩參數(shù)。從而獲取對(duì)應(yīng)的數(shù)組代碼。調(diào)用LCD圖片顯示函數(shù)TFT_ImageShow顯示圖片,支持不同尺寸的大小的圖片顯示,本次顯示的圖片大小為120*120。 第二部分,顯示環(huán)境監(jiān)測(cè)系統(tǒng)的系統(tǒng)信息功能選擇界面。調(diào)用system_show()函數(shù),實(shí)現(xiàn)的效果是三種基本信息功能選擇的展示。第一,SensorMessage傳感器數(shù)據(jù)信息展示功能,第二,NetworkMessage網(wǎng)絡(luò)狀態(tài)信息展示功能,第三,SystemMessage系統(tǒng)基本信息展示功能。 第三部分,顯示環(huán)境監(jiān)測(cè)系統(tǒng)的傳感器數(shù)據(jù)信息SensorMessage。數(shù)據(jù)信息主要是顯示溫濕度Temperature和濕度Humidity,光照強(qiáng)度數(shù)據(jù)Light_Intensity,氣壓傳感器數(shù)據(jù)Pressure。驅(qū)動(dòng)代碼如圖4-6所示。
      void system_show(void)
      
      {TFT_ShowString_16x16(8,0,"->System_Display<-",Blue1,White);
      		TFT_ShowString_16x16(20,20,"1.[SensorMessage]",Red,White);
      		TFT_ShowString_16x16(20,40,"2.[NetworkMessage]",Red,White);
      		TFT_ShowString_16x16(20,60,"3.[SystemMessage]",Red,White);
      		printf("---》1.環(huán)境監(jiān)測(cè)信息  \r\n");
      		printf("---》2.網(wǎng)絡(luò)狀態(tài)信息  \r\n");
      		printf("---》3.系統(tǒng)相關(guān)信息  \r\n");
      }
      
      void NetworkInformation_show(void)
      {TFT_ShowString_16x16(0,0,"-->Network Message<--",Blue1,White);
      		TFT_ShowString_16x16(0,20,"ESP8266 WIFIModule",Red,White);
      		TFT_ShowString_16x16(0,40,"Gizwits AIoTCloud ",Red,White);
      		//顯示機(jī)智云配網(wǎng)是否成功
      		TFT_ShowChinese_16x16(0,60, "天:",Red,White);
      		TFT_ShowChinese_16x16(20,60,"氣",Red,White);
      		TFT_ShowString_16x16(40,60,":",Red,White);
      	    TFT_ShowString_16x16(70,60,results[0].now.text,Blue1,White);
      		TFT_ShowString_16x16(0,80,"NetworkState:",Red,White);
      		TFT_ShowChinese_16x16(120,80,"●",WIFI_CONNECT_FLAG == 0?Red: Blue1 ,White);
      }
      
      void SystemInformation_show(void)
      {TFT_ShowString_16x16(0,0,"-->System Message<--",Blue1,White);
      		TFT_ShowString_16x16(0,20,"STM32 AIoT System",Red,White);
      		TFT_ShowString_16x16(0,40,"Num:51836011045 ",Red,White);
      		TFT_ShowString_16x16(0,60,"BBU WangZiXuan2022.4",Red,White);
      
      }
      
      void TFT_Show_SensorDATA(void)
      {//顯示溫度
      		TFT_ShowImage(0,0,32,32,Wendu);
      		TFT_ShowString_16x16(30,0,"Temp",Blue1,White);
      		TFT_ShowNumber_Float_16x16(30,16,aht_temp,2,1,Red,White);
      		TFT_ShowChinese_16x16(64,0,"℃",Magenta,White);
      //		//顯示濕度
      		TFT_ShowImage(78,0,32,32,shidu);
      		TFT_ShowString_16x16(112,0,"Humi",Blue1,White);
      		TFT_ShowNumber_Float_16x16(108,16,aht_hum,2,1,Red,White);
      		TFT_ShowString_16x16(150,16,"%%",Magenta,White);	
      //		//顯示光照強(qiáng)度
      		TFT_ShowImage(0,35,32,32,Light_IMG);
      		TFT_ShowString_16x16(40,30,"Light_Data",Blue1,White);
      		TFT_ShowNumber_Float_16x16(30,48,Light,5,1,Red,White);
      		TFT_ShowString_16x16(95,48,"Lux",Magenta,White);	
      //		//大氣壓 Hpa 正常的大氣壓是在1000百帕左右
      		TFT_ShowImage(0,70,32,32,IMG_Hpa);
      		TFT_ShowString_16x16(40,60,"Pressure",Blue1,White);
      		TFT_ShowNumber_SignedInteger_16x16(40,76,Press,4,Red,White);
      		TFT_ShowString_16x16(90,76,"Hpa",Blue1,White);	
      		
      		TFT_ShowString_16x16(0,96,"-->SensorMessage<--",Blue1,White);
      }
      
      第四部分,顯示環(huán)境監(jiān)測(cè)系統(tǒng)的網(wǎng)絡(luò)狀態(tài)信息NetworkMessage,主要是顯示是否連接到無(wú)線網(wǎng)絡(luò)的狀態(tài)信息。第五部分,系統(tǒng)基本信息展示。

      在本次顯示模塊的程序設(shè)計(jì)中,完成了基本數(shù)據(jù)信息的展示。由于需要進(jìn)行圖片顯示,占用資源較多。后期可以使用SD卡存儲(chǔ)媒體資源,外部調(diào)用,減少單片機(jī)內(nèi)部芯片資源的使用。在功能選擇界面的程序設(shè)計(jì)中,后期可以完善功能選擇的部分代碼,實(shí)現(xiàn)多級(jí)菜單的效果。

      4.4 物聯(lián)網(wǎng)云平臺(tái)設(shè)備接入

      在本次的環(huán)境監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)中,利用了無(wú)線模塊進(jìn)行基本通信操作。傳統(tǒng)的無(wú)線模組與單片機(jī)進(jìn)行數(shù)據(jù)交換,一般的方案是利用無(wú)線模組建立局域網(wǎng)實(shí)現(xiàn)通信功能。隨著云計(jì)算等相關(guān)信息技術(shù)的進(jìn)步,現(xiàn)在的無(wú)線通訊模組可以實(shí)現(xiàn)與云端連接,實(shí)現(xiàn)數(shù)據(jù)遠(yuǎn)程傳輸?shù)墓δ堋T诒敬卧O(shè)計(jì)中,使用的無(wú)線模組需要連接網(wǎng)絡(luò),并接入云平臺(tái)。用戶可以通過登錄云平臺(tái)后臺(tái),查看無(wú)線通訊模塊上報(bào)的傳感器數(shù)據(jù)和進(jìn)行遠(yuǎn)程控制等操作。在物聯(lián)網(wǎng)云平臺(tái)的選擇中,選擇了國(guó)內(nèi)的機(jī)智云平臺(tái)。物聯(lián)網(wǎng)設(shè)備接入的方案,如圖4-7所示。

      1661556997446.png

      云平臺(tái)提供了兩種版本的GAgent通信協(xié)議的接入方案,主要是獨(dú)立MCU方案和SOC方案兩種。本次環(huán)境監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)中,選擇了獨(dú)立MCU方案接入平臺(tái)。在本次設(shè)計(jì)過程中,需要把GAgent協(xié)議移植到WIFI模組上面,從而實(shí)現(xiàn)對(duì)接云平臺(tái)進(jìn)行數(shù)據(jù)交互的功能。云平臺(tái)提供了GAgent固件,GAgent固件的主要作用是完成對(duì)數(shù)據(jù)進(jìn)行上報(bào)云平臺(tái)和平臺(tái)遠(yuǎn)程下發(fā)命令的功能[14]。固件下載效果如圖4-8所示。

      1661557003547.png

      在本次的環(huán)境監(jiān)測(cè)系統(tǒng)是軟件設(shè)計(jì)中,采用了MCU +WIFI通信模組方案,現(xiàn)在介紹接入機(jī)智云平臺(tái)的流程。 1. 第一步,注冊(cè)IoT平臺(tái)的開發(fā)者賬號(hào),并登陸選擇產(chǎn)品類型并創(chuàng)建。 2. 第二步,填寫產(chǎn)品相關(guān)的基本信息之后,獲取到平臺(tái)提供的Product Key和Product Secret等密鑰信息[15],如圖4-9所示

      1661557009579.png

      3. 第三步,創(chuàng)建相關(guān)數(shù)據(jù)點(diǎn)信息,完成相關(guān)數(shù)據(jù)類型的填寫。在環(huán)境監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)中,需要?jiǎng)?chuàng)建溫度數(shù)據(jù)Temperature,濕度Humidity,光照強(qiáng)度Light_Intensity,氣壓Pressure等主要的傳感器數(shù)據(jù)點(diǎn),如圖4-10所示。

      1661557016853.png

      4. 第四步,使用IoT平臺(tái)提供SDK文件包,進(jìn)行相關(guān)代碼移植。在SDK包生成的過程中,平臺(tái)提供了兩種類型。本次系統(tǒng)設(shè)計(jì)過程中,選擇獨(dú)立MCU方案作為最終方案。在支持的硬件平臺(tái)中,有常見MCU類型。例如有STM32平臺(tái),MSP430平臺(tái)等,都提供了相關(guān)的測(cè)試SDK包。選擇使用通用的MCU平臺(tái)生成的SDK的代碼移植,有利于之后移植到其他的MCU芯片平臺(tái)上面去,選擇如圖4-11所示。

      1661557023787.png

      機(jī)智云SDK包的代碼移植到STM32系列平臺(tái)的流程如下。在整個(gè)代碼移植的過程,主要是去移植串口初始化及配置,定時(shí)器的初始化及配置[16],傳感器數(shù)據(jù)的采集接收和上報(bào)函數(shù)的配置,以及相關(guān)模塊的初始化配置。 1. 第一部分,進(jìn)行移植串口配置函數(shù)操作,在本次設(shè)計(jì)中主要是使用了串口3與無(wú)線通信模組進(jìn)行數(shù)據(jù)交換。STM32單片機(jī)的引腳PB10為USART3_TX,引腳PB11為USART3_RX,其中USART3_TX與WIFI模組UART_RX連接,其中USART3_RX與WIFI模組UART_TX連接。配置串口3中斷函數(shù)USART3_IRQHandler(),移植gizPutData(),把數(shù)據(jù)寫入到緩沖區(qū)里面,代碼如圖4-12所示。
      //串口3中斷服務(wù)函數(shù)
      void USART3_IRQHandler(void)
      {u8 res;	      
      	if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)//接收到數(shù)據(jù)
      	{ 
      		res =USART_ReceiveData(USART3);		 
      		gizPutData(&res, 1);//數(shù)據(jù)寫入到緩沖區(qū)
      	}  				 											 
      }   
      
      2. 第二部分,定時(shí)器代碼移植。在本次設(shè)計(jì)中使用了定時(shí)器3進(jìn)行毫秒定時(shí)。在定時(shí)器3的中斷服務(wù)處理函數(shù)中移植了gizTimerMs(),提供系統(tǒng)的毫秒定時(shí)操作,代碼如圖4-13所示。
      //==================================================================================================
      //  實(shí)現(xiàn)功能: 定時(shí)器3 中斷服務(wù)函數(shù)函數(shù)
      //  函數(shù)說明: 
      //  函數(shù)備注: 
      //--------------------------------------------------------------------------------------------------
      //  |   -   |   -   |   0   |   1   |   2   |   3   |   4   |   5   |   6   |   7   |   8   |   9   
      //==================================================================================================  
      void TIM3_IRQHandler(void)   //TIM3中斷
       { if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //檢查指定的TIM中斷發(fā)生與否:TIM 中斷源 
           { 
             TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );  //清除TIMx的中斷待處理位:TIM 中斷源 
             gizTimerMs();
               
           }
       }
      3. 第三部分,網(wǎng)絡(luò)協(xié)議的配置。在Gizwits初始化函數(shù)中,調(diào)用了定時(shí)器TIM3的初始化,配置了1ms定時(shí),USART3_Configuration設(shè)置波特率為9600。然后是進(jìn)行設(shè)備狀態(tài)結(jié)構(gòu)體的初始化,數(shù)據(jù)緩沖區(qū)的初始化配置。網(wǎng)絡(luò)協(xié)議的配置及初始化移植的代碼如圖4-14所示。
      //==================================================================================================
      //  實(shí)現(xiàn)功能: 機(jī)智云協(xié)議配置
      //  函數(shù)說明: 進(jìn)行ESP8266配網(wǎng)操作
      //  函數(shù)備注: 
      //--------------------------------------------------------------------------------------------------
      //  |   -   |   -   |   0   |   1   |   2   |   3   |   4   |   5   |   6   |   7   |   8   |   9   
      //================================================================================================== 
      void Gizwits_Init(void)
      {TIM3_Int_Init(9,7199);							//1MS系統(tǒng)定時(shí)
      		USART3_Configuration(9600);						//WIFI初始化
      		userInit();								//設(shè)備狀態(tài)結(jié)構(gòu)體初始化
      		gizwitsInit();							        //緩沖區(qū)初始化 
      }

      傳感器采集數(shù)據(jù)的成員,包括valueTemp,valueHum,valuePress,valueLight_Intensity等,數(shù)據(jù)上報(bào)函數(shù)userHandle()實(shí)現(xiàn)數(shù)據(jù)上報(bào)功能,代碼如圖4-15所示。

      void userHandle(void) //數(shù)據(jù)上報(bào)給云平臺(tái)的處理函數(shù)
      {currentDataPoint.valueTemp = aht_temp ;       //上報(bào)溫度數(shù)據(jù)
            currentDataPoint.valueHum = aht_hum;          //上報(bào)濕度數(shù)據(jù)
            currentDataPoint.valuePress =Press ;          //上報(bào)氣壓數(shù)據(jù)
            currentDataPoint.valueLight_Intensity = Light;//上報(bào)光照強(qiáng)度數(shù)據(jù)
            if(LEDR == 0)
      	   {  currentDataPoint.valueLED = 0;
        	 }
        	 else
        	 {  currentDataPoint.valueLED = 1;
        	 }
          
      }
      4. 在事件處理函數(shù)中,添加了相關(guān)的配網(wǎng)成功或失敗以及網(wǎng)絡(luò)時(shí)間獲取的標(biāo)志位,并進(jìn)行相關(guān)的顯示。在配置網(wǎng)絡(luò)的操作,使用了開發(fā)板上面按鍵模塊進(jìn)行配置。配網(wǎng)采用的AirLink連接模式,在主函數(shù)里面,編寫了按鍵檢測(cè)函數(shù)。當(dāng)按鍵KEY1_PRES的按下時(shí),進(jìn)行手機(jī)APP配網(wǎng)。在配網(wǎng)時(shí),手機(jī)APP和無(wú)線模組需要連接到同一個(gè)熱點(diǎn)信號(hào)下面進(jìn)行配置。輸入WIFI的賬號(hào)SSID和Password,選擇WIFI模組的類型進(jìn)行配置,等待配網(wǎng)完成,設(shè)備名稱信息則會(huì)顯示在APP上面。 4.5 上位機(jī)軟件應(yīng)用開發(fā) 上位機(jī)軟件應(yīng)用開發(fā)。在本次的環(huán)境監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)中,采用了Android應(yīng)用程序作為上位機(jī)軟件。一般在APP開發(fā)設(shè)計(jì)過程中,主要是進(jìn)行APP的UI界面設(shè)計(jì),和相關(guān)功能模塊底層邏輯設(shè)計(jì)。在APP的UI界面設(shè)計(jì)的過程中,選擇使用XML進(jìn)行布局,在應(yīng)用程序的底層邏輯設(shè)計(jì)使用的Java語(yǔ)言。應(yīng)用開發(fā)選擇的是安卓平臺(tái),如圖4-16所示。

      1661557369434.png

      本次設(shè)計(jì)中,使用平臺(tái)提供生成的SDK文件包進(jìn)行修改。由于平臺(tái)的提供的例程只是完成了基本的顯示效果,界面效果一般。所以接下來的主要工作是對(duì)官方源碼進(jìn)行修改。打開Android Studio軟件,導(dǎo)入從平臺(tái)下載的Demo源碼,通過修改src文件里面的layout的布局文件,進(jìn)行界面UI設(shè)計(jì)和優(yōu)化。通過對(duì)src文件里面的java代碼,進(jìn)行底層邏輯代碼修改[17]。在界面的UI設(shè)計(jì)工過程,主要是傳感器的數(shù)據(jù)和系統(tǒng)狀態(tài)信息顯示,基本顯示效果如圖4-17所示。APP的界面設(shè)計(jì)需要優(yōu)化,后期可以添加相關(guān)傳感器歷史數(shù)據(jù)的查看和實(shí)時(shí)動(dòng)態(tài)曲線的功能[18]。

      1661557403566.png

      效果
      1. 1661557546812.png
      2. 1661557520760.png
      3. 1661557530245.png
      4. 1661557554152.png

      你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


      分享名稱:基于STM32的物聯(lián)網(wǎng)環(huán)境監(jiān)測(cè)系統(tǒng)-創(chuàng)新互聯(lián)
      轉(zhuǎn)載注明:http://www.ef60e0e.cn/article/ceoiji.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        江安县| 文昌市| 克什克腾旗| 石城县| 囊谦县| 马关县| 荆州市| 建德市| 探索| 嫩江县| 昆明市| 海阳市| 马山县| 鹿邑县| 长兴县| 舞阳县| 抚远县| 赤水市| 贵定县| 蓬莱市| 鄂州市| 龙南县| 浦县| 阳山县| 灵台县| 永靖县| 买车| 文登市| 秀山| 百色市| 天水市| 丰城市| 桂平市| 赤峰市| 江达县| 通江县| 蓬溪县| 和静县| 慈溪市| 常宁市| 福安市|