使用 Raspberry Pi 和 Zabbix Supervisor 读取模拟传感器
使用 Raspberry Pi 作为接口读取模拟传感器
Raspberry Pi 没有内置模拟输入,这意味着使用许多可用的传感器有点麻烦。我们需要一个易于在 RPi 中配置的 A/D 接口,而 MCP3008 就是答案。
MCP3008 是一款 10 位 8 通道模数转换器 (ADC)。它便宜、易于连接并且不需要任何额外的组件。它使用由 Pi 的 GPIO 头支持的 SPI 总线协议。
本文介绍了如何使用 MCP3008 器件提供 8 个模拟输入,您可以将这些输入用于一系列传感器。在下面的示例电路中,我使用 MCP3008 读取光传感器并控制/监督 Zabbix 内部的光。
硬件:
- 树莓派
- MCP3008 8 通道 ADC
- 光敏电阻 (LDR)
- 10 欧姆电阻
- 面包板
- 一些接线
SPI 总线
MCP3008 读取模拟值并给出一个 10 位数字,由 SPI 总线传输。
串行外设接口总线或 SPI 总线是一种同步串行数据链路标准,工作在全双工模式。
设备以主/从模式进行通信,其中主设备发起数据帧。允许多个从设备使用单独的从设备选择线。
有时 SPI 被称为四线串行总线,与三线、两线和单线串行总线形成对比。 SPI通常被称为SSI(同步串行接口)。
要在 RPi 上启用硬件 SPI,我们需要对系统文件之一进行修改:
sudo nano /etc/modprobe.d/raspi-blacklist.conf
在 spi-bcm2708 行前面添加一个“#”字符。使用 CTRL-X,然后是 Y,然后使用 Return 来保存文件并退出。使用以下命令重新启动:
sudo 重启
要检查更改是否有效,请运行以下命令:
lsmod
您应该会在输出中看到“spi_bcm2708”。
安装 Python SPI 包装器
在这个项目中,我们将使用 Python,为了在 Python 中从 SPI 总线读取数据,我们可以安装一个名为“py-spidev”的库。要安装它,我们首先需要安装‘python-dev’:
sudo apt-get install python-dev
然后完成我们可以下载'py-spidev'并编译它准备使用:
mkdir py-spidevcd py-spidevwget https://raw.github.com/doceme/py-spidev/master/setup.pywget https://raw.github.com/doceme/py-spidev/master/spidev_module .csudo python setup.py 安装
MCP3008 | RPi |
---|---|
VDD | 3.3V |
VREF | 3.3V |
AGND | 地面 |
时钟 | GPIO11 (P1-23) |
DOUT | GPIO9 (P1-21) |
DIN | GPIO10 (P1-19) |
CS | GPIO8 (P1-24) |
DGND | 地面 |
CH0-CH7引脚为8路模拟输入。
光敏电阻
我选择了 LDR EG &G Vactec、VT43、CdS、8 Ω 至 300 KΩ .正常光照下其电阻约为10Kohm,而在黑暗中增加到2Mohm以上。
当光线充足时,LDR 电阻低,导致输出电压下降到 0V。
当天黑时,LDR 电阻增加,导致输出电压增加到 3.3V。在这个项目中已经使用了一个 LDR,但是任何根据某种现象改变其电阻的设备都可以使用并连接到要控制的 IC 中。
读取数据
ADC 是 10 位,因此它可以报告从 0 到 1023(2 的 10 次方)的数字范围。读数为 0 表示输入为 0V,读数为 1023 表示输入为 3.3V。我们的 0-3.3V 范围相当于 0-10000 Lux 范围。
有关更多详细信息:使用 Raspberry Pi 和 Zabbix Supervisor 读取模拟传感器
制造工艺
- 使用 1 线 DS18B20 传感器和 Raspberry Pi 测量温度
- 使用 Raspberry Pi 和 Nagios 监测室温
- 使用 DS18B20 读取温度 |树莓派 2
- 带有基于 Web 的图表的家庭(房间)温度和湿度监视器 – Raspberry Pi
- 使用 RASPBERRY PI 测量温度
- 使用 Moteino 和 Raspberry Pi 监测室温
- 使用 Raspberry Pi 监测温度
- 带有 Sensorflare 和 RaspberryPi 的 433MHz 智能家居控制器
- 使用一个 GPIO 引脚读取模拟传感器
- Raspberry Pi 上没有模拟输入的模拟传感器
- 用三星 SAMIIO、Arduino UNO 和 Raspberry Pi 在几分钟内制作一个火灾探测器
- Raspberry Pi 传感器