【树莓派智能家居】人提供外感应+蜂鸣器报警 Python2

正文之前

感觉自己很久很久没有写东西了,所以还是继续开动一下笔吧,最近没看啥,就忙着开题报告,开题答辩PPT以及一些其他的有的没的。总之感觉自己无所事事,but临近年关,索性就放纵一把自我吧。写完下面这个树莓派,可能又要过一段时间才会继续了!

正文

下面是课设的瞎鸡儿写的东西

老实说,对于计算机控制系统这门课,我一开始的期望是我们有很多的上机或者实验,能够对一些单片机或者是树莓派之类的硬件进行设置操作,然后来做一些控制方面的东西。但是后来上课的时候,很多的都是千篇一律的数学模型以及控制论的理论。我承认每一门课程确实都需要很强的理论基础才能够稍有所得,能够透过现象看本质。但是对于大四没有了太多的加权压力的我们来说,如果不能够辅以一定的兴趣来上课,那么学习的效果是很差的,毕竟不是每个人都可以做到自律的学习,或者说绝大部分都做不到。所以希望老师原谅我上课不是太认真。对于数学模型以及控制论,学得不是很好。最后我选了一个符合我自己的兴趣的课程设计。但是我感觉跟课程的内容并不是特别相关。不过这确实跟我理想中的计算机控制系统比较贴近。当然还要辅以更加深入的控制论的学习,以及数学模型的建立。在本次课程设计中。我深感控制论的魅力。难怪有那么多的前辈前赴后继的投身于这个领域。当看到电机以不同的转速开始输出风力的时候,我承认我的内心是十分激动的。不仅仅是因为一次实验的成功,而是它所带来的无与伦比的成就感让我陶醉其中。另外通过编写代码就可以达到自己想要控制的成果,又深刻的感受到了编程的魅力。也难怪,现在基本上所有的产业都想要跟互联网或者计算机搭上边。确实,当“互联网+”成为常态,那么基本上大部分的产业都会有一个质的飞跃。尤其是对于精度稍有要求的产业,都能够在控制论中找到自己的发展趋势。

另外一点就是,我对于智能家居这种东西的看法。智能家居严格来说并不算是科研的突破,而只是一种对于当前科学成果的应用的手段,而且这种手段已经相对很成熟。智能家居最重要的是控制器的核心模块。其他的传感器可以充当输入,而执行机构充当输出。其中经过控制器的调度之后便会形成类似智能的家居控制系统。目前来说,我认为智能家居前景相当好。首先是随着计算机硬件的不断升级,符合摩尔定律的硬件一批一批的爆发出来。计算机的内存、存储以及计算能力已经达到了史无前例的高度,其成本也是逐年下降。今后智能家居的核心控制器会越来越强,计算速度越来越快,当人工智能发展到一定程度,并且移植到智能家居的控制器核心上的时候,智能家居便有了学习的能力。那么符合我们每个人生活习惯的智能家具,便会走上历史舞台。在这个过程中,我觉得目前的树莓派已经足够应付我们发展的需求,并且树莓派的成本相对于普通的PC机来说,只有大概不到1/10。而且更难得可贵的是树莓派支持集群操作,也就是说我们可以用不少的树莓派组成集群之后得到想要的计算能力。

在此次课程中,我也学到了一定的控制论的思想。可以让我在今后的生活中变成了客观的,用控制论去看待一些事物。同时对我自己的动手DIY能力也是一次极大的启发。就好比说以前,如果想要对一个在门口的电灯开关进行改进的话。一般情况下会想加一个开关到床头,然后上床之后就可以直接在床头关灯休息。但是学习了控制论之后,我知道可以用声控开关来对我是否需要开关灯进行智能的控制。又好比对于出水机构,正常情况下会想到用手动的开关旋钮。但是学习的控制论之后,加入传感器的观念,我会想到用人体红外感应机构来检测是否有人,并且这种模块是有现成的,在淘宝上只需要十来块钱,操作也是极其的简单。下面是我用一个人体红外感应模块进行的一点测试。

【树莓派智能家居】人提供外感应+蜂鸣器报警 Python2_第1张图片
def beep():    
  if GPIO.input(12)==True:        
    print "Someone is coming!! Warning!"    
  else:         
    print "None! Security!"
# 每隔一秒钟进行一次是否有人的检查,用这个模块也可以代替上面我们项目中的超声波检测模块
while True:    
  beep()    
  time.sleep(1)

另外,我在无意之中发现我的电子元件里面还有一个蜂鸣器。所以就顺手的把蜂鸣器给用上了。参照了下面三篇博客:

树莓派之蜂鸣器小记 - 寂夜云 - 博客园

Python与硬件学习笔记:蜂鸣器- CSDN博客

[原创]初玩树莓派B 5控制蜂鸣器演奏乐曲-『智能设..._看雪安全论坛

最后的结果如下:

import RPi.GPIO as GPIO 
import time 

PIN_NO = 7
GPIO.setmode(GPIO.BOARD) 
GPIO.setup(PIN_NO, GPIO.OUT) 

def beep(seconds): 
    GPIO.output(PIN_NO, GPIO.HIGH) 
    time.sleep(seconds) 
    GPIO.output(PIN_NO, GPIO.LOW) 

def beepAction(secs, sleepsecs, times): 
#   s=1
    for i in range(times):
#   if s>10:
#   s=1
#   beep(secs*s)
#   s=s+1
        beep(secs)
        time.sleep(sleepsecs) 

beepAction(0.0002,0.005,10000)

效果就不展示了。接线也很简单,诸位参照上面的博客接线即可!溜了。做开题报告PPT去了。

【树莓派智能家居】人提供外感应+蜂鸣器报警 Python2_第2张图片

正文之后

元旦快乐啊!!!新的一年2018 大家一定要好好过啊!

你可能感兴趣的:(【树莓派智能家居】人提供外感应+蜂鸣器报警 Python2)