Tentang proyek ini
Pengenalan Proyek
Proyek ini bertujuan untuk membuat sistem pemantauan dan penyiraman tanaman. Tugas utama adalah untuk mengontrol servo, relay dan mengumpulkan data kelembaban tanah dari tanaman. Sejumlah besar sensor menggunakan sinyal analog sebagai output tetapi Raspberry Pi tidak memiliki konverter analog-ke-digital. Untuk mengatasi masalah ini, saya menggunakan modul ADC luar dan gateway Arduino karena mereka telah dibangun di ADC. Ketika kita ingin berinteraksi dengan lingkungan biasanya kita membutuhkan modulasi lebar pulsa. Saya menemukan 3 cara untuk menyelesaikan masalah ini. Yang pertama adalah perangkat lunak PWM, yang kedua adalah gateway Arduino dan yang terakhir adalah menggunakan modul/IC yang mampu PWM. Saya menerapkan dua metode pertama karena saya telah menerapkan perangkat I2C sebelumnya. ADC dan PWM sangat sering digunakan di dunia Arduino, jadi jika kita ingin menggunakan GPIO di Raspberry Pi, biasanya kita ingin setidaknya satu dari fitur ini berjalan di Raspberry kita.
Aplikasi
Aplikasi ini memiliki dua mode:mode otomatis ketika mendeteksi jika pabrik membutuhkan air dan mode manual di mana Anda dapat mengontrol servos dan relay secara manual. Karena servo bisa berputar kurang lebih 180 derajat satu servo hanya bisa menyiram 2 tanaman. Modus otomatis adalah default. Ketika kami membaca sensor kelembaban tanah, kami mengkategorikan nilainya. Ada 5 kategori. Yang paling kering ada di kategori 5 dan ditandai dengan warna merah di GUI. Kebalikannya kategori 1 ditandai dengan warna hijau. Pengatur waktu akan memeriksa nilai-nilai ini secara berkala dan jika kategori 'tanaman A' atau 'tanaman B' lebih tinggi dari yang dapat diterima (sehingga tanahnya terlalu kering) ia menyirami yang lebih kering. Pada periode yang sama, program memeriksa dan menyiram dua tanaman lainnya ('tanaman C' dan 'tanaman D') dengan cara yang sama dan melakukan ini di setiap periode.
Komponen
Mengemudikan servo biasanya membutuhkan frekuensi clock GPIO yang besar. Penyedia default tidak cukup baik jadi saya menggunakan penyedia petir. Ada masalah dengan catu daya pertama Pi. Saya telah membacanya di suatu tempat bahwa Pi mungkin memerlukan kinerja yang lebih baik dan servo mengkonsumsi banyak daya dibandingkan dengan sensor lain. Kedua menghasilkan masalah kinerja. Sekarang dengan pengisi daya iPad bekerja jauh lebih baik tetapi kadang-kadang masih ragu-ragu. Sirkuit servo dengan catu daya luar dapat mengatasi masalah seperti ini:
Dan seperti yang saya pikir ini telah memecahkan masalah dan sekarang bekerja dengan sempurna. Saya telah menghubungkan Vcc servo ke 5V catu daya dan sinyalnya tetap sama dan kami memiliki kesamaan. Ini koneksi barunya:
Akhirnya, tidak perlu melakukan cara ini. Mungkin catu daya yang lebih baik untuk Raspberry Pi atau penyempurnaan perangkat lunak akan menyelesaikan setiap masalah dengan servo.
Saya sudah mencoba membangun setiap fungsi ke ADS1115 16-bit ADC. Tapi masih dalam pengembangan. Misalnya, register ambang tidak disetel dan itu layak mendapatkan proyek/tutorial sendiri. Secara keseluruhan, hampir siap untuk menjadi driver ADC yang berfungsi penuh. Mungkin ada beberapa masalah logis dan semua fungsi bawaan belum sepenuhnya diuji.
- Sensor suhu dan tekanan BMP180 I2c:
Driver BMP180 yang saya gunakan pada dasarnya sama dengan yang digunakan proyek ini. Saya hanya memodifikasi inisialisasi karena tidak sepenuhnya kompatibel dengan penyedia petir. Saya kira mengukur suhu dan tekanan adalah milik proyek seperti stasiun cuaca, pemantauan pabrik, dan proyek serupa lainnya.
Mengendarai relai membutuhkan operasi GPIO sederhana. Cukup mudah dipahami dari kode sumbernya.
Saya telah menggunakan modul ini karena pengukuran ini mungkin berguna dalam proyek serupa juga. Rangkaian amplifier dapat ditemukan di dokumentasi LTC 1050. Fotodioda adalah Osram BPW 21 yang dioptimalkan untuk siang hari.
Untuk gateway saya menggunakan Arduino Due karena memiliki 3,3 V menarik bus I2C. Saya bisa menggunakan konverter level tegangan atau bus lain dengan pull up Anda sendiri (jika saya tahu benar Arduino 2560 dan beberapa papan lain memiliki lebih banyak bus I2C dan mereka tidak ditarik sehingga Anda dapat menggunakannya). Kodenya cukup sederhana.
Saya telah menggunakan yang Cina dengan modul pembanding.
Ringkasan proyek
Menurut pendapat saya, proyek ini mungkin berguna untuk memberikan ide yang sangat mendasar tentang cara menyirami tanaman kita dan ada beberapa fitur yang mungkin ingin Anda terapkan dalam proyek Anda sendiri seperti:
- Berkomunikasi dengan papan Arduino di bus I2C (Gateway Arduino)
- PWM di Raspberry Pi (servo)
Rencana masa depan
- Aplikasi seluler dengan Xamarin
- Ganti I2C dengan Bluetooth untuk berkomunikasi dengan Arduino
Kode
Kode Arduino
https://github.com/horvathm/plant-monitoring-system-arduino.git Kode Raspberry Pi
https://github.com/horvathm/plant-monitoring-system-raspberry.git Skema
Diagram sirkuit dapat ditemukan di dokumentasi LTC 1050