请选择 进入手机版 | 继续访问电脑版
查看: 5151|回复: 1

【大赛作品】智能的猫咪监视与警告设备-第一部分

[复制链接]

4

主题

4

帖子

57

积分

注册会员

Rank: 2

积分
57
发表于 2018-10-18 06:10:46 | 显示全部楼层 |阅读模式
本帖最后由 xukejing 于 2018-10-18 06:19 编辑

大家好,我叫徐珂靖,住在冰城,是一个骨灰级工科男,最近得到了一块智能语音开发板(庆科VBS7100),又申请到了一台云服务器(阿里云服务器ECS),于是做了一套猫咪监控系统,来参加万物有声2018机器人创新创业大赛
我确实是来正经参加比赛的,你看我都老老实实地把整套项目都完成了。
但我的目的不是来抢第一名的,而是来交朋友的,只想借此机会跟大伙儿聊聊有趣的技术知识。
我知道还有很多小伙伴对这次比赛感觉无从下手。别怕!来自Linux老司机的关怀这就来了!我做了个完整的物联网系统的DEMO,给大家做教材。项目里相关的代码都能在我的github地址里找到。https://github.com/xukejing/MicoAli
小伙伴们快拿出小本本,赶紧记笔记,我要开始上课了。希望大家都能在比赛里有所收获。
下图是方案的硬件设备。包含了庆科智能语音开发板、Arduino Nano、友善之臂Nano PC T3 Plus和USB摄像头。
下图是猫咪监控的网站界面,该站点建在阿里云ECS服务器上。数据库是高性能的MySQL数据库。这台服务器的有效期至2018年11月11日。
1.        设计背景
本人是个猫奴,有时候猫咪会趁我不在家时候对盆栽下毒手。我已经用深度神经网络算法做了一个实时识别猫咪的智能摄像头。如果猫跑到了这个摄像头的视场里并被识别到,终端命令窗口上就会弹出警告,并且猫咪的照片会被按时间顺序保存。这个小装置的制作发表在云汉社区:http://www.ickey.cc/article/detail/259.html
上面这个方案实现了最基本的猫咪识别和反馈。下面我们又给它增加一些功能,让它更符合本次比赛的主题:
1 增加一台云计算服务器。使用MySQL数据库存储监控数据。使用Apache和PHP建网站,把监控数据可视化。
2 增加语音警告(或驱赶)功能,比如“发现猫咪”,或“给我滚”。
3 增加一台家庭物联网网关服务器,本地局域网的UDP协议数据转发云端的MySQL数据库。服务器硬件是友善之臂NanoPC T3 Plus,8核处理器的ARM小电脑。
4 方案优化。智能摄像头的程序和家庭物联网网关的程序,如果使用树莓派的硬件方案,建议使用两台树莓派。一台跑智能摄像头,另一台跑物联网网关,UDP的通信地址为192.168.1.x网段的局域网地址。如果用NanoPC T3 Plus硬件方案,因为硬件性能高,两个程序都可以放在同一台电脑上跑,UDP数据通过127.0.0.1地址发给本机的物联网网关程序。
5 猫咪识别程序的改进。增加猫咪相对于摄像头的球坐标系角度位置计算。并且,当有一个或多个猫咪同时被锁定时,算出识别面积最大的那只猫。把识别结果做个网络接口,用UDP协议发到家庭物联网服务器,转发到云服务器,最后在网站上显示。
2.        云计算服务器

阿里的云ECS是一种弹性可伸缩的计算服务。玩法其实跟正常的服务器差不多的,但是更稳定、更安全。于是我决定申请一台免费的阿里云服务器来完成这次的比赛。
我成功申请到了一台,有效期至2018年11月11日
第一步,安装MySQL数据库服务,并建立家庭物联网的数据表。阿里云的计算服务器使用的是CentOS系统,可以用yum命令安装软件(阿里云的linux镜像站的速度很快)。我们要建的数据表包含5个参数:监控序号(ID)、是否识别到猫咪(iscat)、猫咪在摄像头局部坐标系下的经度坐标(data1),猫咪在摄像头局部坐标系下的纬度坐标(data2),数据采集时间。
第二步,安装Apache和PHP。然后写个网站显示监控数据。在浏览器里输入我的云服务器地址,可以看打如下界面。刚开始只是一张只有台头的空表。检测到猫咪了以后,表格会增长
网站PHP代码我开源给大家了:
3.        语音功能

我们使用庆科的智能语音开发板来输出语音警告。板子是通过串口的AT+TTS命令来输入转语音的文字。这里,为了让项目更容易在不同的平台之间移植,我增加了一块Arduino开发板。智能摄像机装置检测到猫咪以后,通过USB转串口给Arduino发指令;然后Arduino再输出编程好的指令给庆科语音开发板。现在的程序是这样的,摄像头的程序只要给Arduino的USB转串口发过去任意一个字符,就能让喇叭发出“发现猫咪”的报警声。我试过了,效果很好,这个声音既能提醒主人,又能吓退猫咪。
庆科开发板的固件SDK并不开放。但是我的Arduino程序可以开源给大家:
4.        物联网网关服务器

阿里云服务器使用的是MySQL数据库服务,家庭物联网的UDP数据需要做一下转换才能写入数据库。我们用一台友善之臂NanoPC T3 Plus作为物联网网关硬件。
网关服务监听本地6000端口,接收猫咪在摄像头局部坐标系下的经度坐标和纬度坐标(单位是度),然后精确到小数点后两位发送给云端的MySQL数据库。其中,数据格式上,又补上了3个信息,分别是数据ID编号、是否有猫、数据采集时间。
我的网关服务程序的代码开源给大家了:





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

3

主题

11

帖子

104

积分

注册会员

Rank: 2

积分
104
发表于 2018-10-18 13:34:27 | 显示全部楼层
哇,这设备厉害了,可惜我还没有猫
阳光下像个孩子,风雨里像个大人。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表