基于DragonBoard 410c的家庭智能环保卫士——(9)数据库设计

时间:2021-07-25 10:48:24

        根据前面给出的整体方案和部分已经完成的模块设计,本期blog将对设计的基于Dragonboard 410c的家庭智能环保卫士的数据库方案进行设计,为系统提供数据存储和访问支持,整个系统的数据库主要包括以下几个部分:

        1)传感器数据存储与管理

         该部分主要需要实现对环保机器人配置的各种环境传感器采集到的数据进行存储和管理,需要采取一定的管理策略,记录和保存近期室内环境的数据,如对当天的数据采用每分钟保存一条记录的方式进行保存,对七天以内的数据采用每30分钟保存一次的方式进程保存,对不同位置的数据采用每个栅格保存一次等,通过这些管理策略,实现对室内环境数据存储的智能化管理,为后续进一步以这些环境数据作为应用提供基础,而实现这一功能的最基础工作就是构建传感器数据存储管理表,以保持和记录传感器数据。

         根据上述分析,本文通过构建sensorDataRecord 表来保持和记录家庭智能环保卫士传感器数据,具体的表设计及各个字段的定义如下:

     基于DragonBoard 410c的家庭智能环保卫士——(9)数据库设计    

图1 sensorDataRecord 表结构

        2)系统当前状态信息存储与管理

        在系统运行的过程中,需要对系统的状态进行维护,其中通常的方式是采用文件的方式进行保存,但是考虑到本文在设计和构建整个家庭智能环保卫士的过程中,采用的是多进程模块的设计方式,各个功能模块是独立的进程进行管理和维护,这就需要各个进程之间可以方便的获取系统状态信息,如果采用数据库来存储这些信息,这样为后续各个进程访问和维护该数据变得更加便捷,因此本文通过构建系统当前状态信息表来对系统当前状态信息进行维护,在该表中,只保存一条ID为0的记录,以记录当前的状态信息,具体的表设计如下图2所示。

基于DragonBoard 410c的家庭智能环保卫士——(9)数据库设计

图2 sysDeviceRealyTimeStatus表结构

        3)栅格位置信息存储于管理

         家庭智能环保机器人定位是基于栅格地图技术来进行定位的,这里需要实时的保存和更新栅格地图中的栅格状态信息(可以通过,障碍,未知),并且路径搜索应用程序要能够随时的访问这些栅格状态信息,获取各个栅格的状态,而栅格位置更新程序也要能实时的更新栅格状态信息,这就需要在系统中维护一个栅格数据表,用于对室内栅格地图信息进行管理,本文通过构建rasterStatusRecord 表来记录室内栅格状态信息,具体设计如下图3所示。

         基于DragonBoard 410c的家庭智能环保卫士——(9)数据库设计

图3 rasterStatusRecord表结构

        4)其他表设计

        家庭智能环保机器人其他数据表还包括相关的用户信息表,用户登录log表等,用于维护系统中的相关用户信息和日志记录等。

      以上就是整个家庭智能环保机器人的数据库系统的设计,后续将采用python基于该设计进行实现,给出具体的设计代码。