【物联网实训项目】------(五)家庭智慧安防系统之智能监控
1.所需材料:人体感应模块、蜂鸣器以及树莓派摄像头
人体感应模块接线:中间数据引脚接的是pin12,剩下两个引脚分别接电源和接地。
蜂鸣器接线:一根接电源线,一根接pin11
2.树莓派结合人体感应模块进行蜂鸣器报警
当人体感应模块感应到有人体活动时,蜂鸣器进行报警,同时将报警信息写入到MySQL数据库中。
(1)数据库设计
这里的步骤同上一章,在jiankong数据库进行建立buzzer表操作
mysql> use jiankong;Database changed
mysql> create table buzzer(id int auto_increment primary key not null, time char(255),descr char(255));Query OK, 0 rows affected (0.03 sec)
(2)buzzer.py文件
import RPi.GPIO as GPIOimport MySQLdbimport timedef init():GPIO.setwarnings(False)GPIO.setmode(GPIO.BOARD)GPIO.setup(12, GPIO.IN)GPIO.setup(11,GPIO.OUT)passdef beep():for i in range(1,6):GPIO.output(11, GPIO.LOW)time.sleep(0.5)GPIO.output(11, GPIO.HIGH)time.sleep(0.5)print "the Buzzer will make sound"def detct():for i in range(1, 31):if GPIO.input(12) == True:print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))+ " Someone is closing!"conn=MySQLdb.connect(host='localhost',port=3306,user='root',passwd='root',db='jiankong',)sql="insert into buzzer(time,descr) values('%s','%s')"%(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())),'someone is closing')cur=conn.cursor()cur.execute(sql)cur.close()conn.commit()conn.close()beep()else:GPIO.output(11, GPIO.HIGH)print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))+" Noanybody!"time.sleep(10)time.sleep(2)init()detct()
(3)运行结果
3.短信预警
这里采用Twilio免费给手机发短信。
(1)在树莓派上通过命令行下载安装twilio
sudo pip3 install twilio
(2)在twilio注册账号
在官网 https://www.twilio.com
选择Get a free APIkey,然后注册账号即可。
这三个问题我分别选的是SMS、Phone Verification和Python。
这里可能注册失败,因为注册的时候需要验证码,而在国内验证码是无法显示的,所以这里给大家提供两个办法,这两个办法都是基于谷歌游览器的,第一个办法是给谷歌游览器安装谷歌上网助手插件,另外一个办法在最新版谷歌游览器上访问https://www.rabb.it/,然后通过这个网站提供的谷歌游览器来注册账号。
最后账号还需要手机号的验证。
注册成功登陆之后,选择Get Started,会免费得到一个twilio电话号码。
此时,新建一个项目,这里我新建了一个家庭安防系统的项目,这里记住你的ACCOUNT SID和AUTH token.
(3)python结合twilio向用户发送短信
from twilio.rest import Client# Your Account SID from twilio.com/consoleaccount_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"# Your Auth Token from twilio.com/consoleauth_token = "your_auth_token"client = Client(account_sid, auth_token)message = client.messages.create(to="+15558675309",from_="+15017250604",body="Hello from Python!")print(message.sid)
注意这里to中的电话号码是你注册twilio的号码,from是你注册账号时免费得到的twilio电话号码。
通过上述python代码便可以向用户发送短信,下面是接收的短信情况。
具体的代码情况可参考:https://www.twilio.com/docs/libraries/python
4.智能监控结合
在第二章我们做了定时监控模块,这里我们将定时监控模块加入进来,重新进行整合。
当人体感应模块感应到人体活动时,蜂鸣器警报报警,与此同时树莓派摄像头模块抓拍照片传到七牛云服务器,并且还会通过上述的twilio向用户发送一条示警短信。
这里提供jiankong.py的代码
# -*- coding: utf-8 -*-import RPi.GPIO as GPIOimport MySQLdbimport timeimport picamerafrom qiniu import Auth, put_file, etag, urlsafe_base64_encodeimport qiniu.configimport os#需要填写你的 Access Key 和 Secret Keyaccess_key = '' #这里的密钥填上刚才我让你记住的密钥对secret_key = '' #这里的密钥填上刚才我让你记住的密钥对#构建鉴权对象q = Auth(access_key, secret_key)#要上传的空间bucket_name = 'jiankong'#上传到七牛后保存的文件名key = '%s_%s_%s_%s_%s_%s.jpg'%(time.localtime()[0],time.localtime()[1],time.localtime()[2],time.localtime()[3],time.localtime()[4],time.localtime()[5])#生成上传 Token,可以指定过期时间等token = q.upload_token(bucket_name, key, 3600)#camera=picamera.PiCamera()def uploadfile():camera.capture("current_photo.jpg")#要上传文件的本地路径localfile = 'current_photo.jpg'ret, info = put_file(token, key, localfile)filename = 'current_photo.jpg'if os.path.exists(filename):os.remove(filename)def init():GPIO.setwarnings(False)GPIO.setmode(GPIO.BOARD)GPIO.setup(12, GPIO.IN)GPIO.setup(11,GPIO.OUT)passdef beep():for i in range(1,6):GPIO.output(11, GPIO.LOW)time.sleep(0.5)GPIO.output(11, GPIO.HIGH)time.sleep(0.5)print "the Buzzer will make sound"def detct():for i in range(1, 31):if GPIO.input(12) == True:print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))+ " Someone is closing!"conn=MySQLdb.connect(host='localhost',port=3306,user='root',passwd='root',db='jiankong',)sql="insert into buzzer(time,descr) values('%s','%s')"%(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())),'someone is closing')cur=conn.cursor()cur.execute(sql)cur.close()conn.commit()conn.close()beep()uploadfile()else:GPIO.output(11, GPIO.HIGH)print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))+" Noanybody!"time.sleep(10)time.sleep(2)init()detct()
【物联网实训项目】------(五)家庭智慧安防系统之智能监控相关推荐
- 【物联网实训项目】------(四)家庭智慧安防系统之智能温控
1.所需材料: 树莓派.面包板.温湿度传感器DHT11.直流电机.风扇.L298N电机驱动模块. 2.树莓派从DHT11温湿度传感器读取数据 (1)DHT11 介绍 DHT11是一款有已校准数字信号输 ...
- 智慧安防系统(嵌入式开发)
系列文章目录 文章目录 系列文章目录 前言 一.智慧安防系统设计概述 二.相关技术实现 1.开发环境搭建和测试 2.软硬件代码载入调试 总结 前言 一.智慧安防系统设计概述 智慧安防技术的发展趋势包括 ...
- Java实训项目一一考试系统(附源码)
1 实训基本信息 1.1 实训项目名称 (1)考试系统 1.2 实训环境 本次实训内容主要针对专业学生,实训形式以实战讲解为主导.实训课程由实训老师主讲,实训老师教学严谨又平易近人,讲解的内容非常细致 ...
- 智慧安监系统为城市安全监管提供保障
正当今社会信息化发展如火如荼,互联网.物联网.云计算.智慧城市等信息化技术的快速发展正深刻改变经济社会的方方面面.近年来信息化技术在安全生产领域的广泛应用,显著提高了政府安全监管和企业安全管理的效率. ...
- 【无线串口模块应用实例】防小人不防君子的智慧安防监测系统
俗话说"防君子不防小人",指的是礼义约束只能管住君子. 乍一听还有点消极无奈的感觉,怎么好人反而更吃亏呢?! "以德报怨,何以报德?" 但面对无孔不入的小人我们 ...
- 园区智慧安防解决方案2020
目 录 一.政策背景 1 二.需求分析 1 三.系统架构 2 四.建设内容 3 4.1智慧安防系统 3 4.1.1车辆出入口系统 3 4.1.2人脸人员通道管理 4 4.1.3陌生访客系统 5 4. ...
- 智慧安防方案升级后,商家年年续保,我每年都有稳定收入,躺赚!
在一次客户交流活动中,安保服务商如实和我们提出心里的担忧. 方案升级后的一年内,这位安保服务商为约千家商铺升级了安防系统,靠增值服务每年稳赚百万,商家年年续保,成为当地的安保公司的No.1企业. 那安 ...
- 假期来啦!技术人如何用 Python 实现景区安防系统
作者 | 李秋键 出品 | AI科技大本营(ID:rgznai100) 引言:近年来,随着我国旅游业的持续快速发展,国内游客人次逐年增加,各地旅游景点游客爆满.在旅游消费需求高速增长的同时,伴随着越来 ...
- 基于WiFi的宿舍智能安防系统
word完整版可点击如下下载>>>>>>>> 基于WiFi的宿舍智能安防系统.rar-自然语言处理文档类资源-CSDN下载1.资源内容:毕业设计lun- ...
最新文章
- 如何设计一个本地缓存
- [register]-ARMV8-aarch64-通用寄存器介绍
- 《集体智慧编程》数学公式
- webpack 工作方式
- 编译器会影响编译吗?
- 百题大冲关系列课程更新啦!这次是 Golang
- ubuntu copy命令
- Private Data Manipulation in Optimal Sponsored Search Auction
- Ixia推出首款太比特级网络安全测试平台
- Host key verification failed. fatal: Could not read from remote repository.Please make sure you have
- mysql做乘法运算溢出_乘法溢出及对策
- [学习笔记]舞蹈链(Dancing Links)C++实现(指针版)
- 方差-偏差平衡(Bias-Variance Balance)与模型选择
- 查看生产DB2数据库空间及使用情况
- 【Kotlin -- 知识点】学习资料
- MIKE水动力笔记8_冷启动与热启动
- 骚操作“破解“App
- 树莓派4B + darknet-yolov4-tiny + 英特尔第二代神经计算棒
- ps4 6.72破解测试版+6.72固件下载+可玩游戏汇总+6.72破解教程
- 495. Teemo Attacking(提莫攻击)