要實現空調控制,就是要發送紅外信號,所以要有紅外發送功能。市面上空調種類繁多,肯定要適用多種品牌和機型,所以要有紅外學習功能。要支持場景聯動,就要有環境感知傳感器。要支持手機控制,就要有云端和模組。綜上,設計功能有:1、紅外發送(紅外發射管);2、紅外學習(一體化接收頭);3、室內溫度檢測(DHT11);4、手機控制(通過涂鴉云模組實現)。
在實際場景中,空調的安裝位置一般都不固定,所以,紅外控制器不能近距離控制。參考其他大品牌紅外控制器設計,采用壁掛式設計,可以掛在天花板或墻壁上。控制板全部用立創EDA繪制,自己手工貼片,涂鴉云模組上面的文字是被清洗劑洗掉了,操作時大意了。
硬件設計
1.電源
電源部分采用Micro USB接口,直接提供5V電源,經過內部分壓得到3.3V電壓,為MCU、涂鴉云模組和外圍電路供電。降壓采用TI的TLV62569DBVR電源芯片,外圍器件少,功率大,紋波小。
2.云模組
采用涂鴉智能提供的WBR1D-IPEX云模組,WBR1D是雙頻雙模模組,支持WI-FI和藍牙,采用MCU接入方案,通過串口與MCU連接。
3.MCU
MCU采用ST的STM32F103C8T6,64K的Flash。
4.紅外發射
紅外發射采用紅外管,因為是壁掛式安裝方式,所以對控制范圍有要求,本設計中采用8顆紅外發射管并聯,每科管子由一顆大功率三極管驅動,所有三極管由一個控制端驅動。以提高發射功率,提高發射功率后,紅外控制范圍會明顯擴大。(多顆紅外管最好并聯控制,不要為畫PCB方便或者節省器件而選擇串聯,串聯的管子都不會正常工作,發射功率會大幅度下降。)
5.紅外接收
紅外接收比較簡單,直接采用一體化接收頭。
6.附加電路
按鍵
按鍵用于配網使用,但是在實際調試時,模組會自動配網,所以按鍵改為清除紅外預存的數據。
LED用于指示配網狀態和進入紅外學習模式,以及故障閃爍。
DHT11
DHT11用于檢測室內溫濕度,在本設計中,紅外遙控器作為單品使用,DHT11可以向云端上報室內溫度、濕度,可實現智能場景聯動。
7.PCB設計
PCB設計時,因為是壁掛式,所以選了一個公模外殼。在設計時器件布局和PCB外形要符合外殼尺寸。
軟件設計
1.紅外接收實現
紅外接收比較簡單,如果是易于解析的NEC格式編碼,直接用定時器捕獲外部輸入電平時間長度即可,對于不易解析的編碼(廠家自定義的編碼)采用外部中斷和定時器方式測電平時間長度。對于NEC格式編碼,按照NEC編碼格式的規范,先判斷低電平時間,通過長度區分起始碼、數據碼和結束碼。網上例程比較多,這里就不贅述了,要注意的是:有的廠家空調雖然是NEC編碼,但是他們的編碼中高低電平長度一般都不同,所以在中斷中判斷電平長度時,要注意設置范圍。
2.紅外發射實現
紅外發射是紅外管完成,注意:紅外管不發射紅外在接收端輸出1,發射紅外在接收端輸出是0,這里要注意區分。
實現方式用定時器輸出一個38K的方波,控制方波輸出的時間長度即可實現發送不同的數據和編碼。本項目采用兩個定時器來實現發送紅外,TIM1輸出38K載波,TIM3定時,由TIM3計時,控制TIM1輸出/關閉PWM,這樣可以實現任意時間長度發送。但是這樣比較耗費MCU資源,對于STM32來說,影響不大,對于小型MCU就要考慮資源了。
3.紅外學習功能
本項目中只實現NEC編碼紅外學習,當按下手機端空間時,如果沒有指令,會自動進入學習狀態,等待發送紅外指令。紅外指令接收到以后,會自動保存。
4.云功能實現
因為使用涂鴉的MCU接入方案,云端只做功能和APP界面的配置,并下載MCU的SDK,將SDK移植到代碼中即可
云端功能配置:
APP界面配置:
5.防跑飛
在實際測試過程中遇到了,設備掉線和控制無反應問題,起初以為是網絡問題,更換網絡以后,問題依舊存在。拆下板子發現整個PCB發燙,測量MCU供電只有接近2V左右,照理說可以正常工作。拔掉電源,重插,MCU供電恢復。等待問題再次出現時,測得紅外管驅動三極管控制端一直是低電平,問題發現了:8顆紅外發射管的發射功率比較大,在關閉輸出時可能是被中斷打斷,導致關斷不成功,紅外管一直處于發送狀態,時間一長,8顆紅外管總電流增大,提供給MCU的電流減小,出現假死現象。
為了解決這個問題,增加了三道防線,一是每次發送完成后將輸出和定時器一起關閉,這樣可以減少中斷沖突的機率。二是增加STM32內部測溫,一旦檢測到溫度超過允許值,再關定時器和PWM輸出1次,如果超過警報值,直接復位MCU。三是增加看門狗,定時喂狗,防止假死和程序跑飛。加上這三道防線后,實測問題不再發生。
關鍵點分析
1.MCU_SDK 移植
涂鴉提供配套的MCU SDK,具體使用方式涂鴉也提供很多的文檔,b站也有很多案例。我們只需要移植到MCU中即可,通過串口通訊,實現MCU接入。注意接涂鴉模組串口的波特率,一般默認是9600,也可以修改為115200,具體在云端控制臺的硬件開發->模組固件中修改。
2.空調控制
以上工作完成后,重點來了,代碼寫得再漂亮,電路設計再完美,控制不了空調都等于0。大家都知道空調是紅外遙控控制,所以本項目就是發射空調遙控器發射的紅外編碼,代替遙控器控制空調。這里的難點在于如何獲得空調的紅外編碼,目前市面上銷售的空調,紅外編碼都是廠家自定義的。售后或者說明書里面也不會提供具體的編碼協議,所以只能自己去解析。下面簡述解析過程,解析篇幅較多,詳細內容請移步“閱讀原文”。
首先要獲得紅外的編碼,我的方式是用邏輯分析儀和紅外接收頭,按遙控器的一個鍵,查看分析儀捕獲的波形,通過波形解析出數據,這個過程不難,但是很繁瑣。
3.App功能配置
App界面除了默認功能外,加了部分功能,因為使用的公版APP界面,所以界面UI和功能自定義的范圍有限,后期會改成面板SDK開發,現階段時間不多,做不了開發。以強勁功能為例,本項目設計時,沒有添加強勁功能。現在要添加,首先進入涂鴉IoT開發平臺,找到項目,進入APP面板配置頁面,在頁面點擊“編輯”,配置好屬性和關聯功能以后,點擊發布,涂鴉會自動打包,打包好了以后,會提供測試二維碼,掃二維碼可以測試這個面板,如果測試通過點正式發布,發布以后,手機端退出“涂鴉智能”APP,重新進入,添加的功能就生效。
總結
這次使用涂鴉智能,不管是整體開發流程,還是技術服務,涂鴉做得非常好。涂鴉模組提供MCU SDK,用戶只需要移植到MCU OS中,即可完成上云操作,節省研發和調試周期。涂鴉提供的穩定MCU接入模組SDK,減少用戶程序邏輯架構不嚴謹造成的錯誤,減輕用戶底層代碼量。涂鴉技術支持服務也非常周到,不定期詢問開發者是否有問題需要解決,這點比某科模組做的好。
fqj
-
mcu
+關注
關注
146文章
17184瀏覽量
351696 -
遙控器
+關注
關注
18文章
839瀏覽量
66291
發布評論請先 登錄
相關推薦
評論