树莓派入门之有源蜂鸣器

在资金本来就不怎么充裕的双十一,我忍痛买下了价值近700的树莓派4B+,从此开始了我的物联网之旅~~(当然,才刚开始~)

在漫长的等待之后,它终于到了我手上。在将它开机并和我的Mac连接上之后,我并不知道该如何去用剩下的一堆传感器,遂打算看一本入门教程,然后发现教程里的入门实验是用LED灯的,还要用电阻之类的。我扒拉了一下这一盒东西,有点想哭,竟然什么都没有。无良商家啊,我都买最贵的套餐了,我只想入个门啊,怎么连这点都洗都不给配呢?

不甘心的我又不想这么快就去买新的配件,就随意在网上看,就发现了有源蜂鸣器的触发方式和LED灯一样,十分简单,就只要发一个信号就可以了。而我刚好有这个东东,那么就开始进入正文吧。

一、简单了解树莓派的接口

树莓派与这些传感器及其他硬件的通信基本上都是通过左上角的一排针来完成的,这些针基本上分为电源针、GPIO接口针和接地针,就是下图中标着0的那一块。

我买的这个树莓派一共有40针,这些针里面最重要的就是GPIO针了,GPIO翻译过来就是通用输入输出针脚,具体哪根针什么作用我还真没了解透,但已经足以让我完成正常的接线工作了。

接线时,比较困扰我的一点就是GPIO针的顺序不是固定的,每次接线都要对照着针脚图去做。我这里有一个简便的办法就是接线时在树莓派的命令行打上pinout,然后就会出现针脚对应的GPIO编号,比自己一直保存一张图片要方便一点。

上面的图片就是命令行里出来的内容,其中3V3表示3.3伏的电压,红色的5V当然就是5伏电压了。然后GND表示接地,剩余的绿色针脚就都是GPIO接口了。

这里想提一点的是我刚拿到树莓派给它装上外壳后,上面有一个附带的小风扇不论我怎么接都不会转,我都以为是坏掉了呢。结果查了这些针脚的作用之后,我把红线接正极,黑线接地,风扇就顺利的转起来了。。。

二、开始接线?

在接线的时候,我也遇到了一些困扰。商家送了我面包板和排线,我也听人说面包板和排线会让自己接线更加方便一点,但我双手拿着这两样东西时,却不知道要怎么组装在一起了。。

后面看了一个教程之后才明白,要用排线将树莓派和T型板连上,然后在将T型板和面包板连上,也就是下图这样:

但当我要将排线连到树莓派上时,却发现加装了外壳的树莓派放不下这一块排线。。。无良商家啊,,我都买的是套餐了,你的配件竟然还不配套,气死我啦。难道我每次接线都要拆外壳吗?

最终我放弃了使用面包板,一是因为要拆外壳,二是因为我没有可以插在面包板上的针😂那就只好采用直接接线大法了。

三、正式开始

先亮出我的低电平触发有源蜂鸣器,即它会在低电平时发出固定频率的声音。

它上面有三个脚,GND接地,VCC接电源,一般接树莓派上的3.3V电源即可(接5V没有电阻的话我可不敢保证它会不会坏掉。。)。中间的那个IO就是接树莓派的GPIO口的,这里由于我的python程序是网上找的,也懒得改,就直接用它定义的GPIO口了。

alarm.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import RPi.GPIO as GPIO
import time

# GPIO 口为17
trig=17

def init():
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(trig,GPIO.OUT,initial=GPIO.HIGH)
pass

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

def beepBatch(seconds,timespan,counts):
for i in range(counts):
beep(seconds)
time.sleep(timespan)

init()
# 修改下面这一行的参数
beepBatch(0.2,1,3)

GPIO.cleanup()

上面的程序会在蜂鸣器发出三次短暂的鸣响后自动退出,我们在连线之后可以修改前两个参数来控制鸣响时长和间隔时间,以此来测试我们程序是否运行成功。

下面就开始正式的接线了,其实这就比较简单了。我用红色线表示电源线,黑色线表示地线,然后随便一个颜色线表示GPIO线,查阅针脚对应GPIO图,可知GPIO17对应第11个接口。

请忽略背景中小风扇的线。。。

接好之后,在树莓派中运行命令:

1
sudo python alarm.py

然后你就可以听到悦耳的三声鸣响了~

后记

无意中看到无源蜂鸣器可以播放音乐,我就想到每次别人生日,生日蛋糕中带的那个东西都可以响好长时间,好烦好烦。我也好想做一个这么烦的东西啊,可是手里没设备~

还有就是遇到开发要在自己电脑开发,调试要在别的电脑调试的情况,可以在VSCode上装一个sftp插件,这样当你保存文件时就会自动上传到服务器,十分好用。

最后想说的是,我还有这么多传感器要把玩呢,有兴趣的话要关注我欧~

Godbobo wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
坚持原创技术分享,您的支持将鼓励我继续创作!