admin 管理员组文章数量: 1184232
2024年4月25日发(作者:浏览器打开index html)
科技创新导报
2019 NO.03
Science and Technology Innovation Herald
工业技术
DOI:10.16660/.1674-098X.2019.03.098
智能家居宠物看护系统的设计与实现
孙晴 方明星 陈露瑶
(安徽师范大学物理与电子信息学院 安徽芜湖 241000)
摘 要:本文主要阐述设计了一款智能家居宠物看护系统。该系统硬件部分采用单片机STM32F103主控芯片及wifi模块
ESP8266芯片;软件部分利用Java作为服务端,Spring Boot搭建服务器,通过Socket向单片机发送指令,使用HBuilder开
发用户界面,使用nginx服务器实现实时监控。经实验表明,该系统运行稳定,可成功实现预期目标。
关键词:智能家居 宠物看护 springboot搭建框架 HBuilder软件开发
中图分类号:TP216 文献标识码:A 文章编号:1674-098X(2019)01(c)-0098-04
Absrtact: This is a smart home pet care the hardware part of the system, single-chip Microcomputer
STM32F103 master control chip and wifi module ESP8266 chip are software part uses Java as the
server,Spring Boot server,sending instructions to single-chip Microcomputer through Socket,developing user
interface Interface with HBuilder,use nginx server to realize real-time experimental results show that
the system runs stably and can achieve the expected goal successfully.
Key Words: Amart home; Pet care; Springboot framework; HBuilder software development
近年来,随着智能家居技术的不断完善,科学技术已经
不再是人类的专属财产。也就是说,生物也可以享受科技
带来的服务。目前,国外已经有部分科研人员将目光放在了
宠物的智能看护方面,其中,NamKyung Lee在2014年先提
出了基于物联网的智能家居系统中的宠物护理服务
[1]
,而后
在2016年将系统改进为基于对象网络体系结构的智能宠
物护理系统
[2]
,这些系统成本较为昂贵,不易普及。国内对
于宠物智能家居的研究却少之又少,仅有一些针对单一用
途的简单系统,例如宠物自动喂食系统
[3-4]
等,功能不够全
面。本文提出的智能家居宠物看护系统就是将智能家居
技术应用到家庭宠物的看管和护理中,使用手机就可以实
时监控家中宠物的状态,方便初次养宠以及经常出差的用
户更轻松的照顾宠物。其中,为了给用户更好的使用体验,
本文还将宠物的行为“翻译”成人类的语言,教会宠物“说
话”。
1 宠物看护系统整体设计方案
宠物看护系统包括Android智能客户端软件、远程服
务器、单片机及WiFi模块、传感器模块四部分,总体框图
如图1所示。手机客户端使用HBuilder完成界面开发,通
过HTML5+JS+CSS来控制界面的样式以及完成与服务
端的数据交互;使用Java作为服务端,采用Spring Boot
来搭建微服务,通过Socket来实现向单片机发送指令;
STM32F103主控芯片控制各个传感器,通过TCP/IP协议与
服务器进行通信,然后通过串口URAT协议与ESP8266芯
片通讯,通过AT指令实现对网络中TCP链接的回应。
2 宠物看护系统的实现
宠物看护系统的总体结构可分为软件和硬件两部分,
98
科技创新导报
Science and Technology Innovation Herald
软件部分采用Android操作系统,使用Spring Boot框架搭
建服务器,HBuilder开发前台界面,并调用了智能聊天机器
人;硬件部分以STM32F103主控芯片为核心,其中,wifi模
块使用了ESP8266芯片,饮食模块使用了非接触式液位传
感器和电阻应变式传感器,声音检测模块使用了麦克风
接收声音,温度检测模块使用了GY906红外温度传感器,
以及支持rtsp视频流的摄像头
[5-8]
。宠物看护系统可以让用
户随时通过手机客户端查看宠物的状态。系统运行期间,
如果饮食模块检测到没有食物或者水时,手机客户端会提
示用户喂食或者添加饮用水;如果声音检测模块检测到宠
物发出较高分贝的声音时,手机客户端会询问用户是否安
抚宠物;如果温度检测模块检测到宠物体温不正常时,手
机客户端会提示用户带宠物去就医。
2.1 宠物看护系统的软件设计
2.1.1 服务端的设计与实现
本系统使用了Eclipse进行服务端的代码编写,Java作
为服务端。Java语言可以通过提供最基本的方法来完成指
定的任务,是一种面向对象的语言。我们仅需理解部分基
本概念,就可以根据情况用它编写出相应的应用程序
[9]
。
Java语言的设计集中于对象及其接口,对象中封装了Java
语言的状态变量及方法,实现了信息隐藏及模块化;Java
语言还提供了简单的类机制以及动态的接口模型,其中,
类提供了一类对象的原型,可以通过子类使用父类所提供
的方法,即继承机制,从而实现代码的复用
[10]
。不仅如此,
通过Java语言提供的类库还可以处理TCP/IP协议,用户访
问其他对象时,可以在网络上非常方便的使用URL地址访
问。开发软件eclipse则是一个可扩展的开放源代码的集成
开发环境(IDE),它不仅免费、免安装,还具有纯java语言
工业技术
编写、拓展性强等特点。
由于系统中服务端需要提供的服务较少,可以采用
Spring Boot框架来搭建微服务
[11]
。Spring Boot能够以jar
包形式独立运行,运行一个Spring Boot项目只需要通过
java -jar 来运行;它可以选择内嵌Tomcat、jetty或者
Undertow这样的servlet容器,就不需要以war包的形式来添
加项目;它还提供了一系列的start pom从而简化了Maven的
依赖加载;Spring Boot支持在实际开发中自定义自动配置
Bean;而且,Spring Boot不是借助与代码生成来实现的,而
是通过条件注解来实现的;它还可以基于http ssh telne监
控运行时的项目;具有很高的开发和部署效率。
因为本系统的硬件中配有wifi模块,于是选择通过
Socket来实现向单片机发送指令。Socket是应用层与TCP/
IP协议族通信的中间软件抽象层,它是一组接口
[12]
。在
设计模式中,Socket其实就是一个门面模式,它把复杂的
TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组
简单的接口就是全部,让Socket去组织数据,以符合指定
的协议。
我们通过IP及端口发送的约定协议到WIFI模块的来
完成与单片机之间的通讯,然后接受到来自单片机的数据
后进行解析,解析完成后反馈给用户,为了防止在我们解
析还未完成时,用户再次获取液位引起的冲突或者覆盖掉
单片机之前的操作,我们引入了Map
变量,变量名为lockMap,如果没有使用,添加逻辑锁,锁定
该设备((key, "1")),如果在使用就不发送指定
到单片机同时反馈给用户,如果解析完成了,则清除掉该逻
辑锁((key)),这样就实现了通过URL的方
式来获取液位了,其他的诸如声音、体温等都是同样的原
理。
本文系统中实现与单片机交互的部分代码如下:
调用socket方法,发送十六进制字符串数据,返回指定
字节长度,其中ip为ip地址,port为端口号,msg 为发送字符
串,readLen代表数据长度的字节位置,加上前一字节共两
个字节代表长度:
public static String send(String ip,int port,String
msg,int readLen){
Socket s = null;
OutputStream out = null;
InputStream in = null;
try{
s = new Socket(ip, port);
imeout(6000);
out = putStream();
("发送命令:" + msg);
byte[] cbufs = 2byte(msg);
(cbufs, 0, );
in = utStream();
byte [] cbuf = new byte[readLen];
2019 NO.03
Science and Technology Innovation Herald
科技创新导报
(cbuf);
return ToHexString(cbuf);
}
catch (Exception ex) {
(sage());
}
主函数如下:ip为192.168.8.156,端口为8234,发送字
符串55AA55AA0129,并调用send方法返回字节长度:
public static void main(String[] args) {
String s = send("192.168.8.156",8234,"55
AA55AA0129",6);
n(s);
由于采用的是springboot搭建的微服务,它替我们省去
了大量的配置文件,在代码中我们只需加入注解就可以通
过http发布我们的服务供前台展示,部分代码如下:
调用自定义方法,请求服务器获取宠物状态及参数:
public void doMethod(HttpServletRequest request,
HttpServletResponse response) {
String method = ameter("method");
n(method);
switch (method) {
获取宠物饮用水的液位高度:
case "waterLevel": SQService.
getWaterLevel(request, response);
获取宠物的声音大小:
case "getVoice":
ce(request, response);
获取宠物的体温:
case "getTemperature": SQService.
getTemperature(request, response);
获取食物的剩余量:
case "getFoodQuantity": SQService.
getFoodQuantity(request, response);
发送喂食指令:
case "feed":
(request, response);
break;
default:
}
以获取食物剩余量为例,如果正常运行,则发送“操作
成功”;如果匹配值为“-1”,则发送“设备正在使用中”;
如果匹配值为“-2”,则发送“返回的数据格式异常”;如
果匹配值为“-3”,则发送“返回的数据为空或长度不为
12”;服务类代码如下:
public void getFoodQuantity(HttpServletRequest
request, HttpServletResponse response) {
String IP = ameter("IP");
String port = ameter("port");
科技创新导报
Science and Technology Innovation Herald
99
科技创新导报
2019 NO.03
Science and Technology Innovation Herald
工业技术
图1 宠物看护系统整体结构图
图2 宠物看护系统硬件结构图
if (rimEmpty(IP) && StringUtils.
isNotTrimEmpty(port)) {
String foodQuantityMesMes = Route.
getFoodQuantity(IP, port);
SQReturn sqr = new SQReturn();
switch (foodQuantityMesMes) {
case "-1":
sage("设备正在使用中");
break;
case "-2":
sage("返回的数据格式异常");
break;
case "-3":
sage("返回的数据为空或长度不为12")
break;
default:
sage("操作成功");
ult(true); sqr.
setObj(ouble(foodQuantityMesMes));
break;
100
科技创新导报
Science and Technology Innovation Herald
}
myOutPut(request, response, sqr);
}
2.1.2 前台页面的开发
宠物看护系统前台页面开发使用HBuilder来完成,
HBuilder是DCloud推出的一款支持HTML5的Web开发
IDE。HBuilder的最大优势是简单快捷,通过完整的语法
提示和代码输入法、代码块等,大幅提升HTML、js、css的
开发效率。同时,它还包括最全面的语法库和浏览器兼容
性数据
[13]
。
本文系统的前台页面通过HTML5+JS+CSS来控制界面
的样式以及完成与服务端的数据交互。其中智能聊天机器
人是通过调用图灵提供的接口实现的
[14]
。首次登陆时,需
要录入服务端的IP和端口、视频流服务的IP和端口、宠物
的类别、名称等。由于需要展示的数据有限,就没有特意
去搭建数据库了,所有的数据都是缓存在本地的手机上,
数据量只有几kB,相信对于现在的手机来说是微不足道
的。这些缓存数据的也是可以修改的,APP的设置中就有
相应的页面来修改或清理这些缓存。进入页面后展示给
我们的是一个聊天界面,当然,与我们聊天的不可能是我
工业技术
们的宠物,而是智能聊天机器人。这里我们调用的是图灵
官方提供的接口,只需将我们要发送的信息封装好提供
给接口即可实现。其中,接口地址为123.
com/openapi/api。
2.1.3 监控视频的实现
本系统通过搭建nginx服务来实现推流与拉流,首先
从摄像头获取rtsp的视频流,通过来对它进行
切片成m3u8文件,当然,这些信息都是要配置在nginx服务
的配置文件中的,包括切片成m3u8文件的位置也是需要
事先配置的,否则我们就不能通过URL的方式访问到了。
由于每次启动,都需要输入一堆的指令,很是繁琐,这
里采用go语音写了一段脚本封装成bat文件,以便每次启动
只需双击执行这个脚本即可,脚本边角简单,具体内容如
下:
@echo off
set BASEDIR=%CD%
start%CD%ffmpeg-i"rtsp://IP/11" -ccopy-fhls-
hls_time2.0-hls_list_size0-hls_wrap3D:/hls/pet.
m3u8Nginx(engine)
2.2 宠物看护系统的硬件设计
宠物看护系统的硬件主要以单片机为核心,wifi模块
及各个检测模块组成。单片机采用了STM32F103芯片作为
主控芯片。STM32F103是ST公司生产的基于Cortex-M3内
核的ARM处理器,48pin,最高主频达72MHz,拥有20K的
SRAM、64K的FLASH、1个DMA控制器、1个高级定时器、2
个串行外设接口(SPI)、3个通用同步异步收发器(USART)、
模拟/数字转换(ADC)、3个通用定时器等等,功能强大、
种类齐全,并且由于RCC对外设时钟的管理,它的功耗很
低
[15-16]
。Wifi模块采用了ESP8266芯片承担网络链接协议
层转化,内部编程实现AT指令接受、网络信号扫描、WIFI
信号连接、TCP/UDP协议实现、网络透传实现等功能,
ESP8266 集成了32位Tensilica处理器、标准数字外设接
口、天线开关、射频balun、功率放大器、低噪放大器、过
滤器和电源管理模块等,仅需很少的外围电路,可将所占
PCB空间降低,具有便宜、高性能、开发环境便利等优点。
智能宠物看护系统的硬件结构图如图2所示。
3 结语
本文讲述了智能家居宠物看护系统的硬件和软件部
分,其中重点讲述了软件设计中服务端及前台页面的设
计与实现。服务器采用了Java作为服务端,Eclipse编写代
码,使用Spring Boot框架来搭建微服务。前台页面使用
HBuilder开发,通过HTML5+JS+CSS来控制界面的样式,
并通过搭建nginx服务来实现视频流。目前,宠物看护系统
运行稳定可靠,可成功实现预期目标。
参考文献
[1] NamKyung based Pet-Care Service in Smart
Home[J].IEEE ICTC.2014:1003-1004.
[2] Namkyung -Aware Smart Pet-Caring System
2019 NO.03
Science and Technology Innovation Herald
科技创新导报
with Internet of Things on Web of Object Architecture[J].
IEEE ICTC.2016:1247-1252.
[3] 蒲小年,戚慧珊,李智豪.基于微信小程序的宠物自动喂
食系统[J].物联网技术,2018(9):79-81.
[4] 邵彦达,沈睿,眭耀宇.基于AT89C51单片机的智能宠物
家居[J].科技创新导报,2017(14):1-2.
[5] 黄成云,卢选民,李戈.基于Android的智能家居控制软件
设计与实现[J].计算机与现代化, 2014(11):102-105.
[6] 熊琼.基于ARM Cortex-A8与Android平台的智能家居系
统设计[D].太原理工大学, 2014.
[7] 王朝华,陈德艳,黄国宏,等.基于 Android的智能家居系
统的研究与实现[J].计算机技术与发展,2012, 22(6):
225-233.
[8] 张涛.基于Android的智能家居系统的设计与实现[D]. 安
徽大学, 2015.
[9] 周清平,颜一鸣.Web前端项目开发实践[M].长沙:中南大
学出版社, 2015.
[10]谭浩强.Java编程技术[M].北京:人民邮电出版社,2003.
[11]刘云浩,李沛.基于Spring Boot的后台服务器开发[J].中
国科技信息,2018(17):61-62.
[12]罗亚非.基于TCP的Socket多线程通信[J].电脑知识与技
术,2009,5(3):563-565,598.
[13]韩旭东.基于HTML5的跨平台开发[J].中国新通
信,2018(3):49.
[14]林承师.基于Java平台与图灵聊天机器人的接入实现[J].
信息与电脑,2018(21):113-116.
[15]王超,骆德汉,郑魏,等.基于STM32的嵌入式智能家居
无线网关设计[J].计算机技术与发展,2013(3):3-4.
[16]朱重阳.基于单片机控制的智能家居系统的设计[J].电
子技术与软件工程, 2014(15):77-78.
科技创新导报
Science and Technology Innovation Herald
101
版权声明:本文标题:智能家居宠物看护系统的设计与实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1714001477a661386.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论