版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章绪论1.1选题的背景和意义现如今当代社会更加呈现出现代化、科技化,科学技术是社会飞速发展塑造的产物,但是随着社会的进步发展人与人之间沟通却日渐疏远了,当代社会有越来越多的人会选择饲养宠物的方式来排解现代社会给我们带来的巨大压力,当上班族下班回到家看到自己的宠物开心的向你跑来,一切烦恼都会抛之脑后;因为宠物可以让主人在快节奏工作生活的今天,更好的放松压力、带来欢笑;饲养宠物与宠物互动已经成为忙碌工作生活的重要调节减压方式,如今,各种各样的宠物已经融入我们的生活,成为我们生活的一部分。宠物数量的逐年增加,主人为了宠物可以得到更加舒适的环境,为宠物购买各式各样的生活用品,使得的宠物用品也层出不穷。依据中国产业信息网颁布的《2020-2026年中国宠物用品及服务行业市场运行潜力及营销渠道分析报告》,从报告可以看出目前宠物经济呈现出了急速发展的趋向,而且急速发展的宠物经济随着宠物行业的发展、兴盛,依然初步形成了一个产业链,在宠物用品中宠物家居所占比重是比较大的一部分,宠物饲养者在购买宠物用品时宠物家居的购买是一个占比较大的购买方向,并且伴随着社会的科技化,宠物饲养者趋于年轻化,智能宠物家居的需求量也是相当大的。由于猫是天生具有领地意识的动物。所有的猫,包括家猫都有自己的地盘REF_Ref6612\r\h[1]。而对于狗来说,狗也有明显的领地习性REF_Ref6726\r\h[2]。对于幼儿在不经意间进入宠物家居即宠物领地时造成的安全隐患,以及在宠物饲养者外出时宠物食物投喂,宠物小屋环境中温度调节都是需要解决的问题。1.2国内外研究现状分析在1999年,由位处美国的MIT(麻省理工学院)在提出物联网(IOT)的概念之后,其经历了迅速的发展,在各行各业如工业,农业,家庭等方面都有了广泛且大量的应用,物联网应用发展的重要方向之一就是家庭物联网。而在国外就有人提出将宠物智能家居依托于整个人类家庭的智能家居来建设。如NamKyungLee等人(2014)提出了基于物联网的智能家居系统中的宠物护理服务REF_Ref6785\r\h[3],目的是通过以智能家居为基础实现对宠物居住的智能化。但是通过梳理分析,这些系统部署周期较长且需要依托整个智能家居总体作为依托来建设宠物小屋,故其成本较高,而其普及性却较低。目前,在国内的研究大多是基于某一具体方面对宠物家居进行讨论开发,孙博等人(2016)提出了一种远程科学喂养宠物的系统REF_Ref6863\r\h[4]。邵彦达等人(2017)提出了借助于智能家居,来轻松喂养家中的宠物REF_Ref6932\r\h[5]。刘惠惠(2018)也提出了在宠物用品中的智能喂食器。通过智能喂食器,便于用户远程喂食等操作REF_Ref6981\r\h[6]。它们都是在单一的喂食方面对宠物家居提出了建设的观点。而王丹雪(2014)提出的宠物的短期寄养的服务平台,由寄养人自己在平台寻找有资质的宠物饲养者进行宠物托管REF_Ref7013\r\h[7]。以及杨莹(2014)提出的基于智能化设备和智能化家居的宠物托管服务平台,在宠物饲养者出差等情况下宠物无人照看时可通过这个平台对宠物提供个性化的寄养REF_Ref7046\r\h[8]。也只是在宠物饲养者短暂离家后宠物寄养方面的讨论与研究,但如果拥有一个智能化的宠物小屋,将这些单一的功能聚集起来,那将为宠物饲养者带来极大的方便。1.3本文主要研究内容针对现有的智能宠物小屋的研究和分析,本文基于OpenCV,微信小程序、结合B/S架构对数据进行处理展示并可通过移动端对硬件进行控制,硬件采用树莓派和STM32微控制核心。第二章智能宠物小屋总体架构和相关技术概述2.1总体架构在此次设计中,以STM32和树莓派作为控制核心,以温湿度传感器和ov5647传感器、继电器等作为基础外部设备。结合嵌入式,无线传输,基础图像处理以及微信小程序等技术,设计实现了基于物联网和OpenCV的智能宠物小屋。通过环境传感器对环境(主要是对温湿度)数据的采集,将结果发送至主控芯片STM32,再通过串口将数据发送给主控制器树莓派,再发送至服务器,最终将数据显示在微信小程序端。通过ov5647传感器,对物体进行图像采集,再使用Python结合OpenCV对图像进行预处理并进行初步识别。采用基于harr特征进行猫脸识别REF_Ref7111\r\h[9]。若识别成功打开小屋的门,识别失败则将图片传输至百度AI接口进行二次识别。由于百度很早就提出了“ALLIN人工智能战略”REF_Ref7170\r\h[10],所以其能提高图片检测的准确度。将最终结果传回主控制器树莓派,判断是否开启小屋的门。在移动端(微信小程序)可以设置温湿度阈值,通过加热毯和风扇来对宠物小屋环境进行自动调节。也可进行喂食操作,不仅能通过自动识别来决定开启小屋的门,也可在移动端直接开启小屋的门。在本文的设计方案中能够分为两部分,硬件设计的部分和软件设计的部分。其中硬件组成部分主要有STM32开发板、树莓派4B开发板、温湿度传感器、摄像头、金属舵机、继电器、SD存储卡,软件组成部分主要有移动端微信小程序,服务器处理、Python+OpenCV以及摄像头驱动等。系统的总体架构如图2-1。图2-1系统总体架构2.2控制器在本次设计中采用的控制器是STM32F407VET6微控制器和树莓派4B微控制器。其外观分别如图2-2和图2-3。图2-2STM32F407VET6微控制器图2-3树莓派4B微控制器2.2.1STM32F407VET6和树莓派4B微控制器概述STM32F407VET6是由ST(意法半导体)公司研发制作的一款低功耗,高性能,低价格的微控制器,定时器、AD、DA、复位、电源管理、时钟等资源都集与于其内部。这些资源对本次设计提供了极大的助力,其所拥有的82个I/O口恰如其分的适应本次设计的外设要求。由于STM32F407VET6所提供的强悍的时钟系统和32位处理器,所以在本次设计的中能够快速且富有效率的完成数据的获取,计算以及传输工作。树莓派4B是由“RaspberryPi基金会”这个注册于英国的慈善组织开发的。是一款微型电脑且其基于ARM。其具有开放性极高的特点,可运行Linux系统,在物联网开发中广泛运用。其具有USBType-C电源接口、64位4核处理器、CSI摄像头接口,板载无线网络,对本次设计中图片的采集以及Python+OpenCV程序处理的运行提供了相当大的助力。Python程序在windows下完成,运行在树莓派的linux系统下REF_Ref7222\r\h[11]。2.2.2STM32F407VET6资源STM32F407VET6芯片富含丰富的内部资源,重点是以下几个方面。内核:超高性能ARMCortex-M4(32位),时钟频率高达168MHZ,并且支持DSP指令以及FPU(浮点运算)。存储器容量:1024KFLASH,192KSRAM。I/O口:100个引脚,82个I/O口,支持JTAG以及SWD两种调试方式。时钟、复位以及电源管理:支持1.8~3.6V电源和IO电压,可用上电复位,掉电复位和可编程的电压监控,时钟含有4~26M的外部高速晶振,16MHz的高速RC振荡器。低功耗:拥有待机、睡眠及停止三种低功耗模式。通信接口:拥有17个通信接口,包含6个串口、3个SPI接口、1个SDIO、3个I2C接口、2个CAN2.0、2个USBOTG。定时器:拥有17个定时器,含有10个通用定时器、2个基本定时器、1个系统定时器、2个看门狗定时器。AD和DA:存在3个12位AD以及2个12位DA。2.2.3树莓派4B资源1.内核:采用ARMCortex-A721.5GHz(四核)。2.数字接口:包含DSI(显示屏)以及CSI(摄像头)。3.网络接口:含有WiFi、蓝牙和以太网接口,可满足各种网络需求。4.外设:拥有高达40pin的GPIO。5.操作系统:支持很多的操作系统。2.3微信小程序在本次设计中采用微信小程序作为移动端让用户和硬件交互。2.3.1微信小程序的结构在小程序中我们知道主要有不同类型的文件总共4种,分别为:(1)以.json作为后缀的一个JSON配置文件,其仅仅是一种数据格式,并不是编程的语言,在小程序中,JSON作为一个静态配置存在。(2)以.wxml作为后缀的是一个WXML的模板文件,是由标签以及属性等构成的(和HTML相似)。(3)以.wxss作为后缀的叫做WXSS样式文件,能够通过它控制上述所说WXML的样式(和CSS相似)。(4)以.js作为后缀的是一个JS脚本的逻辑文件,其功能就是用来和用户做交互的,它处理用户的操作。值得注意的是在小程序中并没有DOM和BOM这样的概念。在微信小程序中,前三者属于渲染层,js文件属于逻辑层。2.3.2微信小程序结构1.宿主环境对比于网页开发,微信小程序只有微信的客户端这一种运行环境,而在小程序开发制作的一个过程中我们又需要接触和面向的是主流的手机OS即Android以及苹果公司独有的IOS,还有就是小程序开发工具。而小程序在这三种环境中的运行机制也是有较大的区别的,如表2-1。表2-1微信小程序三大宿主环境区别宿主环境逻辑层渲染层IOSJavaScriptCoreWKWebviewAndroidV8Chromium定制内核小程序开发工具NWJSChromeWebView(1)Android操作系统简介由Google公司为主导进行了对android的研制开发,其以Linux为根基,具有开源的特点,移动终端(手机、平板等)广泛采用并进行二次开发。其JS(JavaScript)引擎(即专门用于处理js脚本的虚拟机)采用了GoogleV8,其渲染引擎即浏览器内核采用的是Chromium的定制内核。(2)IOS操作系统简介由Appleinc.(苹果公司)主导开发的iOS属于一种类Unix系统。是一种商业系统。IOS的使用界面可以采用多点触控的方式进行一个直接的操作。主要包括按键、轻触开关、滑动等一系列的操作的方式。在界面与系统交互的方式上包括三种,主要是旋转和轻按还有挤压。其JS(JavaScript)引擎采用的是JavaScriptCore,选用WKWebview作为其浏览器内核。(3)小程序开发工具由微信官方主导研发并提供的微信开发工具主要是面向微信小程序的。其包括了上传,预览,调试,开发等基本功能。其拥有活跃的社区、庞大的受众。还有开发文档以及设计指南,对开发者友好,集成了代码编辑、开发调试还有程序预览发布等功能,可帮助我们开发者对微信小程序进行简单和高效地开发。其JS(JavaScript)引擎采纳NWJS,而ChromeWebView是其主要的浏览器内核。运行环境逻辑层和渲染层是微信小程序主要的运行环境,渲染层包含的是WXML模板以及WXSS样式,逻辑层主要运行JS脚本。采纳线程对小程序的逻辑层、渲染层进行管理。采用JsCore这个线程运转JS脚本于逻辑层,使用线程WebView渲染位于渲染层的界面。一般来说,大量WebView线程会同时运转在小程序中,因为有大量的小程序界面,通过Native(指微信客户端)这两个线程的通信会做一个中继,Native转发的还有逻辑层发送的众多网络请求,小程序中的通信模型如图2-4所示:图2-4小程序通信模型2.4OpenCVOpenCV作为一个优秀的计算机视觉库,它包含有跨平台,轻量高效的特点。在多种操作系统如IOS、Linux、Android、Windows都可以完美运行。它由C语言及C++编写。当然其亦提供了许多主流编程语言的接口,如MATLAB、Python、Java等。2.4.1图像灰度化灰度即没有色彩,灰度图就是指不包含色彩信息却只有亮度信息的图片。图像灰度化指的就是把正常拥有色彩的图像转换成灰度图的一个流程。灰度也代表黑白图片中的像素点的大小。其范围为0~255,黑色即为0,而255就代表的是白色。在生活中我们所获取的一般是彩色图像,其是由RGB即RED(红色)、GREEY(绿色)BLUE(蓝色)构成的。在处理图像的时候为了方便运算,我们需要通过图像灰度化操作把三通道的彩色图像转换为单通道的灰度图像REF_Ref7271\r\h[12]。对比图2-5我们可以看出,相较于彩色图,大部分信息依然保留在了灰度图中。彩色图(b)灰度图图2-5彩色图于灰度图2.4.2图像压缩图像压缩即把给定的信息量中所需数据量的处理减少。在本次设计将拍摄的图片进行压缩处理。冗余信息是指含重复和不相关信息可以分为以下几类:1.编码冗余:编码代表的是一种符号系统,可以将事件集合或信息实体表现出来。2.非相关的冗余:图片中人们经常会忽略的的一些没有用处的信息。它是冗余的。2.5本章小结本章对智能宠物小屋的总体架构,以及智能宠物小屋主要实现的功能做了一个具体的介绍。对实现其的主要技术做了具体的说明。第三章智能宠物小屋的硬件设计硬件总体架构在上一章对设计的总体架构进行了简单的概述,在本次设计中硬件的主要部分有主控制器树莓派和STM32,以及其各自的供电模块,还有ov5647传感器对图像进行采集,温湿度传感器采集宠物小屋内的环境数据,通过处理这些环境数据和采集的图像数据,再借助继电器、舵机、加热毯、风扇对环境进行调节,实现喂食以及开启关闭宠物小屋的门。两个主控制器树莓派以及STM32之间使用串口进行通信。如图3-1展示了硬件的总体架构。图3-1硬件总体架构采集数据传感器模块此次设计所使用的传感器有ov5647图像传感器和BME280传感器,分别用于图像的采集和温湿度的检测。ov5647图像传感器ov5647是基于500万像素的,具有高性能,低功耗特点的一类图像传感器,由豪威科技(ominivision)公司设计制作的。它采用了omnibsi技术并且以此给外部提供视频输出其分辨率高达2592x1944。ov5647支持图像处理器和摄像头的几乎所有功能。它可以提供不同分辨率的原始图像通过采用串行摄像机控制总线还有MIPI接口。我们可以借助SCCB接口来控制摄制图像的质量、数据的传输以及相机功能。omnibsi技术在ov5647中的创新使用,为其高性能提供了强有力的保证。而无需物理和光学权衡。Ov5647摄像头模块自带的扁平带状电缆连接至RaspberryPi(树莓派)计算机板上的15引脚MIPI照相机串行接口(CSI)连接器S5。ov5647的总体结构图如图3-2。图3-2ov5647总体结构图BME280传感器BME280传感器是环境传感器,具有多种功能,能够感知环境中的温湿度以及大气压强。支持SPI以及I2C接口,具有功耗低,尺寸小,精度高,且稳定的特点。此次设计中主要采集温湿度信息。接口中的功能引脚包括,VCC(电源正),GND(电源地),SDA/MOSI(数据线),SCL/SCK(时钟线),ADDR/MISO(地址片选)这几种。其外观如图3-3。图3-3BME280传感器继电器模块继电器是电气控制的装置,在输入量变为指定要求时,会导致电气输出电路中的控制量发生阶跃性的变化的一种电气设备。它在控制系统(即输入回路)和受控系统(即输出回路)之间具有交互的关系。它实际上是一种“\t"/item/%E7%BB%A7%E7%94%B5%E5%99%A8/_blank"自动开关”。可用微弱的电流来对大电流进行控制。故在电路中起着自动调节、安全保护、转换电路等作用REF_Ref7311\r\h[13]。在此次设计中主要采用继电器对舵机,还有风扇以及电热毯进行控制。其原理图如图3-4。图3-4继电器原理图本章小结本章主要对硬件设计部分的总体架构进行了介绍,还有对传感器等一些相关外设进行了详细描述。第四章智能宠物小屋软件设计4.1软件总体设计流程此次设计的软件总体流程如图4-1。软件部分主要实现的是对各部分外设硬件的初始化、温湿度的检测、STM32和树莓派连接、树莓派和STM32数据传输处理、摄像头(ov5647图像传感器)拍照、继电器闭合、OpenCV识别程序、微信小程序等软件功能。图4-1软件总体流程图4.2传感器软件的设计在此次设计中,采用了BME280传感器,ov5647传感器,分别用来采集温湿度和图像。4.2.1BME280传感器软件设计BME28信号类型共包含6种:应答脉冲、复位脉冲、写0、读0、写1和读1。在这以上列出的这6种信号中,将应答脉冲信号排除之后,其它的5种信号都是将采集的字节数据都是按照低位在前,且由主机将同步信号进行输出的这种形式发送出去。我们在IAR这个平台上创建bme280.c文件且定义函数BME280_Temp()用来获取温湿度。其主要程序如下shortBME280_Temp()(void){u8bme_temp;u8TH,TL;shorttemp;BME280_Start();BME280_Rst();BME280_Check();BME280_Write_Byte(0xcc);BME280_Write_Byte(0xbe);TH=BME280_Read_Byte();TL=BME280_Read_Byte();if(TH>7){TL=~TL;TH=~TH;bme_temp=0;//表明温度低于0度。}elsebme_temp=1;//表明温度高于0度temp=TH;//高8位获取temp<<=8;temp+=TL;//低8位获取temp=(float)temp*0.625;if(bme_temp)returntemp;//返回值elsereturn-temp;}4.2.2ov5647传感器软件设计本部分直接采纳Python语言进行软件程序的实现。首先采用bcm2835-v4l2进行摄像头驱动程序的安装。进行抓拍的主要代码实现如下:对ov5647图像传感器的调用picamera.PiCamera()ascam:cam.resolution=(320,240)cam.framerate=24将抓拍的图像RGB转换为GBR格式defcam_still(cam):image=np.empty((240*320*3,),dtype=np.uint8)cam.capture(image,'bgr')image=image.reshape((240,320,3))image=cv2.transpose(image)returnimage最后利用opencv对图像进行编码,便于传输defimage_to_base64(image_np):image=cv2.imencode('.jpg',image_np)[1]returnbase64.b64encode(image).decode('utf-8')在树莓派中使用ov5647图像传感器相较于在STM32上使用,减少了了对引脚等GPIO的设置,使用更加方便。4.3树莓派网络以及与STM32连接软件设计在使用树莓派时,拥有图形界面时,网络配置可在右上角的菜单栏里选择wifi,然后输入密码REF_Ref7647\r\h[14]。但是本次设计中并没有使用图形用户界面,所以先采用直接插入网线之后使用putty工具远程连接树莓派。主要通过SSH的方式远程连接REF_Ref7347\r\h[15]。并进行配置文件wpa.conf文件的编写,进行网络的配置如下:country=CNctrl_interface=DIR=/var/run/wpaGROUP=netdevupdate_config=1network={ssid="HelloKitty"psk="123456789"priority=5}network={ssid="Peting"psk="123456789"priority=4}如上所示,能够对大量网络进行配置,并在网络范围内进行网络连接。在STM32于树莓派的连接中,通过USB进行之间的数据互通,其主要编码如下:deflink_to_stm32():ports=list(serial.tools.list_ports.grep('ttyACM'))if(len(ports)==1):returnserial.Serial(port='/dev/%s'%ports[0].name,baudrate=115200)else:returnNone本部分主要是树莓派连接STM32的编程部分。send_data=UsbSend()recv_data=UsbRecv()link=link_to_stm32()if(link):link.flush()link.write(send_data.to_stream())recv_data.from_stream(link.read(size=sizeof(UsbRecv)))link.close()response_object={'temperature':int(recv_data.temperature),'humidity':int(recv_data.humidity),'image':image_to_base64(camera_still(camera))}//定义传输的数据格式response=requests.post(url=api_url,json=response_object,timeout=10)本部分中对两个主控制器的数据传输进行了设置和定义,并且通过post的方式将数据传输给上位机。4.4微信小程序端软件设计微信小程序端主要用来进行数据的展示以及对下位机硬件的控制。微信小程序的总体流程如图4-2。图4-2微信小程序总体流程图在进入小程序后需要选择是宠物猫还是狗的小屋,然后可进行温湿度阈值的调节,之后若设置为自动即所有操作都可自动完成,反正则需要在小程序端手动完成开门,喂食,环境调节的动作。小程序页面加载的主要程序如下:wx.request({method:'get',url:'https://hww.mynatapp.cc/getinfo',success(e){if(e.data.animal=="cat"){_this.setData({image:'../../image/cat.jpg'})}elseif(e.data.animal=="dog"){_this.setData({image:'../../image/dog.jpg'})}_this.setData({data:e.data,currentValue:e.data.auto_humidity})console.log(_this.data.data)}})在此次设计中由于未购买合法域名所以采用NATAPP内网穿透的方式对小程序要访问的域名进行设置。在使用的过程中只需要在服务器端打开命令行,输入./natapp-authtoken=f8e197ce06cf269d对购买的账号进行验证,验证成功之后即可将你本地环境作为一个拥有合法域名的服务器。4.5服务器处理的软件设计由于在树莓派中采用的OpenCV处理识别的精度不高,所以在树莓派中初次识别后,若可以识别为宠物,则进行正常的操作,若识别失败,则将图片数据传输值服务器,然后掉用百度AI接口对上传的图像进行识别,并返回结果给下位机。并且树莓派也将获取的温湿度等数据传输至服务器进行处理。服务器软件执行的流程图如图4-3。图4-3服务器处理程序流程图在对树莓派传输的图片进行二次识别时,首先对其进行解码。byte[]imageByte=decoder.decodeBuffer(base64String);之后生成图片路径以及文件名。
StringpathString=req.getServletContext().getRealPath("/")+"temp.jpg";接下来将接口需要的类AipImageClassify进行初始化
AipImageClassifyclient=newAipImageClassify(APP_ID,API_KEY,SECRET_KEY);
可以选择对网络的连接参数进行设置。
client.setConnectionTimeoutInMillis(2000);
client.setSocketTimeoutInMillis(60000);然后设定并获得所需参数。
HashMap<String,String>options=newHashMap<String,String>();
Stringimage=filename;最后获得接口的返回值res。
JSONObjectres=client.advancedGeneral(image,options);接下来只要对接口的返回值res进行解析即可完成对图像的二次识别。4.6树莓派中OpenCV软件设计在此次设计中首先依据在树莓派中Python+OpenCV的程序进行初步的宠物识别,若成功则直接进行相应操作,若失败,再将图片发送给百度AI接口进行识别,并返回结果。4.6.1级联分类器的训练在开始进行图片的检测之前,首先进行分类器的训练,在本文中采用的是haar级联分类器。训练的基本流程如图4-4。图4-4分类器训练基本流程样本数据的收集首先收集正样本数据以及负样本数据,以狗脸检测为例,则正样本即为狗脸图像,负样本即处狗脸图像的其他图像。一般情况下负样本的数量是多于正样本的数量的。在网络上完成样本的收集之后对正样本进行灰度化处理。之后再对图片的命名进行有序化处理。部分正样本如图4-5。图4-5部分正样本正负样本数据资源文件生成在本文中样本的资源数据文件生成采用Java编程实现。获取的正样本数据资源文件如图4-6。其中前面的路径表示图像相对该数据资源文件的路径,1表示文件数为1,00表示图像左上角坐标。最后两个数字表示图像右下角的坐标。获取的负样本数据资源文件如图4-7。图4-6正样本数据资源文件图4-7负样本数据资源文件vec文件的生成接下来使用工具opencv_createsamples来进行样本文件(vec文件)的生成。在命令行中输入如图4-8命令即可。图4-8vec文件生成训练样本数据最后再使用工具opencv_traincascade进行训练得到分类器文件。在命令行中输入如图4-9的命令即可。图4-9分类器文件生成4.6.2图片检测程序的实现在初步识别中,首先通过以下代码加载OpenCV自带的分类器。xmlPath="cascade.xml"facexmlCascade=cv2.CascadeClassifier(xmlPath)接下来,读取图片并进行灰度化。img=cv2.imread("cat.jpg")gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)之后,运用detectMultiScale函数进行猫脸或狗脸的检测。faces=faceCascade.detectMultiScale(gray,scaleFactor=1.02,minNeighbors=3,minSize=(150,150),flags=cv2.CASCADE_SCALE_IMAGE)调用自定义的函数defisFindFace(faces)returnlen(faces)若最终返回结果为1则检测到了狗脸或猫脸,若返回结果为0则未检测到,因为样本少,为提高检测准确度,之后再将数据编码传输至服务器使用百度识图AI接口再次进行检测。4.7本章小结本章主要对软件设计部分的总体流程进行了介绍,还有对相关传感器程序编写、UI端微信小程序、图像识别的实现进行了详细描述。第五章智能宠物小屋的测试为对此次设计的可行性进行检测,以及对本次设计的合理性进行验证。本章主要对系统UI界面、数据的采集与发送、图像的识别进行测试。5.1实验平台本次实验平台有:STM32f407VET6开发板树莓派4B开发板IAR平台微信开发者工具实验的目的:验证小程序界面是否完善,能否对硬件进行控制。验证传感器数据的采集和发送。验证图像识别是否成功。5.2测试5.2.1微信小程序和图像识别测试首先进入微信开发者工具,对小程序进行打包上传。进入微信公众平台,即可找到体验版二维码。如图5-1,授权的用户即可使用体验版进行测试。图5-1智能宠物小屋小程序体验版二维码在进入小程序之后,首先可以选择将该小屋作为宠物狗还是宠物猫的小屋。如图5-2。图5-2选择宠物的界面接下来,我们选择作为宠物狗的智能小屋,选择自动之后,我们可以看到当模拟的狗宠物靠近时会自动打开门。说明图像识别成功。如图5-3。当然了,选择宠物猫也是一样的结果。点击喂食时金属舵机会进行翻滚,模拟了倒出食物的操作。点击风扇和加热时也会打开风扇以及加热毯。(a)选择作为宠物狗的智能小屋(b)当宠物狗靠近时门会自动打开图5-3小程序和图像识别5.2.2传感器数据的传输与发送测试树莓派Python程序运行后会出现如图5-4的界面,表明数据传输正常。图5-4树莓派运行正常传输数据而在小程序端也能看到采集的数据信息。对比结果后一切数据正常。5.3本章小结本章主要对系统UI界面(微信小程序)、数据的采集与发送、图像的识别进行了测试,从测试结果可以看出,此次设计主要目标基本完成,但是还是存在,如无法同时对多个小屋进行控制,还有树莓派启动Python程序时需要手动启动,且在运行过程中出现了数据传输中断,程序中止的问题。第六章总结与展望6.1总结随着当代社会生活节奏越来越快,大量的年轻人或多或少都对社交有了一定抗拒性,为了解决寂寞感还有孤独感,大量的人选择进行宠物的饲养,而宠物饲养者也越来越趋于年轻化,他们对科技产品有着更大的兴趣,而与宠物相结合的产品也能更大程度的吸引他们。基于此,本文设计了一种基于物联网和OpenCV的智能宠物小屋。并通过编程实现了其功能。主要成果有以下几点:对物联网技术中广泛应用的STM32进行再次学习,以及对树莓派的学习,将他们作为控制核心,结合BME280和ov5647传感器,采集和处理本次设计所需要的数据。经过对微信小程序的学习和总结,对本次设计的移动UI端进行了构思和实现,并通过微信小程序能方便快捷的进行硬件的控制。满足人们对产品便捷和简约的追求。经过对OpenCV的初步学习,进行了级联分类器的实际训练,对本次图像检测的部分进行了编码实现,但是由于其精确度不足的原因,再加上了百度AI接口对图片进行二次识别。提高了识别的准确度。使得本次设计产品有了更良好的使用体验。使用Java程序作为服务器端处理的程序,将树莓派传输的传感器数据发送给小程序,并将树莓派传输的图进行解码,与百度AI接口对接实现二次图片识别。并将结果返回给硬件。6.2工作展望在本次设计中以然存在着众多不足,和改进的地方。主要有以下几点:小程序无法同时对多个智能宠物小屋进行控制。树莓派中程序的运行需要手动启动,每次开机都要重新启动一次。无线数据传输的不稳定,有时候会发生传输中断。因为图像检测训练的分类器只能检测单个物体,所以切换宠物小屋的宠物居住类型时,即选择作为宠物狗还是宠物猫的小屋时,需要在树莓派中启动不同的python程序。通过本次设计也使我对所学的知识进行了再次的回顾和实践,也学习到了没接触过的新的技术,对本次设计中存在的不足,会认真思考并在后续中一一解决。参考文献杨乐乐.家猫相关知识三则[J].当代畜禽养殖业,2006(06):57-58.姚池.宠物狗的生活习性与饲养要点[J].养殖与饲料,2016(12):28-31.NamKyungLee.WoObasedPet-CareServiceinSmartHome[J].IEEEICTC.2014:1003-1004.孙博,于洋.远程实时智能喂养宠物系统设计与实现[J].电子技术与软件工程,2016(09):75-76.邵彦达,沈睿,眭耀宇.基于AT89C51单片机的智能宠物家居[J].科技创新导报,2017,14(14):1-2.刘惠惠.基于共生理论的智能宠物喂食器设计研究[D].西安工程大学,2018.王丹雪.宠物短期寄养在线服务平台创业计划书[D].厦门大学,2014.杨莹.宠物托管数字化服务平台设计[D].中南大学,2014.王洋,郑佳春.基于OpenCV人脸检测技术的研究及实现[J].物联网技术,2018,8(03):81-83.肖迪.基于AI视角的媒介智能化发展研究[D].武汉大学,2018.汪涛.基于图像处理的远程抄表系统设计与实现[D].天津理工大学,2019.杨登科.基于OpenCV的智能监控预警系统的研究与设计[D].河北大学,2019.陈志胜.智能化中压开关设备的应用及发展前景[J].中国高新技术企业,2014(05):31-32.许海,徐瑾,徐帅.基于linux系统的树莓派一系列开发[J].电脑知识与技术,2018,14(08):236-238.杨婧.SSH协议的研究与应用[J].计算机与数字工程,2011,39(08):112-114.致谢时间过的飞快,转眼间,又来到了毕业的时节。从本次毕业设计开始到如今,任小康老师对从论文选题到后续工作的开展都提出了建设性的意见和建议,对本次设计提供了巨大的帮助,当然也要感谢同窗好友与我对技术细节的讨论。让我能够快速走出疑惑。最后向所有给我提供帮助的老师和同学致以最真诚的敬意。
HYPERLINK电脑快捷知识大全编辑本段一、常见用法F1显示当前程序或者windows的帮助内容。F2当你选中一个文件的话,这意味着“重命名”F3当你在桌面上的时候是打开“查找:所有文件”对话框F10或ALT激活当前程序的菜单栏windows键或CTRL+ESC打开开始菜单CTRL+ALT+DELETE在win9x中打开关闭程序对话框DELETE删除被选择的选择项目,如果是文件,将被放入回收站SHIFT+DELETE删除被选择的选择项目,如果是文件,将被直接删除而不是放入回收站CTRL+N新建一个新的文件CTRL+O打开“打开文件”对话框CTRL+P打开“打印”对话框CTRL+S保存当前操作的文件CTRL+X剪切被选择的项目到剪贴板CTRL+INSERT或CTRL+C复制被选择的项目到剪贴板SHIFT+INSERT或CTRL+V粘贴剪贴板中的内容到当前位置ALT+BACKSPACE或CTRL+Z撤销上一步的操作ALT+SHIFT+BACKSPACE重做上一步被撤销的操作Windows键+L锁屏键Windows键+M最小化所有被打开的窗口。Windows键+SHIFT+M重新将恢复上一项操作前窗口的大小和位置Windows键+E打开资源管理器Windows键+F打开“查找:所有文件”对话框Windows键+R打开“运行”对话框Windows键+BREAK打开“系统属性”对话框Windows键+CTRL+F打开“查找:计算机”对话框SHIFT+F10或鼠标右击打开当前活动项目的快捷菜单SHIFT在放入CD的时候按下不放,可以跳过自动播放CD。在打开word的时候按下不放,可以跳过自启动的宏ALT+F4关闭当前应用程序ALT+SPACEBAR打开程序最左上角的菜单ALT+TAB切换当前程序ALT+ESC切换当前程序ALT+ENTER将windows下运行的MSDOS窗口在窗口和全屏幕状态间切换PRINTSCREEN将当前屏幕以图象方式拷贝到剪贴板ALT+PRINTSCREEN将当前活动程序窗口以图象方式拷贝到剪贴板CTRL+F4关闭当前应用程序中的当前文本(如word中)CTRL+F6切换到当前应用程序中的下一个文本(加shift可以跳到前一个窗口)在IE中:ALT+RIGHTARROW显示前一页(前进键)ALT+LEFTARROW显示后一页(后退键)CTRL+TAB在页面上的各框架中切换(加shift反向)F5刷新CTRL+F5强行刷新目的快捷键激活程序中的菜单栏F10执行菜单上相应的命令ALT+菜单上带下划线的字母关闭多文档界面程序中的当前窗口CTRL+F4关闭当前窗口或退出程序ALT+F4复制CTRL+C剪切CTRL+X删除DELETE显示所选对话框项目的帮助F1显示当前窗口的系统菜单ALT+空格键显示所选项目的快捷菜单SHIFT+F10显示“开始”菜单CTRL+ESC显示多文档界面程序的系统菜单ALT+连字号(-)粘贴CTRL+V切换到上次使用的窗口或者按住ALT然后重复按TAB,切换到另一个窗口ALT+TAB撤消CTRL+Z编辑本段二、使用“Windows资源管理器”的快捷键目的快捷键如果当前选择展开了,要折叠或者选择父文件夹左箭头折叠所选的文件夹NUMLOCK+负号(-)如果当前选择折叠了,要展开或者选择第一个子文件夹右箭头展开当前选择下的所有文件夹NUMLOCK+*展开所选的文件夹NUMLOCK+加号(+)在左右窗格间切换F6编辑本段三、使用WINDOWS键可以使用Microsoft自然键盘或含有Windows徽标键的其他任何兼容键盘的以下快捷键。目的快捷键在任务栏上的按钮间循环WINDOWS+TAB显示“查找:所有文件”WINDOWS+F显示“查找:计算机”CTRL+WINDOWS+F显示“帮助”WINDOWS+F1显示“运行”命令WINDOWS+R显示“开始”菜单WINDOWS显示“系统属性”对话框WINDOWS+BREAK显示“Windows资源管理器”WINDOWS+E最小化或还原所有窗口WINDOWS+D撤消最小化所有窗口SHIFT+WINDOWS+M编辑本段四、“我的电脑”和“资源管理器”的快捷键目的快捷键关闭所选文件夹及其所有父文件夹按住SHIFT键再单击“关闭按钮(仅适用于“我的电脑”)向后移动到上一个视图ALT+左箭头向前移动到上一个视图ALT+右箭头查看上一级文件夹BACKSPACE编辑本段五、使用对话框中的快捷键目的快捷键取消当前任务ESC如果当前控件是个按钮,要单击该按钮或者如果当前控件是个复选框,要选择或清除该复选框或者如果当前控件是个选项按钮,要单击该选项空格键单击相应的命令ALT+带下划线的字母单击所选按钮ENTER在选项上向后移动SHIFT+TAB在选项卡上向后移动CTRL+SHIFT+TAB在选项上向前移动TAB在选项卡上向前移动CTRL+TAB如果在“另存为”或“打开”对话框中选择了某文件夹,要打开上一级文件夹BACKSPACE在“另存为”或“打开”对话框中打开“保存到”或“查阅”F4刷新“另存为”或“打开”对话框F5编辑本段六、桌面、我的电脑和“资源管理器”快捷键选择项目时,可以使用以下快捷键。目的快捷键插入光盘时不用“自动播放”功能按住SHIFT插入CD-ROM复制文件按住CTRL拖动文件创建快捷方式按住CTRL+SHIFT拖动文件立即删除某项目而不将其放入SHIFT+DELETE“回收站”显示“查找:所有文件”F3显示项目的快捷菜单APPLICATION键刷新窗口的内容F5重命名项目F2选择所有项目CTRL+A查看项目的属性ALT+ENTER或ALT+双击可将APPLICATION键用于Microsoft自然键盘或含有APPLICATION键的其他兼容键编辑本段七、Microsoft放大程序的快捷键这里运用Windows徽标键和其他键的组合。快捷键目的Windows徽标+PRINTSCREEN将屏幕复制到剪贴板(包括鼠标光标)Windows徽标+SCROLLLOCK将屏幕复制到剪贴板(不包括鼠标光标)Windows徽标+PAGEUP切换反色。Windows徽标+PAGEDOWN切换跟随鼠标光标Windows徽标+向上箭头增加放大率Windows徽标+向下箭头减小放大率编辑本段八、使用辅助选项快捷键目的快捷键切换筛选键开关右SHIFT八秒切换高对比度开关左ALT+左SHIFT+PRINTSCREEN切换鼠标键开关左ALT+左SHIFT+NUMLOCK切换粘滞键开关SHIFT键五次切换切换键开关NUMLOCK五秒QQ快捷键,玩QQ更方便Alt+S快速回复Alt+C关闭当前窗口Alt+H打开聊天记录Alt+T更改消息模式Ait+J打开聊天纪录Ctrl+A全选当前对话框里的内容Ctrl+FQQ里直接显示字体设置工具条Ctrl+J输入框里回车(跟回车一个效果)Ctrl+M输入框里回车(跟回车一个效果)Ctrl+L对输入框里当前行的文字左对齐Ctrl+R对输入框里当前行的文字右对齐Ctrl+E对输入框里当前行的文字居中Ctrl+V在qq对话框里实行粘贴Ctrl+Z清空/恢复输入框里的文字Ctrl+回车快速回复这个可能是聊QQ时最常用到的了Ctrl+Alt+Z快速提取消息Ctrl+Alt+A捕捉屏幕最常用的快捷键F5刷新DELETE删除TAB改变焦点CTRL+C复制CTRL+X剪切CTRL+V粘贴CTRL+A全选CTRL+Z撤销CTRL+S保存ALT+F4关闭CTRL+Y恢复ALT+TAB切换CTRL+F5强制刷新CTRL+W关闭CTRL+F查找SHIFT+DELETE永久删除CTRL+ALT+DEL任务管理SHIFT+TAB-反向切换CTRL+空格--中英文输入切换CTRL+Shift输入法切换CTRL+ESC--开始菜单CTRL+ALT+ZQQ快速提取消息CTRL+ALT+AQQ截图工具CTRL+ENTERQQ发消息Alt+1保存当前表单Alt+2保存为通用表单Alt+A展开收藏夹列表资源管理器END显示当前窗口的底端HOME显示当前窗口的顶端NUMLOCK+数字键盘的减号(-)折叠所选的文件夹NUMLOCK+数字键盘的加号(+)显示所选文件夹的内容NUMLOCK+数字键盘的星号(*)显示所选文件夹的所有子文件夹向左键当前所选项处于展开状态时折叠该项,或选定其父文件夹向右键当前所选项处于折叠状态时展开该项,或选定第一个子文件夹自然键盘【窗口】显示或隐藏“开始”菜单【窗口】+F1帮助【窗口】+D显示桌面【窗口】+R打开“运行”【窗口】+E打开“我的电脑”【窗口】+F搜索文件或文件夹【窗口】+U打开“工具管理器”【窗口】+BREAK显示“系统属性”【窗口】+TAB在打开的项目之间切换辅助功能按右边的SHIFT键八秒钟切换筛选键的开和关按SHIFT五次切换粘滞键的开和关按NUMLOCK五秒钟切换切换键的开和关左边的ALT+左边的SHIFT+NUMLOCK切换鼠标键的开和关左边的ALT+左边的SHIFT+PRINTSCREEN切换高对比度的开和关运行按“开始”-“运行”,或按WIN键+R,在『运行』窗口中输入:(按英文字符顺序排列)%temp%打开临时文件夹.C:\DocumentsandSettings\用户名所在文件夹..C:\DocumentsandSettings...我的电脑\C盘appwize.cpl添加、删除程序access.cpl辅助功能选项Accwiz辅助功能向导cmdCMD命令提示
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 单位自行组织采购制度
- 乌兰察布医学高等专科学校《古希腊罗马神话》2025-2026学年期末试卷
- 山西农业大学《安全系统工程》2025-2026学年期末试卷
- 四平现代职业学院《工程计算方法》2025-2026学年期末试卷
- 太原科技大学《工程招投标与合同管理》2025-2026学年期末试卷
- 山西警察学院《国际金融学》2025-2026学年期末试卷
- 山西同文职业技术学院《环境与自然资源经济学》2025-2026学年期末试卷
- 忻州师范学院《材料成形工艺基础》2025-2026学年期末试卷
- 绥化学院《口腔工艺技术》2025-2026学年期末试卷
- 上海杉达学院《公告关系学》2025-2026学年期末试卷
- 超轻粘土备课
- 废旧机油再生利用课件
- 计算与人工智能概论智慧树知到课后章节答案2023年下湖南大学
- 2023年4月全国自学考试00341公文写作与处理试题及参考答案
- 《马克思主义基本原理概论》社会实践报告
- 玻璃钢化粪池施工方案(化粪池)
- 2023年黑龙江省学位英语历年考试真题
- 安全生产考试中心工作制度
- 公司危险化学品安全管理办法
- GB/T 5796.3-2022梯形螺纹第3部分:基本尺寸
- GB/T 26379-2011纺织品木浆复合水刺非织造布
评论
0/150
提交评论