軟硬件全開源,航芯方案分享 | 旋鈕溫控器方案
溫控器用于控制室內(nèi)暖通設備,通過暖通設備為室內(nèi)環(huán)境提供冷源和熱源,從而調節(jié)室內(nèi)溫度環(huán)境,為人們提供舒適的生活環(huán)境。
旋鈕式溫控器更為結構簡潔、操作簡便,降低了用戶的使用難度,提供智能化的控制方法,實現(xiàn)節(jié)能與舒適的平衡。
航芯推出的旋鈕溫控器解決方案,采用有豐富外設功能的ACM32F0x0系列作為主控芯片,最低功耗可達0.5uA,具有高整合度、高抗干擾、高可靠性等特點,有助于提高產(chǎn)品性能,幫助客戶加快智能溫控設備的開發(fā)。
本文將帶你深入了解基于航芯ACM32F0x0系列如何快速搭建旋鈕溫控器項目,干貨滿滿,開源分享,更多資源請在文末獲取哦!
1. 供暖設備應用概述
北方的供暖主要有兩種方式:集體供暖和分戶供暖,分戶供暖較受用戶歡迎,這種方式用戶可以根據(jù)自己的需求和喜好按需供暖。分戶供暖催生了很多新型供暖設備,比如電磁壁掛爐、燃氣壁掛爐、空氣能熱泵等。
這些供暖設備搭載控制器,通過旋鈕溫控器可實現(xiàn)精準智能溫度控制,控制器負責接收旋鈕溫控器的RF信號來控制供暖設備的開啟和關閉加熱,而旋鈕溫控器放置在用戶房間里,可實時檢測房間溫度變化,發(fā)送RF信號實時調節(jié)溫度,使房間溫度始終保持在用戶設定的舒適溫度范圍內(nèi)。
2. 技術規(guī)格
? 溫度控制范圍:-10℃~45℃
? 溫度顯示范圍:5℃~35℃
? 工作溫度:-20℃~55℃
? 供電方式:1.5V * 2,2節(jié)五號電池
? 待機功耗:12uA
? 遙控距離:室內(nèi)≥30m
3. 功能特點
? 可通過旋鈕調節(jié)設定溫度
? 實時顯示當前環(huán)境溫度和當前加熱狀態(tài)
? ℃/℉溫標切換
? 0.5℃/1℃溫度差值切換
? 高、低溫報警,顯示屏溫度閃爍
? 低電量報警,顯示屏顯示低電量圖標
4. 方案介紹
旋鈕溫控器分為遙控器和接收器,遙控器放在用戶房間,實時采集室內(nèi)溫度,顯示溫度并實時調節(jié);接收器則放在加熱裝置旁邊,用于接收遙控器的RF信號,控制繼電器,從而開啟和關閉加熱。
旋鈕溫控器的遙控器可采用ACM32F030C8T7或ACM32F070CBT7做主控,框圖如下:
? 使用ADC來實現(xiàn)對旋鈕溫度調節(jié);
? 使用IIC接口,讀取溫濕度傳感器SHT30模塊的溫濕度;
? 使用芯片的LVD模塊進行電池低電檢測;
? 使用芯片自帶的LCD驅動來驅動斷碼LCD屏,顯示設置溫度、實時溫度、加熱狀態(tài)等;
? 使用SPI接口和RF 433模塊通信,發(fā)送RF信號控制加熱器的開關;
? 通過TouchKey來喚醒產(chǎn)品,并實現(xiàn)℃/℉溫標切換、0.5℃/1℃溫度差值切換,加/減設定溫度;
? 為了實現(xiàn)產(chǎn)品的低功耗,需要在低功耗下顯示LCD,所以采用stop低功耗模式,RTC定時喚醒和TouchKey喚醒。
旋鈕溫控器的接收器采用ACM32F030K8T7或ACM32F070KBT7做主控,可以通過三檔撥動開關來選擇常開、常關、自動三種工作模式,在自動模式下根據(jù)接收遙控器發(fā)來的RF信號進行控制繼電器的開啟和關閉,方案框圖如下:
5. 軟件設計
01. ADC采集
正常待機下不對旋鈕進行AD采樣,只有當被TouchKey喚醒后定時采樣。
以下是部分代碼:
02. 讀取溫濕度傳感器SHT30
溫濕度傳感器采樣IIC接口,定時一分鐘采集一次傳感器的溫濕度數(shù)據(jù),部分代碼如下:
03. 電池低電檢測
采用芯片自帶的LVD模塊檢測電池電量,低于設定的閾值2.51V就閃爍低電圖標報警提示,以下是部分代碼:
04. LCD顯示
使用4*24 LCD顯示,在喚醒狀態(tài)每隔200ms刷新一次LCD顯示內(nèi)容,以下是部分代碼:
05. RF 433模塊
RF模塊采用RFM300H,SPI通訊,為了方便處理RF數(shù)據(jù),采用狀態(tài)機來處理RF模塊的配置,數(shù)據(jù)發(fā)送等,以下是部分代碼:
06. TouchKey檢測
通過TouchKey可喚醒產(chǎn)品,切換溫標、溫度差值、顯示設定溫度等,部分初始化代碼如下:
07. 低功耗處理
為了實現(xiàn)低功耗,采用stop模式,進入休眠前先判斷休眠標志位是否允許進入休眠,再關閉定時器、SPI、IIC等外設,設置IO口狀態(tài),配置RTC定時1min喚醒、TouchKey喚醒,以下是部分代碼:
08. 遙控器程序整體流程圖
09. 接收器程序整體流程圖
06 資源分享
旋鈕溫控器方案軟硬件資源:
https://gitee.com/acm32-mcu/acm32f0_temperature_control