树莓派高分贝报警器和键盘

前言:这学期选了嵌入式这门课,对于以后打算走web前后端开发路线的我感觉这门课对我来说主要的用处是学习操作系统,看了某内的视频课,学完了UnixC部分让我受益匪浅,但看到后面裸板开发和驱动程序部分让我停下了脚步,往后继续学的话要花费很多的时间精力,这里我做了妥协处理(不是专业方向别花太多时间),但为了这门课不摆烂或者说入个嵌入式的门我还是买了个树莓派写了些好玩的小项目。写代码之前1. 连接树莓派:一开始选择ssh连接,后来为了跟嵌入式搭点边有又学了串口连接(硬件层面的连接),但ssh真的太香了,开发过程
摘要由CSDN通过智能技术生成

前言:这学期选了嵌入式这门课,对于以后打算走web前后端开发路线的我感觉这门课对我来说主要的用处是学习操作系统,看了某内的视频课,学完了UnixC部分让我受益匪浅,但看到后面裸板开发和驱动程序部分让我停下了脚步,往后继续学的话要花费很多的时间精力,这里我做了妥协处理(不是专业方向别花太多时间),但为了这门课不摆烂或者说入个嵌入式的门我还是买了个树莓派写了些好玩的小项目。

写代码之前

1. 连接树莓派:一开始选择ssh连接,后来为了跟嵌入式搭点边有又学了串口连接(硬件层面的连接),但ssh真的太香了,开发过程中我还是选择ssh连接

2. GPIO口和高低电平:我是计算机专业的,不是电子,对这些只了解个皮毛,反正就是树莓派提供了GPIO口,可以input或者output高电平低电平,用来外接别的设备,代码也就类似于驱动程序来处理一些逻辑(听老师说驱动程序还要带什么操作系统,我这里的树莓派准确来说并不是纯裸板,并不能从专业的嵌入式编程,也就自己玩玩)

3. 环境:树莓派4b 一堆杜邦线 笔记本电脑网线接路由器 树莓派网线接路由器 无源蜂鸣器,有源蜂鸣器,面包板, LED小灯珠,声敏光敏传感器,4*4小键盘等

项目1:高分贝报警器

input:声敏传感器 output:无源蜂鸣器

简介:简单的IO

import RPi.GPIO as GPIO
import time
import signal

INPUT = 12
OUTPUT = 25

def sound(i, o, t):
    GPIO.setwarnings(False)
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(o, GPIO.OUT)
    GPIO.setup(i, GPIO.IN)
    
    def handler(signum, frame):
        GPIO.output(o, GPIO.LOW)
        exit(0)
    signal.signal(signal.SIGINT, handler)
    
    while 1:
        if GPIO.input(i) != 0:
            GPIO.output(o, GPIO.HIGH)
            time.sleep(t)
        else:
            GPIO.output(o, GPIO.LOW)
sound(INPUT, OUTPUT, 0.1)

项目2:简陋钢琴

input:4*4键盘 output:有源蜂鸣器

简介:这个是期中写的项目,期末现在写博客懒得改细节了 ,music类是根据12平均律输出音符,具体部分看乐理书去,keyboarg_music类是调用了music类根据键盘输入输出音符(这里最好键盘封装一个类,music封装一个,调用写一个程序好一点,不过我懒的改了),使用手册如下:

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

1-12为C到B
13降一个8度,14升一个8度,15回到中间的8度,16输出小星星(你可以自己改代码写曲子)

# Music.py
import RPi.GPIO as GPIO
import time
class Music:
    #  c1_  is c1#
    c1  = 33
    c1_ = 35
    d1  = 37
    d1_ = 39
    e1  = 41
    f1  = 44
    f1_ = 46
    g1  = 49
    g1_ = 52
    a1  = 55
    a1_ = 58
    b1  = 62
    
    c2  = 65
    c2_ = 69
    d2  = 73
    d2_ = 78
    e2  = 82
    f2  = 87
    f2_ = 93
    g2  = 98
    g2_ = 104
    a2  = 110
    a2_ = 117
    b2  = 123

    c3  = 131
    c3_ = 139
    d3  = 147
    d3_ = 156
    e3  = 165
    f3  = 175
    f3_ = 185
    g3  = 196
    g3_ = 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
树莓派温湿度蜂鸣器代码: ```python import Adafruit_DHT import RPi.GPIO as GPIO import time # 设置 DHT11 传感器的引脚 DHT11_pin = 4 # 设置蜂鸣器的引脚 buzzer_pin = 17 # 初始化蜂鸣器引脚 GPIO.setmode(GPIO.BCM) GPIO.setup(buzzer_pin, GPIO.OUT) # 循环读取温湿度数据并控制蜂鸣器 while True: # 读取温湿度数据 humidity, temperature = Adafruit_DHT.read_retry(11, DHT11_pin) # 如果读取成功 if humidity is not None and temperature is not None: # 打印温湿度数据 print('Temperature: {0:0.1f}C, Humidity: {1:0.1f}%'.format(temperature, humidity)) # 如果温度超过 25C 或者湿度超过 60% if temperature > 25 or humidity > 60: # 控制蜂鸣器响起 GPIO.output(buzzer_pin, GPIO.HIGH) time.sleep(0.5) GPIO.output(buzzer_pin, GPIO.LOW) time.sleep(0.5) else: # 如果读取失败,打印错误信息 print('Failed to read DHT11 sensor data') ``` 树莓派烟雾报警代码: ```python import RPi.GPIO as GPIO import time # 设置烟雾传感器的引脚 smoke_sensor_pin = 18 # 设置蜂鸣器的引脚 buzzer_pin = 17 # 初始化烟雾传感器引脚 GPIO.setmode(GPIO.BCM) GPIO.setup(smoke_sensor_pin, GPIO.IN) # 初始化蜂鸣器引脚 GPIO.setup(buzzer_pin, GPIO.OUT) # 循环检测烟雾传感器状态并控制蜂鸣器 while True: # 读取烟雾传感器状态 smoke_sensor_state = GPIO.input(smoke_sensor_pin) # 如果检测到烟雾 if smoke_sensor_state == GPIO.HIGH: # 控制蜂鸣器响起 GPIO.output(buzzer_pin, GPIO.HIGH) time.sleep(0.5) GPIO.output(buzzer_pin, GPIO.LOW) time.sleep(0.5) else: # 如果没有检测到烟雾,关闭蜂鸣器 GPIO.output(buzzer_pin, GPIO.LOW) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值