?

基于微信小程序的智能溫控系統設計*

2024-01-02 09:32盧詩瑤蔡士東龍新宇安華凱郭一凡
山西電子技術 2023年6期
關鍵詞:溫控阿里聯網

盧詩瑤,蔡士東,龍新宇,安華凱,郭一凡

(大連民族大學信息與通信工程學院,遼寧 大連 116600)

0 引言

隨著溫控系統的智能化發展,如何使人們更加便捷快速的得到溫控系統的各種數據和控制溫控系統成為了當下市場的熱門方向。目前市場現有的智能溫控系統都需要下載指定的APP進行控制和操作,占用內存空間,而微信小程序具有無需下載、打開即用,內存占用量小的優勢,是智能溫控系統設計方案的更優選擇。

1 總體設計方案

本文的設計智能溫控系統基于MQTT協議棧接入阿里云物聯網平臺實現數據在整個系統的傳輸。本系統分為3個層次,即感知控制層、數據傳輸層和應用層。數據感知層使用ESP32物聯網芯片、傳感器模塊和控制模塊完成系統的數據采集、發送和外設控制工作;數據傳輸層使用阿里云物聯網平臺將數據感知層的數據轉發到應用層;應用層使用微信小程序開發的手機終端應用,微信小程序具有無需安裝等優勢,使得用戶方便地對溫控設備進行監控和管理[1]。該系統的總體架構設計如圖1所示。

圖1 系統總體架構

2 感知控制層設計

2.1 功能介紹

感知控制層主要實現溫度的采集、溫度數據的上傳、接收應用層的指令和控制外部設備。1) 數據采集:間隔3s定時讀取溫度傳感器的數據。2) 數據上傳:通過ESP32芯片自帶的Wi-Fi功能將溫度數據通過Wi-Fi無線網絡上傳到阿里云物聯網平臺的相應設備。3) 接收指令:指令是兩個層之間的約定,包括預定溫度加減、工作模式切換和風速調節,指令以JSON格式傳輸,在到達感知控制層時會將其解析為變量方便后續處理。4) 外設控制:根據收到的指令控制外部設備。如收到將空調模式轉變為制熱時,會將控制空調轉變為制熱模式。另外,感知控制層還會根據當前的溫度實時控制空調的工作狀態。

2.2 硬件電路設計

感知層硬件電路采用ESP32芯片作為主控,DS18B20作為溫度傳感器,三極管和繼電器構成控制模塊。ESP32是由樂鑫公司開發物聯網芯片,集成2.4 GHz Wi-Fi和藍牙雙模的單芯片方案,它具有雙核32位處理器、4MB FLASH、34個GPIO,擁有常用的接口,ESP32芯片是一款功能強大,能適用于各種應用場景的物聯網芯片[2]。

ESP32核心板通過I2C總線和DS18B20溫度傳感器進行通信,只需向DS18B20發送一個指令就能讀取到溫度數據。在控制模塊中我們使用小風扇來模擬風速,使用繼電器開關來模擬空調的開關,使用紅藍兩種LED燈珠來模擬空調的工作模式;其中模擬風速的電機使用L9110電機驅動芯片,使用該芯片是因為其具有較大的電流驅動能力和控制簡單等優勢;在模擬空調開關電路中,使用S8550 PNP型三極管驅動繼電器工作。ESP32核心板電路如圖2所示。

圖2 ESP32核心板原理圖

圖3 硬件程序執行流程圖

2.3 硬件程序設計

基于ESP32芯片的程序設計,我們使用Arduino-ESP32框架在PlatformIO平臺上進行開發。在這里簡單介紹一下Arduino和PlatformIO。Arduino是一款便捷靈活、方便上手的開源電子原型平臺。包括硬件和軟件。Arduino降低了嵌入式開發的門檻,提高了開發的效率。Arduino-ESP32是一個適用于ESP32系列芯片的Arduino Core庫,能夠使用Arduino來開發ESP32系列芯片。PlatformIO是一款面向嵌入式開發的專業協作平臺,基本支持市面上的熱門開發板,如:STM32、Atmelavr、Espressif等,它還有出色的調試、編譯和依賴管理功能,在搭配上VSCode開發工具的語法提示,能帶給開發者出色的開發體驗和更高的開發效率。

在該硬件程序設計中,將整個程序分為幾個模塊:初始化模塊、風扇控制模塊、模式切換模塊、屏幕顯示模塊、消息收發模塊、數據讀取模塊、日志模塊。其中除初始化模塊函數外,其余函數均使用FreeRTOS任務方式運行,只需在初始化函數中注冊任務函數后,所有任務將會循環不停的執行。

在初始化函數中會進行GPIO初始化、傳感器初始化、Wi-Fi初始化、MQTT初始化、屏幕顯示初始化、互斥鎖初始化,最后注冊FreeRTOS任務。因為各個任務都會爭用全局變量,所有要設計互斥鎖,來確保數據的完整和正確性。之后每個任務獨立循環運行。

3 數據傳輸層設計

3.1 MQTT協議介紹

在本系統中,MQTT通訊協議是最主要的通訊協議,同時MQTT通訊協議也是物聯網協議的重要部分。MQTT是一種輕量級基于代理的發布訂閱的消息傳輸協議,其設計思想是簡單、輕量、易于實現,適合在帶寬、計算機和處理能力受限的環境下工作[3]。

基于TCP/IP提供網絡通信的MQTT通訊協議和HTTP協議一樣,都屬于發布訂閱消息模式,就是指發布者與訂閱者不直接通過MQTT協議交互數據。MQTT協議支持根據QoS的標識定義發布服務的質量[4]。

發布者發布消息的流程根據網絡狀態和服務要求采取3種不同的消息傳輸質量等級,本文設計的溫控系統向服務器發送消息時采用當QoS=0時的消息傳輸質量等級。當QoS=0時,服務器接收到發布者的PUBLISH消息,將PUBLISH消息發送給所有訂閱此主題的訂閱者。

3.2 阿里云物聯網平臺

在數據傳輸層中我們采用阿里云物聯網平臺作為數據轉發節點。相當于應用部分和硬件部分的數據交互中間層,使應用層和感知控制層實現數據交互。

阿里云物聯網平臺是一個集成了設備管理、數據安全通信和消息訂閱等能力的一體化平臺。向下支持連接海量設備,采集設備數據上云;向上提供云端API,服務端可通過調用云端API將指令下發至設備端,實現遠程控制。本方案選擇阿里云物聯網平臺的原因是阿里云物聯網平臺支持多協議、多網絡、多地域設備快速接入。

進入阿里云物聯網平臺的控制臺創建產品,定義產品的物模型,添加設備后,可獲得一個阿里云的三元組,之后自定義Topic。而后在云產品流轉中創建規則,以便數據流轉到其他設備中。將獲得的阿里云三元組信息綁定到微信小程序和ESP32芯片,從而實現設備到微信小程序的數據雙向流動。

4 應用層設計

應用層部分采用微信小程序技術,使用微信公眾平臺提供的微信開發者工具進行開發,通過MQTT協議和阿里云三元組信息接入阿里云物聯網平臺。

微信小程序與阿里云物聯網平臺基于MQTT通訊協議進行通信,在微信小程序上將用戶的控制指令轉發給阿里云物聯網平臺的過程中,微信小程序作為消息發布者,阿里云物聯網平臺作為消息訂閱者,阿里云物聯網平臺在接收到微信小程序服務器授權允許的CONNACK確認消息后,發送SUBSCRIBE消息,指定Topic主題列表,即發送訂閱請求;訂閱成功后,微信小程序發送PUBLISH消息后,會將PUBLISH消息傳遞給所有訂閱此主題的訂閱者,即阿里云物聯網平臺。

通過MQTT通訊協議,微信小程序利用subscribe()函數從阿里云物聯網平臺獲取感知控制層的數據,通過publish()函數將用戶操作數據轉發到阿里云物聯網平臺,再由阿里云物聯網平臺轉發給感知控制層,由此實現硬件和軟件部分的數據交互[5]。

5 結束語

本文主要研究基于微信小程序的智能溫控系統,1) 使用阿里云物聯網平臺提供可靠強大的數據服務為整個系統的穩定運行提供了強有力支撐;2) 使用新一代的ESP芯片ESP32作為設備主控,其自帶Wi-Fi、穩定且高性能和生態豐富的特點,更方便物聯網應用的開發,讓開發者更專注于業務;3) 使用微信小程序作為系統的客戶端,其輕便快速而又無需安裝的特點解決了手機中安裝大量App的痛點。物聯網技術在發展,我們應該采用更加前沿的技術,讓物聯網應用更加智能可靠。

猜你喜歡
溫控阿里聯網
“身聯網”等五則
云上阿里
溫控/光控片上納米裂結
辰辰帶你游阿里
搶占物聯網
基于MSP430和Android溫控距控智能電風扇設計
骨料自動溫控技術
基于ARM7 和FPGA的風扇散熱系統溫控模塊設計及實現
阿里戰略
可再生能源與物聯網
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合