概要
本文給大家介紹一個(gè)基于N32G4FR和小度音響的智能家庭中樞控制系統(tǒng)項(xiàng)目,該項(xiàng)目是博主架構(gòu)師李肯參加由國民技術(shù)與電子發(fā)燒友聯(lián)合舉辦的N32 MCU移植挑戰(zhàn)賽的參賽項(xiàng)目,旨在解決智能家庭中的中樞控制問題,希望能給大家?guī)韼椭蛦l(fā)。
1 前言
如今,智能化的設(shè)備慢慢走進(jìn)了千家萬戶,大大提升了人民生活的智能化,但是隨之而來的是各種智能設(shè)備無法互聯(lián)互通,形成了一片片信息孤島,這就迫切需要一個(gè)中樞控制系統(tǒng)來接管這些零散的智能設(shè)備。
眾觀市場上的各種智能音響,小度音響憑借其優(yōu)異的市場表現(xiàn),占據(jù)了很大一塊市場份額,使得“小度小度,現(xiàn)在幾度”成為了家庭中很常見的交互問候語。
有這么一個(gè)設(shè)想,如果能把零散的智能設(shè)備,通過某種智能的方式接入一個(gè)中樞控制系統(tǒng),而這個(gè)系統(tǒng)與小度音響直接打通,這樣跟小度直接對話就能操作這些智能設(shè)備,這應(yīng)該是一件很有市場前景的事,而本項(xiàng)目就是著力于實(shí)現(xiàn)這樣的一個(gè)解決方案。
2 項(xiàng)目簡介
2.1 項(xiàng)目名稱
基于N32G4FR和小度音響的智能家庭中樞控制系統(tǒng)
2.2 設(shè)計(jì)思路
本項(xiàng)目主要使用N32G4FR作為端側(cè)的核心控制器,外加一個(gè)傳感器器件、控制器件,實(shí)現(xiàn)與云端互通;同時(shí)集成對接小度智能音響,實(shí)現(xiàn)通過語音調(diào)度和控制家庭環(huán)境是智能設(shè)備。這里的智能設(shè)備包含有智能燈、智能空調(diào)、溫濕度傳感器等等。
2.3 主要解決的問題
家庭中的智能設(shè)備越來越多,一個(gè)集中式的智能家庭中樞控制系統(tǒng)迫在眉睫,旨在解決所有智能設(shè)備的調(diào)度和控制問題,為智能生活提供便利。
2.4 項(xiàng)目創(chuàng)新點(diǎn)
主要是設(shè)備端各項(xiàng)傳感器器件和控制器件的集成,以及與小度音響的直連互通。
2.5 N32移植的初衷
本項(xiàng)目初期是想在ESP32上實(shí)現(xiàn)的,后來看到本開源大賽,想著把此方案移植過來,也借此機(jī)會再次學(xué)習(xí)學(xué)習(xí)國民技術(shù)的N32系列芯片。
3 系統(tǒng)架構(gòu)介紹
3.1 系統(tǒng)核心架構(gòu)圖
整個(gè)系統(tǒng)的核心架構(gòu)圖如下所示:

從上面這個(gè)核心架構(gòu)圖中,我們可以看到整個(gè)IoT系統(tǒng)組成,包括智能設(shè)備終端側(cè)、巴法云物聯(lián)網(wǎng)平臺、小度云平臺、小度音箱等等。下面就整個(gè)系統(tǒng)的幾大重要組件,我會一一進(jìn)行簡要講解。
3.2 終端側(cè)
終端側(cè)主要承載的是對巴法云平臺的對接,接收云平臺下發(fā)的控制指令,同時(shí)做一些邊緣側(cè)的應(yīng)用邏輯處理,還需要具備對外網(wǎng)絡(luò)的通訊能力,保持與巴法云平臺的MQTT長鏈接。
終端側(cè)包括的核心組件有:國民技術(shù)的N32G4FR,搭載的是國產(chǎn)實(shí)時(shí)操作系統(tǒng) RT-Thread,同時(shí)外設(shè)板載有 ESP8266 Wi-Fi通訊模組、紅外發(fā)射器、繼電器(GPIO模擬)等等。
終端側(cè)不僅包含設(shè)備硬件,還需要對應(yīng)的固件軟件,兩者相輔相成,共同完成終端側(cè)的功能邏輯。

3.3 后端側(cè)
后端側(cè),其實(shí)沒有真正的開發(fā)工作,僅僅是登錄巴法云平臺后臺,配置MQTT板塊,然后生成【智能空調(diào)】和【智能燈】兩個(gè)設(shè)備,以便于終端側(cè)和小度音響識別。

3.4 移動端
這里說的移動端,特指小度APP;其實(shí)這里面也沒有開發(fā)工作,當(dāng)你的小度APP賬號登錄之后,它有一個(gè)操作步驟可以加入基于巴法云平臺的【智能設(shè)備】,按照說明添加成功后,就可以在小度APP上看到巴法云平臺對應(yīng)的設(shè)備列表了。
詳細(xì)的綁定操作步驟,見 此文的第二部分 。

4 系統(tǒng)設(shè)計(jì)說明
4.1 硬件部分
MCU主控:國民技術(shù)的N32G4FR主控
這塊芯片整體的資源還是比較豐富的,它是N32G4FR系列(指紋專用型),采用32 bit Arm Cortex-M4F內(nèi)核,內(nèi)置10余種密碼算法硬件加速引擎,集成大容 量加密Flash存儲器,支持指紋信息安全存儲,支持市場主流半導(dǎo)體指紋及光學(xué)傳指紋感器,集成多達(dá)18個(gè)數(shù)字 通訊接口及4個(gè)模擬接口。
它的具體接口資源展示如下:

在我的項(xiàng)目中,我主要使用它的以下幾個(gè)外設(shè)資源:
-
UART1:RT-Thread的終端調(diào)試串口;
-
UART2:用于連接串口WI-Fi模塊ESP8266,實(shí)現(xiàn)網(wǎng)絡(luò)通訊能力;
-
UART4:用于連接紅外收發(fā)器,本次項(xiàng)目中主要使用其紅外發(fā)射功能;紅外發(fā)射主要用于控制外部的空調(diào);
-
GPIO:PB4用作系統(tǒng)工作狀態(tài)顯示燈,PA8用于控制智能燈開關(guān)。
以下是我的實(shí)物連接示意圖:

Wi-Fi模組:ESP8266
本次參賽,我采用了我慣用的Wi-Fi通訊模組ESP8266,非常的便捷,借助RT-Thread的軟件包,基本無需編寫任何代碼,就可以實(shí)現(xiàn)網(wǎng)絡(luò)能力;當(dāng)然串口通訊還是需要配置一下,只不過不用謝代碼而已。
我這里使用的搭建ESP8266 Wi-Fi芯片的模組ESP-12F,它是由安信可科技開發(fā)的,該模塊核心處理器 ESP8266 在較小尺寸封裝中集成了 業(yè)界領(lǐng)先的 Tensilica L106 超低功耗 32 位微型 MCU,帶有 16 位精簡模式,主頻支持 80 MHz 和 160 MHz,支持 RTOS,集成 Wi-Fi MAC/ BB/RF/PA/LNA,板載天線。

紅外編解碼模塊(YS-IRTM)
本模塊集成了以下幾部分:
-
紅外發(fā)射頭:用于發(fā)射紅外信號, 波長為940nm 38k NEC編碼信號的發(fā)射;
-
紅外接收頭:用于接收 NEC 紅外信號, 進(jìn)而單片機(jī)進(jìn)行分析解碼操作;
-
紅外頭擴(kuò)展: 該接口為紅外發(fā)射頭的擴(kuò)展, 可以連接多個(gè)紅外發(fā)射頭( 常稱紅外發(fā)射模塊) , 用于安放到不同的位置實(shí)現(xiàn)多方位控制;
-
UART 單片機(jī)串口通信接口:該端口為單片機(jī)串口( TTL) , 作為與外界單片機(jī)的通信橋梁, 其默認(rèn)設(shè)置的波特率為9600bps;
使用單片機(jī)的串口就可以與之對接,非常的方便。

GPIO控制 :
目前這一塊的接入,采用的是GPIO做模擬,并沒有實(shí)際接入繼電器,但已經(jīng)完全可以實(shí)現(xiàn)其操作原理。
其中,PB4用作系統(tǒng)工作狀態(tài)顯示燈,PA8用于控制智能燈開關(guān)。
4.2 軟件部分
整個(gè)軟件部分的開發(fā)主要就是終端固件開發(fā),主要包括四大部分:N32G4FR的原廠BSP、RT-Thread實(shí)時(shí)操作系統(tǒng)、ESP8266相關(guān)的配置代碼使能、個(gè)性化的應(yīng)用邏輯代碼。
其中N32G4FR的原廠BSP基本不動,原廠和相關(guān)開發(fā)者已經(jīng)適配好了;通用的RT-Thread操作系統(tǒng)的代碼也不在此處的修改中,直接復(fù)用已有的代碼,這里使用的版本是 4.1.1 。
ESP8266相關(guān)的AT、網(wǎng)絡(luò)組件代碼也是現(xiàn)成的,使能配置之后就可以直接用了,還是非常的方便。
除了AT相關(guān)的軟件包代碼外,我還使用了 paho-mqtt 這個(gè)軟件包,這個(gè)軟件包主要封裝了MQTT協(xié)議的實(shí)現(xiàn)技術(shù)細(xì)節(jié),開放了一些靈活好用的API給到應(yīng)用層,以便于提供MQTT的通訊能力。
還有一個(gè)cJSON的軟件包,這里也使用到了,它用于做一些上下行數(shù)據(jù)包的解析和封裝,主要原因是需要解析一些與云平臺對接的數(shù)據(jù)協(xié)議,這就要求終端必須具備解析JSON數(shù)據(jù)的能力。
所以這里重點(diǎn)講一下,應(yīng)用邏輯的代碼:主要包括紅外收發(fā)器的控制、GPIO的控制等,而這些控制信號的輸入,都是來源于巴法云平臺的下發(fā),而巴法云平臺的聯(lián)動下發(fā)則來源于用戶對小度音響的語音控制輸入。
以下是終端軟件應(yīng)用邏輯部分的層次圖:

其中:
Wi-Fi線程 :由于在RT-Thread中AT組件是開啟后,默認(rèn)就跑起來了,而在應(yīng)用層暫時(shí)沒有一個(gè)比較好的方式感知網(wǎng)絡(luò)能力的建立,所以這里新建了一個(gè)線程,用于實(shí)時(shí)檢查網(wǎng)絡(luò)通訊能力;當(dāng)網(wǎng)絡(luò)通訊能力已建立時(shí),通過信號量的方式,通知其他模塊。
Smart Home MQTT線程 :主要負(fù)責(zé)跟巴法云物聯(lián)網(wǎng)平臺進(jìn)行對接,采用的MQTT通訊協(xié)議,它的運(yùn)行,依賴于基礎(chǔ)網(wǎng)絡(luò)能力的建立;當(dāng)它與巴法云物聯(lián)網(wǎng)平臺建立聯(lián)系時(shí),它就可以接收平臺的控制指令下發(fā),比如開關(guān)空調(diào)或開關(guān)照明燈等;
紅外接收處理線程 :該線程主要用于接收外部的標(biāo)準(zhǔn)NEC紅外信號,此功能本項(xiàng)目暫時(shí)未實(shí)際使用,僅用于學(xué)習(xí)若干紅外遙控器的鍵值;
系統(tǒng)運(yùn)行展示線程 :此線程并沒有參與過多的應(yīng)用邏輯,僅僅是每一秒鐘閃爍一下運(yùn)行指示燈,表示系統(tǒng)正在運(yùn)行中。
以上各個(gè)線程各司其職,相輔相成,共同完成智能家庭中樞控制系統(tǒng)的邏輯功能。
下面展示的是工程項(xiàng)目中的代碼結(jié)構(gòu),里面的代碼結(jié)構(gòu)一本與上面的代碼邏輯示意圖保持一致。

5 項(xiàng)目實(shí)施過程
1)熟悉國民技術(shù)N32系列MCU的基本開發(fā)資料
這一步主要是熟悉開發(fā)板的基本資源,對外設(shè)等信息有一定的概念,以便于方便后續(xù)的開發(fā)調(diào)試;同時(shí),還需要把相關(guān)的一些官方軟件給安裝好,熟練使用配置工具和下載工具。
文末有好幾份我當(dāng)時(shí)參考的教程,基本根據(jù)上面的步驟來,很快就可以完成初始的上手操作。
這里其實(shí)就是踩坑的開始,詳細(xì)的可以參見下文對踩坑的各種總結(jié),只有第一步踩坑踩好了,才能逐步進(jìn)行下面的研發(fā)活動。
2)移植RT-Thread操作系統(tǒng)
本次參賽,其實(shí)并不要求去移植RT-Thread,其實(shí)也要多感謝RT-Thread官方和社區(qū)的小伙伴,其實(shí)他們都已經(jīng)做好了基本的移植了,只需要對照著自己的開發(fā)板資源跳調(diào)整一下即可。
有了上面的踩坑經(jīng)驗(yàn),直接上手RT-Thread的DEMO教程,很快就可以把操作系統(tǒng)跑起來了,一切都回歸到熟悉的地方,研發(fā)進(jìn)度再次提速。
下面就是基于RT-Thread操作系統(tǒng)進(jìn)行編程了。
3)配置RT-Thread的軟件包
由于我是采用RT-Thread Studio開發(fā)環(huán)境,而它本身就集成了配置界面,所以我直接在上面就可以做各種配置,需要再次吐槽的就是,配置完了之后生成對應(yīng)的文件,實(shí)在是太慢了。
這個(gè)項(xiàng)目中,我使用了paho-matt軟件包、AT-device軟件包、CJSON軟件包;的確讓我的項(xiàng)目開發(fā)提速了不少。
4)配置巴法云物聯(lián)網(wǎng)平臺
我是參考這個(gè) esp8266接入小度語音,小度音箱控制 來創(chuàng)建自己的自定義產(chǎn)品的,并實(shí)現(xiàn)與小度音箱的綁定的。
基本上以上4步完成后,終端就可以很順利地連上巴法云物聯(lián)網(wǎng)平臺了,而這期間基本就是零代碼,全部都?xì)w功于RT-Thread靈活的代碼配置工具,非常地贊。

5)調(diào)試外設(shè)驅(qū)動
這里主要是調(diào)試各種驅(qū)動接口,包括紅外發(fā)射器的UART接口、照明燈開關(guān)的GPIO控制。
在調(diào)試過程中,一般一個(gè)個(gè)模塊來,避免模塊直接的干擾,這樣可以有效地加快開發(fā)速度。
需要注意的是,N32系列的BSP在適配RT-Thread的時(shí)候,采用的都是V1版本的串口驅(qū)動,所以大家在使用串口接口的時(shí)候,一定要記得使用V1接口。
等到各個(gè)功能模塊完成后,統(tǒng)一串起來跑一跑,確保沒有問題。
6)全功能自測
到了這一步,基本功能開發(fā)就已經(jīng)完成了,需要將終端設(shè)備的功能與云端能力聯(lián)系起來調(diào)試,比如對小度音箱進(jìn)行控制語音輸入,看一下巴法云平臺能否推送對應(yīng)的控制消息下來,同時(shí)看下終端能否對控制消息進(jìn)行合理的處理,比如控制空調(diào)開關(guān)或者控制照明開關(guān)等。
7)準(zhǔn)備結(jié)項(xiàng)資料
項(xiàng)目收尾的最后,需要準(zhǔn)備各種結(jié)項(xiàng)資料,包括項(xiàng)目穩(wěn)定、演示視頻、各種實(shí)物圖片等等。
6 項(xiàng)目效果顯示
6.1 功能描述
本期項(xiàng)目中,已實(shí)現(xiàn)以下功能:
在巴法云后臺配置智能設(shè)備:智能空調(diào)和智能燈,在小度APP是可以看到設(shè)備情況;
基于N32G4FR的終端,實(shí)現(xiàn)智能家庭中樞控制系統(tǒng)的功能;
跟小度音響語音對話,比如【打開空調(diào)】或【關(guān)閉空調(diào)】,即可實(shí)現(xiàn)控制指令下發(fā),終端通過紅外發(fā)射頭控制空調(diào)開關(guān);
跟小度音響語音對話,比如【打開燈】或【關(guān)閉燈】,即可實(shí)現(xiàn)控制指令下發(fā),終端通過GPIO控制LED(模擬真實(shí)場景的智能燈)
打通本地空調(diào)狀態(tài)和智能燈狀態(tài)與巴法云、小度平臺的聯(lián)系,實(shí)現(xiàn)實(shí)時(shí)控制聯(lián)動。
6.2 圖片展示
以下是項(xiàng)目的部分圖片展示:
固件正常被識別且燒錄成功

調(diào)試固件DEMO時(shí),RT-Thread系統(tǒng)上電hello wolrd

查看并確認(rèn)UART4的真實(shí)引腳分布

小度APP使用界面

通過巴法云添加的智能設(shè)備在小度APP的展示

一個(gè)帶紅外控制的燈具(模擬家庭使用的空調(diào))
6.3 視頻展示
視頻中基本演示了,通過小度音箱輸入控制指令,進(jìn)而達(dá)到控制終端器件(空調(diào)或智能燈)的目的。
6.4 代碼開源
本參賽項(xiàng)目的源代碼已全面開源在 這里
其中應(yīng)用部分的代碼在:n32-iot-xiaodu-smart-home/tree/master/applications
有關(guān)項(xiàng)目源代碼的事情,也可與我討論。
7 項(xiàng)目復(fù)盤
項(xiàng)目雖然即便完成了,但是有些東西還是需要好好復(fù)盤總結(jié)的。
7.1 項(xiàng)目踩的那些坑
這一塊還是比較多,我特意開了一個(gè)帖子來總結(jié),參加這里:https://bbs.elecfans.com/jishu_2337568_1_1.html

7.2 項(xiàng)目帶來的啟發(fā)
多留意一下同一廠商同一系列不同型號的型號差異,對比出異同點(diǎn),方便靈活選型,甚至有些時(shí)候固件程序都是可以通用的;
巴法云對接小度音響只是它其中的一個(gè)功能,它還可以對接天貓精靈、小愛同學(xué)、Amazon Alexa、Google音響等等,可以說,把它玩熟練了,智能化的產(chǎn)品思路可能可以有更大的邊界;
項(xiàng)目中遇到難題光吐槽是沒有用的,還是自己去想辦法解決;比如下載方法不清晰,就自己多摸索幾遍,熟練掌握它;比如各種開發(fā)環(huán)境搞不通,嘗試想想原來是怎么開發(fā)的,或許能找到方法;比如吐槽好些工具不好使,但這個(gè)是外部因素,你得去適應(yīng)它,不然你可能就沒法完成任務(wù);
多接觸幾種物聯(lián)網(wǎng)云平臺有助于開拓技術(shù)視野,說不定還能對你的本質(zhì)工作開展有所幫助和提升。
8 致謝
本次大賽,基本還算是完全獨(dú)立完成的,技術(shù)上沒有請教太多小伙伴,就是在FTP資料下載的時(shí)候,請教了一個(gè)群友,感謝他提供的FTP工具,幫忙我得到了第一手官方權(quán)威資料,也使得我的參賽項(xiàng)目得以加速進(jìn)行,再次表示感謝。

9 參考鏈接
-
國民技術(shù)N32G4FR簡介
-
國民技術(shù)官方FTP資料下載地址 ftp://58.250.18.138
-
【答疑帖】國民技術(shù)開源移植挑戰(zhàn)賽答疑匯總
-
[經(jīng)驗(yàn)] 【 國民技術(shù)N32G4FR開發(fā)板試用體驗(yàn)】基于RT-Thread制作N32G4FR BSP
-
N32G4FR系列通用MCU RT_Thread使用指南
-
esp8266接入小度語音,小度音箱控制,附開源app控制
-
巴法云接入文檔
-
巴法云開發(fā)者論壇
(參考鏈接點(diǎn)擊閱讀原文查看)
10 更多分享
本次項(xiàng)目介紹后,我還繼續(xù)探索RT-Thread在各種嵌入式平臺開發(fā)的可能性,并以此來要求自己輸出各種關(guān)于RT-Thread、嵌入式、物聯(lián)網(wǎng)等等熱門技術(shù)話題的原創(chuàng)內(nèi)容,歡迎大家持續(xù)關(guān)注我。
我是 架構(gòu)師李肯 ( 全網(wǎng)同名 ), 2022年電子發(fā)燒友論壇優(yōu)秀開發(fā)者、2022年RT-Thread技術(shù)社區(qū)優(yōu)秀布道者 ,歡迎大家來交流。
更多熱點(diǎn)文章閱讀
- OS內(nèi)核及視窗分論壇詳解之OpenHarmony 3D顯示支持
- 應(yīng)用模型開發(fā)指南上新介紹
- 技術(shù)構(gòu)筑萬物智聯(lián),第一屆OpenHarmony技術(shù)峰會圓滿舉行
- OpenHarmony L1(3.0)串口功能開發(fā)
-
小白指南:手把手教你用低代碼開發(fā)一個(gè)應(yīng)用頁面
提示:本文由電子發(fā)燒友論壇發(fā)布,轉(zhuǎn)載請注明來源。如需社區(qū)合作及入群交流,請?zhí)砑游⑿臙EFans0806,或者發(fā)郵箱liuyong@huaqiu.com。
原文標(biāo)題:基于N32G4FR和小度音響的智能家庭中樞控制系統(tǒng)
文章出處:【微信公眾號:電子發(fā)燒友開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
電子發(fā)燒友
+關(guān)注
關(guān)注
34文章
591瀏覽量
34141 -
開源社區(qū)
+關(guān)注
關(guān)注
1文章
95瀏覽量
798
原文標(biāo)題:基于N32G4FR和小度音響的智能家庭中樞控制系統(tǒng)
文章出處:【微信號:HarmonyOS_Community,微信公眾號:電子發(fā)燒友開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
國民技術(shù)MCU產(chǎn)品助力越疆推出全球首款家庭智能體機(jī)器人Rover X1
基于芯源CW32 MCU智能家居照明控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
車聯(lián)網(wǎng)智能車載終端4G全網(wǎng)通T-BOX設(shè)計(jì)與應(yīng)用
多自由度云臺控制系統(tǒng)賦能安防監(jiān)控的智能巡檢與目標(biāo)鎖定
助力工業(yè)物聯(lián)網(wǎng)升級,智能遠(yuǎn)程控制系統(tǒng)功不可沒
工業(yè)控制系統(tǒng)的現(xiàn)狀與發(fā)展趨勢
邯鄲數(shù)字孿生與MES控制系統(tǒng)數(shù)據(jù)融通,加速5G智能工廠數(shù)字化轉(zhuǎn)型#邯鄲數(shù)字孿生#MES控制系統(tǒng)#5G智能工廠
滄州數(shù)字孿生與MES控制系統(tǒng)數(shù)據(jù)融通,加速5G智能工廠數(shù)字化轉(zhuǎn)型#滄州數(shù)字孿生#MES控制系統(tǒng)#5G智能工廠
保定數(shù)字孿生與MES控制系統(tǒng)數(shù)據(jù)融通,加速5G智能工廠數(shù)字化轉(zhuǎn)型#保定數(shù)字孿生#MES控制系統(tǒng)#5G智能工廠
手機(jī)APP遠(yuǎn)程控制,智能家居監(jiān)測、智能控制系統(tǒng)(STM32L4、服務(wù)器、安卓源碼)實(shí)例項(xiàng)目打包下載
手機(jī)APP遠(yuǎn)程控制,智能家居監(jiān)測、智能控制系統(tǒng)(STM32L4、服務(wù)器、安卓源碼)
灌區(qū)水情監(jiān)測及閘門智能控制系統(tǒng):實(shí)時(shí)通信+智能分析,真高效!#灌區(qū)信息化 #閘門智能控制系統(tǒng) #灌區(qū)量測水
大棚聯(lián)網(wǎng)與智能控制系統(tǒng)如何改變農(nóng)業(yè)生態(tài)?
探秘地下變電站:智能輔助控制系統(tǒng)業(yè)務(wù)智能處理與系統(tǒng)集成
基于N32G4FR和小度音響的智能家庭中樞控制系統(tǒng)
評論