前言:
此刻同学们对“树莓派报警器”可能比较关注,兄弟们都想要知道一些“树莓派报警器”的相关内容。那么小编在网络上搜集了一些有关“树莓派报警器””的相关知识,希望你们能喜欢,朋友们一起来学习一下吧!这是一篇很跨界的技术文章。我自幼喜欢文学,大学专业选了嵌入式工程,工作岗位搞起人工智能软件。
一直以来,我都在考虑人工智能的落地应用。
AI那么多能力,又是图像识别,又是文字分类,企业拿它来卖钱,那你能拿它干啥呢?它又能给我们普通人带来什么呢?
树莓派是什么?
我收拾房间,找到了一个小盒子。这是一个旧版本的树莓派(raspberry pi)设备。
这个手掌大小的设备,通俗地讲就是一个小电脑主机。一些智能小车啥的,一般会拿它当“大脑”来用。
这个设备还是一个叫“楼神”的同事送我的。因为我比较喜欢做一些小发明,发到朋友圈。比如下面这个,这是一个特殊的小灯:只要有光它就亮,没有光它绝对不亮。
很搞笑是吧!但是,如果我把小灯换成警报器呢?它就变成只要有人拿手电照它,它就会报警。因此,看事情要看技术。
几年前,楼神离职,他把这个树莓派就放到了我工位。他留言说:“赠与有缘人,是个好归宿!”
后来,我又买了一些配件,比如摄像头、电阻、电容等。
玩转树莓派设备
嵌入式出身的我,搞一些基本操作还是无压力的。
你让它显示1、2、3,不借助框架,绝对不是print(1)、print(2)、print(3)那么简单。
恰巧我也懂软件。所以就结合软件,做了一些小玩意儿。
人员闯入通知
此系统实现了这样功能:只要感应到有人经过,就会拍照并给我发邮件,我的微信就能收到消息。
其实它很简单,有三个部分组成:
红外人体感应器:我们人类(有生命)时刻会发出红外辐射。这个设备能捕获到这个辐射。不要觉得很高级,其实像温度计一样简单,它才几块钱一个。如果它感应到有人存在,会通过信号线告诉主机。摄像头:这个贵,几十块钱一个。它插入到主机后,主机可以调用摄像头进行拍照、录像。树莓派主机:它本身就是一个系统,能联网,能读取输入、控制输出。我在里面写了一些python程序。如果它收到红外感应器发来的信息,就调用摄像头拍照。拍照后,再通过邮件把照片发送到我的邮箱。邮箱是QQ邮箱,因为绑定了微信,所以就能收到微信通知。
这里面没啥高级技术。红外感应器和摄像头是硬件,都是模块化,插线就能用。
调用它们也很简单,都有对应的库。拿拍照来说,几行代码就能搞定:
import timefrom picamera import PiCamera # 导入库camera = PiCamera()try: # 等待摄像头启动 time.sleep(2) # 拍照保存为photo.jpg camera.capture('photo.jpg')finally: camera.close()
复杂一点的东西……自动发送邮件算吗?似乎也就下面这点python代码:
import smtplib # 导入库from email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.mime.image import MIMEImagedef send_email(sender, receiver, subject, message, image_path): # 创建一个多类型结果 msg = MIMEMultipart() msg['Subject'] = subject msg['From'] = sender msg['To'] = receiver # 添加文本内容 msg.attach(MIMEText(message, 'plain')) # 添加图片内容 with open(image_path, 'rb') as f: image = MIMEImage(f.read()) image.add_header('Content-Disposition', 'attachment', filename='image.png') msg.attach(image) # 发送邮件 try: smtp_obj = smtplib.SMTP('smtp.example.com', 587) # SMTP服务器地址和端口号 smtp_obj.starttls() # 启用TLS加密 smtp_obj.login('your_username', 'your_password') # SMTP服务器的用户名和密码 smtp_obj.sendmail(sender, receiver, msg.as_string()) smtp_obj.quit() except smtplib.SMTPException as e: print("邮件发送失败:", e)sender = 'sender@example.com' # 发件人邮箱receiver = 'receiver@example.com' # 收件人邮箱subject = '远程照片' # 邮件主题message = '远程照片' # 邮件内容image_path = 'photo.jpg' # 图片路径# 发送send_email(sender, receiver, subject, message, image_path)
上面的代码,想要跑通,需要将发送邮箱做一下配置,因为自动发送需要开权限。
物品名称播报
后来,我将树莓派和人工智能结合了一下,做了个小玩意。
它实现了这样的功能:摄像头会识别所拍摄到的物体,并把识别结果通过扬声器进行语音播报(图上右下角有一个小音箱)。
受限于体积和成本,树莓派的性能毕竟不强大。物体识别我采用的是TensorFlow的Lite版本。语音合成调用的第三方API接口。
这里面,其实也没有太多高级的东西。我们都是无脑集成商。
两种实现LED闪烁的方法
研究树莓派的过程中,我发现了一个问题:硬件慢慢地被软件所蚕食,尤其是逻辑方面的东西。
记得以前学电路的时候,想要实现一个LED灯的闪烁效果,那是相当费劲的。需要LED、电阻、三极管、电容等组成一个逻辑电路,像下面这样。
它的原理是利用电容循环充电、放电,实现闪烁。如果你想要开关,还得再加上开关元件。当时我以为这是最简单的方式了。即便你加芯片进行控制,那也只是将这类结构缩小到芯片里去了。它的基本逻辑在那里,你改变不了。
后来,我发现树莓派很容易就能实现“闪烁”这个功能。
所需要的元件只有树莓派加一个LED灯。其他的控制逻辑,都可以写到树莓派的代码里面,让系统去控制。
def flicker(): # 闪烁 PIN_NO = 12 GPIO.setmode(GPIO.BOARD) GPIO.setup(PIN_NO, GPIO.OUT) for x in range(20): # 循环20次闪烁 GPIO.output(PIN_NO, GPIO.HIGH) time.sleep(0.5) # 每次间隔0.5秒 GPIo.output(PIN_NO, GPIO.LOW) time.sleep(0.5) GPIO.cleanup()def on(): # 打开 PIN_NO = 12 GPIO.setmode(GPIO.BOARD) GPIO.setup(PIN_NO, GPIO.OUT) GPIO.output(PIN_NO, GPIO.HIGH)def off(): # 关闭 PIN_NO = 12 GPIO.setmode(GPIO.BOARD) GPIO.setup(PIN_NO, GPIO.OUT) GPIO.output(PIN_NO, GPIO.LOW) GPIO.cleanup()flickBtn = tkinter.Button(top, text="闪烁", command=flicker)flickBtn.pack() # 闪烁按钮onBtn = tkinter.Button(top, text="开", command=on)onBtn.pack() # 开按钮offBtn = tkinter.Button(top, text="关闭", command=off)offBtn.pack() # 关闭按钮
树莓派有40个小触手。就是下图红框处的那两排小针。
这些小针,我们可以通过代码控制,可以读取,也可以写入。
上面的例子,我就是操作的第12号针,因此PIN_NO = 12。
GPIO.setup(PIN_NO, GPIO.OUT)是设置输出。
GPIO.HIGH是高电平,GPIO.LOW是低电平。
第12号针,循环间隔一高一低,就实现了闪烁的效果。
看!逻辑全在软件里面了。硬件被蚕食得只剩下了一个“大脑”和一个LED灯。
从硬件到软件,重返硬件
农业时代,机械的出现,大大提高了生产力水平。
比如下面这个是一个计算器。嗯!你没看错,它确实是计算器,能进行数学运算,它叫“机械计算器”。
当你计算69+32时,他的内部真的是在通过齿轮和传送带去计算两者的和。
后来,电子计算器出现了。它是通过集成电路去实现的,计算逻辑已经电子化了。这种设备可以装在口袋里。
再后来,又进步了。计算器可以看得见,但是摸不着。它就是计算器软件。你不用花钱,免费用。访问一个网页链接或者打开一个APP,就可以使用它强大的功能。
当然,要使用它,你得有智能手机或者电脑,还得有电,得有网,符合以上条件的同时,智能设备也得在身边。
机械计算器有设备就能计算,电子计算器开始额外要求有电池,到软件计算器,依赖更加严重了。
软件很厉害,他能将大化小,把有变无。甚至能将一个图书馆装到口袋里面去。但是它毕竟是软件,太软,严重依托于系统,其本质只是数据。就像你的财富,只是银行卡里的一串数字。脱离了系统,它嘛也不是。
看那些纯机械的计算器,经过几十年,现在依然能用。但是,你的iphone4现在还能开机吗?
科技确实在发展和进步,更在进行虚拟化、数字化。但奇怪的是,纯互联网的风口已经慢慢远去。而今,很难靠一个网站就能拉来投资。招投标也慢慢重视你有哪些配套的硬件设备。几支智能笔?几个音响?几个扫描仪?大家又开始相信看得见摸得着的东西了。
目前是一个由硬到软,再由软慢慢返硬的时代。
我觉得这是理性的。就像生物界,要想像人类一样强大,不仅要有聪明的大脑,还得有灵活可控的肢体。
标签: #树莓派报警器