树莓派综合实验01——温控报警

        如何让快速掌握树莓派?学完单个模块后,想要检验综合运用的能力,可以试下这个。或者有其他单片机开发经验,简单了解入门树莓派程序架构后,也可直接学习综合实验。废话不多说,直接上干货。参考文章:树莓派综合项目1:智能温度测量系统实验_chinacqzgp的博客-CSDN博客_树莓派综合实验

所需主要元器件:

有源蜂鸣器模块*1

RGB LED 模块*1

DS18B20 温度传感器模块*1

PCF8591 AD/DA转换模块*1

PS2 操作手柄模块*1

一、接线

         各模块按照VCC、GND等接线即可。其他按照

LedR    =    11  #G17
LedG    =    12  #G18
LedB    =    13  #G27
Buzz    =    15  #G22

        DS18B20温度传感器:输出口接 7 #G4

        PS2操纵杆的Y、X、SW分别与PCF8591数模转换模块的AIN0、AIN1、AIN2相接。(注意这里Y接0,X接1)

        这里定义引脚采用的是BOARD物理管脚编码。实际接线则是按照T型转接板的17、18、27、22接线。引脚定义如图1: 

  图1 树莓派引脚定义图

不懂引脚编码可参考这篇文章:

树莓派4B引脚定义及运行实例_Dumbking的博客-CSDN博客_树莓派4b引脚

二、程序

        不可直接拷贝参考文章程序的最后一个程序(第七步),需要保存每个程序到综合程序的同一个文件夹下。如图2:

图2  程序包含文件

        temperature.py为主程序。文件夹__pycache__为程序运行时自动生成的文件夹。各程序如下:

02_rgb_led.py

#!/usr/bin/env python   #告诉Linux本文件是一个Python程序
import RPi.GPIO as GPIO    #导入控制GPIO的模块,RPi.GPIO
import time     #导入时间模块,提供延时、时钟和其它时间函数

colors = [0xFF0000, 0x00FF00, 0x0000FF, 0xFFFF00, 0xFF00FF, 0x00FFFF] #颜色列表
R = 11        #定义物理针脚号
G = 12
B = 13

def setup(Rpin, Gpin, Bpin):
    global pins   #在函数内部声明被其修饰的变量是全局变量
 
  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值