由人盯着监视屏幕,人总有疲劳限度的。研究表明,监控操作人员盯着电视墙屏幕超过10分钟后将漏掉90%的视频信息。由于人工筛选数据的低效率和低可靠性,视频监控系统不能局限于被动地提供视频画面,要求集成智能算法,能够自动识别不同的物体,发现监控画面中的异常情况,实现不再要人去盯、用计算机代替人进行监控,即实现“自动监控”或“智能监控”。智能视频监控是基于机器视觉对视频信号进行处理、分析和理解,在不需要人工干预的情况下,通过对序列图像自动分析对监控场景中的变化进行定位、识别和跟踪,并在此基础上分析和判断目标的行为,能在异常情况发生时及时发出警报或提供有用信息,从而有效地协助安全监管人员处理危机,并最大限度地降低误报和漏报现象,成为应对突发事件的有力辅助工具。
MagicMirror² is an open source modular smart mirror platform. With a growing list of installable modules, the MagicMirror² allows you to convert your hallway or bathroom mirror into your personal assistant
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs
git clone https://github.com/MichMich/MagicMirror
cd MagicMirror/
npm install
cp config/config.js.sample config/config.js
npm run start
npm run server
.npm run config:check
in /home/pi/MagicMirror
Model 官方模块包括: Alert, Calendar, Clock, Current Weather, Hello world, News Feed, Update Notification, Weather Module, Weather Forecast
FileStructure:
/modulename/filename.ext
.硬件清单:https://shop418091054.taobao.com/
自美驱动板:
基于树莓派的智能魔镜:音频、人体感应、屏幕开关、镜前灯控件和控温风扇控件等模块而设计,采用WM8960低功耗立体声编解码器,通过I2C接口控制,I2S接口传输音频。板载两个3P标准可录立体有源硅麦接口,板载一个4P可接双通道喇叭。
#布置环境 一键安装全部环境
sudo curl -sSL http://a.16302.com/init | sh
#系统安装
sudo curl -sSL http://a.16302.com/install | sudo python3
触发词 | 功能 | 对应插件 | 备注 |
---|---|---|---|
“用户绑定”,“绑定用户”,“绑定设备”,“设备绑定”,“我是谁” | 通过微信绑定机器 | user | |
“IP地址”, “本机IP” | 播报ip地址 | SayIp | 基本参考格式 |
[“播放本地歌曲”, “暂停歌曲”, “暂停播放”, “继续播放”, “歌曲继续”,"\b播放\S{0,4}\d","\b切换\S{0,4}\d", | 歌曲播放 | Music | 使用mplay开源软件 |
“打开灯”, “关闭灯” | 开关操作 | Light | 设置一个引脚input/output |
“打开屏幕”, “打开显示”, “关闭屏幕”, “关闭显示”,“天气地址”,“修改位置”,“声音\S{2,}”, "音量\S{2,}"修改位置为铜陵市 | 设备操作 | Device | 调节音量和打开或关闭屏幕,修改天气地址 |
sudo python3 /keyicx/update.py
# 若失败手动恢复升级
sudo curl -sSL http://a.16302.com/update | sudo python3
开发者模式
(推荐使用)
sudo curl -sSL http://a.16302.com/initdev | sh
自美智能系统桌面任务栏
sudo mv /home/pi/.config/lxpanel/LXDE-pi/panels/panel /home/pi/.config/lxpanel/LXDE-pi/
sudo reboot
启动正常模式
/keyicx/python/run.py
启动调试模式
/keyicx/python/run.py debug
停止关闭系统
/keyicx/python/run.py stop
一键镜像安装自美系统,会自动将本驱动板相应的驱动安装并已经调试到最佳状态,本教程可跳过。
一键镜像安装自美系统请点击这里
在线手动安装驱动
手动安装驱动,建议烧录树莓派官方系统,因为咱们基本上都是在这个系统进行开发测试+调试的,其他系统没有相应的测试过,不保证一定能安装成功。
第一步:首先将驱动板插到树莓派开发板上,启动树莓派;
第二步:启动树莓派系统,启动终端(或用SSH连接到树莓派设备)
#打开I2C 接口
sudo raspi-config
#选择 5 Interfacing Options \→ P5 I2C \→ 是 启动 i2C 内核驱动
# 关闭树莓派默认音频驱动
sudo nano /boot/config.txt
#注: dtparam=audio=on 将这行注释
sudo reboot
# 在线安装驱动
git clone https://github.com/waveshare/WM8960-Audio-HAT
# 这里需要等待一定的时间
cd WM8960-Audio-HAT
sudo ./install.sh
sudo reboot
#测试驱动安装
sudo dkms status
#wm8960-soundcard, 1.0, 4.19.58+, armv7l: installed
#wm8960-soundcard, 1.0, 4.19.58-v7+, armv7l: installed
#wm8960-soundcard, 1.0, 4.19.58-v7l+, armv7l: installed
# 检测声卡
root@raspberrypi:~ # aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: wm8960soundcard [wm8960-soundcard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
# 检测录音功能
root@raspberrypi:~ # arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: wm8960soundcard [wm8960-soundcard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 []
Subdevices: 0/1
Subdevice #0: subdevice #0
#录音并播放测试
sudo arecord -f cd -Dhw:0 | aplay -Dhw:0
sudo arecord -D hw:0,0 -f S32_LE -r 16000 -c 2 test.wav
test.wav是录制生成的文件名。
sudo aplay -Dhw:0 test.wav
sudo apt-get install mpg123
sudo mpg123 ***.mp3
原理:自美系统采用多进程消息队列管理模式运行,各模块和插件均为独立进程运行互不干扰。进程间采用消息通知方式通信。
系统结构说明: 每一个模块都可以独立运行和协作运行,插件也可以理解为一个特有功能的模块。除了一些特有功能模块,系统自带集合了几大内置功能,分别如下:
一、 语音唤醒模块;
二、语音录音模块;
三、语音识别模块;
四、语音合成模块;
五、屏幕显示模块;
六、微信小程序通信模块;
七、外设万能开关通信模块;
一、插件位置:
自美插件位于当前系统目录:./python/plugin/
目录下,如果您采用镜像安装方式安装的自美系统,那么插件目录就是:/keyicx/python/plugin/
下,一个插件一个目录,如:
/keyicx/python/plugin/Chat(聊天机器人插件)
/keyicx/python/plugin/Music(音乐插件)
二、插件组成:
自美系统是由*.py(插件入口文件) + config.json(插件配置文件)组成,如音乐插件是由:
/keyicx/python/plugin/Music/config.json (配置文件)
/keyicx/python/plugin/Music/Music.py (入口文件)
三、插件命名约定
插件命名约定可简单说叫:四名一致
1、插件文件夹名称;
2、config.json配置文件名中的name
插件名称键值;
3、插件入口文件.py
(也可以叫插件基本文件)名;
4、插件入口文件中的起始类名:class 插件名称
每一个插件必须保持以上四个位置处名称一致并且在插件文夹中唯一,否则都会导致插件不能正常启动和运行。
四、config.json 配置文件
{
"name": "插件名",
"triggerwords": [], // 插件语音触发词数组
"IsEnable": false, // 是否启用
"IsSystem": false, // 是否为系统插件,系统插件会保持后台运行
"AutoLoader": false, // 是否随系统启动自动装载
"displayName": "", // 插件名称(通常为中文简称)
"description": "", // 插件简介说明
"icon":"0", // 插件默认图标(默认选0就行)
"version": "0.0.1", // 插件版本号
"updateTime":"", // 插件最近一次更新时间
"control":[], // 微信小程序控制端配置
"webAdminApi":"", // 插件管理配置文件接口
"initControl": 0, // 插件被激活是否通知微信小程序控制端
"repository": { // 插件版本管理配置
"type": "git", // 插件通讯协议,分为:git 和 http 两种,目前只支持git模式
"url": "" // 插件版本维护地址
}
}
前端文件目录: /keyicx/python/webroot/desktop/mojing/
前端显示与Python通讯方式
自美系统前端与后端Python通讯采用两种方式,一种是被动显示和主动请求:
websocket
技术,以达到实时性;被动显示方式介绍
被动显示即前端显示一直处于等待显示数据接收状态,我们采用的是NodeJS技术将前端设置为websocket
服务器,Python通过socket技术向前端发送信息,具体代码可参考:/keyicx/app/resources/app/control.js
文件中:
start_websocket: function(){
...
}
project 1:https://www.youtube.com/watch?v=cVmDjJmcd2M
HomeAssistant是构建智慧空间的神器。是一个成熟完整的基于 Python 的智能家居系统,设备支持度高,支持自动化(Automation)、群组化(Group)、UI 客制化(Theme) 等等高度定制化设置。同样实现设备的 Siri 控制。基于HomeAssistant,可以方便地连接各种外部设备(智能设备、摄像头、邮件、短消息、云服务等,成熟的可连接组件有近千种),手动或按照自己的需求自动化地联动这些外部设备,构建随心所欲的智慧空间。HomeAssistant是开源的,它不属于任何商业公司,用户可以无偿使用。
Hass.io是一个完整的UI管理的家庭自动化生态系统,它运行Home Assistant,Hass.io Supervisor和附加组件。它预先安装在HassOS上,但可以安装在任何Linux系统上。它利用了由Hass.io Supervisor管理的Docker。
- Hass.io Supervisor:Hass.io Supervisor是管理Hass.io安装的程序,负责安装和更新Home Assistant,附加组件本身以及更新(如果使用的话)HassOS操作系统。
- HassOS:HassOS,家庭助理操作系统,是一种嵌入式,简约的操作系统,旨在在单板计算机(如Raspberry Pi)或虚拟机上运行Hass.io生态系统。Hass.io Supervisor可以使其保持最新状态,从而无需管理操作系统
Installing using a Docker managed environment (recommended method).
Docker - Installing on Docker.
Manual installation using a Python virtual environment.
pip3 install homeassistant
hass
# open localhost:8123, 注册账号进入主界面
sudo nano /etc/apt/sources.list.d/raspi.list
sudo apt-get update
#docker 安装
#1. docker apt 源
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common
# GPG密钥
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -
#2. 添加docker ce
echo "deb [arch=armhf] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list
#3. 安装docker ce
sudo apt-get update
sudo apt-get install docker-ce
#4. 创建docker 仓库镜像
sudo nano /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
sudo systemctl daemon-reload
sudo systemctl restart docker
docker pull hello-world
docker run hello-world
# 安装图形化界面工具
docker pull portainer/portainer:latest
docker run -d -p 9000:9000 --name portainer --restart=always -e TZ="Asia/Shanghai" -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer