Dalam proyek Internet of Things (IoT) berbasis Raspberry Pi, penggunaan sensor menjadi hal penting untuk membaca kondisi lingkungan secara real-time. Namun berbeda dengan mikrokontroler seperti Arduino, Raspberry Pi tidak memiliki modul ADC (Analog to Digital Converter) bawaan. Akibatnya, sensor analog seperti sensor suhu LM35 atau sensor kelembaban tanah tidak dapat langsung dibaca tanpa perangkat tambahan.
Untuk mengatasi keterbatasan tersebut, Anda dapat menggunakan modul ADC eksternal seperti ADS1115. Modul ini berkomunikasi melalui protokol I²C, memiliki resolusi tinggi 16-bit, serta mampu membaca hingga empat kanal input analog. Dengan bantuan ADS1115, Raspberry Pi dapat mengonversi tegangan analog dari sensor menjadi data digital yang bisa diproses menggunakan bahasa pemrograman Python.
Pada artikel ini, Anda akan mempelajari cara menggunakan dua sensor analog populer, yaitu sensor Soil Moisture untuk membaca kelembaban tanah dan sensor LM35 untuk mengukur suhu. Pembahasan mencakup pembuatan virtual environment, instalasi library, pengecekan alamat I²C, wiring diagram, hingga contoh kode Python lengkap. Dengan mengikuti tutorial ini, Anda dapat membangun sistem monitoring lingkungan atau otomasi sederhana berbasis Raspberry Pi secara lebih akurat dan stabil.
Raspberry Pi berbeda dengan mikrokontroler seperti Arduino yang memiliki ADC (Analog to Digital Converter) bawaan. Secara default, Raspberry Pi hanya dapat membaca sinyal digital, sehingga tidak dapat langsung membaca keluaran sensor analog seperti sensor suhu LM35 atau sensor kelembaban tanah.
Baca juga: Debugging dan Best Practice MicroPython untuk Pemula
Sensor Analog Soil Moisture dan LM35
1. Soil Moisture – Sensor Kelembaban Tanah
a. Membuat Virtual Environment
Pada praktik ini, kita akan membuat folder proyek sekaligus mengisolasi semua dependensi menggunakan virtual environment agar instalasi library tidak bercampur dengan sistem utama.
- Buka terminal, lalu jalankan perintah:
python3 -m venv soil-env
- Aktifkan environment dengan perintah:
source soil-env/bin/activate
Jika berhasil, nama environment akan muncul di awal baris terminal.
b. Upgrade pip:
python -m pip install --upgrade pip
Jika proses berhasil, sistem akan menampilkan pesan instalasi selesai.
c. Install library dasar Python:
pip install --upgrade pip setuptools wheel
Jika instalasi berhasil, terminal akan menampilkan notifikasi bahwa seluruh paket berhasil diperbarui.
d. Install tools I2C dan pip sistem:
sudo apt-get install -y i2c-tools python3-pip
Jika proses instalasi berhasil, terminal akan menampilkan informasi bahwa paket telah terpasang.
e. Chek alamat perangkat I2C:
i2cdetect -y 1
Jika berhasil, terminal akan menampilkan alamat yang terdeteksi.
Alamat 0x48 (atau 0x49/0x4A/0x4B harus terlihat sebagai tanda modul ADS1115 terdeteksi.
f. Install library ADS1115:
pip3 install adafruit-circuitpython-ads1x15
Setelah selesai, terminal akan menampilkan notifikasi bawah instalasi berhasil.
g. Install library GPIO Raspberry:
pip install RPi.GPIO
Jika berhasil, terminal akan menampilkan pesan bahwa paket telah terpasang dengan benar.
h. Wiring diagram Raspberry Pi 4 x ADS1115 x Soil Moisture Sensor :
Koneksi pin:
- ADS1115 → Raspberry Pi 4
- VDD → 3V3 (Pin 1)
- GND → GND (Pin 6)
- SDA → GPIO2/SDA1 (Pin 3)
- SCL → GPIO3/SCL1 (Pin 5)
- Sensor Soil Moisture (kapasitif) → ADS1115
- VCC → 3V3 (direkomendasikan 3.3 V)
- GND → GND
- AO → A1 (boleh A0/A2/A3 - di contoh ini A1)
i. Buka Thonny IDE. Pastikan interpreter sudah mengarah ke virtual environment:
j. Kode Dasar: Baca tegangan & tampilkan
Ketik kode program pembacaan tegangan dasar, lalu klik Run. Jika berhasil, simpan file dengan nama:
soil_ads1115_basic.py
k. Kalibrasi Sensor → Konversi ke Persentase (%RH soil)
Untuk mendapatkan nilai persen kelembaban tanah, diperlukan dua titik kalibrasi, yaitu:
- Kondisi kering (udara): angkat probe dari tanah, biarkan di udara kering. Catat tegangan stabil → SOIL_V_DRY.
- Kondisi basah (sangat lembap): tancapkan probe pada tanah basah (atau celup bagian probe ke air sesuai petunjuk modul, jangan tenggelamkan papan elektronik). Catat tegangan stabil → SOIL_V_WET.
- Umumnya V_DRY > V_WET pada sensor kapasitif. Jika hasilmu kebalik, tidak masalah, rumus akan tetap bekerja selama kamu isi V_DRY = tegangan saat benar-benar kering dan V_WET = tegangan saat basah.
Ketik kode program di bawah ini, lalu klik Run. Jika sudah berhasil, akan muncul hasil seperti berikut ini dan simpan file code program dengan nama soil_ads1115_percent.py.
Hasil Dry :
Hasil Wet :
l. Filter Data (Moving Average)
Untuk mengurangi noise pembacaan sensor, Anda bisa menggunakan teknik moving average. Jalankan kode versi smoothing dan simpan sebagai soil_ads1115_percent_ma.py.
Hasil Dry:
Hasil Wet:
m. Kategori Ambang (opsional untuk automasi)
Ambang ini hanyalah contoh dan dapat disesuaikan:
• < 25% : kering → nyalakan pompa
• 25–60% : normal
• > 60% : terlalu basah → matikan pompa
- Contoh kode otomasi dapat dilihat pada gambar berikut:
2. LM35 – Sensor Suhu
LM35 adalah sensor suhu analog dengan karakteristik keluaran 10 mV per °C (0.01 V/°C). Contoh:
- 0°C → 0.00 V
- 25°C → 0.25 V
- 100°C → 1.00 V
Karena Raspberry Pi tidak memiliki ADC bawaan, pembacaan tegangan dari LM35 dilakukan melalui modul ADS1115, kemudian dikonversi menjadi suhu dalam derajat Celcius (°C).
a) Membuat Virtual Environment
Kita akan membuat folder proyek dan mengisolasi semua dependensi dengan venv.
- Buka terminal, kemudian jalankan perintah python3 -m venv lm35-env.
- Jalankan perintah: source lm35-env/bin/activate. Jika berhasil, akan muncul hasilnya seperti dibawah ini.
b. Upgrade pip dengan cara jalankan perintah: python -m pip install --upgrade pip. Jika berhasil, akan muncul hasilnya seperti dibawah ini.
c. Install library dengan cara jalankan perintah: pip install --upgrade pip setuptools wheel. Jika berhasil, akan muncul hasilnya seperti dibawah ini.
d. Install library dengan cara jalankan perintah: sudo apt-get install -y i2c-tools python3-pip. Jika berhasil, akan muncul hasilnya seperti dibawah ini.
e. Cek alamat I2C dengan cara jalankan perintah: i2cdetect -y 1. Jika berhasil, akan muncul hasilnya seperti dibawah ini.
Harus terlihat 0x48 (atau 0x49/4A/4B sesuai ADDR)
f. Install library ADS1115 dengan cara jalankan perintah: pip3 install adafruit-circuitpython-ads1x15. Jika berhasil, akan muncul hasilnya seperti dibawah ini.
g. Install library GPIO Raspberry dengan cara jalankan perintah: pip install RPi.GPIO. Jika berhasil, akan muncul hasilnya seperti dibawah ini.
h. Wiring diagram Raspberry Pi 4 x ADS1115 x LM35 Sensor:
Koneksi pin:
- ADS1115 → Raspberry Pi 4
- VDD → 3V3 (Pin 1)
- GND → GND (Pin 6)
- SDA → GPIO2 / SDA1 (Pin 3)
- SCL → GPIO3 / SCL1 (Pin 5)
- LM35 → ADS1115
- Pin 1 (Vs) → 3V3
- Pin 2 (Vout) → A0 ADS1115
- Pin 3 (GND) → GND
i. Buka Thonny IDE. Pastikan interpreter sesuai dengan virtual environment:
j. Kode Dasar: Baca tegangan dan konversi suhu
Ketik kode pembacaan tegangan dan konversi suhu, lalu klik Run. Jika berhasil, simpan file kode program dengan nama lm35_ads1115_basic.py.
k. Filter Data Suhu (Moving Average)
Untuk mendapatkan pembacaan suhu yang lebih stabil, gunakan versi moving average. Jika sudah berhasil, simpan file kode program dengan nama lm35_ads1115_ma.py.
Penggunaan modul ADC seperti ADS1115 membuka banyak kemungkinan dalam pengembangan proyek Raspberry Pi, terutama ketika ingin membaca berbagai sensor analog. Dengan teknik kalibrasi yang tepat, filtering seperti moving average, serta pengaturan ambang nilai, data yang dihasilkan dari sensor Soil Moisture maupun LM35 dapat digunakan untuk sistem monitoring, smart farming, hingga otomasi berbasis IoT.
Melalui tutorial ini, diharapkan Anda tidak hanya memahami cara membaca sensor analog di Raspberry Pi, tetapi juga mampu mengembangkan proyek lanjutan seperti sistem penyiraman otomatis, pemantauan suhu ruangan, atau integrasi dengan dashboard IoT. Dengan kombinasi Raspberry Pi, Python, dan sensor analog, Anda bisa membangun solusi teknologi yang lebih cerdas, presisi, dan siap diterapkan di dunia nyata.
Dalam praktik, hasil dan kendala yang ditemui bisa berbeda tergantung perangkat, konfigurasi, versi library, dan sistem yang digunakan.
- Diskusi umum dan tanya jawab praktik: https://t.me/edukasielektronika
- Kendala spesifik dan kasus tertentu: http://bit.ly/Chatarduino






































0 Komentar