树莓派3 声音传感器(win10)

这段时间太忙了,项目收尾一直没有时间继续捣鼓树莓派,正好趁这个双休抽点时间来和我的小伙伴玩耍一把。上篇文章提到我想用Win10 Iot
Core

和买来的一堆传感器摩擦出一些火花,虽然,已经有很多前辈做过,但是我没有做过啊,没做过又怎么能体会到实践的乐趣呢。先来一张传感器全家福吧!

这么一大堆传感器,要先玩那个呢,啊!纠结症又犯了,挑挑拣拣了好久,最后决定先搞一个简单点的---声音检测传感器。那么,接下来就是看资料

了,还好店家提供相关技术文档,这里为避嫌,就不提供店家地址。其实原理很简单,以下是我摘录的:

一、模块描述

1.可以检测周围环境的声音强度
,使用注意:此传感器只能识别声音的有无(根据震动原理)不能识别声音的大小或者特定频率的声音

2 .灵敏度可调(图中蓝色数字电位器调节)

3.工作电压3.3V-5V

4.输出形式数字开关量输出(0和1高低电平)

二、模块接口说明

1. VCC外接3.3V-5V电压(可以直接与
5v 单片机和3.3v单片机相连)

2. GND外接GND

3. DO小板数字量输出接口(0和
1)

三、使用说明

1.声音模块对环境声音强度最敏感,一般用来检测周围环境的声音强度。

2.模块在环境声音强度达不到设定阈值时,DO口输出高电平,当外界环境声音强度超过设定阈值时,模块
D0输出低电平

3.小板数字量输出 D0可以与单片机直接相连,通过单片机来检测高低电平,由此来检测环境的声音

四、原理图

接下来,我们要做的就是检查声音传感器是否正常:在相对安静的环境中,将模块的VCC接到树莓派的3.3V
PWR电源正极上,将模块的GND接到树莓派

的GND上(我选了39),此时,模块的电源指示灯会亮,说明你的传感器OK。如果开关提示也亮了,说明传感器对当前环境声音太灵敏了,可以调节蓝色

数字电位器,使之灵敏度降低。附上测试接线图和树莓派GPIO引脚位置图:

然后就是如何接线了,我使用了6根杜邦线(3根公对母,3根公对公),具体接线步骤:将第一根公对母杜邦线母端接到树莓派3.3V
PWR电源引脚上,

公端接到面包板的正极上(红线);将第二根公对母杜邦线母端接到树莓派GND负极引脚上,公端接到面包板负极上(棕线);将第三根公对母杜邦线母

端接到树莓派GPIO 5引脚上,公端接到LED灯长脚上(灰线);将第一根公对公杜邦线的一端接到面包板电源正极上,另一端接到传感器VCC上(红线);

将第二根公对公杜邦线的一端接到面包板电源负极上,另一端接到传感器GND上(棕线);将最后一根公对公杜邦线的一端接到传感器的OutPut(DO)上,

另一端接到LED等的短脚上(紫线)。最后接线如图所示:

见证奇迹的时刻到了,新建一个UWP空白应用(通用Windows),将以下代码粘到MainPage中,然后部署到树莓派中的Win10中即可。至于怎么安装

系统、部署应用和web远程控制,待我下次整理出一个文档,当然,你也可以自己在网上搜。另外:源码来源于网友汪宇杰Edi.Wang

public sealed partial class MainPage : Page
    {
        //LED灯引脚
        public GpioPin LedPin { get; set; }

        //声音传感器引脚
        public GpioPin SoundPin { get; set; }

        //保存LED灯的开关状态
        public bool IsLightOn { get; set; }

        public MainPage()
        {
            this.InitializeComponent();
            Loaded += OnLoaded;
        }

        /// <summary>
        /// Loaded事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="routedEventArgs"></param>
        private void OnLoaded(object sender, RoutedEventArgs routedEventArgs)
        {
            //初始化GPIO控制器
            var controller = GpioController.GetDefault();
            if (null != controller)
            {
                //LED是高电平输出表示开,所以第一次启动的时候要关灯,输出低电平
                LedPin = controller.OpenPin(5);
                LedPin.SetDriveMode(GpioPinDriveMode.Output);
                LedPin.Write(GpioPinValue.Low);

                //FC-04的GPIO 06端口是接受信号的,所以是输入
                SoundPin = controller.OpenPin(6);
                SoundPin.SetDriveMode(GpioPinDriveMode.Input);

                //监测声音传感器引脚值得变化
                SoundPin.ValueChanged += (pin, args) =>
                {
                    //读取引脚值(FC-04传感器只有两个值0、1)
                    var pinValue = SoundPin.Read();
                    //FC-04检测到声音时候会在DO输出低电平
                    if (pinValue == GpioPinValue.Low)
                    {
                        Debug.WriteLine("Sound Detected!");
                        //开关灯操作(设置LED引脚值)
                        LedPin.Write(IsLightOn ? GpioPinValue.Low : GpioPinValue.High);
                        IsLightOn = !IsLightOn;
                    }
                };
            }
        }
    }

总结:在实践过程中遇到了不少问题,毕竟是小白,有很多不懂不会的地方,但是,还是那句话,只要思想不倒退,办法总比困难多。最后,来看一

下效果图吧!

时间: 2024-10-01 19:23:04

树莓派3 声音传感器(win10)的相关文章

树莓派 LED+蜂鸣+声音传感器+红外模块组合打造声控/红外控制LED

昨天搞了控制LED,玩了第一个,剩下的就感觉很简单了,这里记录一下 先来几张照片 玩了蜂蜜模块才发现规律,一般这种模块,都会有三个针脚,VCC(3.3V或5V供电输出针脚).GNC(对应GPIO针脚的GNC).OUT/(I/O)(对应GPIO编号的针脚),如果是需要向树莓派发送信息的,这个模块上标识的是OUT,例如这里用的声音传感器和人体红外传感器,这两个都是需要向树莓派发送侦测的信息,如果不需要向树莓派发送消息的,则标识的是I/O,比如我这个蜂鸣模块,这只是我用这三个传感器发现的,可能不正确

云中树莓派(4):利用声音传感器控制Led灯

云中树莓派(1):环境准备 云中树莓派(2):将传感器数据上传到AWS IoT 并利用Kibana进行展示 云中树莓派(3):通过 AWS IoT 控制树莓派上的Led 云中树莓派(4):利用声音传感器控制Led灯 1. 声音传感器及其配置 声音传感器如下图所示: 将 VCC 引脚接入树莓派 5V 引脚,将 GND 引脚接入树莓派 GND 引脚,将 OUT 引脚接入树莓派 GPIO20. 要注意,模块在环境声音强度达不到设定阈值时,OUT输出高电平(1),当外界环境声音强度超过设定阈值时,模块O

树莓派3连接声音传感器声控

#!/usr/bin/env python # encoding: utf-8 import RPi.GPIO import time # LED正极连接的GPIO口 LED = 17 # 声音感应器OUT口连接的GPIO口 SENSOR = 4 # 当前LED灯的开关状态 flg = False RPi.GPIO.setmode(RPi.GPIO.BCM) # 指定GPIO4(声音感应器的OUT口连接的GPIO口)的模式为输入模式 # 默认拉高到高电平,低电平表示OUT口有输出 RPi.GPI

[转载] 树莓派读取温湿度传感器DHT11

原文地址: http://blog.csdn.net/liang890319/article/details/8739683 硬件: 树莓派 2.0 DHT模块  接树莓派5V GND GPIO1 功能:读取传感器数据并打印出来 // //mydht11.c // #include <wiringPi.h> #include <stdio.h> #include <stdlib.h> typedef unsigned char uint8; typedef unsign

35 树莓派读取温湿度传感器

方式1 直接读取 https://blog.csdn.net/u010900754/article/details/53078615 在连线的时候注意编码方式,注意树莓派引脚图的方向,如上图所示.我用的是三个头的dht11传感器,因此连线方式是: VCC(或正极) --- 树莓派的3v电源 GND (地线或者负极)--- 树莓派的gnd接口 DATA (D或者out) ---树莓派的GPIO引脚 注意自己的传感器的接口的顺序. import RPi.GPIO as GPIO import tim

树莓派读取DHT11传感器的源代码

import wiringpi2 as gpio owpin=8 #第8脚为1-wire脚 def getval(owpin): tl=[] #存放每个数据位的时间 tb=[] #存放数据位 gpio.wiringPiSetup() #初始化wiringpi库 gpio.pinMode(owpin,1) #设置针脚为输出状态 gpio.digitalWrite(owpin,1) #输出高电平 gpio.delay(1) gpio.digitalWrite(owpin,0) #拉低20ms开始指令

在树莓派上使用火焰,声音,震动,光敏传感器

作为一个软件工程专业的学生,对传感器等硬件的使用一直不太顺手,而在树莓派使用Python的RPi.GPIO,进行传感器等硬件的使用却是非常方便.而且使用树莓派这个网络功能强大的控制中心,其在物联网方面的使用也将更加广泛. 这次我主要使用了火焰,声音,震动,光敏这四个传感器进行了简单的测试,对其进行扩展组合使用就靠大家的想法了.话不多说,下面开始. 传感器 火焰传感器 用途: 各种火焰,火源探测 模块特色: 1. 可以检测火焰或者波长在760纳米-1100纳米范围内的光源,打火机测试火焰距离为80

解决树莓派新内核无法使用18B20和没有声音的问题

现在新版的树莓派内核由于为了兼容树莓派2和树莓派B+等以前的版本,采用了和原来不同的内核运行方式,使用了设备树的方式,更加灵活.但是由于可能不习惯这样的方式以及没太多相关这方面的介绍,导致很多用户更新了内核后出现比如接18B20无法读取设备信息,以及树莓派没有声音输出的问题. 在这里细心的用户就会发现在新内核boot分区下多了个overlays文件夹,里面有很多dtb文件,这些其实就是树莓派的设备树,打开README,就可以知道该怎么使用了. 下面是来自README的话: Introductio

树莓派系列二(语音识别)

树莓派的基本概念和安装系统在系列文章一中介绍了.这篇准备介绍一下语音识别. 一直想研究一下语音识别,用来做家庭物联网的控制入口,未来也许就是这样,讯飞的叮咚音响可以连接京东的物联平台,苹果的homekit平台,华为的平台暂时落后的有点多... 国内语音识别领域,我个人比较欣赏讯飞.识别效果业界领先,这几年百度语音识别也在追赶,这次的研究让我对百度的语音识别效果刮目相看,Google的在国内不用想了... 言归正传 1讯飞语音识别接口. 这次在树莓派上实现语音识别控制家里的设备(插座,灯 等等)的