亲,“电路城”已合并到全星升级的「与非网」。了解新「与非网」

  • 方案介绍
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

作者:annysky

 

概述

智能家居是目前最火热的应用方向,基于对物联网和智能家居的热衷和喜爱,以自己小屋为实际应用模板,将智能家居的设想变为现实状态。本智能家居应用平台基于STM32H7和STM32F4为主芯片进行设计,分为主控平台和网关平台。主控平台以ART-PI开发板为核心,主要任务是查询网关平台的数据信息、查询和设置参数、与云平台进行交互等;网关平台以STM32F407为核心,主要任务是采集数据和分析处理数据、并将主控平台下发的指令进行分析处理后来控制终端,该平台目前采集4路温湿度、1路电量、1路甲醛、1路PM2.5、2路烟雾报警、1路水浸报警、2路门锁状态的数据,输出控制1路加热和散热,通过CAN通讯与主控平台进行联络,并且使用屏进行显示各个状态,还可以使用WLAN与Onenet进行数据交互。后续根据需要在CAN网络上增加设备或模块(智能窗帘、CAN温湿度传感器、智能继电器、门禁系统摄像头等),能够监测和控制终端产品。

开发环境

硬件:

(1)主控:ART-PI(STM32H750XB),ART-PI-DOCK扩展板(含屏)

(2)网关:WT-19S42(STM32F407VGT6)

(3)RT-Thread版本:RT-Thread V 4.0.3

(4)开发工具及版本:MDK 5.27,CANTest,XCOM V2.0,VGUS2020,DGUS_V759-t5l

RT-Thread使用情况概述

(1)内核部分:调度器,信号量,消息队列,libcpu/BSP。

调度器:创建多个线程来实现不同的工作。

信号量:用来同步线程。

消息队列:用来实现线程之间传递的数据。

libcpu/BSP:外设CAN驱动、UART驱动。

(2)组件部分:CAN框架,UART框架,

CAN框架:使用FDCAN2框架来与网关平台进行数据交互,上层代码可以提高代码的可重用性。

UART:使用UART框架来与ART-PI-DOCK扩展板进行数据交互。

(3)软件包部分

cJSON:C语言实现的极简的解析 JSON 格式的软件包。

WebNet 软件包:由RT-Thread 自主研发的,基于 HTTP 协议的 Web 服务器实现,它不仅提供设备与 HTTP Client 通讯的基本功能,而且支持多种模块功能扩展,且资源占用少、可裁剪性强,充分满足开发者对嵌入式设备服务器的功能需求。

Onenet: RT-Thread 针对 OneNET 平台连接做的的适配,通过这个软件包,可以让设备在 RT-Thread 上非常方便的连接 OneNet 平台,完成数据的发送、接收、设备的注册和控制等功能。

硬件框架

  1. 总方案原理图

智能家居应用平台方案原理图如图1所示,主要由两部分组成(目前状态,后续根据实际应用情况进行扩展),分别是主控平台和网关平台。

 

图 1 总方案原理图

  1. 主控平台:

主控平台的硬件分为两部分。一是ART-PI开发板,是由RT-Thread 设计的开源硬件,核心芯片是STM32H750XB,主频最高达480M,支持超低功耗。开发板板载功能众多,标配 TYPE-C 接口,板载 WIFI, 蓝牙配网,还有 LCD(RGB888),SDRAM, TF-Card, USB-OTG等应有尽有。

另外一部分是ART-PI-DOCK扩展板:根据ART-PI开发板的扩展接口自主设计的ART-PI-DOCK扩展板。主要的功能是通讯和人机交互,不参与对外设传感器或者模块的控制和信号采集(除光敏和温湿度)。板子主要包含以下几种功能:

(1)2路CAN通讯

(2)1路485通讯;

(3)1路232通讯;

(4)1路TTL通讯;

(5)1路WLAN网络通讯;

(6)CAN匹配电阻设置;

(7)主机ID设置;

(8)1路温湿度传感器;

(9)1路光敏传感器

(10)1路锂电池充电管理模块接口;

(11)1路外设5V输入接口;

(12)1路串口屏接口;

(13)1路TFT液晶屏接口。

扩展板涵盖的功能非常全面,包含了目前应该最广泛的几种通讯方式和人机交互方式(可选),可适应不同应用场景。

 

图 2 ART-PI-DOCK原理框图

  1. 网关平台

网关核心芯片是STM32F407VGT6,1024k Flash,192KB SRAM,工作频率为168 MHz。基于STM32F407强大的功能,在设计网关平台时,使用了符合IEEE 1588 v2标准要求的以太网MAC10/100,并使用了高达6个USART设备。另外使用了1路CAN,4路串行设备,12路开关量输入,8路开关量输出,各个接口均进行了标识。

 

图 3 网关平台原理框图

软件框架说明

     

图4 主控平台软件流程图                                 图5 网关平台软件流程图    

本项目采用的是主控与网关两个平台,主控平台完成对网关平台数据的处理显示,并对网关平台的参数进行配置和监控。网关平台主要是采集和处理数据,并将数据显示在人机界面,按照通讯协议内容将数据及时传输给主控。后续根据使用的效果和体验的舒适性进行适量的调整。

主控平台使用RT-Thread操作系统进行设计,在ART-PI例程的基础上修改,形成主控平台的工作任务。网关平台主要使用的是FreeRTOS操作系统进行设计,完全由个人独立自主进行,经过24小时的老炼测试,系统工作运行正常。

软件模块说明

主控平台的软件模块:

(1)HMI屏:serialtx_thread_entry,主要任务是周期性的将数据按照通讯的协议传输给屏。

(2)FDCAN2接口:can_rx_thread,CAN接收线程,正确收到数据后对数据进行处理,处理完成后封装结构体hmimodel_info,交给HMI屏线程处理。

网关平台的软件模块:

(1)led_sta_task:检测当前系统的运行状态,每500ms运行一次。

(2)switch_task:检测输入开关量状态,包括烟雾,水浸等;

(3)am2301_task:循环读取4个温湿度传感器的数据,并将数据封装hmi_info结构体和am2301_info结构体中;

(4)pzem_task:发送命令读取电量数据,对接收到的数据进行处理,并将数据封装hmi_info结构体和pzem_info结构体中;

(5)hmi_task:将封装在hmi_info结构体的数据周期性的按照通讯的协议传输给屏。

(6)hmi_recedata_task:对屏下发的命令进行处理。

(7)Net_Connect_task:网络平台连接任务。

(8)Net_Rece_task:网络平台下发数据,并对数据进行处理。

(9)Net_SendData_task:网络平台上传数据。

(10)Hot_HotCtlSet_task:加热和散热控制任务;

(11)DeviceAlarm_task:设备报警任务;

(12)DoorLock_task:检测门锁任务;

(13)ALTER_Info_Task:信息处理任务;

(14)ch2o_task:甲醛数据处理任务;

(15)pm25_task:PM2.5数据处理任务;

(16)can_task:CAN任务,封装数据,按照通讯协议将数据传输给主控平台。

 

演示效果

 

视频:

 

比赛感悟

物联网是时代的潮流,是现在的发展趋势。一直听说RT-Thread操作系统在物联网方面做得非常好,可一直未使用。当在论坛看到本次比赛后,一种强烈的参赛欲望涌上心头,哪怕不给我开发板我也要自己设计开发板来参加比赛,一是为了学习RT-Thread操作系统,二是在自己的家里做一个智能家居系统。

说实话第一次使用RT-Thread操作系统真是无从下手,就像是遇见了心爱的女神,不知道如何开口去表达自己内心的想法。还好RT-Thread在文档方面做得工作很细致,通过 RT-Thread官网上的文档中心,我学习了 多线程及其调度、信号量、邮箱、消息队列、内存管理、定时器等,猛然一看这不是和FreeRTOS基本差不多嘛,学习的劲头骤然兴起。

通过例程和对文档的学习,并且基于对RTOS的基本了解,很快进行开始了程序的设计。在设计CAN的时候也是遇到了很多的问题,按照文档叙述和操作步骤,建立了CAN线程,可是始终无数据进行通讯,经过多方查找,最后发现RT-Thread和STM32的CubeMX必须很好的进行配合才行,另外在RT-Thread Setting中要对使用的硬件设备进行配置,否则很多操作无法进行,不能实现自己的功能。俗话说万事开头难,但是当熟悉了以后,很快就能对其他的设备进行操作。

经过对CAN设备的操作,发现RT-Thread的操作系统真是非常好用,简单快捷高效,使用方便,只需要写自己的代码就可以,不需要管底层的配置到底是如何的(如果是新手还是看看寄存器的配置)。

另外就是RT-Thread的软件包非常的好用,只需要下载后就可以使用了。非常不错,不像我使用其他的操作系统,每一步都得自己配置,一个地方错,会造成灾难性的事故,在这里也由衷的感谢开源社区大佬们的贡献。

最后感谢主办方提供了这么好的一个平台,不仅能展示自我,也能学到很多知识,希望有朝一日我也能给开源社区贡献一份自己力量。

  • art_pi_dock SDWn工程320x480.rar
    描述:art_pi_dock 文件
  • DWIN_SET.rar
    描述:触摸屏文件
  • 代码地址.txt
    描述:代码地址
  • 基于RT-Thread的智能家居应用平台.docx

相关推荐

电子产业图谱