PureData 语言 树莓派 + 麦克风→环境噪声监测实战 分贝值→报警音效 + LED 警示

PureData阿木 发布于 1 天前 3 次阅读


树莓派环境噪声监测实战:从分贝值到报警音效与LED警示

随着城市化进程的加快,环境噪声污染问题日益严重。为了提高人们的生活质量,监测环境噪声成为一项重要任务。本文将介绍如何利用树莓派、PureData语言、麦克风以及一些电子元件,构建一个环境噪声监测系统。该系统能够实时监测环境噪声的分贝值,并在超过设定阈值时触发报警音效和LED警示。

系统概述

本系统主要由以下几部分组成:

1. 树莓派:作为系统的核心控制器,负责处理麦克风采集到的声音信号,并控制报警音效和LED警示。
2. 麦克风:用于采集环境噪声信号。
3. PureData语言:用于处理麦克风采集到的声音信号,并生成分贝值。
4. 报警音效:当环境噪声超过设定阈值时,触发报警音效。
5. LED警示:当环境噪声超过设定阈值时,点亮LED灯进行警示。

硬件准备

1. 树莓派(如树莓派3B+)
2. 麦克风(如MP3.5mm立体声麦克风)
3. 3.5mm音频线
4. LED灯(如红色LED灯)
5. 电阻(如220Ω电阻)
6. 杜邦线
7. 电源适配器

软件准备

1. 树莓派操作系统(如Raspbian)
2. PureData软件(下载地址:https://puredata.info/)

系统搭建

1. 树莓派配置

1. 将树莓派连接到电脑,并使用Micro-USB线供电。
2. 使用树莓派官方镜像烧录到SD卡,并插入树莓派。
3. 连接网络,并使用SSH工具登录树莓派。
4. 更新系统包:`sudo apt update && sudo apt upgrade`
5. 安装PureData:`sudo apt-get install puredata`

2. 麦克风连接

1. 将麦克风插入树莓派的3.5mm音频接口。
2. 将麦克风输出端连接到树莓派的GPIO引脚,用于控制LED灯。

3. LED灯连接

1. 将LED灯的正极连接到树莓派的GPIO引脚。
2. 将LED灯的负极连接到树莓派的GND引脚。
3. 在树莓派上串联一个220Ω电阻,以保护LED灯。

PureData代码编写

1. 打开PureData软件,创建一个新的项目。
2. 添加以下模块:

- `adc~`:用于读取麦克风采集到的声音信号。
- `dac~`:用于输出报警音效。
- `line~`:用于处理声音信号。
- `~`:用于连接模块。
- `metro`:用于控制报警音效和LED警示的触发频率。
- `select`:用于选择报警音效和LED警示的触发条件。

3. 编写以下代码:

```pd
N canvas 0 0 450 300 (subpatch) 0;
X array adc 1024 float 0;
X coords 0 1 1024 -1 200 140 1 0 0;
X restore 10 10 graph;
X obj 10 50 adc~;
X obj 10 100 line~;
X obj 10 150 dac~;
X obj 10 200 metro 100;
X obj 10 250 select 1 0;
X obj 10 300 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
X obj 10 350 outlet;
X obj 50 50 ~ 0.1;
X obj 50 100 env~;
X obj 50 150 threshold~ 0.1 0.1 1 1;
X obj 50 200 spigot;
X obj 80 50 loadbang;
X msg 80 100 1;
X obj 50 250 spigot;
X obj 90 50 r threshold;
X obj 90 100 == 1;
X obj 50 300 spigot;
X obj 130 50 r alarm;
X obj 130 100 == 1;
X connect 0 0 1 0;
X connect 1 0 2 0;
X connect 1 0 3 0;
X connect 2 0 4 0;
X connect 3 0 5 0;
X connect 4 0 6 0;
X connect 5 0 7 0;
X connect 5 1 8 0;
X connect 6 0 9 0;
X connect 7 0 10 0;
X connect 8 0 11 0;
X connect 9 0 12 0;
X connect 10 0 13 0;
X connect 11 0 14 0;
X connect 12 0 15 0;
X connect 13 0 16 0;
X connect 14 0 17 0;
X connect 15 0 18 0;
X connect 16 0 19 0;
X connect 17 0 20 0;
X connect 18 0 21 0;
X connect 19 0 22 0;
X connect 20 0 23 0;
X connect 21 0 24 0;
X connect 22 0 25 0;
X connect 23 0 26 0;
X connect 24 0 27 0;
X connect 25 0 28 0;
X connect 26 0 29 0;
X connect 27 0 30 0;
X connect 28 0 31 0;
X connect 29 0 32 0;
X connect 30 0 33 0;
X connect 31 0 34 0;
X connect 32 0 35 0;
X connect 33 0 36 0;
X connect 34 0 37 0;
X connect 35 0 38 0;
X connect 36 0 39 0;
X connect 37 0 40 0;
X connect 38 0 41 0;
X connect 39 0 42 0;
X connect 40 0 43 0;
X connect 41 0 44 0;
X connect 42 0 45 0;
X connect 43 0 46 0;
X connect 44 0 47 0;
X connect 45 0 48 0;
X connect 46 0 49 0;
X connect 47 0 50 0;
X connect 48 0 51 0;
X connect 49 0 52 0;
X connect 50 0 53 0;
X connect 51 0 54 0;
X connect 52 0 55 0;
X connect 53 0 56 0;
X connect 54 0 57 0;
X connect 55 0 58 0;
X connect 56 0 59 0;
X connect 57 0 60 0;
X connect 58 0 61 0;
X connect 59 0 62 0;
X connect 60 0 63 0;
X connect 61 0 64 0;
X connect 62 0 65 0;
X connect 63 0 66 0;
X connect 64 0 67 0;
X connect 65 0 68 0;
X connect 66 0 69 0;
X connect 67 0 70 0;
X connect 68 0 71 0;
X connect 69 0 72 0;
X connect 70 0 73 0;
X connect 71 0 74 0;
X connect 72 0 75 0;
X connect 73 0 76 0;
X connect 74 0 77 0;
X connect 75 0 78 0;
X connect 76 0 79 0;
X connect 77 0 80 0;
X connect 78 0 81 0;
X connect 79 0 82 0;
X connect 80 0 83 0;
X connect 81 0 84 0;
X connect 82 0 85 0;
X connect 83 0 86 0;
X connect 84 0 87 0;
X connect 85 0 88 0;
X connect 86 0 89 0;
X connect 87 0 90 0;
X connect 88 0 91 0;
X connect 89 0 92 0;
X connect 90 0 93 0;
X connect 91 0 94 0;
X connect 92 0 95 0;
X connect 93 0 96 0;
X connect 94 0 97 0;
X connect 95 0 98 0;
X connect 96 0 99 0;
X connect 97 0 100 0;
X connect 98 0 101 0;
X connect 99 0 102 0;
X connect 100 0 103 0;
X connect 101 0 104 0;
X connect 102 0 105 0;
X connect 103 0 106 0;
X connect 104 0 107 0;
X connect 105 0 108 0;
X connect 106 0 109 0;
X connect 107 0 110 0;
X connect 108 0 111 0;
X connect 109 0 112 0;
X connect 110 0 113 0;
X connect 111 0 114 0;
X connect 112 0 115 0;
X connect 113 0 116 0;
X connect 114 0 117 0;
X connect 115 0 118 0;
X connect 116 0 119 0;
X connect 117 0 120 0;
X connect 118 0 121 0;
X connect 119 0 122 0;
X connect 120 0 123 0;
X connect 121 0 124 0;
X connect 122 0 125 0;
X connect 123 0 126 0;
X connect 124 0 127 0;
X connect 125 0 128 0;
X connect 126 0 129 0;
X connect 127 0 130 0;
X connect 128 0 131 0;
X connect 129 0 132 0;
X connect 130 0 133 0;
X connect 131 0 134 0;
X connect 132 0 135 0;
X connect 133 0 136 0;
X connect 134 0 137 0;
X connect 135 0 138 0;
X connect 136 0 139 0;
X connect 137 0 140 0;
X connect 138 0 141 0;
X connect 139 0 142 0;
X connect 140 0 143 0;
X connect 141 0 144 0;
X connect 142 0 145 0;
X connect 143 0 146 0;
X connect 144 0 147 0;
X connect 145 0 148 0;
X connect 146 0 149 0;
X connect 147 0 150 0;
X connect 148 0 151 0;
X connect 149 0 152 0;
X connect 150 0 153 0;
X connect 151 0 154 0;
X connect 152 0 155 0;
X connect 153 0 156 0;
X connect 154 0 157 0;
X connect 155 0 158 0;
X connect 156 0 159 0;
X connect 157 0 160 0;
X connect 158 0 161 0;
X connect 159 0 162 0;
X connect 160 0 163 0;
X connect 161 0 164 0;
X connect 162 0 165 0;
X connect 163 0 166 0;
X connect 164 0 167 0;
X connect 165 0 168 0;
X connect 166 0 169 0;
X connect 167 0 170 0;
X connect 168 0 171 0;
X connect 169 0 172 0;
X connect 170 0 173 0;
X connect 171 0 174 0;
X connect 172 0 175 0;
X connect 173 0 176 0;
X connect 174 0 177 0;
X connect 175 0 178 0;
X connect 176 0 179 0;
X connect 177 0 180 0;
X connect 178 0 181 0;
X connect 179 0 182 0;
X connect 180 0 183 0;
X connect 181 0 184 0;
X connect 182 0 185 0;
X connect 183 0 186 0;
X connect 184 0 187 0;
X connect 185 0 188 0;
X connect 186 0 189 0;
X connect 187 0 190 0;
X connect 188 0 191 0;
X connect 189 0 192 0;
X connect 190 0 193 0;
X connect 191 0 194 0;
X connect 192 0 195 0;
X connect 193 0 196 0;
X connect 194 0 197 0;
X connect 195 0 198 0;
X connect 196 0 199 0;
X connect 197 0 200 0;
X connect 198 0 201 0;
X connect 199 0 202 0;
X connect 200 0 203 0;
X connect 201 0 204 0;
X connect 202 0 205 0;
X connect 203 0 206 0;
X connect 204 0 207 0;
X connect 205 0 208 0;
X connect 206 0 209 0;
X connect 207 0 210 0;
X connect 208 0 211 0;
X connect 209 0 212 0;
X connect 210 0 213 0;
X connect 211 0 214 0;
X connect 212 0 215 0;
X connect 213 0 216 0;
X connect 214 0 217 0;
X connect 215 0 218 0;
X connect 216 0 219 0;
X connect 217 0 220 0;
X connect 218 0 221 0;
X connect 219 0 222 0;
X connect 220 0 223 0;
X connect 221 0 224 0;
X connect 222 0 225 0;
X connect 223 0 226 0;
X connect 224 0 227 0;
X connect 225 0 228 0;
X connect 226 0 229 0;
X connect 227 0 230 0;
X connect 228 0 231 0;
X connect 229 0 232 0;
X connect 230 0 233 0;
X connect 231 0 234 0;
X connect 232 0 235 0;
X connect 233 0 236 0;
X connect 234 0 237 0;
X connect 235 0 238 0;
X connect 236 0 239 0;
X connect 237 0 240 0;
X connect 238 0 241 0;
X connect 239 0 242 0;
X connect 240 0 243 0;
X connect 241 0 244 0;
X connect 242 0 245 0;
X connect 243 0 246 0;
X connect 244 0 247 0;
X connect 245 0 248 0;
X connect 246 0 249 0;
X connect 247 0 250 0;
X connect 248 0 251 0;
X connect 249 0 252 0;
X connect 250 0 253 0;
X connect 251 0 254 0;
X connect 252 0 255 0;
X connect 25