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

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

相关推荐
广东大榕树信息科技有限公司9 小时前
当运维管理面临挑战时,如何借助动环监控系统提升响应能力?
运维·网络·物联网·国产动环监控系统·动环监控系统
北京耐用通信9 小时前
耐达讯自动化网关:用Profinet唤醒沉睡的DeviceNet流量计,省下60%改造费!
人工智能·科技·物联网·网络协议·自动化·信息与通信
九河云10 小时前
血液中心 “冷链箱 IoT + 区块链”:让每一袋血浆的 2-8℃曲线被法院采证,断链纠纷降为 0
物联网·区块链
珠海西格电力13 小时前
零碳园区应急能源基础架构规划:备用电源与清洁能源联动配置
大数据·运维·人工智能·物联网·能源
北京耐用通信14 小时前
工程师实战:如何以最小成本,耐达讯自动化无缝连接Profinet转DeviceNet网关
人工智能·物联网·网络协议·自动化·信息与通信
墨染倾城殇15 小时前
蓝牙模块全品类解决方案:低功耗、数传、音频模块赋能物联网创新
物联网·音视频·蓝牙模块·低功耗蓝牙模块·飞易通·蓝牙选型
三佛科技-1341638421215 小时前
LP3799FAES-B 反激式电源控制器芯片 典型应用电路
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
TDengine (老段)15 小时前
山东港口科技借助 TDengine 构建智慧港口“数据基石”
大数据·数据库·物联网·时序数据库·tdengine
黑客思维者16 小时前
DL/T 645物联网设备一物一码协议架构设计
物联网·一物一码·dl/t 645
广东大榕树信息科技有限公司16 小时前
如何通过动环监控系统提升机房安全与管理效率?
运维·网络·物联网·国产动环监控系统·动环监控系统