PPT :
视频:
1.项目背景介绍
伴随着宠物数量的增多,流浪动物的数量也在急剧的增长。街道上随处都可以看到流浪动物的身影,甚至有些城市小区遍布满地,单单中国每年就有近4000万的流浪猫狗,流浪动物产生的原因大多都是人们的遗弃。家里生下的小猫小狗不想养了,生病了就丢弃了,也有很多是要搬家、移民、生小孩子等,遗弃的原因各种各样,而导致的结果就是猫狗流浪街头,过着风餐露宿的生活,还可能被驱逐,被殴打,甚至被投毒。
近几年来,随着国民精神文化水平的提高,对流浪猫狗的保护逐渐受到了人们的关注,国内自发涌现出了不少私人的、公益性质的流浪动物救助站。一二线城市、省会城市都出现了救助流浪动物的组织,这些组织建立了不同形式的救助站对我们身边的流浪猫狗进行救助。由于个人在大学期间阴差阳错养了一只猫咪,同时也慢慢了解并接触到流浪猫救助站及其救助过程。
常见的流浪猫救助站,按空间的封闭程序进行划分,大致可以为三个类型:全封闭式求助站、半封闭式救助站、全开放式救助站。全封闭式救助站是指猫咪完全与外界隔离,以单只或集群的形式,居住于笼舍或家庭救助站中,所以也可以把全封闭式救助站细分为家庭式救助站和笼舍式救助站,在国内的流浪猫救助站中,全封闭式救助占到6成以上,半封闭式的不到1成,全开放式的以TNR方式救助为主占有3成,这里我主要和大家讨论全封闭式救助站。
家庭式救助站一般受助猫咪在10只以下,共同与人生活在同一个家庭空间中,享有较大的自由,而笼舍式救助站一般受助猫咪在10只以上,主要居住在位于整体封闭空间中的笼舍之中或聚居在整体封闭的生活区中,猫咪和人的居住空间相隔离。全封闭式救助站组织者通过线上网络、线下展会宣传等形式把猫咪的信息发出去,等待爱心领养人士把猫咪领养带走。但是由于国内大多数的流浪猫救助站都由个人志愿者组成,资金基本来源于捐赠及义卖等方式,资金一直处于紧缺状态,同时由于国内对流浪猫的重视不足,救助站本身的曝光宣传也较少,大多数流浪猫救助站都少为人知,这使得猫咪被领养的可能性较大的降低,收养回救助站的猫咪数量远远比领养的猫咪数量要多,救助站时常处于两难的境地。同时流浪猫日益增多,有限空间有限人手的救助站更为混乱,猫咪的日常登记管理,环境卫生的清理,猫咪的饮食等都成为救助站的一道道难题。
因此,我萌生了构建一个基于物联网管理和直播互动的流浪猫救助平台的想法。首先是需要解决猫咪的动物福利问题,动物福利由五个基本要素组成:生理福利,即无饥渴之忧虑;环境福利,也就是要让动物有适当的居所;卫生福利,主要是减少动物的伤病;行为福利,保证动物表达天性的自由;心理福利,即减少动物恐惧和焦虑的心情。这里,通过设计联网饮食器、自动猫砂盘等设备可以较好地解决生理、环境及卫生方面的福利问题,同时,通过联网设备对猫咪的健康数据(如饮食量、排泄量)进行采集分析,可以对猫咪进行差异化照顾处理;通过设计联网逗猫棒、逗猫盘等猫咪玩具,可以让猫咪有更多的娱乐玩耍项目,促进猫咪的社交减少其心理压力保证了猫咪的行为和心理方面的福利。另外,当前直播平台已经成为成熟主流的应用,流浪猫直播可以增大救助站的曝光度,直播打赏捐款等也拓宽了资金的来源渠道,同时,增强猫咪与人们的互动,可以使领养人更快的了解猫咪的真实情况,较大的提高了领养成功率,让流浪猫能更好地找到属于它的家。
2.项目技术框架
基于项目背景分析,在设计项目技术框架时,如下图我把项目划分成了三个部分:
- 线下猫屋:由摄像头和猫咪用品两部分组成,摄像头通过RTMP协议把猫屋(全封闭式流浪猫救助站)的实时情况推流到腾讯云直播平台;猫咪用品包括了猫屋中各式各样的联网设备,考虑到不同的救助站有不同的设备需救,为了减少设备之间的耦合性,所有的猫咪用品都是作为一个单独的物联网设备直接接入到腾讯云物联网平台,再由救助站使用时,自由组合形成不同的猫屋。猫咪用品根据功能,我把它们分成三个类别:健康监控设备,完成猫咪日常的生活需求,如自动喂食、清理排泄物等,同时采集猫屋数据定期上传到云平台;逗猫玩具,主要是完成与猫咪的远程互动,人们可以使用不同的逗猫玩具在线陪玩猫咪;其它设备,完成猫屋的一些辅助性需求,如猫屋里的灯光控制、温湿度监控等。
- 腾讯云平台:腾讯云平台作为项目中的桥梁,连接起线下设备和线上应用,它由云直播平台和物联网开发平台两部分组成。云直播平台管理着不同的直播流推流地址和播放地地址,物联网开发平台管理了不同类型的猫咪用品,不同的猫咪用品使用相同的MQTT协议接入到物联网开发平台,使用不同的数据模板与平台进行数据传输。最后通过API调用接口的形式打通微信小程序与设备之间的交互。
- 小程序:作为人们与设备交互的主要界面,需要满足流浪猫救助站管理者的管理需求,也要完成在线观众通过直播与猫咪互动的需要。管理功能主要分为三个类别:猫屋管理,当有新的猫咪或者设备加入到猫屋时,可以通过猫屋管理来进行添加,同样,当有猫咪被领养或其它原因离开猫屋,可以通过猫屋进行删除修改,另外,猫屋管理还用于生成直播流的推流地址和播放地址,产生供给在线观众观看的猫屋直播流;猫咪管理,当有新的猫咪来到救助站时,可以使此来添加猫咪信息,以便于加入到猫屋当中;设备管理,用于管理救助站中所有的设备,当拿到新的猫咪用品时,可以通过设备管理来给设备配网,同时完成配网后,可以直接进入控制管理界面控制设备运行,所以设备管理可以单独出来作为物联网设备应用的入口,管理公开或不公开的设备,也可以把联网的设备加入到猫屋进行统一公开管理。直播交互功能主要完成与观众互动功能,观众可以通过打开不同的猫屋进入其直播间观看猫咪的情况,在直播间可以获取猫屋已有设备的使用权,进行远程逗猫等操作,也可以通过猫咪详情页看到猫咪的介绍情况,最后,如果观众相中了猫屋当中的猫咪,想要把它带回家,可以直接与救助站联系,进行下一步的领养流程。
由于今年疫情的影响,流浪猫的问题更加突出,而我个人也有了更多的时间静下心来构思和完成项目,很感谢腾讯举办方为我们提供腾讯云物联网平台和很好用的TOS物联网操作系统以及IoT EVB_MX 开发板,使得我可以快速地完成项目功能的调试,目前已经完成以下三种猫咪设备的基本开发,开发过程都是先通过IoT EVB_MX 开发板进行联网及功能调试再进行下一步硬件设计,同时也完成了微信小程序的全部基本功能开发。
3. 项目硬件部分
考虑到时间、篇幅等因素,这里我以其中完成度较高的一个猫咪玩具逗猫盘做为样品,给大家深入的解剖里面用到的硬件设计。下图为逗盘所用的全部零件,包括外部框架部分、内部活动部分及电路部分。
3.1 外部框架部分
外部框架部分使用实木材料做为半圆的外边框,使用磨砂亚克力材料做顶面、底面、侧面三个面板及一些固定件,使用autoCAD设计再用激光切割机切割出来相应的部分,设计图如下:
3.2 内部活动部分
内部活动部分使用到两个舵机、活动棒、L型托盘及一些固定件,使用solidworks设计再用3D打印机打印出来,设计图如下:
3.3 电路部分
电路部分主要分为mcu最小系统、锂电池电源管理、外围硬件驱动三大部分,外围硬件又包括wifi模组、灯带及声音驱动、触摸输入、舵机接口及flash存储五个部分组成。本着便宜够用的原则,mcu用的是stm32f103c8t6、锂电源管理用的是TP5410充电升压电路。使用Altium Designer设计,嘉立创5块钱打板,个人手工焊接完成。整体原理图及PCB设计图如下:
3.4 硬件程序架构
在设计项目的软件架构时,我是从整个猫咪之家项目自下而上去设计的,底层的基本硬件驱动是通用,不同的猫咪用品或猫屋设备在通用底层的基础之上去做不同的适配处理。 整体软件架构可以分为三个部分:底层驱动、中间件及应用程序。底层驱动包括了使用ST的CubeMX生成的HAL库及配置文件、wifi模组驱动及其他外设驱动; 中间层包括了腾讯Tencent TinyOS物联网操作系统、AT组件、腾讯云物联网数据模板(MQTT协议、JSON封包解包、事件回调等); 应用程序中根据不同猫咪用品或猫屋设备的功能需求在腾讯物联网平台上生成设备数据模板,并在程序中根据下发的数据执行不同的功能,或上报某些应用数据。程序流程图如下:
4. 小程序设计
手机的小程序主要分成两大板块:直播交互功能和管理功能
4.1 直播交互功能
在首页上以瀑布流方式显示当前直播中的猫屋数据流,猫屋数据流由猫屋救助站或有猫咪的个人进行上传发布,观众拉取云端数据在线观看。进入到猫屋直播间后,观众可以观看猫屋当前的直播视频外,还可以察看到猫咪的详细介绍、当前猫咪的饮食状态以及与猫咪进行互动陪伴,甚至,如果观众已经准备好了带此猫咪回家,还可以与此猫咪的救助站或个人联系,进行下一步的领养工作。
4.2 管理功能
管理功能又分成三个部分:猫咪管理、设备管理和猫屋管理。
- 猫咪管理:当流浪猫救助站把猫咪带回来,进行了必备的处理后,即可以通过猫咪管理给猫咪进行登记,如上传猫咪图片、给它起个名字及介绍猫咪的一些情况,让想要领养猫咪的观众可以快速了解到猫咪的情况;
- 设备管理:可以通过设备管理对救助站中拥有的可玩设备进行管理,如新增加设备、给设备进行配网、起昵称等,当新增设备完成,可以直接点击设备进入控制页面进行控制;
- 猫屋管理:当猫咪已经准备好和观众们见面时,就可以在猫屋管理里面新增一个猫屋给猫咪,也可以把猫咪添加到已经有猫咪的猫屋。每次修改完猫屋的信息,就会更新猫屋数据流的数据,观众可以同步看到新增的猫屋和猫咪,相应的,可以选择把拥有的设备进入到猫屋里面,这样观众就可以在猫屋直播间里获得设备的控制权,并与猫咪进行互动,如果加入的设备为健康监控类的设备,则会把监控到的数据信息显示在直播间上,观众可以直观地看到猫屋或猫咪的实时数据情况(如饮食量、排泄量数据)。
3.结束语
在最后,我呼吁大家对流浪动物们能多些关爱少些伤害,同时,如果有对这个项目有兴趣的或喜欢猫咪的朋友,可以加我微信和我交流,目前只有我一个人在做这个事,能做的事情真的很有限,希望有更多的朋友能够参与进来,一起完善项目功能,并把它真正的应用到全国流浪动物救助站中,帮助到更多的流浪动物更快更好地找到属于它的家。