树莓派 智能家居怎么样?(8大核心优势)


树莓派 智能家居

基于树莓派的智能家居
部分图片
材料
语音技术
人脸识别
开门
下雨收衣服
烟雾火焰报警
网络监控
小程序控制开灯、开窗帘、开门
根据光线拉窗帘
智能浇花
最近实在是太忙了,后面会继续更新

没有接触之前,我总是在想,如果有一套智能家居多好,可以下雨收衣服,自己给花浇水,烟雾、火焰预警,根据光线决定要不要拉开窗帘,语音聊聊天,刷脸开门,语音控制开关灯,有网络监控,生人来访给出示意,甚至手机控制家里的灯、门或者其他的家具。
一点点摸索总结资料出来,没想到小时候吹的牛,居然有一天可以通过自己亲手实现,所以希望记录下来,也能给其他的小伙伴有一点点参考。
由于是自己摸索,所以可能说的不是很清楚或者显得很业余哈哈哈。
部分图片

材料
1.几千颗积木,自己做一个小房子、阳台、窗户。
2.树莓派4B,我的是8G内存的,性能剩余太多了,浪费哈哈哈
3.烟雾传感器、火焰传感器、雨滴传感器、土壤湿度传感器、震动传感器、超声波传感器、温湿度传感器
3.夜视摄像头、体感摄像头、自己焊接的一个小音响,我的体感摄像头是有麦克风的,所以不用单独搞一个麦克风,设置一下体感摄像头为默认麦克风输入。
4.MG90舵机
5.一块小屏幕(打算做一个家具温湿度显示,未实现)
6.目前还有一个stm32f1的板子,还在纠结应该做些什么比较好,放着也是吃灰

语音技术
语音识别是上面很多功能的基础,首先通过snoyboy的关键词唤醒,可以自己官网制作属于自己的唤醒模型(因为我懒,测试的时候把灵敏度拉满,于是大喊一声也成),程序使用录音软件进行录音,并且保存在本地文件,调用百度语音识别进行识别,此时将返回的结果保存为文本,来一个正则表达式,这时候大家最喜欢的if判断就来了。大家就可以把要让他执行的函数写在这个地方啦啦啦。
因为我的代码惨不忍睹,于是我想给大家分享一个链接,我是从这个链接学习的,这位博主也提供了代码,有特别详细的步骤教程,特别感谢!!!
点我到达
接下来就是朴实无华的语音合成,语音播报其实就是我将录制好的音频文件,在某个if()满足条件的时候就播放出来,例如人脸识别的时候,如果识别通过,就播放欢迎回来,靓仔。没识别到人脸也给出提示:未识别到人脸,如果不在人脸库的时候,就播放:我不认识你哦。

关于百度语音技术
其实我觉得这个挺好用的,而且还有那么多次的免费调用,用在自己个人学习绰绰有余,几万次的调用,正常人用不完。

人脸识别
嗯,调用的还是百度的人脸识别,也是免费的。这个我这几天忙完会把代码传上来。主要思路就是在识别到人脸的时候,if(相似度超过80),这个时候就把门打开,否则提示不在人脸库。

开门
至于开门的话,我用的是MG90舵机,老样子写好函数,如果满足开门条件,就让舵机把门拉开,至于多少角度的话就需要计算了哈哈哈。舵机我是接在树莓派的11物理引脚上面的,因为其他引脚的位置我记不住。
通过调节PWM的占空比控制舵机的转向角度。代码发出来了,大家稍微改一下角度和引脚就可以使用了。

!/usr/bin/env python3

import RPi.GPIO as GPIO
import time
def setServoAngle(angle):
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(11, GPIO.OUT)
tilt = GPIO.PWM(11, 50)
tilt.start(0)
DutyCycle = angle/18 + 2
tilt.ChangeDutyCycle(DutyCycle)
time.sleep(1)
tilt.stop()
c = 'c'

while c == 'c':
angle = 30
setServoAngle(angle)
c = 'e'
GPIO.cleanup()
exit()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
下雨收衣服
这里依赖一个雨滴传感器,检测雨滴就会把衣服那条杠拉进来。没办法,成本不够,gpio口也有限,只能两个舵机来回使用了哈哈哈。
注意的就是接线的时候正负极不要接反了,不然烧了挺尴尬的。

烟雾火焰报警
这里依赖火焰传感器和烟雾传感器,我纠结到底是两者都符合触发报警呢还是单独一个就可以触发报警。如果是单独一个的话,我怕别人点根烟就报警了,到时候会不会很尴尬(我不抽烟哈哈哈哈)
传感器原理知识就不多说了,主要还是上代码,改一下pin就好

网络监控
来一张靓仔亲测照片,局域网内都可以查看。
现在的思路是树莓派官方的摄像头当人脸识别摄像头,而体感摄像头用来当网络监控,不知道会不会冲突,到时候试一下。
目前两个都是用夜视摄像头测试的,补光灯也还没有安装 (因为螺丝不见了,靓仔无语 ),头大。

这个时候大家首先要把树莓派的摄像头权限打开

sudo raspi-config
1
选择第五项Interfacing Options,选择第一项camera,选择是,然后重新启动一下

sudo reboot
1
安装motion

sudo apt install motion

sudo vim /etc/default/motion
//设置“start_motion_daemon=no”,将no改为yes,让其后台运行
1
2
3
4
sudo vim /etc/motion/motion.conf
1
设置motion.conf如下:
daemon on
width 640
height 480
stream_localhost off
stream_maxrate 100

这个在比较靠后,我当时翻了挺久的,所以耐心翻一下吧哈哈哈

最后运行

sudo motion
1
接下来浏览器输入树莓派的ip:8081
就可以看见靓仔了

小程序控制开灯、开窗帘、开门
小程序开灯其实就是给灯的gpio来一个高电压,这时候就亮起来了,弄个rgb三色灯还能调色,不错不错。至于拉窗帘的原理其实和开门差不多,也就是舵机pwm来一下。
目前的用的小程序还是别人开发的,只是能让我控制我的树莓派的gpio,目前在看着网上的教程尝试自己做一个app,可能后面如果成功了的话会发教程。

根据光线拉窗帘
这里主要利用到了一个光敏传感器,根据光线的强弱,到达一定的值就会调用舵机拉开窗帘。

智能浇花
这个淘宝买的继电器加土壤湿度检测,简单粗暴,稍微焊接一下就好,就是焊接的不太好看。哦对了,没花。

个热爱技术的人一定向往有一个科技感十足的环境吧,那何不亲自实践一下属于技术人的座右铭:“技术改变世界”。

就让我们一步步动手搭建一个属于自己的“智能家居平台”吧(不要对这个名词抬杠啦,技术在手,怎么设计实现因人而异),本文只做抛砖引玉,各路大神如果有更好的想法可以各显神通,当然能在评论区留下更好的想法让大家共同学习是再好不过啦。

在文章最后附有所有源代码,有需要的可以自行下载,感谢Star~

【系列目录】

  1. 树莓派GPIO简介(Python版)
  2. 温湿度数据采集存储(DHT11,MySql)
  3. 温湿度数码管展示(四位共阳数码管)
  4. 构建App展示温湿度报表(ApiCloud,Python Flask)
  5. 普通家用排插集成继电器手工改造
  6. App远程控制“自制智能”排插
  7. 使用花生棒内网穿透实现外网访问
  8. App远程监控(摄像头模块集成)

【本节概要】

要做一些神奇的骚操作,比如环境数据采集,智能控制等,最终还是要落地到设备上。要和各种各样的设备打交道,肯定是离不开电子元件的。市场上有大量的开箱即用的封装的很好的硬件,但是都是独立的或者是集成了某些功能于一身的,并不能自己灵活的进行扩展。

如果我们要自己灵活地配置各种各样的功能组合,自己操作原始的电子元件或许是更明智的选择。在我们这个项目中,我们将采用树莓派+一系列电子元件来构建我们的整个系统。

 树莓派

树莓派是什么这里只做简单介绍,贴个不带壳子的图~

 加上壳子可以长这样,当然了壳子是千变万化的,不可"以貌取派“

Raspberry Pi(中文名为“树莓派”,简写为RPi,(或者RasPi / RPI)   是为学习计算机编程教育而设计),只有信用卡大小的微型电脑,其系统基于Linux。 随着Windows 10 IoT的发布,我们也将可以用上运行Windows的树莓派。

说白了就是迷你电脑,当然电脑能干的事树莓派都可以干,浏览网页,看视频,玩一些对性能要求不高的游戏都是可以的。甚至还可以当服务器,多个树莓派搭建一个集群(树莓派官网就是部署在一堆树莓派组成的集群上)。

GPIO

那么,GPIO又是什么呢?

GPIO(英语:General-purpose input/output),通用型之输入输出的简称。说白了,就是一堆针脚,可以自由地通过编程手段控制其输入还是输出。

树莓派自带了很多针脚,给程序员提供电子元件控制的出入口。以“3代B+”型号树莓派为例,本身提供了两排共40个针脚,从上面不带壳的树莓派图片中可以看到上面有两排裸露的针脚。下面是针脚分布图:

第三列和第六列(表头为功能名)展示了40个针脚的作用,绿色的是开放通用的输入输出针脚,黑色的是接地,5V和3.3V高电平输出,其他颜色的针脚用在一些特殊场合,比如输出视频流什么的,并不十分常用。我们目前关注 输出电压/接地/通用针脚 这几种。

树莓派用不同的编码规则给40个针脚起制定了编码,方便我们对针脚的输入输出进行开发。常见的编码规则有:BOARD编码规则,见上图中的BOARD编码对应的40个针脚的位置;还有BCM编码规则,也可根据上图找到对应针脚。

树莓派GPIO一般采用 Arduino脚本或者python脚本进行控制,也有少数人使用C或者其他编程语言,理论上讲,越高级的语言API往往封装的越完善,代码也越简洁容易,我们的系列文章采用python脚本进行开发。

RPi.GPIO 模块

RPI.GPIO是python下控制GPIO的模块,可以通过命令 “npm install RPI.GPIO” 进行安装。注意:该命令务必在有GPIO的环境下安装,比如树莓派设备上可以顺利安装成功,但是在windows下没有GPIO设备,因此安装会出现各种问题,不建议在windos上开发时安装这个包,我们可以直接远程 PI 边写边执行测试效果。

导入 RPi.GPIO 模块:

import RPi.GPIO as GPIO

下面是一段简单的python代码,用来展示如果使用RPI.GPIO控制树莓派的针脚

复制代码
# 设置GPIO布局编码,这里采用BOARD编码风格,也可以使用BCM风格,注意针脚编码规则是不同的
GPIO.setmode(GPIO.BOARD)

# 关闭警告,如果设置某个针脚为非默认状态,可能会得到警告
GPIO.setwarnings(False)

# 设置某个针脚的用途
# 下面例子:设置BOARD编码风格的12号(对应GPIO.1)针脚为读取模式
GPIO.setup(12, GPIO.IN)

# 读取BOARD-12针脚的电平值
GPIO.input(12)

#设置BOARD编码风格的12号(对应GPIO.1)针脚为输出模式
GPIO.setup(12, GPIO.OUT)

# 输出BOARD-12针脚为低电平,这里GPIO.LOW/0/False,三种参数是等效的
GPIO.output(12,GPIO.LOW)

# 在任何程序结束后,请养成清理用过的资源的好习惯
# 注意:这行代码会将针脚状态恢复成默认值,如果要保持状态,请不要执行该命令
GPIO.cleanup()
复制代码

上面代码是最常用的控制各个针脚输入输出的命令,我们可以灵活组合基本命令完成更复杂的功能。

树莓派 智能家居

文章来源:智能家居加盟 https://www.zhinengjiajujiameng.cn/

树莓派 智能家居

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站不拥有所有权,不承担相关法律责任。如发现有侵权/违规的内容, 联系QQ892482387,本站将立刻清除。

分享到