Считывание аналоговых датчиков с помощью Raspberry Pi и Zabbix Supervisor
Аналоговые датчики чтения с Raspberry Pi в качестве интерфейса
Raspberry Pi не имеет встроенных аналоговых входов, а это означает, что использовать многие из доступных датчиков немного затруднительно. Нам нужен аналого-цифровой интерфейс, легко настраиваемый в RPi, и MCP3008 - это ответ.
MCP3008 - это 10-битный 8-канальный аналого-цифровой преобразователь (АЦП). Он дешев, прост в подключении и не требует дополнительных компонентов. Он использует протокол шины SPI, который поддерживается заголовком GPIO Pi.
В этой статье объясняется, как использовать устройство MCP3008 для обеспечения 8 аналоговых входов, которые можно использовать с рядом датчиков. В приведенном ниже примере схемы я использую MCP3008 для считывания показаний датчика освещенности и управления / наблюдения за освещением внутри Zabbix.
Оборудование:
- Raspberry Pi
- MCP3008 8-канальный АЦП
- Светозависимый резистор (LDR)
- резистор 10 кОм
- Макет
- Немного проводки
Автобус SPI
MCP3008 считывает аналоговое значение и выдает 10-битное число, которое передается по шине SPI.
Шина последовательного периферийного интерфейса или шина SPI - это стандарт синхронного последовательного канала данных, который работает в полнодуплексном режиме.
Устройства обмениваются данными в режиме ведущий / ведомый, когда ведущее устройство инициирует фрейм данных. Допускается использование нескольких ведомых устройств с отдельными строками выбора ведомого.
Иногда SPI называют четырехпроводной последовательной шиной, в отличие от трех-, двух- и однопроводной последовательной шины. SPI часто называют SSI (синхронный последовательный интерфейс).
Чтобы включить аппаратный SPI на RPi, нам нужно внести изменения в один из системных файлов:
судо нано /etc/modprobe.d/raspi-blacklist.conf
Добавьте символ "#" перед строкой spi-bcm2708. Используйте CTRL-X, затем Y, затем Return, чтобы сохранить файл и выйти. Перезагрузитесь, используя следующее:
перезагрузка sudo
Чтобы проверить, сработало ли изменение, выполните следующую команду:
lsmod
В выводе вы должны увидеть «spi_bcm2708».
Установить Python SPI Wrapper
В этом проекте мы собираемся использовать Python, и для чтения данных с шины SPI в Python мы можем установить библиотеку под названием «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,3 В |
VREF | 3,3 В |
AGND | ЗЕМЛЯ |
CLK | 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 кОм . При нормальном освещении его сопротивление составляет примерно 10 кОм, а в темноте оно увеличивается до более 2 МОм.
Когда много света, LDR имеет низкое сопротивление, что приводит к падению выходного напряжения до 0 В.
В темноте сопротивление LDR увеличивается, в результате чего выходное напряжение увеличивается до 3,3 В. В этом проекте был использован LDR, но любое устройство, изменяющее свое сопротивление в зависимости от некоторого явления, может быть использовано и подключено к ИС для управления.
Чтение данных
АЦП является 10-битным, поэтому он может сообщать диапазон чисел от 0 до 1023 (2 в степени 10). Значение 0 означает, что на входе 0 В, а значение 1023 означает, что на входе 3,3 В. Наш диапазон 0–3,3 В соответствует диапазону 0–10000 люкс.
Подробнее:Считывание аналоговых датчиков с помощью Raspberry Pi и Zabbix Supervisor
Производственный процесс
- Измерение температуры с помощью однопроводного датчика DS18B20 и Raspberry Pi
- Мониторинг комнатной температуры с Raspberry Pi и Nagios
- Считать температуру с помощью DS18B20 | Raspberry Pi 2
- Монитор температуры и влажности в домашних условиях (в комнате) с веб-диаграммой - Raspberry Pi
- Измерение температуры с помощью RASPBERRY PI
- Мониторинг комнатной температуры с помощью Moteino’s и Raspberry Pi
- Мониторинг температуры с помощью Raspberry Pi
- Контроллер умного дома 433 МГц с Sensorflare и RaspberryPi
- Считывание аналоговых датчиков с одним контактом GPIO
- Аналоговые датчики без аналоговых входов на Raspberry Pi