基于树莓派Pico和声音传感器实现声控风扇的技术分享

声音传感器作为一种能够感应环境声音的模块,在物联网和智能家居中有着广泛应用。本项目结合树莓派Pico声音传感器电机模块风叶片,实现了一个简单的声控风扇系统。通过声音的强弱,用户可以控制风扇的开关,并通过Pico板的LED指示风扇状态。


一、项目目标

利用声音传感器感应周围环境的声音强度,当声音强度超过设定阈值时,控制电机模块驱动风扇旋转,并点亮树莓派Pico板上的LED。反之,当声音强度低于阈值时,风扇停止转动,LED熄灭。


二、所需元件

  1. 树莓派Pico开发板 × 1
  2. 声音传感器模块 × 1
  3. 130电机模块 × 1
  4. 三叶软桨 × 1
  5. 220Ω电阻 × 1
  6. USB线 × 1
  7. 杜邦线若干
  8. 面包板 × 1

点我获取套件


三、元件知识

1. 声音传感器

声音传感器一般由内置的电容驻极体麦克风和功率放大器组成,能够感应周围环境的声音强度。该模块提供模拟输出(S引脚),可以通过树莓派Pico的模拟输入接口采集实时的声音信号。传感器还配有电位器,用于调节灵敏度,便于设置阈值。

2. 130电机模块

该电机模块采用HR1124S电机驱动芯片,适用于低功耗、低电压的应用。它通过H桥电路控制电机的转动方向和启停。


四、电路连接

  1. 声音传感器与树莓派Pico连接

    • 声音传感器的 VCC 连接到 Pico 的 3.3V
    • 声音传感器的 GND 连接到 Pico 的 GND
    • 声音传感器的 S 引脚(模拟输出)连接到 Pico 的 GPIO28(ADC2)。
  2. 电机模块与树莓派Pico连接

    • 电机模块的 Motor_IN+ 引脚连接到 Pico 的 GPIO17
    • 电机模块的 Motor_IN- 引脚连接到 Pico 的 GPIO16
    • 电机模块的 VCC 连接到 Pico 的 5V
    • 电机模块的 GND 连接到 Pico 的 GND
  3. LED与树莓派Pico连接

    • LED的正极通过220Ω电阻连接到 Pico 的 GPIO25(内置LED引脚)。
    • LED的负极连接到 Pico 的 GND。

五、代码实现

以下代码通过声音传感器读取环境声音强度,当声音强度超过阈值时,驱动风扇转动并点亮LED,反之则停止风扇转动并熄灭LED。

复制代码
//**********************************************************************************
/*  
 * 文件名 : 声控风扇
 * 描述 : 通过声音传感器控制风扇
 * 作者  : 
*/
#define PIN_ADC2   28  // 声音传感器的引脚
#define PIN_Motorla    17  // 电机的Motor_IN+引脚
#define PIN_Motorlb    16  // 电机的Motor_IN-引脚
#define PIN_LED    25  // Pico板上内置LED的引脚

void setup() {
  pinMode(PIN_LED, OUTPUT);        // 设置LED为输出
  pinMode(PIN_Motorla, OUTPUT);    // 设置电机Motor_IN+为输出
  pinMode(PIN_Motorlb, OUTPUT);    // 设置电机Motor_IN-为输出
  pinMode(PIN_ADC2, INPUT);        // 设置声音传感器的ADC引脚为输入
}

void loop() {
  int adcVal = analogRead(PIN_ADC2); // 读取声音传感器的ADC值
  if (adcVal > 600) {  // 根据阈值判断声音强度
    digitalWrite(PIN_LED, HIGH); // 点亮LED
    digitalWrite(PIN_Motorla, HIGH); // 电机正转,风扇启动
    digitalWrite(PIN_Motorlb, LOW);
    delay(5000);  // 延时5秒,风扇持续转动
  } else {
    digitalWrite(PIN_LED, LOW);  // 熄灭LED
    digitalWrite(PIN_Motorla, LOW); // 停止电机转动
    digitalWrite(PIN_Motorlb, LOW);
  }
}
//**********************************************************************************
代码解析
  1. 读取声音传感器 :使用 analogRead(PIN_ADC2) 读取声音传感器的模拟输出值,返回0到1023之间的数字值。
  2. 判断声音强度:设置阈值(600),当声音强度超过阈值时,LED点亮并且电机开始转动。
  3. LED控制 :通过 digitalWrite(PIN_LED, HIGH)LOW 控制Pico内置LED的状态,反馈风扇是否启动。

六、测试与实验现象

  1. 上传代码

    • 将代码上传到树莓派Pico。
    • 确保声音传感器与Pico正确连接,电机模块和LED按图连接。
  2. 实验现象

    • 正常情况下,当周围环境的声音强度较低时,风扇停止旋转,LED熄灭。
    • 当对声音传感器进行拍手或产生较大声音时,声音强度超过设定阈值,风扇开始转动,LED点亮。
    • 风扇在5秒后自动停止,并熄灭LED,进入待机状态。

七、总结与扩展

通过本项目,您不仅学会了如何使用声音传感器与树莓派Pico进行声音感应,还实现了一个基本的声控风扇系统。该项目具有很好的扩展性,可以与其他传感器结合,实现更复杂的智能控制。

扩展建议
  1. 声音识别:除了声音强度,还可以结合语音识别模块,实现基于特定指令的风扇控制。
  2. 多风扇控制:通过多路PWM控制多个风扇,形成更复杂的环境控制系统。
  3. 结合云平台:将数据上传到云平台,通过手机或其他设备远程控制风扇状态。

通过这个项目,您不仅学习了如何搭建声控设备的基本流程,还为将来更多嵌入式应用的开发打下了坚实的基础。

相关推荐
委员4 小时前
基于NodeMCU的物联网空调控制系统设计
单片机·mcu·物联网·智能家居
逝灮5 小时前
【蓝桥杯——物联网设计与开发】拓展模块3 - 温度传感器模块
驱动开发·stm32·单片机·嵌入式硬件·物联网·蓝桥杯·温度传感器
有续技术8 小时前
工厂常用软件系统大全中英文全称对照表及功能介绍应用场景ERP MES WMS SCADA IOT SAP等软件系统介绍
物联网
嗯? 嗯。1 天前
遇见物联网
物联网
神一样的老师1 天前
物联网:全面概述、架构、应用、仿真工具、挑战和未来方向
物联网
深圳博达智联1 天前
V900新功能-电脑不在旁边,通过手机给PLC远程调试网关配置WIFI联网
物联网
TDengine (老段)2 天前
TDengine 新功能 通过 UID 删除不可见表
大数据·数据库·物联网·时序数据库·tdengine
美迅物联网 MesoonRF2 天前
HC04,HC05,HC06,HC08蓝牙模块可替换产品的优势
嵌入式硬件·物联网
开源网安2 天前
安徽移动携手开源网安亮相2024中国国际车联网技术大会,共筑车联网安全新壁垒
物联网·安全·汽车·车联网