Tas Ransel Isi Harta Karun

Rupanya sudah setahun lebih daku tidak ngoprek elektronika & mikrokontroler. Sejak wafatnya Ayahanda tercinta November 2012, praktis kegiatan ngoprekku meredup sampai akhirnya sama sekali tidak ngoprek lagi. Namun ketika Sabtu kemarin daku ngobrol dengan Make.do.nia yang memintaku terlibat dalam kegiatan mereka, gairah ngoprekku bangkit lagi. Maka daku pun mengambil tas ransel yang tertinggal di Bekasi.

Tas ransel berisi harta karun
Tas ransel berisi harta karun

Tas ini berisi peralatan & komponen elektronika. Bagiku, isinya adalah harta karun.

Membongkar harta karun
Membongkar harta karun

Sebagian lagi tercecer di kabinet & kontainer. Perlu waktu untuk mengumpulkan dan menatanya lagi. Terhenyak ketika daku menyadari ada beberapa komponen yang menarik yang sangat menantang untuk dioprek.

Menantang untuk dioprek
Menantang untuk dioprek

Tidak luput prototype “Say it with Light!” Sayangnya adaptor tertinggal di Bekasi. Jadi belum bisa menyalakannya lagi. Tapi ke depannya bisa dioprek untuk dijadikan jam 8×8. Angka jam & menit dibuat scroll saja biar irit, hehehe…

Say it with Light!
Say it with Light!

Kali ini daku ngoprek Arduino dengan Windows 8.1. Ternyata lebih ribet karena harus install driver. Bandingkan dengan Linux Ubuntu yang tinggal colok sudah bisa jalan. Dan ternyata kabel data USB bisa jadi masalah. Kabel USB bawaan Arduino Nano yang tipis ternyata tidak bisa bekerja dengan baik. Begitu diganti kabel USB yang lebih baik langsung bisa bekerja dengan baik. Perasaan dulu di Ubuntu pakai kabel ini tidak masalah.

Ngoprek LCD 16×2
Ngoprek LCD 16×2

Rencananya besok mau bikin Garduino dengan Arduino Nano. Dipasang di breadboard saja supaya saat acara “Show and tell” di Make.do.nia bisa lebih mudah dipahami. Detail oprekan akan daku tuliskan di www.setiodewo.com.

nge-Pot 84 with LCD (Pot Elektronik)

Ini adalah salah satu jawaban dari tantangan terhadap produksi alternatif Garduino yang lebih murah dan terjangkau. Jika sebelumnya saya telah berhasil membuat versi sederhana dengan nge-Pot 85 yang menggunakan Atmel Attiny85, maka sekarang saya menggunakan Atmel seri Attiny 84 yang lebih kaya I/O. Dengan Attiny84 ini saya bisa menambahkan LCD sebagai display bagi nilai penginderaan kelembaban tanah dan suhu sekitar.

Tampilan Ngepot 84
Tampilan Ngepot 84

Sayangnya jumlah pin I/O Attiny84 banyak terpakai untuk mengendalikan LCD yang butuh 6 pin. Jadi hanya tersisa 5 dari pin yang bisa dipakai. Sisa 5 ini terpakai untuk 1 sensor Soil Moisture, 1 relay, dan 3 tombol (tombol ini digunakan untuk membuat referensi digital). Kurang 1 I/O untuk termometer. Pikir punya pikir, akhirnya saya mengakalinya dengan berbagi pakai 1 pin untuk tombol plus dan sensor temperatur LM35 DZ. Saat beroperasi normal, pin ini akan dipakai untuk membaca suhu sekitar yang diindera oleh LM35 DZ. Sedangkan pada mode edit, maka pin ini digunakan untuk tombol plus.

Tombol pengatur ambang dan sensor suhu udara sekitar
Tombol pengatur ambang dan sensor suhu udara sekitar

Tampak pada gambar di sebelah kanan LCD ada sebuah sensor suhu udara LM35 DZ dan di bawahnya berjejer 3 tombol untuk mengganti mode edit, tombol plus dan tombol minus.

Bagian sebelah kiri
Bagian sebelah kiri

Di sebelah kiri LCD tampak banyak komponen berjejal. Hehehe, berat sebelah ya? Di sebelah kiri ini ada port untuk menancapkan sensor Soil Moisture, jack power supply 6-12V, LED indikator nyala (warna hijau), LED indikator relay aktif (warna merah), dan relay untuk pompa air. Sedangkan tepat di sebelah kiri LCD ada 2 potensiometer yang bisa digunakan untuk mengatur kecerahan lampu latar belakang LCD dan pengatur kejelasan karakter LCD.

Ngepot 84 in action
Ngepot 84 in action

Tampak pada foto di atas saat relay pompa aktif. Selain ditunjukkan di LCD berupa tulisan “Pump: ON”, juga direpresentasikan oleh penyalaan LED merah. Nampaknya saya salah menggunakan resistor sebagai penurun arus sehingga LED merah nampak terlalu cerah.

Pump On dan LED merah menyala
Pump On dan LED merah menyala

Sebenarnya desain awal Ngepot 84 ini menempatkan relay di sebelah kanan board, tapi saya pikir kalau diletakkan di sebelah kanan akan membahayakan pengguna terutama saat melakukan edit nilai ambang yang ke-3 tombolnya ada di sebelah kanan. Takutnya relay yang terhubung dengan tegangan tinggi AC akan tersentuh secara tidak sengaja.

Tampilan keseluruhan Ngepot 84
Tampilan keseluruhan Ngepot 84

Foto di bawah ini menampilkan bentuk Ngepot 85 yang sederhana dengan Ngepot 84 yang lebih informatif dengan LCD. Kedua rangkaian prototype ini jatuhnya lebih murah dari pada Garduino (gardening Arduino ala Dewo).

Ngepot 85 dan Ngepot 84+LCD
Ngepot 85 dan Ngepot 84+LCD

Memang sih akan lebih mudah menggunakan Arduino. Tapi rasanya terlalu mahal jika untuk merawat tanaman saja harus menggunakan Arduino yang mahal harganya. Toh dengan Attiny 85 atau 84 yang jauh lebih murah bisa dilakukan hal yang sama. Walau memang ada beberapa batasan, misalnya kecepatan prosesor yang lebih rendah, kapasitas memori program yang lebih kecil sehingga tidak bisa diprogram untuk hal yang kompleks, dan jumlah pin yang lebih sedikit dari pada Arduino. Tapi ternyata saya bisa membuat Ngepot (Pot elektronik) versi murah yang bisa digunakan untuk merawat tanaman.

Bagi saya, mendesain dan membuat Ngepot 85 dan 84 memiliki kepuasan tersendiri. Di samping tujuan untuk membuat alternatif Garduino yang lebih murah dan praktis, juga karena hobi saya tersalurkan. Ini merupakan bentuk ekspresi diri bahwa saya mampu membuat versi saya sendiri dan dapat bekerja dengan baik. Walau pun sangat sederhana, saya cukup bahagia lohhh…

Saya akan mencoba mendokumentasikan desain proyek saya ini di blog. Hanya saja harus saya akui, saya malas merapikan skema rangkaian, hehehe. Jadi seperti yang sudah-sudah, cukup tampilan layout PCB yaaa… Cara membuatnya akan saya susulkan. Semoga proyek-proyek ini dapat berguna bagi orang banyak.

PERINGATAN:

  • Rangkaian Garduino, Ngepot 85 dan Ngepot 84+LCD dipublikasikan dengan lisensi Open Source Hardware. Semua pihak bisa mempelajarinya dan memproduksi/mengembangkan sendiri.
  • Rangkaian Garduino, Ngepot 85 dan Ngepot 84+LCD menggunakan relay yang bisa digunakan untuk mengontrol piranti lain dengan tegangan tinggi (s/d 240 Volt), misalnya pompa air, solenoid valve/kran, lampu, dll. Harap berhati-hati dalam menggunakan tegangan tinggi karena dapat mencelakakan diri sendiri atau orang lain. Selain berhati-hati, harap perhatikan potensi kecelakaan kerja dan operasional. Karena tegangan tinggi dapat mengakibatkan kecelakaan yang mematikan.

nge-Pot 85 (Pot Elektronik)

Setelah sebelumnya intensif bereksperimen dengan ATtiny85, kini tibalah saatnya membuat produk jadinya. Semalaman membuat PCB, menyolder, mengetest dan memperbaiki sehingga jadilah nge-Pot 85 (*ehm, tadinya mau diberi nama e-Pot. Tapi kok dikira nebeng popularitas produknya Apple*). Angka 85 diambil dari nomer seri microcontroller ATTiny85 dari Atmel.

Nge-Pot 85 adalah sebuah alat yang dapat membantu kita dalam menyirami tanaman. Nge-Pot 85 memiliki sensor Soil Moisture yang akan membaca kelembaban tanah. Pada titik bawah tertentu yang mengindikasikan tanah kekeringan dia akan memicu relay yang akan menyalakan pompa. Pada titik atas yang mengindikasikan tanah telah lembab dia akan mematikan pompa.

PCB Nge-Pot 85 sebelum direvisi
PCB Nge-Pot 85 sebelum direvisi

Penentuan titik referensi tanah kekeringan dan lembab menggunakan cara analog seperti yg saya tuliskan di “Membuat Nilai Referensi Analog”. Rupanya menggunakan ATtiny85 relatif lebih stabil pembacaan sensor dan penetapan nilai referensi.

Tampilan ngepot 85 sebelum direvisi
Tampilan ngepot 85 sebelum direvisi

Setelah jadi, tibalah saatnya mengetest Nge-pot 85 dan menentukan ambang batas bawah dan atas untuk menentukan pemicuan relay dan mematikannya. Untuk menentukannya, saya dibantu oleh multimeter digital. Kebetulan saya mendesain nge-Pot 85 untuk memiliki header pengukuran. Berikut urutan pin pengukuran:

Pin 1. Pengukuran tegangan sensor Soil Moisture
Pin 2. Pengukuran ambang batas bawah
Pin 3. Pengukuran ambang batas atas
Pin 4. Ground

Hasil pengukuran sensor Soil Moisture yang tertancap di tanah pot memberikan pembacaan antara 0.5 s/d 0.6 Volt. Kemudian saya mulai menentukan ambang batas bawah dan atas dengan memutar-mutar 2 potensiometer di sebelah kiri chip ATtiny 85. Ternyata sulit sekali menentukan ambang batas dengan potensiometer karena rentang tegangan dari potensio berkisar 0 s/d 5 Volt. Ternyata saya melupakan 1 hal, yaitu bahwa sensor memberikan feedback ke nge-Pot dalam bentuk tegangan 0 s/d 1.1 Volt. Jadi tegangan ambang seharusnya memiliki rentang penentuan segitu. Sebelumnya saya tidak memperhitungkan hal ini.

Penentuan nilai ambang setelah board direvisi jadi lebih mudah
Penentuan nilai ambang setelah board direvisi jadi lebih mudah

Jadi saya pun merevisi board nge-Pot 85 dengan menambahkan 2 resistor yang berfungsi sebagai pembagi tegangan. Hasil berhitung seharusnya menggunakan resistor 39K ohm. Tapi saya tidak punya resistor nilai segitu. Jadi saya pakai saja yang nilainya mendekati, yaitu 22K Ohm. Dengan resistor 22K Ohm bisa merevisi pembacaan tegangan referensi menjadi kurang lebih 1.2 Volt. Cukup mendekati angka 1.1 Volt. Dan penentuan nilai referensi bawah dan atas pun bisa dilakukan dengan mudah.

Tampilan nge-Pot 85 setelah direvisi
Tampilan nge-Pot 85 setelah direvisi

Kebetulan saya pakai sensor Soil Moisture dari DFRobot yang terdokumentasi dengan baik di sini. Dari situ saya mendapatkan angka:

0 ~300 : dry soil
300~700 : humid soil
700~950 : in water

Ini adalah angka pembacaan untuk Arduino. Jika kita ingin menyalakan pompa pada nilai ambang bawah 300, maka kita harus mengkonversinya terlebih dahulu ke tegangan untuk kemudian mengeset potensiometer penentu ambang batas bawah. Caranya dengan menggunakan formula ini:

Vsensor = ADC * (1100mV/1023)

Vsensor = 300 * 1.075 = 322.5mV atau 0.3225 Volt

Angka 1100mV itu tegangan output maksimal dari Soil Moisture Sensor (CMIIW). Kalau di DFRobot dituliskan output-nya 0~4.2V tapi saya menyangsikan hal ini. Karena dari pembacaan sensor tidak pernah menyentuh angka lebih dari 1.1 Volt. Mungkin nanti sore saya akan teliti lebih lanjut tentang tegangan output sensor ini dengan mencelupkannya ke air. Untuk sementara ini saya mengambil nilai umum output sensor yang biasanya di angka 1.1 Volt.

Tampilan nge-Pot 85 disandingkan dengan pot yg dirawatnya
Tampilan nge-Pot 85 disandingkan dengan pot yg dirawatnya

Saya menentukan nilai ambang bawah di tegangan 0.3 Volt sedangkan ambang atas di 0.4 Volt. Untuk mensimulasikan nge-Pot 85, saya menancapkan sensor dan kemudian mencabutnya. Saat mencabut setengah nge-Pot menganggap tanah kekeringan dan kemudian memicu relay. Saya menancapkan sensor kembali perlahan-lahan. Saat tertancap dengan baik, relay dimatikan. Pada saat itu sensor telah membaca nilai sensor di atas ambang atas sehingga relay dimatikan.

Pada program Nge-Pot 85 ini saya tidak menambahkan proteksi pompa seperti yang saya lakukan di Prototype Garduino ala Dewo versi 1. Mungkin nanti akan saya oprek lagi untuk menambahkan proteksi ini.

Untuk cara pembuatan Nge-Pot 85 akan saya tuliskan dalam postingan terpisah.

Membuat Nilai Referensi Analog

Masih melanjutkan eksperimen Garduino, saya ingin menambahkan fasilitas untuk mengeset nilai referensi batas bawah dan batas atas. Batas bawah ini berguna untuk menyalakan pompa jika pembacaan dari sensor Soil Moisture di bawah nilai ambang ini. Sedangkan batas atas berguna untuk mematikan pompa jika pembacaan sensor telah melebihi nilai ini.

Mencoba membaca batas atas & bawah
Mencoba membaca batas atas & bawah

Supaya tidak rumit secara hardware dan software, saya berpikir untuk menggunakan 2 buah potensiometer yang dibaca nilainya oleh 2 buah pin analog Arduino. Jadi tegangan keluaran dari potensiometer (prinsip pembagian tegangan) dibaca oleh Arduino dan digunakan sebagai nilai referensi batas bawah dan atas. Secara software dan hardware mudah sekali dilakukan dengan Arduino.

Tetapi muncul masalah lain, yaitu pembacaan nilai yang tidak konstan, melain fluktuatif. Tegangan yang dibaca selalu berubah-ubah padahal nilai potensiometer tidak diubah. Mungkin karena riak-riak regulator tegangan? Atau karena kepekaan dari Arduino-nya? Maklum, ADC (analog to digital converter) dari Arduino 10 bit, rentang nilainya sangat lebar antara 0 s/d 1024.

Sebenarnya bisa sih untuk membuat tegangan referensi ke pin Vref Arduino, tapi kayaknya sulit dilakukan karena bisa jadi tegangan referensinya fluktuatif juga.

Saya sudah mencoba menambahkan delay lebih lama supaya pembacaan nilai referensi lebih stabil. Namun tampaknya tidak terlalu membantu, karena penggunaan delay yang terlalu lama bisa menghambat pembacaan sensor-sensor terkait dan berimbas kepada respon penyalaan relay.

Jadi kesimpulannya, untuk penentuan nilai ambang ini solusi analog tidak efektif.

Opsi berikutnya adalah dengan menggunakan pengesetan secara digital. Ini bisa dilakukan dengan mengintensifkan pemrograman. Hanya saja, saat ini pin-pin Arduino telah banyak terpakai untuk LCD Display, 3 sensor dan rencananya akan ada 3 relay. Jika memang menggunakan pengesetan digital, maka minimal perlu 3 buah pin digital untuk solusi ini, yaitu:

1. Pindah mode, dari operasional (pembacaan sensor) ke mode edit nilai ambang bawah dan atas. Jadi ada 3 mode.

2. Tombol increment, fungsinya untuk menambahkan nilai ambang.

3. Tombol decrement, fungsinya untuk mengurangkan nilai ambang.

Untuk memperkaya fitur, bisa saja kita tambahkan tombol untuk membaca nilai ambang berdasarkan pembacaan sensor Soil Moisture saat itu. Ini bisa jadi fitur yang keren, hehehe…

Namun untuk menuju ke situ, nampaknya saya harus menghemat penggunaan pin untuk LCD display. Kayaknya saya harus menggunakan solusi serial LCD yang bisa menghemat penggunaan pin menjadi hanya 3 pin minimal.

Baiklah, nanti lagi dilanjutkan catatan ngopreknya.

Lebih Asyik dengan LCD Display

Bakal lebih asyik jika piranti kita punya display tersendiri sehingga kita bisa memonitor aktivitasnya terlepas dari peran komputer. Oleh karena itu saya membeli LCD display standard. Penggunaannya dengan Arduino sangat mudah karena sudah ada library-nya, yaitu LiquidCrystal (Tutorial lengkap ada di: sini).

Wow e-Pot, hehehe
Wow e-Pot, hehehe

Saya mengintegrasikan display ini ke Arduino Nano. Sebagian code untuk sensor-sensor saya ambil dari proyek Garduino versi 1 saya. Sementara sensor Soil Moisture belum saya integrasikan.

Menampilkan nilai Humidity & Temperature
Menampilkan nilai Humidity & Temperature

Oh iya, untuk menyalakan backlight dari LCD saya menggunakan salah satu pin Arduino juga. Saya pakai pin 10 dengan PWM sehingga kecerahannya bisa diatur dengan program.

Saya menambahkan timer untuk mematikan backlight supaya hemat listrik. Backlight akan diredupkan (fading) sampai padam setelah menyala 20 detik. Tetapi ada tombol untuk menyalakan backlight jika kita ingin sewaktu-waktu melihat penginderaan.

Tombol untuk menyalakan & mematikan backlight
Tombol untuk menyalakan & mematikan backlight

Asyik kan? Di bawah ini adalah source code-nya. Meneruskan sebelum-belumnya, program di bawah ini open source.

Baca selebihnya »