国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ESP32的環(huán)境監(jiān)測系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2024-09-24 00:00:00張來洪關(guān)海偉魯興張揚(yáng)
物聯(lián)網(wǎng)技術(shù) 2024年5期
關(guān)鍵詞:屏幕顯示上位機(jī)環(huán)境監(jiān)測

摘 要:基于ESP32為主芯片設(shè)計(jì)環(huán)境監(jiān)測系統(tǒng),獲取環(huán)境中的溫濕度、光照強(qiáng)度、氣壓、海拔、紫外線強(qiáng)度、煙霧濃度、二氧化碳含量、甲醛含量、TVOC含量、PM2.5含量等一系列環(huán)境信息以及實(shí)時時鐘信息,通過LED燈、OLED屏實(shí)現(xiàn)環(huán)境信息的狀態(tài)顯示和信息值的屏幕顯示,基于語音合成模塊實(shí)現(xiàn)環(huán)境信息的語音播報,通過RS 232串口、串口轉(zhuǎn)USB、以太網(wǎng)、WiFi、藍(lán)牙等多種接口將環(huán)境信息報送至上位機(jī),通過多種接口或調(diào)試指令對ESP32的工作狀態(tài)進(jìn)行管理。詳細(xì)介紹了該系統(tǒng)的整體設(shè)計(jì)、硬件設(shè)計(jì)、軟件設(shè)計(jì)。通過聯(lián)調(diào)演示,證明該系統(tǒng)各項(xiàng)功能正常、運(yùn)行穩(wěn)定,可用于辦公室、農(nóng)業(yè)大棚、儲物倉庫等場景的環(huán)境監(jiān)測,也為同類方案或產(chǎn)品提供參考和借鑒。

關(guān)鍵詞:ESP32;傳感器;環(huán)境監(jiān)測;屏幕顯示;語音播報;上位機(jī)

中圖分類號:TP29 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-1302(2024)05-00-04

0 引 言

ESP32是樂鑫信息科技提供的微控制器(Micro Control Unit, MCU)芯片,采用兩個哈佛結(jié)構(gòu)Xtensa LX6 CPU構(gòu)成雙核系統(tǒng),片上集成通用型輸入輸出(General Purpose Input/Output, GPIO)、通用異步收發(fā)傳輸器(Universal Asynchronous Reveiver Transmitter, UART)、集成電路總線(Inter Integrated Circuit, I2C)、串行外設(shè)接口(Serial Peripheral Interface, SPI)、模數(shù)轉(zhuǎn)換(Analog to Digital Convert, ADC)等控制器以及WiFi收發(fā)器和藍(lán)牙收發(fā)器,兼具功能強(qiáng)大、性能穩(wěn)定、體積精巧、價格低廉的優(yōu)勢[1]。本文將ESP32作為主芯片,結(jié)合一系列外部器件,設(shè)計(jì)一套環(huán)境監(jiān)測系統(tǒng),監(jiān)測環(huán)境中的多項(xiàng)參數(shù),可用于辦公室內(nèi)、農(nóng)業(yè)大棚、儲物倉庫等場景的環(huán)境監(jiān)測,也為同類方案或產(chǎn)品提供參考和借鑒[2-4]。

1 系統(tǒng)整體設(shè)計(jì)

整個環(huán)境監(jiān)測系統(tǒng)由供電模塊、主芯片、采集模塊、狀態(tài)顯示模塊、狀態(tài)上報接口、上位機(jī)組成[5-6],如圖1所示。

供電模塊負(fù)責(zé)提供主芯片及各種外圍設(shè)備工作所需的電壓。ESP32作為主芯片,片內(nèi)充分利用處理器核、各種控制器、WiFi及藍(lán)牙收發(fā)器等資源,對外則驅(qū)動各種外圍設(shè)備。采集模塊包括AHT20溫濕度傳感器、BH1750光照強(qiáng)度傳感器、BMP180氣壓海拔傳感器、S12SD紫外線強(qiáng)度傳感器、MQ-2煙霧濃度傳感器、JW01模組二氧化碳甲醛總揮發(fā)性有機(jī)化合物(Total Volatile Organic Compounds, TVOC)含量三合一傳感器、ZPH02模組PM2.5含量傳感器等傳感器模塊,以及PCF8563實(shí)時時鐘、AT24C256存儲芯片、4路輸入按鍵。狀態(tài)顯示模塊包括綠、黃、紅狀態(tài)顯示LED燈,有源蜂鳴器,SSD1306-OLED顯示屏。狀態(tài)上報接口包括RS 232串口接口、串口轉(zhuǎn)USB接口、基于W5500實(shí)現(xiàn)的RJ 45以太網(wǎng)接口、基于SYN6658語音合成模塊實(shí)現(xiàn)的LINE音頻線接口和語音播報喇叭,以及ESP32提供的WiFi和藍(lán)牙接口。上位機(jī)可以是串口、網(wǎng)口、USB接口的PC,也可以是WiFi和藍(lán)牙接口的手機(jī)等無線設(shè)備。ESP32的上報接口同時提供CS(客戶端-服務(wù)器)和BS(瀏覽器-服務(wù)器)服務(wù),上位機(jī)可以使用按協(xié)議設(shè)計(jì)的終端軟件,或者使用網(wǎng)頁瀏覽器,來訪問ESP32的狀態(tài)信息或?qū)SP32的工作狀態(tài)進(jìn)行管理。

2 硬件設(shè)計(jì)

基于ESP32芯片模組與各外圍設(shè)備器件設(shè)計(jì)硬件平臺,各模塊的內(nèi)部電路硬件均穩(wěn)定,需要著重注意搭建時的硬件連接關(guān)系[7]。ESP32與各外圍設(shè)備的連接關(guān)系如圖2所示。

供電設(shè)計(jì):調(diào)試階段可以使用MINI-USB接口為ESP32供電,MINI-USB聯(lián)合ESP32的電壓輸出管腳為采集模塊、狀態(tài)顯示模塊、狀態(tài)上報接口的各器件供電,調(diào)試完成后使用可充電鋰電池為主芯片和各外圍設(shè)備供電。

GPIO接口的外設(shè):選用ESP32的4路IO實(shí)現(xiàn)數(shù)字輸入功能,外接輸入按鍵。選用ESP32的4路IO實(shí)現(xiàn)數(shù)字輸出功能,分別接綠色、黃色、紅色的LED燈和有源蜂鳴器。

ADC接口的外設(shè):選用ESP32的2路IO實(shí)現(xiàn)ADC模擬輸入功能,分別外接S12SD紫外線強(qiáng)度傳感器、MQ-2煙霧濃度傳感器。ESP32以模擬量讀取ADC管腳的值,當(dāng)管腳上的電壓為3.3 V時,讀值4095為最大值,當(dāng)管腳上電壓為0 V時,讀值0為最小值,中間區(qū)域可作線性比例處理,從而獲取S12SD的紫外線強(qiáng)度和MQ-2的煙霧濃度。

I2C接口的外設(shè):選用ESP32的2路IO管腳實(shí)現(xiàn)I2C總線,ESP32作為主機(jī)發(fā)出I2C時序控制一系列不同從機(jī)地址的I2C外圍設(shè)備,從而讀取AHT20的溫濕度信息、BH1750的光照強(qiáng)度信息、BMP180的氣壓信息,進(jìn)一步計(jì)算出海拔信息,控制OLED顯示屏動態(tài)顯示各狀態(tài)信息,讀取或設(shè)置PCF8563的實(shí)時時間信息,訪問AT24C256存取工作參數(shù)。

UART接口的外設(shè):ESP32片上有三個串口控制器(Serial0、Serial1、Serial2),通信波特率都配置為9 600 b/s,8位數(shù)據(jù)位,1位停止位,無校驗(yàn)位。Serial0的輸出實(shí)現(xiàn)調(diào)試打印功能,便于調(diào)試觀測代碼流程,Serial0的輸入實(shí)現(xiàn)調(diào)試命令解析功能,解析出正確的指令后可以設(shè)置PCF8563的時間、設(shè)置ESP32的工作參數(shù)并存入AT24C256。Serial1、Serial2的RX線分別接JW01模組、ZPH02模組,這兩個模組正常工作時,會將獲取的環(huán)境信息按協(xié)議格式以串口格式的包發(fā)出,每包定常為8字節(jié),且包頭有固定的標(biāo)識,包尾有校驗(yàn)值。ESP32收到模組的串口包后,基于狀態(tài)機(jī)即可解析出包中間的字節(jié)從而獲取環(huán)境信息。Serial1的TX線分成兩路,一路接串口轉(zhuǎn)USB器件,一路接TTL電平轉(zhuǎn)RS 232電平器件,分別對PC提供USB接口和RS 232接口的串口上報接口。Serial2的TX線接到SYN6658語音合成模塊,ESP32遵照協(xié)議通過串口向SYN6658發(fā)送待合成的文字信息,文字信息由固定的漢字編碼加變化的環(huán)境信息值合并而成,SYN6658實(shí)現(xiàn)文字轉(zhuǎn)語音的合成功能,輸出語音信息到LINE音頻線,LINE線可以進(jìn)一步接音響或耳機(jī),同時SYN6658通過所接的喇叭播報語音。

SPI接口的外設(shè):選用ESP32的4路IO管腳實(shí)現(xiàn)SPI總線,通過SPI時序控制W5500模塊,W5500內(nèi)部硬件集成TCP/IP協(xié)議棧,W5500模塊對外提供RJ 45以太網(wǎng)接口[8]。W5500提供了套接字編程接口,支持TCP和UDP協(xié)議。ESP32對W5500進(jìn)行UDP編程,從而對上位機(jī)提供CS服務(wù),ESP32對W5500進(jìn)行TCP編程,實(shí)現(xiàn)HTTP服務(wù)功能,從而對上位機(jī)提供BS服務(wù)。

WiFi接口: ESP32運(yùn)行片上WiFi的AP基站功能,ESP32的WiFi具備無線局域網(wǎng)(Wireless Local Area Networks, WLAN)網(wǎng)卡屬性且運(yùn)行dhcpd服務(wù)程序。手機(jī)等無線設(shè)備通過WLAN接入ESP32后,ESP32為無線設(shè)備分配WLAN同網(wǎng)段的IP地址,在此基礎(chǔ)上ESP32與無線設(shè)備基于TCP/IP協(xié)議互聯(lián),兩者能通過UDP和TCP協(xié)議進(jìn)行網(wǎng)口套接字通信。

藍(lán)牙接口:ESP32可以將片上藍(lán)牙功能虛擬化為串口,手機(jī)等無線設(shè)備的藍(lán)牙也使用串口模式,ESP32與無線設(shè)備基于藍(lán)牙虛擬串口進(jìn)行串口通信。

3 軟件設(shè)計(jì)

使用Arduino工具對ESP32進(jìn)行軟件開發(fā)和燒寫,Arduino工具通過導(dǎo)入芯片包實(shí)現(xiàn)ESP32的底層驅(qū)動功能,用戶只需調(diào)用驅(qū)動層的接口函數(shù),即可進(jìn)行業(yè)務(wù)功能的應(yīng)用層開發(fā)。Arduino工具提供程序框架,提供初始調(diào)用一次的setup函數(shù)和隨后輪詢調(diào)度的loop函數(shù)供用戶填充,用戶需在setup函數(shù)里填充初始化功能,在loop函數(shù)里填充需運(yùn)行的業(yè)務(wù)功能[9]。

在setup函數(shù)里,需要執(zhí)行的操作如圖3所示。首先初始化調(diào)試串口,然后依次初始化各類通信總線,以及對總線上所接的傳感器外設(shè)進(jìn)行初始化[10]。還需從AT24C256讀取工作參數(shù),例如訪問外設(shè)的時間間隔,默認(rèn)100 ms,以及環(huán)境信息的告警閾值,例如溫度的告警上下限、二氧化碳含量的告警上下限等。初始化W5500后,配置以太網(wǎng)口的UDP和TCP套接字;初始化WiFi后,配置WLAN網(wǎng)口的UDP和TCP套接字;初始化藍(lán)牙后,配置藍(lán)牙虛擬串口。

在loop函數(shù)里執(zhí)行業(yè)務(wù)流程如圖4所示。首先從各個傳感器讀取環(huán)境信息和時間信息,對于I2C接口的傳感器,讀寫交互后,從外設(shè)寄存器獲取信息;對于ADC接口的傳感器,讀ADC功能管腳的模擬值獲取信息;對于UART接口的傳感器,接收串口字節(jié)后基于狀態(tài)機(jī)解析后獲取信息。新讀的值與最近5次歷史值整合計(jì)算平均值,作為當(dāng)前有效值,用結(jié)構(gòu)體變量存儲。然后使用OLED顯示屏顯示環(huán)境信息,因OLED屏幕大小有限,每輪loop函數(shù)只顯示所有環(huán)境信息的其中幾條。同時通過LED燈顯示環(huán)境狀態(tài),若環(huán)境狀態(tài)值均正常,則綠燈亮;如果環(huán)境狀態(tài)值稍微超出正常范圍,則黃燈亮;如果環(huán)境狀態(tài)值嚴(yán)重超出正常范圍,則紅燈亮,且蜂鳴器響,提醒人采取相應(yīng)措施,例如通過通風(fēng)降低二氧化碳含量。此外,如果檢測到按鍵有按下動作時,經(jīng)軟件防抖處理后,運(yùn)行相應(yīng)的功能,按鍵1對應(yīng)功能為語音播報時間信息,按鍵2對應(yīng)功能為語音播報環(huán)境信息。再者,基于狀態(tài)機(jī)解析藍(lán)牙串口收到的字節(jié),解析出命令包,基于套接字檢測是否收到WiFi或以太網(wǎng)口的UDP命令包,如果是查詢命令,則將環(huán)境信息結(jié)構(gòu)體變量中的值按協(xié)議返回;如果是配置命令,則修改工作狀態(tài);如果是HTTP的GET請求,則返回Web頁面的應(yīng)答。之后,將本輪環(huán)境值通過串口報送給上位機(jī)。最后,判斷是否需執(zhí)行Serial0調(diào)試命令,之后進(jìn)行延時等待,退出本輪loop函數(shù),進(jìn)入下一輪loop函數(shù)。

參考Linux系統(tǒng)的shell命令行,對Serial0的輸入指令進(jìn)行功能解析,當(dāng)輸入的指令滿足一定格式時,則執(zhí)行相應(yīng)功能。例如“SETTIME:2023-04-10 10:53:00”是設(shè)置時間,“SETTEMPU:60”是設(shè)置溫度告警上限。

為了通過上位機(jī)對環(huán)境監(jiān)測系統(tǒng)的狀態(tài)進(jìn)行顯示和控制,可以在上位機(jī)開發(fā)終端軟件,使用軟件控件調(diào)用操作系統(tǒng)的API,基于串口或網(wǎng)口編程與ESP32通信,也可以不用終端軟件而直接使用網(wǎng)頁瀏覽器訪問ESP32。

4 聯(lián)調(diào)演示

基于ESP32芯片模組與各外圍設(shè)備器件實(shí)現(xiàn)演示板,按硬件設(shè)計(jì)連接各信號線,制作完整的演示板如圖5所示。

ESP32程序正常啟動運(yùn)行后,LED狀態(tài)燈顯示正常,OLED屏翻頁逐條顯示各項(xiàng)環(huán)境信息的值,如圖6所示。

PC通過以太網(wǎng)口接入演示板,運(yùn)行PC上設(shè)計(jì)的終端軟件,能更新顯示環(huán)境信息,且能對ESP32的工作狀態(tài)進(jìn)行配置。在PC瀏覽器輸入ESP32的以太網(wǎng)IP地址,ESP32會返回環(huán)境信息。手機(jī)上能搜到并接入ESP32的WiFi信號,在手機(jī)瀏覽器輸入ESP32的WLAN的IP地址,ESP32會返回環(huán)境信息。上位機(jī)通過瀏覽器訪問ESP32的界面如圖7所示。

按下演示板上的按鍵1,喇叭會播報時間信息。按下演示板上的按鍵2,喇叭會播報環(huán)境信息。在調(diào)試串口輸入設(shè)置時間、設(shè)置工作參數(shù)等命令,演示板均有正常響應(yīng)。

調(diào)整演示板所處環(huán)境的溫度、光照等狀態(tài),演示板上顯示和上報的環(huán)境信息會隨之變化,且與溫度計(jì)等儀器測得的值接近一致,可見本系統(tǒng)各項(xiàng)功能均正常,且運(yùn)行穩(wěn)定。

5 結(jié) 語

本文設(shè)計(jì)了基于ESP32的環(huán)境監(jiān)測系統(tǒng),完成了多項(xiàng)環(huán)境信息的采集、多種方式的顯示、多種接口的上報,可用于辦公室內(nèi)、農(nóng)業(yè)大棚、儲物倉庫等場景的環(huán)境監(jiān)測,也為同類方案或產(chǎn)品提供參考和借鑒。

本系統(tǒng)還可優(yōu)化調(diào)整,例如,為了節(jié)省功耗,也許并不需要多個傳感器同時工作,也不需要多種上報接口同時工作,可以在硬件上添加使能設(shè)計(jì),在軟件上規(guī)劃ESP32的工作參數(shù),做合理調(diào)度;在運(yùn)行過程中,按需動態(tài)地使能訪問各外圍設(shè)備。

參考文獻(xiàn)

[1]王忠. ESP32在物聯(lián)網(wǎng)通信課程教學(xué)中的應(yīng)用[J].物聯(lián)網(wǎng)技術(shù),2022,12(4):128-129.

[2]何經(jīng)偉.基于ESP32的辦公環(huán)境信息監(jiān)測系統(tǒng)[J].電子技術(shù)與軟件工程,2019,8(24):153-154.

[3]孔寧.基于ESP32的畜場環(huán)境監(jiān)測系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代牧業(yè),2022,6(4):37-43.

[4]陳星星.基于ESP32的糧倉遠(yuǎn)程溫濕度監(jiān)控系統(tǒng)[J].電子技術(shù)與軟件工程,2018,7(14):94.

[5]肖鑫海.基于STM32的環(huán)境監(jiān)測系統(tǒng)設(shè)計(jì)[J].化工自動化及儀表,2023,50(1):33-36.

[6]夏長權(quán).基于STM32的環(huán)境監(jiān)測系統(tǒng)設(shè)計(jì)[J].電子制作,2023,31(4):3-7.

[7]任肖麗.基于STM32的環(huán)境監(jiān)測系統(tǒng)設(shè)計(jì)[J].集成電路應(yīng)用,2021,38(8):14-15.

[8]王鵬.基于W5500以太網(wǎng)模塊的溫濕度實(shí)時在線采集系統(tǒng)設(shè)計(jì)[J].通訊世界,2020,27(3):67-68.

[9]謝明瑋.基于Arduino的物聯(lián)網(wǎng)家居硬件系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].物聯(lián)網(wǎng)技術(shù),2023,13(2):78-81.

[10]樂萬德. Arduino串口通信控制系統(tǒng)的研究[J].電子設(shè)計(jì)工程,2022,30(4):69-73.

作者簡介:張來洪(1989-),男,碩士,中級工程師, 研究方向?yàn)榍度胧郊夹g(shù)、電臺主控及波形。

關(guān)海偉(1989-),男,碩士,中級工程師, 研究方向?yàn)榍度胧郊夹g(shù)、電臺主控及波形。

魯 興(1992-),男,博士,中級工程師, 研究方向?yàn)榍度胧郊夹g(shù)、通信技術(shù)。

張 揚(yáng)(1993-),男,碩士,中級工程師, 研究方向?yàn)榍度胧郊夹g(shù)、上位機(jī)軟件設(shè)計(jì)。

收稿日期:2023-05-07 修回日期:2023-06-05

猜你喜歡
屏幕顯示上位機(jī)環(huán)境監(jiān)測
環(huán)境監(jiān)測系統(tǒng)的數(shù)據(jù)分析與處理
電子制作(2019年19期)2019-11-23 08:41:54
大氣污染問題的環(huán)境監(jiān)測
FANUC 0i—TF數(shù)控系統(tǒng)雙屏幕畫面顯示功能調(diào)試研究
自助式視力檢測儀器的設(shè)計(jì)
論網(wǎng)絡(luò)通信技術(shù)
基于云的短波發(fā)射機(jī)機(jī)房中央空調(diào)自動控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
景點(diǎn)智能導(dǎo)航系統(tǒng)
全自動包裝及碼垛系統(tǒng)的發(fā)展與應(yīng)用
對環(huán)境監(jiān)測數(shù)據(jù)造假必須零容忍
公民與法治(2016年4期)2016-05-17 04:09:15
便攜式GC-MS在環(huán)境監(jiān)測中的應(yīng)用
郑州市| 呈贡县| 云浮市| 西充县| 精河县| 方城县| 调兵山市| 苍溪县| 临沭县| 黄陵县| 芮城县| 沅陵县| 政和县| 安平县| 白河县| 台东市| 玉龙| 绥江县| 彰武县| 土默特左旗| 安乡县| 隆回县| 黑龙江省| 伊通| 安岳县| 罗江县| 婺源县| 玉田县| 邢台县| 驻马店市| 凤翔县| 西丰县| 佛坪县| 呼和浩特市| 嘉黎县| 高碑店市| 沙坪坝区| 志丹县| 仲巴县| 大邑县| 梅州市|