0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于N32G4FR和小度音响的智能家庭中枢控制系统

电子发烧友开源社区 来源:未知 2023-03-11 14:10 次阅读

概要

本文给大家介绍一个基于N32G4FR和小度音响的智能家庭中枢控制系统项目,该项目是博主架构师李肯参加由国民技术与电子发烧友联合举办的N32 MCU移植挑战赛的参赛项目,旨在解决智能家庭中的中枢控制问题,希望能给大家带来帮助和启发。

1 前言

如今,智能化的设备慢慢走进了千家万户,大大提升了人民生活的智能化,但是随之而来的是各种智能设备无法互联互通,形成了一片片信息孤岛,这就迫切需要一个中枢控制系统来接管这些零散的智能设备。

众观市场上的各种智能音响,小度音响凭借其优异的市场表现,占据了很大一块市场份额,使得“小度小度,现在几度”成为了家庭中很常见的交互问候语。

有这么一个设想,如果能把零散的智能设备,通过某种智能的方式接入一个中枢控制系统,而这个系统与小度音响直接打通,这样跟小度直接对话就能操作这些智能设备,这应该是一件很有市场前景的事,而本项目就是着力于实现这样的一个解决方案。

2 项目简介

2.1 项目名称

基于N32G4FR和小度音响的智能家庭中枢控制系统

2.2 设计思路

本项目主要使用N32G4FR作为端侧的核心控制器,外加一个传感器器件、控制器件,实现与云端互通;同时集成对接小度智能音响,实现通过语音调度和控制家庭环境是智能设备。这里的智能设备包含有智能灯、智能空调、温湿度传感器等等。

2.3 主要解决的问题

家庭中的智能设备越来越多,一个集中式的智能家庭中枢控制系统迫在眉睫,旨在解决所有智能设备的调度和控制问题,为智能生活提供便利。

2.4 项目创新点

主要是设备端各项传感器器件和控制器件的集成,以及与小度音响的直连互通。

2.5 N32移植的初衷

本项目初期是想在ESP32上实现的,后来看到本开源大赛,想着把此方案移植过来,也借此机会再次学习学习国民技术的N32系列芯片

3 系统架构介绍

3.1 系统核心架构图

整个系统的核心架构图如下所示:

922d1e14-bfd2-11ed-bfe3-dac502259ad0.png

从上面这个核心架构图中,我们可以看到整个IoT系统组成,包括智能设备终端侧、巴法云物联网平台、小度云平台、小度音箱等等。下面就整个系统的几大重要组件,我会一一进行简要讲解。

3.2 终端侧

终端侧主要承载的是对巴法云平台的对接,接收云平台下发的控制指令,同时做一些边缘侧的应用逻辑处理,还需要具备对外网络的通讯能力,保持与巴法云平台的MQTT长链接。

终端侧包括的核心组件有:国民技术的N32G4FR,搭载的是国产实时操作系统 RT-Thread,同时外设板载有 ESP8266 Wi-Fi通讯模组、红外发射器、继电器(GPIO模拟)等等。

终端侧不仅包含设备硬件,还需要对应的固件软件,两者相辅相成,共同完成终端侧的功能逻辑。

925d73ca-bfd2-11ed-bfe3-dac502259ad0.png

3.3 后端侧

后端侧,其实没有真正的开发工作,仅仅是登录巴法云平台后台,配置MQTT板块,然后生成【智能空调】和【智能灯】两个设备,以便于终端侧和小度音响识别。

928c19aa-bfd2-11ed-bfe3-dac502259ad0.png

3.4 移动端

这里说的移动端,特指小度APP;其实这里面也没有开发工作,当你的小度APP账号登录之后,它有一个操作步骤可以加入基于巴法云平台的【智能设备】,按照说明添加成功后,就可以在小度APP上看到巴法云平台对应的设备列表了。

详细的绑定操作步骤,见 此文的第二部分 。

92b3ec5a-bfd2-11ed-bfe3-dac502259ad0.png

4 系统设计说明

4.1 硬件部分

MCU主控:国民技术的N32G4FR主控

这块芯片整体的资源还是比较丰富的,它是N32G4FR系列(指纹专用型),采用32 bit Arm Cortex-M4F内核,内置10余种密码算法硬件加速引擎,集成大容 量加密Flash存储器,支持指纹信息安全存储,支持市场主流半导体指纹及光学传指纹感器,集成多达18个数字 通讯接口及4个模拟接口。

它的具体接口资源展示如下:

92d41052-bfd2-11ed-bfe3-dac502259ad0.png

在我的项目中,我主要使用它的以下几个外设资源:

  1. UART1:RT-Thread的终端调试串口;

  2. UART2:用于连接串口WI-Fi模块ESP8266,实现网络通讯能力;

  3. UART4:用于连接红外收发器,本次项目中主要使用其红外发射功能;红外发射主要用于控制外部的空调;

  4. GPIO:PB4用作系统工作状态显示灯,PA8用于控制智能灯开关。

以下是我的实物连接示意图:

92fb2b60-bfd2-11ed-bfe3-dac502259ad0.png

Wi-Fi模组:ESP8266

本次参赛,我采用了我惯用的Wi-Fi通讯模组ESP8266,非常的便捷,借助RT-Thread的软件包,基本无需编写任何代码,就可以实现网络能力;当然串口通讯还是需要配置一下,只不过不用谢代码而已。

我这里使用的搭建ESP8266 Wi-Fi芯片的模组ESP-12F,它是由安信可科技开发的,该模块核心处理器 ESP8266 在较小尺寸封装中集成了 业界领先的 Tensilica L106 超低功耗 32 位微型 MCU,带有 16 位精简模式,主频支持 80 MHz 和 160 MHz,支持 RTOS,集成 Wi-Fi MAC/ BB/RF/PA/LNA,板载天线

93347b68-bfd2-11ed-bfe3-dac502259ad0.png

红外编解码模块(YS-IRTM)

本模块集成了以下几部分:

  • 红外发射头:用于发射红外信号, 波长为940nm 38k NEC编码信号的发射;

  • 红外接收头:用于接收 NEC 红外信号, 进而单片机进行分析解码操作;

  • 红外头扩展: 该接口为红外发射头的扩展, 可以连接多个红外发射头( 常称红外发射模块) , 用于安放到不同的位置实现多方位控制;

  • UART 单片机串口通信接口:该端口为单片机串口( TTL) , 作为与外界单片机的通信桥梁, 其默认设置的波特率为9600bps;

使用单片机的串口就可以与之对接,非常的方便。

9356cdbc-bfd2-11ed-bfe3-dac502259ad0.png

GPIO控制 :

目前这一块的接入,采用的是GPIO做模拟,并没有实际接入继电器,但已经完全可以实现其操作原理。

其中,PB4用作系统工作状态显示灯,PA8用于控制智能灯开关。

4.2 软件部分

整个软件部分的开发主要就是终端固件开发,主要包括四大部分:N32G4FR的原厂BSP、RT-Thread实时操作系统、ESP8266相关的配置代码使能、个性化的应用逻辑代码。

其中N32G4FR的原厂BSP基本不动,原厂和相关开发者已经适配好了;通用的RT-Thread操作系统的代码也不在此处的修改中,直接复用已有的代码,这里使用的版本是 4.1.1 。

ESP8266相关的AT、网络组件代码也是现成的,使能配置之后就可以直接用了,还是非常的方便。

除了AT相关的软件包代码外,我还使用了 paho-mqtt 这个软件包,这个软件包主要封装了MQTT协议的实现技术细节,开放了一些灵活好用的API给到应用层,以便于提供MQTT的通讯能力。

还有一个cJSON的软件包,这里也使用到了,它用于做一些上下行数据包的解析和封装,主要原因是需要解析一些与云平台对接的数据协议,这就要求终端必须具备解析JSON数据的能力。

所以这里重点讲一下,应用逻辑的代码:主要包括红外收发器的控制、GPIO的控制等,而这些控制信号的输入,都是来源于巴法云平台的下发,而巴法云平台的联动下发则来源于用户对小度音响的语音控制输入。

以下是终端软件应用逻辑部分的层次图:

9385795a-bfd2-11ed-bfe3-dac502259ad0.png

其中:

Wi-Fi线程 :由于在RT-Thread中AT组件是开启后,默认就跑起来了,而在应用层暂时没有一个比较好的方式感知网络能力的建立,所以这里新建了一个线程,用于实时检查网络通讯能力;当网络通讯能力已建立时,通过信号量的方式,通知其他模块。

Smart Home MQTT线程 :主要负责跟巴法云物联网平台进行对接,采用的MQTT通讯协议,它的运行,依赖于基础网络能力的建立;当它与巴法云物联网平台建立联系时,它就可以接收平台的控制指令下发,比如开关空调或开关照明灯等;

红外接收处理线程 :该线程主要用于接收外部的标准NEC红外信号,此功能本项目暂时未实际使用,仅用于学习若干红外遥控器的键值;

系统运行展示线程 :此线程并没有参与过多的应用逻辑,仅仅是每一秒钟闪烁一下运行指示灯,表示系统正在运行中。

以上各个线程各司其职,相辅相成,共同完成智能家庭中枢控制系统的逻辑功能。

下面展示的是工程项目中的代码结构,里面的代码结构一本与上面的代码逻辑示意图保持一致。

93a26114-bfd2-11ed-bfe3-dac502259ad0.png

5 项目实施过程

1)熟悉国民技术N32系列MCU的基本开发资料

这一步主要是熟悉开发板的基本资源,对外设等信息有一定的概念,以便于方便后续的开发调试;同时,还需要把相关的一些官方软件给安装好,熟练使用配置工具和下载工具。

文末有好几份我当时参考的教程,基本根据上面的步骤来,很快就可以完成初始的上手操作。

这里其实就是踩坑的开始,详细的可以参见下文对踩坑的各种总结,只有第一步踩坑踩好了,才能逐步进行下面的研发活动。

2)移植RT-Thread操作系统

本次参赛,其实并不要求去移植RT-Thread,其实也要多感谢RT-Thread官方和社区的小伙伴,其实他们都已经做好了基本的移植了,只需要对照着自己的开发板资源跳调整一下即可。

有了上面的踩坑经验,直接上手RT-Thread的DEMO教程,很快就可以把操作系统跑起来了,一切都回归到熟悉的地方,研发进度再次提速。

下面就是基于RT-Thread操作系统进行编程了。

3)配置RT-Thread的软件包

由于我是采用RT-Thread Studio开发环境,而它本身就集成了配置界面,所以我直接在上面就可以做各种配置,需要再次吐槽的就是,配置完了之后生成对应的文件,实在是太慢了。

这个项目中,我使用了paho-matt软件包、AT-device软件包、CJSON软件包;的确让我的项目开发提速了不少。

4)配置巴法云物联网平台

我是参考这个 esp8266接入小度语音,小度音箱控制 来创建自己的自定义产品的,并实现与小度音箱的绑定的。

基本上以上4步完成后,终端就可以很顺利地连上巴法云物联网平台了,而这期间基本就是零代码,全部都归功于RT-Thread灵活的代码配置工具,非常地赞。

93c921e6-bfd2-11ed-bfe3-dac502259ad0.png

5)调试外设驱动

这里主要是调试各种驱动接口,包括红外发射器的UART接口、照明灯开关的GPIO控制。

在调试过程中,一般一个个模块来,避免模块直接的干扰,这样可以有效地加快开发速度。

需要注意的是,N32系列的BSP在适配RT-Thread的时候,采用的都是V1版本的串口驱动,所以大家在使用串口接口的时候,一定要记得使用V1接口。

等到各个功能模块完成后,统一串起来跑一跑,确保没有问题。

6)全功能自测

到了这一步,基本功能开发就已经完成了,需要将终端设备的功能与云端能力联系起来调试,比如对小度音箱进行控制语音输入,看一下巴法云平台能否推送对应的控制消息下来,同时看下终端能否对控制消息进行合理的处理,比如控制空调开关或者控制照明开关等。

7)准备结项资料

项目收尾的最后,需要准备各种结项资料,包括项目稳定、演示视频、各种实物图片等等。

6 项目效果显示

6.1 功能描述

本期项目中,已实现以下功能:

在巴法云后台配置智能设备:智能空调和智能灯,在小度APP是可以看到设备情况;

基于N32G4FR的终端,实现智能家庭中枢控制系统的功能;

跟小度音响语音对话,比如【打开空调】或【关闭空调】,即可实现控制指令下发,终端通过红外发射头控制空调开关;

跟小度音响语音对话,比如【打开灯】或【关闭灯】,即可实现控制指令下发,终端通过GPIO控制LED(模拟真实场景的智能灯)

打通本地空调状态和智能灯状态与巴法云、小度平台的联系,实现实时控制联动。

6.2 图片展示

以下是项目的部分图片展示:

固件正常被识别且烧录成功

93e27a4c-bfd2-11ed-bfe3-dac502259ad0.png

调试固件DEMO时,RT-Thread系统上电hello wolrd

940b66be-bfd2-11ed-bfe3-dac502259ad0.png

查看并确认UART4的真实引脚分布

9417404c-bfd2-11ed-bfe3-dac502259ad0.png

小度APP使用界面

942d11ba-bfd2-11ed-bfe3-dac502259ad0.png

通过巴法云添加的智能设备在小度APP的展示

94460f6c-bfd2-11ed-bfe3-dac502259ad0.png

一个带红外控制的灯具(模拟家庭使用的空调)

6.3 视频展示

视频中基本演示了,通过小度音箱输入控制指令,进而达到控制终端器件(空调或智能灯)的目的。

6.4 代码开源

本参赛项目的源代码已全面开源在 这里

其中应用部分的代码在:n32-iot-xiaodu-smart-home/tree/master/applications

有关项目源代码的事情,也可与我讨论。

7 项目复盘

项目虽然即便完成了,但是有些东西还是需要好好复盘总结的。

7.1 项目踩的那些坑

这一块还是比较多,我特意开了一个帖子来总结,参加这里:https://bbs.elecfans.com/jishu_2337568_1_1.html

9485f082-bfd2-11ed-bfe3-dac502259ad0.png

7.2 项目带来的启发

多留意一下同一厂商同一系列不同型号的型号差异,对比出异同点,方便灵活选型,甚至有些时候固件程序都是可以通用的;

巴法云对接小度音响只是它其中的一个功能,它还可以对接天猫精灵、小爱同学、Amazon Alexa、Google音响等等,可以说,把它玩熟练了,智能化的产品思路可能可以有更大的边界;

项目中遇到难题光吐槽是没有用的,还是自己去想办法解决;比如下载方法不清晰,就自己多摸索几遍,熟练掌握它;比如各种开发环境搞不通,尝试想想原来是怎么开发的,或许能找到方法;比如吐槽好些工具不好使,但这个是外部因素,你得去适应它,不然你可能就没法完成任务;

多接触几种物联网云平台有助于开拓技术视野,说不定还能对你的本质工作开展有所帮助和提升。

8 致谢

本次大赛,基本还算是完全独立完成的,技术上没有请教太多小伙伴,就是在FTP资料下载的时候,请教了一个群友,感谢他提供的FTP工具,帮忙我得到了第一手官方权威资料,也使得我的参赛项目得以加速进行,再次表示感谢。

94a15be2-bfd2-11ed-bfe3-dac502259ad0.png

9 参考链接

  • 国民技术N32G4FR简介

  • 国民技术官方FTP资料下载地址 ftp://58.250.18.138

  • 【答疑帖】国民技术开源移植挑战赛答疑汇总

  • [经验] 【 国民技术N32G4FR开发板试用体验】基于RT-Thread制作N32G4FR BSP

  • N32G4FR系列通用MCU RT_Thread使用指南

  • esp8266接入小度语音,小度音箱控制,附开源app控制

  • 巴法云接入文档

  • 巴法云开发者论坛

(参考链接点击阅读原文查看)

10 更多分享

本次项目介绍后,我还继续探索RT-Thread在各种嵌入式平台开发的可能性,并以此来要求自己输出各种关于RT-Thread、嵌入式、物联网等等热门技术话题的原创内容,欢迎大家持续关注我。

我是 架构师李肯 ( 全网同名 ), 2022年电子发烧友论坛优秀开发者、2022年RT-Thread技术社区优秀布道者 ,欢迎大家来交流。

更多热点文章阅读
  • OS内核及视窗分论坛详解之OpenHarmony 3D显示支持
  • 应用模型开发指南上新介绍
  • 技术构筑万物智联,第一届OpenHarmony技术峰会圆满举行
  • OpenHarmony L1(3.0)串口功能开发
  • 小白指南:手把手教你用低代码开发一个应用页面

提示:本文由电子发烧友论坛发布,转载请注明来源。如需社区合作及入群交流,请添加微信EEFans0806,或者发邮箱liuyong@huaqiu.com。


原文标题:基于N32G4FR和小度音响的智能家庭中枢控制系统

文章出处:【微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电子发烧友
    +关注

    关注

    33

    文章

    548

    浏览量

    32863
  • 开源社区
    +关注

    关注

    0

    文章

    93

    浏览量

    397

原文标题:基于N32G4FR和小度音响的智能家庭中枢控制系统

文章出处:【微信号:HarmonyOS_Community,微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32项目实战:基于STM32F4智能灯光控制系统(LVGL),附项目教程/源码

    智能灯光控制系统_STM32F4》项目完整文档、项目源码,私信小雯老师免费领取。STM32项目实战之“智能灯光控制系统”(基于STM32F
    的头像 发表于 10-17 16:16 507次阅读
    STM32项目实战:基于STM32F<b class='flag-5'>4</b>的<b class='flag-5'>智能</b>灯光<b class='flag-5'>控制系统</b>(LVGL),附项目教程/源码

    智能电表是如何与远程控制系统连接的?

    智能电表与远程控制系统之间的连接,是现代智能家居技术中不可或缺的一部分。通过这种连接,不仅可以实现对电力使用的精准监控,还能让家庭或企业的能源管理变得更加高效。接下来,就让我们一起来看
    的头像 发表于 10-16 16:29 157次阅读
    <b class='flag-5'>智能</b>电表是如何与远程<b class='flag-5'>控制系统</b>连接的?

    智能电表远程控制系统是如何工作的?

    智能电表远程控制系统,简而言之,就是通过现代通信技术和智能电表技术,实现对电表的远程监控和控制。那么,这个系统具体是如何工作的呢?接下来,我
    的头像 发表于 10-15 16:32 204次阅读
    <b class='flag-5'>智能</b>电表远程<b class='flag-5'>控制系统</b>是如何工作的?

    智能防雷远程终端控制系统解决方案

    使得防雷成为关键问题。传统的防雷技术已难以满足日益复杂的应用需求,因此, 地凯科技智能防雷 远程终端控制系统成为了当前防雷技术发展的重要方向。 一、智能防雷远程终端控制系统概述 什么是
    的头像 发表于 09-24 11:04 204次阅读
    <b class='flag-5'>智能</b>防雷远程终端<b class='flag-5'>控制系统</b>解决方案

    智能家居控制系统如何设计

    智能家居的控制系统设计是一个复杂而细致的过程,它涉及到多个方面的考虑,包括需求分析、设备选型、系统架构设计、网络安全、用户交互以及后期维护等。以下是对智能家居
    的头像 发表于 07-23 14:45 1044次阅读

    智能家居照明控制系统功能特点与应用

    随着科技的飞速发展,智能家居已成为现代家庭不可或缺的一部分。其中,智能家居照明控制系统以其独特的优势,正在逐步改变我们传统的生活方式,使家庭
    的头像 发表于 07-08 16:13 339次阅读

    建筑智能控制系统的特点

    建筑智能控制系统 (Building Automation System,简称BAS)是利用先进的信息技术、通信技术和控制技术,对建筑内的设备、系统进行集成管理和
    的头像 发表于 06-13 16:23 403次阅读

    探讨地铁车站智能照明控制系统方案设计

    摘要: 智能照明控制系统通过灵活的控制和管理手段实现节能的目的。简要介绍了智能照明控制系统的构成及特点,有针对性地对地铁车站
    的头像 发表于 05-24 13:56 399次阅读
    探讨地铁车站<b class='flag-5'>智能</b>照明<b class='flag-5'>控制系统</b>方案设计

    智能家居灯光控制系统功能特点

    智能照明是可以实现自动控制的先进照明方式,智能家居灯光控制系统是现代家居科技的重要组成部分,通过自动化控制、物联网等技术,实现了对
    的头像 发表于 04-25 16:21 1024次阅读

    智能垃圾回收箱控制系统硬件设计-机智云

    控制系统硬件部分的选型与设计是整个产品的基础,所有功能的实现都要围绕其进行开发。本章对智能垃圾回收箱控制系统的硬件进行详细设计。 智能垃圾回收箱硬件总体设计
    发表于 04-09 17:37

    浅谈智能照明控制系统在综合管廊中的设计应用与研究

    ].地下工程与隧道 ,2015(3). 【4】孟子雄,智能照明控制系统城市综合管廊中的应用研究. 【5】安科瑞企业微电网设计与应用手册2022.5版.
    发表于 02-27 14:52

    家用4G无线路由器为您带来极速上网体验

    现代家庭离不开4G无线路由器,它稳定、高速,支持多种设备连接,具备安全性能和智能管理功能,让网络体验更加流畅,满足家庭中不同成员的需求。
    的头像 发表于 02-21 14:08 310次阅读

    智能灯光控制系统怎么布线 智能灯光控制系统的组成

    智能灯光控制系统是一种应用于家庭、办公室、商业建筑等场所的智能化设备,能够实现灯光的智能控制和管
    的头像 发表于 01-22 11:28 1892次阅读

    智能控制系统的主要类型有哪些?

    智能控制系统是一种基于人工智能和感知技术的自适应控制系统,可以根据系统状态和环境变化来进行自动调整和优化。
    的头像 发表于 01-17 11:05 2496次阅读

    LED智能照明控制系统应用解决方案

    们的生活和工作带来了便利和舒适。 首先,LED智能照明控制系统家庭照明中发挥着重要作用。通过手机APP或遥控器,可以实现对家庭照明灯具的远程控制
    的头像 发表于 01-11 16:59 1277次阅读
    LED<b class='flag-5'>智能</b>照明<b class='flag-5'>控制系统</b>应用解决方案