朱少華 梁鑒如



關鍵詞:物聯網;烤箱;STM32;遠程管理
隨著科技水平的不斷提高,智能化的遠程設備需求越來越高,物聯網作為當下重要的科學技術,正在進入我們的生活,智能化的烘烤設備也不例外。
傳統的烤箱通常采用機械式的控溫方式,需要烘烤人員依據多年的烘烤經驗來設置相應的烘烤時間和溫度,同時需要烘烤人員人工監控烤箱,導致商家的運營成本較高。近幾年才出現的低功耗廣域網(LPWA)和NB-IoT技術能夠提供百倍于4G的連接規模、長達10年的設備壽命,逐漸成為我國物聯網技術發展的主流。因此設計一種采用NB-IoT技術、以STM32為控制器的智能烤箱,實現對烤箱烘烤運行狀態的遠程監控,并且可以在Web界面上遠程下載相應的烘烤菜單,使烤箱管理更加便捷,大大減少了商家的運營成本。
1系統總體框架設計
智能烤箱遠程管理系統總體框架如圖1所示,由四層結構組成。第一層為數據采集層,STM32控制器通過溫度傳感器將采集到的烤箱溫度儲存在控制器中,并在烤箱操作面板上進行顯示。STM32控制器將每次通過面板設置的烘烤面包的個數及烤箱運行狀態和各種警報數據儲存起來,并利用NB-IoT模塊將數據發送到移動NBIoT基站;第二層為通信層,烤箱烘烤數據通過NB
IoT模塊上傳到Web服務器端;第三層為應用服務層,負責匯聚烤箱各種運行數據,并將數據存儲在服務器上;第四層是用戶層,管理人員可以通過操作界面下發烤箱的烘烤菜單,觀察每臺烤箱的運行狀況,對故障烤箱進行定位。
2系統硬件設計
2.1烤箱控制硬件電路設計
烤箱控制硬件系統如圖2所示,由MCU、電源模塊、NB-IoT通信模塊、顯示模塊、電源模塊、輸出控制模塊、溫度檢測模塊組成。圖2中MCU選用STM32F103VCT6為控制器,該型號為32位Cortex_M3,具有100引腳,FLASH容量為256KB,封裝為LQFP,工作溫度為-40-105℃,可以滿足在保溫層與烤箱機殼之間正常工作。
2.1.1烤箱溫度檢測電路設計
烤箱工作溫度為0-300℃,選用PTlOO鉑熱電阻,它的測量范圍為-200℃~+850℃,阻值會隨著溫度的變化而改變。在100℃時PTlOO的阻值約為138.5,隨著溫度上升它的阻值是成勻速增長的。
溫度檢測模塊如圖3所示。TL431的作用是提供一個非常準確穩定的電壓4. 096 V,R52、R53、R54和PTlOO組成橋式電路,LM358對橋式電路轉化的電壓進行放大,方便MCU采樣。
當烤箱內溫度改變時,PTlOO的電阻改變。通過電橋將電阻的變化轉化為電壓變化,再通過運放電路將電壓信號放大,MCU痛過A/D轉換采集電壓信號,經過運算得到烤箱內部的溫度。MCU通過串口UART向NB-IoT通信模塊與Web服務器進行數據交換。電源模塊采用AC/DC開關電源將220V交流電轉換成24 V直流,再轉換成5V、3.8 V、3.3 V電壓,分別給運放、NBIoT通信模塊、MCU供電。
2.1.2加熱控制電路設計
烤箱的加熱管的工作電壓為220V交流電,內阻為18。由于傳統的電磁繼電器高頻率工作時噪聲大,而且電壓切換時接觸點會產生電火花,因此采用無觸點開關的器件——固態繼電器來控制加熱管電壓的通斷,可達到無觸點無火花地接通和斷開電路的目的。如圖4所示,為加熱控制電路圖。由于繼電器的線圈工作電壓為24V,單片機不能直接控制,因此使用兩級控制。由單片機控制三極管,再由三極管控制MOS管來控制繼電器的線圈通電。
單片機控制電路與繼電器控制電路分離設計。將單片機控制系統以及通信系統集成在顯示屏背后。該區域工作溫度低,烤箱工作時不會對單片機系統以及通信系統造成影響。繼電器控制系統以及溫度采集電路離加熱管較近。利用烤箱內的石英棉隔溫,保證其正常工作。
2.2NB-IoT模塊電路設計
通信電路選用NB71模組,根據芯片手冊推薦3.8V為最佳工作電壓,由電源模塊產生3.8V供電。本模塊將烤箱的運行狀況的數據發給服務器,服務器通過NB71模組將烘烤菜單下發至烤箱。NB-IoT無線通信模塊設計電路如圖5、圖6所示。
3系統軟件設計
3.1控制器軟件設計
如圖7所示為烤箱上電初始化,包括I/O初始化、計時器初始化、LCD與觸摸屏初始化、NB-IoT初始化以及ADC采樣初始化。本系統使用了3個定時器分別用于PWM信號的產生、溫度電壓的掃描和輸入捕獲,對烤箱的加熱管進行實時控制,然后烤箱的溫度檢測經過反饋調節來提高加熱管控制的精度。
如圖8所示是系統內部自檢流程圖。系統初始化的計時器用以觸發定時中斷。系統每5S檢測一次系統性能。檢測NB-IoT信號是否能夠順利收發,SD卡是否插好、溫度傳感器是否存在脫落情況以及烤箱內部溫度是否超過合理范圍,推算出繼電器的健康情況。
根據烤箱實際的加熱過程,設計分段式加熱的控制算法。在實際的面包烤制的過程中,烤箱需要空載加熱至預熱的目標溫度再放人待烤面團。此后的溫度控制更加精細,根據不同的面包,控制其溫度達到加熱的目標溫度。根據面包烤制過程的這一特性,將加熱管工作分為全速加熱預熱工作模式以及由PID精確控制烘烤加熱模式兩種。其控制流程圖如圖9所示。
當控制參數或菜單需要整體更新時,上位機向各個烤箱的NB-IoT通信模塊發送指令以及更改內容,這使得智能烤箱便于統一地管理。其控制流程圖如圖10所示。
串口接收中斷服務程序負責的是按協議接收服務器通過NB-IoT模塊的烤箱烘焙方案進行解析,在烤箱界面進行顯示。
3.2服務器平臺設計
軟件設計為服務器端軟件設計,負責建立通訊及數據交互。將服務器搭建好后,程序會創建一個Worker啟動4個進程來對外提供服務,負責監聽固定端口。當端口收到消息后,程序將消息分割為烤箱號、操作符、狀態三部分,根據消息種類進行存儲、更新等相關操作。處理完成后,對將要返回的消息進行處理,加入幀頭幀尾,最后通過send命令返回數據。程序流程圖如圖11所示。
在通訊部分,使用Apache搭建Web服務器,用PHP語言創建Worker建立TCP通訊。系統通訊方式有定時通訊和上電通訊兩種方式,定時通訊使用152操作符,上電通訊使用151操作符。在數據傳輸部分,數據分為圖片數據和普通字符串數據,發送方式有所不同,字符串加入幀頭幀尾完成預處理后可直接發送給烤箱,圖片格式要轉化為二進制字符串分段發送。管理員可在網頁設置烤箱和烘焙方案,若有烤箱信息變更,可在烤箱上電時對烤箱信息進行傳輸、變更。
3.3數據通信協議設計
控制器與服務器之間利用NB-IoT模塊作為無線通信,利用私有的通信協議進行數據收發。
本系統制定了烤箱控制器與服務器之間的TCP通信協議,與服務器通訊時需要先與服務器建立連接,再進行數據傳輸。烤箱與服務器之間的通信協議具體內容如表1所示。數據發送的格式采用內容為“start”的幀頭,和內容為“end”的幀尾,通信的目的地址為Ox00,端口號為目的地址的端口號,數據內容包括烤箱號、操作符、狀態、圖片等信息。
4人機交互界面設計
將觸摸屏技術應用在本次的設計當中,通過多級式菜單設定烤箱烘烤菜單,設計了人機交互界面,如圖12所示,直觀地顯示了主控系統中采樣到的溫度數據,增進了人機交互的靈活性,具有一定的推廣價值。
5測試結果分析
在完成烤箱與服務器的對接后,對其接收返回的數據進行了測試。經過測試,服務器程序可以準確獲取烤箱發送的各條信息并正確操作。
使用15號烤箱多次發送操作符及狀態。數據接收測試結果如圖13所示,數據庫信息如圖14所示。
通過測試,此系統實現了服務器對烤箱運行數據的接收、處理及返回,定時對烤箱發送信息,同時返回數據的傳輸不會遺漏,符合系統需求。
在完成烤箱整體設計及制作后,進行了實物測試。首先測試了智能烤箱的功能。之后對其加熱性能進行了進一步的測試。測試現場如圖15所示。
圖16傳統機械式烤箱加熱溫度變化數據,圖17利用改進的分段PID控制算法控制的烤箱加熱溫度變化數據。對比測試傳統的旋鈕式溫控系統的加熱時間以及智能烤箱分段控制的加熱時間,測試結果顯示,智能烤箱的溫度響應更加迅速,溫度控制性能更加優越。
6結論
針對傳統烤箱,基于NB-IoT技術并以STM32為控制器的智能烤箱遠程管理系統,實現了通過Web客戶端對烤箱的遠程管理,可為大規模的烤箱遠程管理系統的設計提供參考。