基于树莓派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. 结合云平台:将数据上传到云平台,通过手机或其他设备远程控制风扇状态。

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

相关推荐
飞凌嵌入式10 小时前
工业控制+AI视觉齐发,飞凌嵌入式将亮相国际物联网展·深圳站
人工智能·物联网
老孙讲技术10 小时前
老板说「网页上嵌个监控就行」?黑屏三小时后我才搞懂:播放器要的不是 accessToken
物联网·音视频开发·小程序·云开发
老孙讲技术11 小时前
监控刷了 200 条动检,漏掉一次紧急按钮:养老 SaaS 的事件桥接与 P0/P1 分级
物联网·音视频开发·小程序·云开发
门思科技11 小时前
LoRaWAN Regional Parameters:为什么 CN470 和 EU868 的频点数不同
python·物联网
TDengine (老段)13 小时前
TDengine 如何支撑金隅集团水泥业务的能源精细化管控
大数据·数据库·物联网·能源·时序数据库·tdengine·涛思数据
会周易的程序员14 小时前
软件接入大模型实现 Agent —— 从原理到 C++ 落地完全指南
c++·人工智能·物联网·架构·agent·工业协议·mcp
智购科技无人售货机厂家15 小时前
2026自动售货机远程运维平台设计:从设备诊断到预测性维护的工程实践~YH
运维·python·物联网·架构·django·scikit-learn
延凡科技16 小时前
从 “黑灯工厂“ 到 “数字孪生“:智慧工厂平台落地实践
大数据·物联网·架构·数字孪生
虎王物联16 小时前
Docker Compose一键部署物联网平台:EMQX+InfluxDB+Grafana完整方案
物联网·docker·grafana·emqx
绿智校园16 小时前
物联网平台选型指南:为什么底层协议自研比云端SDK接入更可靠?
java·物联网·struts