Membaca Sensor Analog dengan Raspberry Pi dan Zabbix: Panduan Langkah demi Langkah
Membaca Sensor Analog dengan Raspberry Pi dan Zabbix
Meskipun Raspberry Pi tidak memiliki input analog bawaan, MCP3008 ADC 10-bit, 8-saluran membuatnya mudah untuk menambahkan kemampuan analog. Ini terhubung langsung ke header GPIO Pi melalui bus SPI dan tidak memerlukan komponen tambahan.
Tutorial ini memandu Anda melalui penyaluran MCP3008 ke Pi, membaca resistor tergantung cahaya (LDR) dengan Python, dan memberikan data ke Zabbix untuk pemantauan.
Hardware:
- Raspberry Pi
- MCP3008 8-channel ADC
- Resistor tergantung cahaya (LDR)
- Resistor 10 kΩ
- Breadboard
- Beberapa kabel
Memahami Bus SPI
MCP3008 mentransmisikan nilai digital 10-bit melalui antarmuka SPI, protokol serial sinkron full-duplex yang beroperasi dalam mode master/slave. Beberapa slave dapat berbagi bus, masing-masing dipilih oleh garis CS sendiri.
Pada Raspberry Pi, SPI diekspos melalui header 4-pin (GPIO8, 9, 10, 11). Untuk mengaktifkan driver hardware SPI, edit berkas blacklist:
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Cari baris yang berisi spi-bcm2708 dan awali dengan # untuk menomentarinya. Simpan dan reboot:
sudo reboot
Setelah reboot, verifikasi apakah driver dimuat:
lsmod | grep spi_bcm2708
Anda harus melihat spi_bcm2708 tercantum.
Menginstal Pustaka Python SPI
Untuk mengakses bus SPI dari Python kita akan menggunakan py-spidev. Pertama instal header pengembangan untuk Python:
sudo apt-get install python-dev
Selanjutnya unduh dan instal pustaka:
mkdir py-spidev cd py-spidev wget https://raw.github.com/doceme/py-spidev/master/setup.py wget https://raw.github.com/doceme/py-spidev/master/spidev_module.c sudo python setup.py install
Menyambungkan MCP3008 ke Raspberry Pi
| Pin MCP3008 | Pin Raspberry Pi |
| VDD | 3.3 V |
| VREF | 3.3 V |
| AGND | GND |
| CLK | GPIO11 (P1-23) |
| DOUT | GPIO9 (P1-21) |
| DIN | GPIO10 (P1-19) |
| CS | GPIO8 (P1-24) |
| DGND | GND |
Delapan pin CH0-CH7 pada MCP3008 berfungsi sebagai input analog. Dalam contoh ini kita akan menyambungkan salah satunya ke LDR.
Menggunakan Resistor Tergantung Cahaya (LDR)
Kami menggunakan LDR EG & G Vactec, VT43, CdS, 8 Ω – 300 kΩ. Dalam pencahayaan normal resistensinya sekitar 10 kΩ; dalam kegelapan naik di atas 2 MΩ.
Ketika cahaya jatuh pada LDR, resistensinya menurun, menarik voltase pada input MCP3008 menuju 0 V. Dalam kegelapan resistensi naik, mendorong voltase menuju referensi 3.3 V.
Sensor manapun yang mengubah resistensi dengan kuantitas fisik dapat disambungkan dengan cara ini.
Menafsirkan Output ADC
MCP3008 menghasilkan angka 10-bit yang berkisar dari 0 hingga 1023, di mana 0 sesuai dengan 0 V dan 1023 sesuai dengan 3.3 V. Untuk LDR, ini menerjemahkan ke kisaran intensitas cahaya sekitar 0 – 10.000 lux.
Nilai mentah ini dapat dikirim ke Zabbix melalui skrip Python Raspberry Pi, memungkinkan Anda membuat dasbor, menetapkan ambang, dan memicu peringatan.
Untuk lebih banyak detail: Analog Sensors Reading with Raspberry Pi and Zabbix Supervisor