摘 要: 在智能管家系统中,通过检测人的体重和体脂,再结合客户录入的信息计算出BMI,并将相关数据存储至数据库中以便查询。另外,系统应用网络爬虫技术获取天气状况,搭建C/S模型实现论坛交流功能。系统采用三星4412芯片做为控制核心,搭载Linux操作系统进行开发。
关键词: 网络编程技术; Exyns4412; SQLite3数据库; 智能管家
中图分类号:TP274+.1 文献标识码:A 文章编号:1006-8228(2022)05-60-03
Design of intelligent housekeeper system based on Internet of Things technology
Wang Xiongwei
Abstract: In this intelligent housekeeper system, BMI is calculated by detecting the person's weight and body fat, and then combining the information entered by the customer. The relevant data is stored in the database for query. In addition, the system uses Web crawler technology to obtain weather conditions, and builds C/S model to realize forum communication function. The system uses Samsung 4412 chip as the control core and is developed with Linux operating system.
Key words: network programming technology; Exyns4412; SQLite3 database; intelligent housekeeper
引言
隨着物联网技术的不断成熟和人工智能的迅猛发展,智能管家在此环境下孕育而生并快速发展。
智能管家致力于为个人客户提供智能、高效、专业的管智能服务,推动人工智能时代的文明创新。智能管家系统的设计一般包括对人的健康状况进行检测、远程通信交流、实时获取天气状况和出行建议等。智能管家系统应能够将每次检测的体脂率进行存储,并在历史查询时以折线图的形式呈现。系统实现是基于TCP/IP协议结合Socket通信、SQLite3数据库操作、Linux系统编程、framebuffer显示等技术。
1 系统整体设计
根据智能管家系统功能需求进行系统模块设计,将系统分为如下五个模块进行设计。
⑴ 登录注册模块:基于TCP/IP网络和数据库实现创建和登录个人账号。
⑵ 体重、体脂检测及BMI计算模块:基于传感器,获得用户的体重、体脂数据,再结合输入的身高数据计算用户的BMI指数。并将获得和计算的数据存入SQLite3数据库。
⑶ 历史数据显示模块:基于数据库中的数据,将近期的历史数据汇总,绘制折线统计图。
⑷ 出行建议模块:基于网络爬虫技术获取实时天气信息,穿衣指数以及空气质量等信息,实时反馈给用户,并在用户需要外出时对用户提出适当的穿衣建议,避免出行问题。
⑸ 论坛模块:通过建立TCP服务器,可查看用户上传的动态信息等。
智能管家系统的结构图如图1所示。
2 主要模块介绍
2.1 登录模块
用户登录模块是用于用户登录自己的主页,首先需要将登录注册模块和系统服务器连接。其次需要显示软键盘,实现账户和密码的录入,在客户端录入账号密码后,系统服务器检索数据库,寻找匹配账号和密码,若成功则进入用户主页失败则提示重新输入。此模块的设计分为以下三步。
⑴ UI与软键盘:在进行输入账号密码时需要用到交互界面软键盘,交互界面软键盘感知点击位置,判断交互界面被点击的xy坐标与上次不同时有效,即一次点击将会产生多次判定。再将准备好的图片位置与屏幕坐标对应,即可得到点击位置和输入的字符。
⑵ 输入回显:回显时记录当前界面,删除输入的字符时依据当前界面输出。
⑶ 登录与注册:用户输入信息创建或登录账号,用TCP网络传输本地拼接带帧头的字符串后,服务器解析调用数据库实现注册登录。
2.2 体重、体脂、BMI检测模块
BMI是国际常用的衡量人体胖瘦程度以及是否健康的一个标准。本智能系统设计通过体重体脂传感器测量用户体重体脂数据,再根据录入的身高信息计算出BMI指数并显示,在测量结束后用户可选择将测量的BMI指数的数据上传至服务器,以备后续查询。体重、体脂、BMI测量模块信号流图如图2所示。
2.3 出行建议模块
出行建议模块主要功能是获取实时天气情况和出行建议数据并在触摸屏显示。在本系统中由服务器通过网络爬虫技术获取Nowapi网页上的天气数据和出行建议数据,设计每分钟进行一次天气信息的获取并实时显示。出行模块信号流图如图3所示。
触摸屏录入需要获取天气情况的具体城市向服务器发送请求,获取相关城市的天气信息,系统服务器访问Nowapi平台,根据帧格式向网页发送请求报文,再将获取的网页响应报文信息进行字符串解析,从而得到规范精简的天气信息。
2.4 论坛模块
论坛模块主要用于用户之间的交流。当客户端需要阅读论坛内容时,需发送阅读请求至服务器,服务器收到请求后发送论坛信息,客户端解析并显示,客户端也可上传信息至论坛。该模块通过建立客户端与服务器的C/S网络模型,使用epoll并发I/O,来实现多个线程间的调用。
3 系统软件设计
系统在Linux操作系统平台下进行软件开发,Linux操作系统可以实现多进程、多线程、文件IO、网络编程等软件开发。此系统软件开发主要分为显示模块、客户端模块、Server服务器模块。
显示模块主要有显示数据和输入信息两个用途。显示数据为:显示体重体脂测量数据、历史BMI的数据折线图、天气情况及出行建议和论坛交流信息。输入信息为:登录和注册账号、个人信息的录入、论坛发布动态等。
客户端主要起到数据中转和多线程调度的作用。客户端模块可根据体重体脂和身高等数据计算出BMI数据,再将数据发送至服务器进行存储。系统进行出行建议功能时,起到中转城市地址的作用,将输入的城市信息發送至服务器。在进行论坛交流功能时起到中转交流信息的作用。
服务器用于接收各个客户端发送来的数据并存储于数据库中,服务器与客户端之间以TCP的方式进行连接,搭建为C/S模型实现论坛交流。在实现出行建议功能时服务器与Nowapi建立TCP连接,向网页发送请求报文并解析接收的数据,最后下发至客户端。
4 系统测试
系统设计的主界面有“我”、“测量”、“出行”、“发现”、“闹钟”、“登录”、“注册”这七个功能,图4和图5展示部分功能的测试。
5 结束语
经测试,本系统能够实现用户身体检测、出行建议、论坛交流、历史数据查询等多种功能。系统搭载Linux操作系统,使用C语言进行开发,具备高效率低成本的特点。系统虽然实现了预定功能,但还有需完善之处,后续可开发对人体的心率、血压、血糖、体温等多方面的数据检测,使得智能管家系统更加智能更加全面。
参考文献(References):
[1] 刘洪涛.嵌入式系统Linux C语言程序所设计[M].人民邮电
出版社,2017
[2] 刘洪涛.嵌入式操作系统[M].人民邮电出版社, 2017
[3] 殷人昆.数据结构C语言描述[M].机械工业出版社,2017
[4] SantemizP,Spreeuwers L J,Veldhuis R N J.Automatic face
recognition for home safetyusing video-based side-view face images[J].IET biometrics,2018
[5] 李海园.基于Cortex_A9处理器的室内环境监测系统的设计
与实现[D].西安石油大学,2020
[6] 张浩雨.基于NB_IoT的小区安防与环境监测系统设计与
实现[D].西安科技大学,2020
收稿日期:2021-11-11
作者简介:王雄卫(1996-),男,陕西榆林人,西安石油大学电子工程学院硕士在读,主要研究方向:嵌入式、智能系统。