APP下载

基于树莓派的智能镜子的研究与开发

2019-08-22徐国保洪展文叶昌鑫陈陆成朱浩

电子技术与软件工程 2019年12期
关键词:结构图树莓邮件

文/徐国保 洪展文 叶昌鑫 陈陆成 朱浩

1 引言

近年来随着科学技术的不断推动,国内外智能家居的市场渐渐打开,智能家居作为物联网的一部分,很多产品从概念走向现实。国外如苹果公司推出的Homekit 平台能通过智能终端控制家庭场景;亚马逊基于Alexa 语音助手推出Echo 智能音箱;谷歌采用人工智能技术驱动,实现了Google Home 控制生活场景。国内也掀起了智能家居热潮,如以 BAT 为首的互联网巨头相继进入智能家居,开启了中国智能家居的高速发展期;百度推出了DuerOS对话式人工智能操作系统;阿里云的天猫精灵智能音箱可语音控制家电设备;腾讯的叮当语音助手和智能音箱等产品实现了家庭场景智能化。其它如小米、京东、美的等企业也通过开放物联网平台,加速实现智能家居市场化。

我们的穿衣打扮离不开镜子,它是我们日常生活的必需品。在这个物联网极速发展的智能家居时代,人们对智能化的生活愈加渴望,在你穿衣打扮或者刷牙的时候,如果使用的是一面智能镜子,将更能感受到科技的魅力和乐趣。在家居智能化时代的你,已经厌烦一边刷牙一边拿着手机查看时间日期、天气预报和新闻等等,这个时候没有比拥有一款与你对话交互的智能镜子更为方便的了。

虽然智能家居已有基本发展,但对于智能镜子这一领域的研究,国内外研究还处于初步阶段。最早的是日本科技展会上出现的基于安卓系统的智能镜,能显示日常的天气、感知手势操作等等;后来美国经典厨卫品牌科勒推出了 Verdera 智能防水镜子,镜子能语音交互;Hi Mirror 推出的智能镜子能评估皮肤状况,提供相应的护肤建议,同时能通过语音进行聊天或者播放音乐;Viio 的智能镜子能通过与智能手机连接后直接用来拨打电话,内置了扬声器可以用来播放音乐或音频文件;智能镜子的研究在持续进行,现有的智能镜子还存在软件拓展性差、市场需求欠缺、功能使用不完善、价格高昂等问题,在智能家居领域仍然是没有商业化起来。

图1:智能镜子整体设计图

图2:时间天气功能结构图

图3:新闻功能结构图

图4:邮件提醒功能结构图

图5:微信提醒功能结构图

图6:音乐播放器功能原理图

文章主要阐述了如何基于Raspberry Pi 开发一面智能镜子的内容。针对软件拓展性差、功能不够完善以及降低成本的问题,本文设计的智能镜子实现了镜子里显示实时的天气状况、温度和湿度,同时也可以提供贴心的用户提示与用户交互,显示新闻热点,还能交互语音对话,智能镜上有温馨的问候内容,邮件、微信的智能提醒,还能在闲暇的刷牙时间播放音乐。从而让人们在生活点滴中感到科技的乐趣,达到满足住户生活的舒适性、便利性要求,改善住户的居住环境和提高住户的生活水平,改变住户的生活方式。

2 智能镜的可行性分析

镜子选用的是单面镜,根据单面镜子的单面透光性,我们让贴在后面的液晶显示屏背景为黑时,它是一面镜子,而液晶显示屏的相关信息也能在黑背景下透过镜子显示出来,把液晶显示屏和单面镜紧密结合起来。把树莓派系统的界面UI 背景设置为黑色,天气、温度、湿度、新闻资讯等信息则可设置为高亮,并对各功能模块设计合理的位置坐标,装上镜框,一面多功能的智能镜子便完成了。智能镜子整体设计图如图1所示。

显示界面是基于html、javescript 和PHP多种网页语言开发的MagicMirror 网页系统。在Linux 环境下安装chromium 浏览器,并搭建一个本地服务器,浏览器设置开机全屏自启,并自动访问搭建好的网页http://localhost 本地主机。

智能镜子的控制核心是Raspberry Pi,价格便宜;系统是基于免费的开源的Linux 系统,提供了可行的开发环境。镜子物联网的实现,是通过树莓派主控Wi-Fi 的连接,实现用户对镜子的数据传输以及控制。由于树莓派3 代具有强大的性能,再加上Linux 开源的系统以及无线通信Wi-Fi 的辅助,完全满足控制智能镜需求。

3 智能镜的交互式界面系统设计

3.1 通过无线通信Wi-Fi技术实现信息无缝连接

智能镜所用的控制芯片是树莓派第三代,其在控制运行上强大以外,并且集成有稳定的Wi-Fi 功能模块,Wi-Fi 连上家庭网络后,实现时间日期、天气信息、新闻资讯等信息的更新和使用,十分便捷。

3.2 智能镜问候语功能

智能镜子的显示中,不可缺的是问候语,好的问候语能带给人们好的心情。使用javescript 代码实现,问候语设置为早上、中午和晚上不同时间段,定义多种不同的温馨问候。

3.3 时间、天气功能的实现

智能镜子具备显示时间、日期和天气预报功能,时间、天气功能的实现,是通过连接openweathermap 来完成,这是一个免费的天气预报接口,在openweathermap 官网注册个人的账号APPID,地理位置获取到Zhanjiang,CN,实现接口的正常使用,时间、天气就能实现实时显示了。时间天气功能结构图如图2所示。

3.4 新闻资讯的实现

图7:人脸检测功能原理图

新闻资讯的显示实现主要是调用新闻订阅源接口,通过Wi-Fi 网络通信的条件下,下载数据再显示输出,新闻订阅源很多,可以根据用户自身实际情况修改,下面以极客公园的新闻订阅源为例。下面是部分核心代码。用jQuery 提供的ajax 方法发送GET 请求到url 地址 获取jsonp 数据,获取到数据后,判断一下数据长度,如果数据长度大于0,就进行下一步的解析parse,否则就打印出错误信息提醒没有获取到数据,从而获得新闻资讯。新闻功能结构图如图3所示。

3.5 邮件提醒的实现

智能镜子含有邮件提醒功能,通过开启邮箱账户的STMP 功能,可以爬取邮件的信息,从而提醒用户是否有新邮件。主要通过python 的开源函数库imaplib 实现,在已经开启了STMP 功能的邮件上,连接邮件的服务器,分析提取邮件的信息。imaplib.IMAP4_SSL()函数实现连接到邮箱服务器,爬取邮箱信息,并把信息写入.txt 文件,通过对比检测是否有新邮件,从而在智能镜子上提醒用户。邮件提醒功能结构图如图4所示。

3.6 微信提醒的实现

微信提醒具有更好的交互性,调用了wxpy 的库,实现了把天气预报、穿衣指数、新闻热点等多种信息自动发到手机微信,新闻热点等信息可根据个人喜好自定义爬取的网站。通过requests.get 请求,后进行解析,爬取需要的信息。微信提醒功能结构图如图5所示。

3.7 音乐播放器的实现

智能镜子也带有音乐播放功能,主要使用了python 中的wx、pygame 开源库实现,当你对着智能镜子刷牙或者梳妆时,有一个会“唱歌”的镜子更是一番新的体验。播放器的实现主要调用的函数主要是pygame.mixer.music.play()、pygame.mixer.music.load()、pygame.mixer.music.pause()等基本的开始播放,载入播放、暂停和结束等音乐控制函数,控制音乐流上稳定。wx 库则用于实现播放器的基本界面和控制按钮。音乐播放器功能原理图如图6所示。

3.8 人脸检测

智能镜子调用opencv 的库进行人脸的检测,主要依赖于cv2.CascadeClassifier 的级联分类器,基于机器学习的PCA 算法,实现人脸和非人脸的检测,提前做好了训练集的训练得出模型,就可以调用opencv 的库进行人脸的检测了。PCA 算法是用于特征维度过多时的降维,通过向量的线性变换,提取数据的主要特征分量,简化数据,保留最大贡献的数据。首先需要训练出人脸模型,在训练出模型后进行预测。在这里调用了开源的Haar 特征分类器.xml 文件,是被不同的部位有不同的xml,这里用的是脸部的xml 文件进行预测。从摄像头捉取一帧图片并且转换成灰度图片,每一个像素点就为0-255 的灰度值,从而可以通过矩阵运算检测灰度图片帧的人脸,经过处理脸部照片,即可实现人们在面对智能镜子时能检测出人脸的功能。人脸检测功能原理图如图7所示。

4 智能镜的硬件模块的实现

4.1 温度、湿度显示功能的实现

智能镜温湿度显示的实现是通过DHT11模块,且集成了温度传感器和湿度传感器,轻薄性能稳定,抗干扰能力强,适合使用在智能镜上。

4.2 语音模块的实现

智能镜子具备语音交互功能,设定关键词唤醒语音助手,语音模块在硬件上用的是Arduino Micro:bit,功能高度模块化,适合在Raspberry Pi 上进行开发,接口则是调用了dingdang-robot。

Dingdang-robot 高度集成了诸多特性,可用于语音识别、语音合成、全局监听、还可以接入微信,dingdang-robot 被唤醒后,指令先经过在线 STT 引擎进行 ASR 识别成文本,然后去处理,得出结果再交给 TTS 引擎合成成语音,播放给用户。

语音模块接受到我们的声音信号后,通过树莓派主控发送到云端进行识别处理,并给出合理的反馈,树莓派再根据反馈做出相应的处理。

5 系统测试

在室内,利用树莓派主控连接了Wi-Fi 无线网络,在智能镜子上进行了测试。软件上,爬虫、时间、天气、新闻等信息捉取流畅;硬件上,DHT11 温湿度模块获取实时温湿度正常,采集数据过程如图8所示。语音模块略有延迟,但正常使用。整体来说,智能镜子系统功能使用流畅,时间、天气、温湿度等信息显示清晰,能稳定运行。

为了增加功能和交互性,本系统设计了软件功能拓展界面,如图9所示,主要实现了音乐播放器、人脸眼睛检测、邮件提醒功能和微信提醒功能等。

智能镜子实物演示结果如图10所示,该系统能实时显示时间,日期,天气情况,还有当前室内环境的温度和湿度等信息功能。

6 结束语

图8:DHT11 温湿度传感器采集数据过程

图10:智能镜子实物演示图

本文围绕智能镜子可行性分析、交互式界面软件和硬件的实现方法、以及系统测试进行叙述,智能镜子以Raspberry Pi 为主控制器,以Linux 为系统环境,通过网页的开发、一些传感器的使用,实现了智能镜子问候语、天气时间、新闻资讯、音乐播放、邮件提醒、微信提醒、温度湿度显示、人脸检测和交互式语音控制的功能。基于Raspberry Pi 设计的智能镜子经济新颖,科技感强,软件拓展功能丰富,可用于家庭洗手间、客厅等装饰,在智能化高速发展的时代,未来有望发展到窗户等其它玻璃,深入推动智能家居的发展,具有广阔的市场需求和极高的价值。

猜你喜欢

结构图树莓邮件
中国共产党第二十届中央组织结构图
基于James的院内邮件管理系统的实现
来自朋友的邮件
基于树莓派的骑行智能头盔设计
CMailServer
一封邮件引发的梅赛德斯反弹
基于树莓派的远程家居控制系统的设计
第十九届中共中央组织结构图
响应面法优化红树莓酒发酵工艺
欧盟:速冻树莓比鲜食树莓市场更好