Sistem Taman Cerdas HydroMazing: Perawatan Tanaman IoT Lanjutan
Komponen dan Perlengkapan
Raspberry Pi 3 Model B
OPTIONAL - Internet of Things - pengiriman pesan teks
×
1
Arduino Nano R3
×
2
Expansion Shield Arduino Nano
×
2
Sensor Suhu / Kelembaban DHT21/22
mungkin membutuhkan resistor 10k antara Vcc/Data
×
1
Modul Sel Foto
×
1
Modul Transceiver Radio Nirkabel nRF24L01 2.4Ghz
dengan atau tanpa Antena SMA
×
1
Sensor Suhu Dallas (untuk suhu larutan nutrisi)
mungkin membutuhkan konektor
×
1
Modul Penerima & Penerus RF 433MHz
×
1
set 3-5 paket Kontak Listrik Dikendalikan Nirkabel termasuk remote
×
1
Shield LCD dengan Tombol DFRobot untuk Arduino Uno
×
1
Alat dan Mesin yang Diperlukan
Pakuin (Generic)
Aplikasi dan Layanan Online
Arduino IDE
Microsoft Visual Studio 2015
Tentang Proyek Ini
Tidak ada niat saya untuk membuat produk. Saya hanya ingin menyelesaikan masalah umum. Saya ingin menanam tanaman di dalam ruangan atau dalam kondisi yang terkendali. Bagaimana saya dapat menciptakan lingkungan optimum untuk tanaman berkembang menggunakan elektronika dan barang rumah tangga yang tersedia secara umum? Mana yang lebih baik, tanah atau hidroponik?
hydroMazing adalah alat untuk memudahkan memberikan kondisi pertumbuhan optimum untuk menanam tanaman dengan sukses di rumah. Sistem pemantauan data mandiri dan antarmuka web yang terletak pada perangkat Anda sendiri bukan cloud jarak jauh.
~
Belajar cara menanam tanaman dapat rumit dan mahal. Tanaman tahan lama, namun satu kesedihan sederhana dapat merusak panen Anda. Anda dapat menghindari kesalahan mahal ini dengan membiarkan sistem taman cerdas melakukan pekerjaan keras untuk Anda!
Dua tahun yang lalu saya memutuskan untuk mencoba menggunakan mikrokontroler Arduino Uno untuk mengganti Termostat Kontak Listrik Pemanas & Pendingin Pemrograman Lux WIN100 saya. Kontak listrik ini mengontrol alat, seperti pemanas kecil atau, dalam kasus ini, kipas ventilasi. Alat yang diselangorkan ke kontak listrik menyalakan dan mematikan alat dengan menggunakan pengaturan suhu yang Anda program secara manual ke setiap perangkat. Teknik untuk mengontrol kipas ventilasi ini efektif, namun menggunakan beberapa kabel pemanjang. Pengontrol suhu kontak listrik menggunakan relai gaya lama untuk mengubah status perangkat. Upaya awal saya adalah mengobrak-alokasi kotak pemanjang memasukkan relai saya sendiri ke dalamnya dan menghubungkannya ke Arduino Uno. Tidak lama setelah itu ada rantai kabel dengan banyak dadu konektor dan saya merasa terhambat.
Otomatisasi Rumah
Ide otomatisasi rumah yang saya pikirkan selama beberapa saat adalah menggunakan kontak listrik AC yang dikendalikan nirkabel dengan remote tangan. Mengobrak-alokasi remote untuk mengirim sinyal untuk tombol ON atau OFF yang dipilih oleh pin yang sesuai pada Arduino Uno tidak seharusnya terlalu sulit, kan? Kekhawatiran yang menghambat saya dari menguji ide ini adalah takut sinyal tidak andal dan Uno mungkin "memikirkan" telah menyalakan alat saat sebenarnya gagal. Akhirnya, saya mampu meyakinkan diri sendiri bahwa cara terbaik untuk mengetahuinya adalah hanya mencoba dan melihat apa yang terjadi. Sayangnya, hasil uji ini tidak jauh lebih baik dari upaya relai.
Pencarian di web untuk hampir setiap sensor atau barang elektronik dengan "Arduino" akan menghasilkan sejumlah produk yang dijual dengan beberapa dolar. Dalam kasus ini, saya menemukan pasangan penerus dan penerima 315Mhz dan 433Mhz yang berada dalam rentang frekuensi sebagian besar kontak listrik yang dikendalikan nirkabel komersial. Keuntungan terbesar menggunakan keluarga mikrokontroler Arduino untuk jenis proyek ini adalah Anda dapat menemukan perangkat lunak open source untuk memulai. Pencarian lain di web untuk "library Arduino" dan dalam kasus ini, pasangan penerus dan penerima atau tx/rx. Sekarang, semakin menarik bagi saya. Saya dapat membaca kode yang keluar dari remote, merekamnya, dan kemudian memprogram Arduino untuk mengontrol kontak listrik yang sesuai. Mendesain perangkat lunak untuk beroperasi pada Arduino Uno menjadi tantangan. Contoh yang datang dengan perangkat lunak Arduino dan contoh yang disertakan dengan library adalah awal yang sangat baik untuk proyek. Dalam pengalaman saya, setelah Anda mulai menggabungkan dan melakukan modifikasi pada contoh-contoh itu tidak lama sebelum Anda mencapai batas. Saya tidak pikir saya adalah programmer yang baik, saya pikir saya adalah sempurnawan yang keras kepala.
Di salah satu buku favorit saya, Zen and the Art of Motorcycle Maintenance penulisnya, Robert Pirsig, berbicara tentang perangkap gumpal. Secara esensial, perangkap gumpal adalah peristiwa atau pola pikir yang dapat menyebabkan seseorang kehilangan antusias dan menjadi terhambat dari memulai atau melanjutkan proyek. Mengetahui kapan harus melanjutkan melalui ketidaknyamanan dan keingkaran dan kapan harus istirahat dan pergi dari proyek adalah tantangan pribadi. Ada kalanya jika saya telah istirahat, saya mungkin tidak akan menemukan solusi yang bagus untuk konflik dalam kode sumber saya. Sebaliknya, ada kalanya saya telah pergi selama sebulan dan bekerja pada jenis proyek yang sama sekali berbeda merasa teruapkan kembali. Mungkin, jika proyek ini cukup penting, kita akan terpaksa kembali untuk mengerjakannya. Perangkap itu adalah meyakinkan diri sendiri bahwa proyek tidak layak untuk kembali padahal bisa menjadi luar biasa. Mungkin sebenarnya tidak layak untuk kembali menyelesaikannya dan inilah tempat banyak proyek berakhir.
Pemrograman
Perangkat lunak yang telah saya kembangkan telah diprogram ke dalam mikrokontroler dan memiliki serangkaian parameter dasar untuk pengaturan waktu, pengelolaan, transmisi, dan penerimaan objek "sensor" dan objek "peralatan". Pengendalian peralatan dicapai melalui serangkaian algoritma yang saya namakan "TheDecider," yang membuat keputusan berdasarkan pembacaan sensor dan ambang batas yang diprogram sebelumnya dan memicu mikrokontroler untuk menyalakan atau mematikan kontak listrik yang dikendalikan nirkabel. Saya ingin sistem dapat dengan mudah dimodifikasi untuk bekerja dengan lingkungan lain termasuk akuaponik, menanam jamur, dan segala sesuatu di mana pengendalian dicapai dengan membaca sensor dan mengoperasikan peralatan berdasarkan aturan yang diprogram. Kontak listrik yang dikendalikan nirkabel terbukti menjadi metode yang andal untuk mengontrol kipas menggunakan Arduino untuk mengirim sinyal berdasarkan pembacaan sensor suhu. Tidak lama setelah itu kode sumber berkembang menjadi makhluk besar. Keluarga mikrokontroler Arduino terbatas dalam berapa banyak instruksi yang dapat dijalankan dan mencapai batas ukuran program tidak lama jika Anda ingin mengontrol lebih dari beberapa LED berkedip. Saya telah menemukan bahwa batasan ukuran telah memaksa saya untuk menulis kode yang lebih baik dan lebih efisien daripada yang awalnya saya lakukan. Bahkan dengan penanganan variabel yang kreatif dan library khusus, akhirnya, ada kebutuhan untuk mikrokontroler lain atau pindah ke yang lebih besar.
Pemantauan Nirkabel tanpa Internet
Ada beberapa cara mikrokontroler dapat berkomunikasi satu sama lain. Metode nirkabel termurah yang saya temukan adalah transceiver radio nirkabel nRF24L01. Modul ini adalah variasi bluetooth dengan daya rendah dan ringan yang memberi hydroMazing kemampuan untuk berkomunikasi dengan unit pemantauan.
Saya memutuskan untuk menambahkan Arduino Uno lainnya dengan Liquid Crystal Display shield sehingga saya dapat menampilkan apa yang dibaca sensor, status peralatan, dan peringatan dengan notifikasi.
Saya telah membuat platform open source dan dapat disesuaikan sendiri yang dapat dikustomisasi untuk berbagai kebutuhan dan kondisi taman; namun, juga sistem nirkabel yang terkontained. Arsitektur terbuka sistem memungkinkan kemudahan integrasi konektivitas Internet dan layanan web.
Pemantauan Internet
Masuk Raspberry Pi yang terhubung dengan modul nRF24L01.
Saya mampu memodifikasi sebagian besar kode sumber Arduino saya untuk mendengarkan transmisi masuk dan kemudian menulis data tersebut ke beberapa file. Pertama, file log yang menangkap semua komunikasi antara Pi dan hydroMazing Monitor. Selanjutnya, saya membuat program menulis status saat ini dari semua objek sensor dan file untuk semua objek peralatan. Ketika peringatan terjadi program akan membuat file yang berisi peringatan tersebut. Kemudian saya menambahkan skrip PHP untuk membaca objek data dari file masing-masing dan menampilkan secara live di server Apache Pi.
Selanjutnya, saya menulis skrip Python untuk membaca direktori untuk file peringatan dan jika ada, membaca file, memparsing informasi yang relevan dan kemudian mengirim email atau melalui SMS teks ke pengguna. Selain mengirim email atau teks peringatan, skrip Python memindahkan file peringatan ke posisi untuk skrip PHP dapat membaca dan menampilkan. Menggunakan file log yang dibuat, saya mampu mengimpor data ke dalam database. Setelah data hydroMazing tercatat ke dalam database yang tinggal di Raspberry Pi kita dapat mulai melakukan analitik dan menghasilkan beberapa laporan. Pemantauan dan pengendalian sistem sebagian besar dilakukan untuk kita, tetapi saat hydroMazing perlu memperingatkan kita tentang masalah itu sekarang dapat dengan menggunakan Raspberry Pi.
HydroMazing Garden Wizard yang memandu Anda melalui seluruh proses pertumbuhan Anda! Sistem memberikan umpan balik dan tips untuk mengelola masalah yang teridentifikasi hydroMazing. https://www.hydroMazing.com
Pemantauan Larutan Nutrisi
Tingkat larutan nutrisi pada sistem wadah hidroponik harus dipantau.
Seiring berkurangnya tingkat larutan nutrisi, perlu diisi kembali dengan air segar, jika tidak larutan nutrisi menjadi lebih ter konsentrasi dan beberapa tanaman tidak akan merespons dengan baik. Pengontrol Nutrisi hydroMazing dapat mengaktifkan pompa yang menambahkan air segar untuk membawa konsentrasi kembali ke tingkat saat dimulai, sering disebut "topping-off." Pengontrol Nutrisi hydroMazing juga akan memantau pH dan EC, mengaktifkan pompa untuk mengelola larutan, dan memberitahu Anda saat perlu melakukan perubahan.
Ingin Lebih Banyak?
Existential Crisis - Simulator Peran Arduino
Mengapa DIY saat Anda bisa membeli?
Apa itu "Taman Cerdas"?
Memulai Taman Ruangan Cerdas
Menyelami Lebih Dalam Taman Ruangan
Taman Ruangan: Apa yang bisa salah?
Mengelola Sistem Larutan Nutrisi
Menggunakan Arduino saat Anda bisa menggunakan Pi?
Kode
Settings of objects
Settings of objectsC/C++
File CoreSettings.h berisi banyak pengaturan kritis termasuk jaringan nRF, kode saklar remote kontak listrik AC, Timer, Appliance, dan definisi objek Sensor yang digunakan oleh sistem hydroMazing.
Kipas masuk dan keluar, lampu tumbuh, pemanas, dehumidifier, dan pompa secara otomatis dikendalikan melalui kontak listrik AC nirkabelkontak listrik AC yang dikendalikan nirkabel umum yang digunakan dalam proyek ini.Rakit dan pengujianprototaip hydroMazing Antarmuka WebAntarmuka web prototaip hydroMazing untuk notifikasi peringatan.