Membaca Sensor Analog dengan Raspberry Pi dan Zabbix Supervisor
Membaca Sensor Analog dengan Raspberry Pi sebagai Antarmuka
Raspberry Pi tidak memiliki input analog bawaan yang berarti agak merepotkan untuk menggunakan banyak sensor yang tersedia. Kami membutuhkan antarmuka A/D yang mudah dikonfigurasi di RPi dan MCP3008 adalah jawabannya.
MCP3008 adalah 10bit 8-channel Analog-to-digital converter (ADC). Murah, mudah disambungkan, dan tidak memerlukan komponen tambahan apa pun. Ini menggunakan protokol bus SPI yang didukung oleh header GPIO Pi.
Artikel ini menjelaskan cara menggunakan perangkat MCP3008 untuk menyediakan 8 input analog yang dapat Anda gunakan dengan berbagai sensor. Pada contoh rangkaian di bawah ini saya menggunakan MCP3008 untuk membaca sensor cahaya dan mengontrol/mengawasi cahaya di dalam Zabbix.
Perangkat keras:
- Raspberry Pi
- MCP3008 8 saluran ADC
- Resistor bergantung cahaya (LDR)
- Resistor 10 Kohm
- Papan tempat memotong roti
- Beberapa kabel
Bus SPI
MCP3008 membaca nilai analog dan memberikan angka 10 bit yang ditransmisikan oleh Bus SPI.
Bus Antarmuka Periferal Serial atau bus SPI adalah standar tautan data serial sinkron, yang beroperasi dalam mode dupleks penuh.
Perangkat berkomunikasi dalam mode master/slave di mana perangkat master memulai bingkai data. Beberapa perangkat slave diizinkan dengan jalur pilih slave individual.
Kadang-kadang SPI disebut bus serial empat kawat, berbeda dengan bus serial tiga, dua, dan satu kawat. SPI sering disebut sebagai SSI (Synchronous Serial Interface).
Untuk mengaktifkan SPI perangkat keras pada RPi kita perlu melakukan modifikasi pada salah satu file sistem:
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Tambahkan karakter '#' di depan baris spi-bcm2708. Gunakan CTRL-X, lalu Y, lalu Kembali untuk menyimpan file dan keluar. Reboot menggunakan yang berikut ini :
sudo reboot
Untuk memeriksa apakah perubahan telah berhasil, jalankan perintah berikut:
lsmod
Anda akan melihat “spi_bcm2708″ terdaftar di output.
Instal Pembungkus SPI Python
Dalam proyek ini kita akan menggunakan Python dan Untuk membaca data dari bus SPI dengan Python kita dapat menginstal perpustakaan yang disebut 'py-spidev'. Untuk menginstalnya pertama kita perlu menginstal 'python-dev' :
sudo apt-get install python-dev
Kemudian untuk menyelesaikannya kita bisa mendownload 'py-spidev' dan mengkompilasinya siap digunakan :
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 install
MCP3008 | RPi |
VDD | 3.3V |
VREF | 3.3V |
AGND | DASAR |
CLK | GPIO11 (P1-23) |
MASALAH | GPIO9 (P1-21) |
DIN | GPIO10 (P1-19) |
CS | GPIO8 (P1-24) |
DGND | DASAR |
Pin CH0-CH7 adalah 8 input analog.
Resistor Bergantung Cahaya
Saya memilih LDR EG &G Vactec, VT43, CdS, 8 hingga 300 KΩ . Di bawah pencahayaan normal, resistansinya kira-kira 10Kohm saat dalam gelap meningkat menjadi lebih dari 2Mohm.
Ketika ada banyak cahaya, LDR memiliki resistansi rendah yang mengakibatkan tegangan output turun menuju 0V.
Saat hari gelap resistansi LDR meningkat sehingga tegangan output meningkat menuju 3.3V. Dalam proyek ini telah digunakan LDR tetapi perangkat apa pun yang mengubah resistansinya tergantung pada beberapa fenomena dapat digunakan dan dihubungkan ke IC untuk dikontrol.
Membaca Data
ADC adalah 10bit sehingga dapat melaporkan rentang angka dari 0 hingga 1023 (2 pangkat 10). Pembacaan 0 berarti inputnya 0V dan pembacaan 1023 berarti inputnya 3.3V. Rentang 0-3.3V kami akan sama dengan rentang 0-10000 Lux.
Untuk detail lebih lanjut:Pembacaan Sensor Analog dengan Raspberry Pi dan Pengawas Zabbix