Bukan Hari Keberuntungan

Dua hari ini bukan hari keberuntungan bagi saya. Soalnya saya mengalami 2 hari yang apes. Ketidakberuntungan saya dimulai kemarin. Kemarin rencananya saya mau fotocopy desain PCB di kertas transparan. Lha kok kertas transparansinya ketinggalan di apartemen. Tetap nekat, sepulang kerja saya mencari kios fotocopy. Dan ternyata sulit mencari kios fotocopy yang bisa copy di kertas transparans. Kurang lebih sudah 6 kios saya sambangi dan mereka tidak punya transparansinya.

Pada kios ke-6 akhirnya bisa. Tapi ternyata hasilnya jelek. Jalur PCB ada yang terputus atau jalurnya bolong. Saya mencoba minta copy sampai 5 kali tetap jelek semuanya. Hiks.

Sambil pulang berharap ada kios fotocopy lagi, siapa tahu lebih bagus. Benar saja, saya mendapatkan kios fotocopy yang cukup rame. Syukurlah bisa copy ke kertas transparans. Dari 3 copy yang bagus cuma 1. Lumayanlah.

Pulang apartemen langsung mempersiapkan segalanya. Saya memotong PCB dengan mesin bor tapi menggunakan kepala pemotong. Kelihatannya lancar sampai ketika pemotongan berakhir adaptornya meledak. Listrik di apartemen pun padam. Terpaksa ke bawah minta engineer untuk menyalakannya lagi. Dan kegiatan ngoprek pun berakhir.

Hari ini masih melanjutkan ketidakberuntungan saya. Sore ini rencananya saya membuat adaptor sendiri pengganti adaptor yang meledak kemarin. Kebetulan saya punya trafo 500mA yang entah kapan saya belinya. Mungkin 2 tahun lalu. Sampai sekarang belum terpakai. Jadi saya pun mencoba merakitnya menjadi catu daya (power supply).

Sebenarnya rangkaian catu daya ini adalah rangkaian yang sederhana. Mungkin sekarang anak-anak SMP sudah diajarkan untuk membuatnya. Saya pun dengan lancar membuatnya. Nyaris hafal di luar kepala.

Namun ternyata kesederhanaannya itu tidak menjamin kesuksesan perakitan. Setelah semuanya terpasang dan saya test dengan multimeter tidak ada jalur korsleting, saya pun mencoba mencolokkannya ke listrik. Dan… meleduk lagi. Hiks… Kok ya rangkaian sederhana gitu hasilnya meleduk. (*gubrak*) Syukurlah tidak memadamkan listrik apartemen. Tapi rangkaian sudah tidak tertolong, jadi saya buang saja.

Setelah itu saya mencoba mengisi waktu dengan mentransfer desain ke PCB dengan setrika full hot. Hasilnya jelek. Transparansi mlenyeh. Hasil transferan bergeser. Dan jalur mbleber. Ehm, kemarin-kemarin lancar loh. Mungkin karena saya memotong transparansi menjadi kecil? Kemarin-kemarin transparansinya tidak saya potong.

Coba lagi bikin dengan mentransfer dari kertas biasa, bukan dari kertas transparansi. Eh hasilnya tidak jelas. Mungkin kurang lama menyetrikanya. Dan sudah bergeser jalurnya. Wah ternyata 2 hari ini bukan keberuntungan saya.

Sebenarnya sejak kemarin sudah memikirkan untuk menyerahkan pembuatan PCB ke jasa pembuatan PCB. Saya menemukan 3 jasa pembuatan. Sayangnya pemesanan harus dalam kuantitas yang banyak. Ada yang harus lebih dari 10. Untunglah ada yang minimal 5 copy. Saya akan mencoba memesannya ke sana. Memang jatuhnya lebih mahal dari pada bikin sendiri. Tapi PCB buatan profesional pasti lebih rapi. Maklum, kemarin-kemarin bikin PCB sendiri hasilnya tidak rapi.

Jadinya saya memilih jasa outsourcing dalam pembuatan PCB. Tapi saya jangan di-demo yaaa???

Iklan

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.

Membuat nge-Pot 85 (Open Hardware, Open Source)

Kalau kemarin membahas pengalaman mendesain & membuat nge-Pot 85 (Pot Elektronik), kini tibalah saatnya saya membagikan detail rangkaiannya. Namun mohon maaf, saya belum merapikan skema-nya dan tidak menyertakannya. Sekedar untuk diketahui, saya memulai desain justru dari layout PCB. Sedangkan layout breadboard dan skema otomatis tergambar di Fritzing. Hanya saja bertumpukan sehingga perlu dirapikan lagi tampilannya.

Layout PCB nge-Pot 85 tampak atas
Layout PCB nge-Pot 85 tampak atas

Di atas adalah tampilan atas dari PCB nge-Pot 85. Jika ingin membuat PCB sendiri, silakan download layout untuk etsa (etch) di sini: PCB copper bottom. Sedangkan di bawah ini daftar komponennya ditampilkan dalam 2 daftar, yaitu dalam format penamaan utk perakitan dan daftar belanjaan. Oh iya, jangan lupa menambahkan socket untuk ATtiny85 dan header female untuk titik-titik pengukuran.

Read More »

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.

Terima Kasih Atmel

Baru saja tadi pagi menulis tentang penerimaan 4 paket dan menuliskan kalau saya menunggu paket sample dari Atmel, ternyata sehabis makan siang paket dari Atmel datang. Horeee…

Paket sample dari Atmel
Paket sample dari Atmel

Ini adalah paket sample ke-2 dari Atmel untuk saya. Seperti biasa, saya mintanya tidak tanggung-tanggung, yaitu 4 seri microcontroller masing-masing 10 biji. Ke-4 seri tersebut adalah:

  1. ATTINY2313A-PU
  2. ATTINY4313-PU
  3. ATMEGA328P-PU
  4. ATMEGA32-16PU

Dan wow, yang termahal adalah ATMEGA32-16PU yang punya 40 pin. Sungguh betapa baiknya Atmel karena telah memberikan sample untuk keperluan research kecil-kecilan saya ini. Bahkan tidak ada syarat dan ketentuan (term & condition) rumit kecuali hanya tulisan: “SAMPLE, NOT FOR COMMERCIAL SALE”. Baik hati kan? Terima kasih Atmel.

Kulakan Arduino Uno, Relay, dll

Wah seneng banget hari ini menerima 4 paket lagi. Ini paket yang sudah lama dipesan, kurang lebih 1 bulan yang lalu. Maklum, pengirimannya via pos biasa jadi agak lamaan. Paket pertama berisi 3 buah Arduino Uno. Sebenarnya mau beli 10 sekalian soalnya jatuhnya jadi lebih murah. Hehehe… jadinya kulakan ya?

Kulakan Arduino Uno & Relay 5V
Kulakan Arduino Uno & Relay 5V

Sedangkan paket ke-2 berisi relay 5V DC. Ini penting banget untuk menjalankan peralatan tegangan tinggi yang dikendalikan dari Arduino atau microcontroller lain yang bekerja dengan tegangan 5 Volt.

Penampakan unit Arduino Uno dari China
Penampakan unit Arduino Uno dari China

Dua paket yang lain dari supplier lokal berisi LCD Display, pin-pin, dan komponen-komponen pendukung lain. Sedangkan paket yang masih ditunggu adalah sample dari Atmel. Jadi tambah semangat ngopreknya nih, hehehe…

Programming ATtiny84

Setelah belajar Attiny85 dan membuat programmer versi socket Nano, saya pun melanjutkan pembelajaran ke pemrograman ATtiny84. Chip sample dari Atmel ini adalah versi kaya dari ATtiny85 karena ATtiny84 (dan ATtiny44) memiliki 12 pin I/O. Bandingkan dengan ATtiny85 yang cuma punya 6 pin I/O. Lebih kaya 2 kali lipat sehingga memungkinkan penggunaannya untuk hal yang lebih kompleks.

Programmer ATtiny84 with Arduino Nano
Programmer ATtiny84 with Arduino Nano

Seperti biasa, saya mengandalkan Arduino Nano dan breadboard. Di atas adalah foto programmer sederhana hasil adaptasi ke ATtiny84. Untuk referensi dasar bisa merujuk ke: Program an ATtiny with Arduino (instructable) atau ke Programming an ATtiny w/ Arduino 1.0.1 (high-low tech). Prinsipnya sama, hanya saja saya menggunakan Arduino Nano untuk memprogram ATtiny84.

Test Program ATtiny84
Test Program ATtiny84

Programmer ini dapat berjalan dengan baik dan lancar. Hanya saja ada sedikit catatan dari saya, saat mencoba PWM (pulse width modulator) yang mensimulasikan keluaran analog, pin 5 dan 6 yang bisa digunakan untuk output analog ternyata tidak menghasilkan output yang smooth. Incremental dan decremental tidak smooth ditampilkan di LED. Mungkin karena pin 5 & 6 ini digunakan juga sebagai pin yang digunakan untuk pemrograman (MISO dan MOSI).

Berbeda dengan pin 7 dan 8 yang bisa menghasilkan output PWM yang smooth karena kedua pin ini didedikasikan utk I/O dan tidak nyambi keperluan lain. Mungkin secara visual (via LED) akan nampak sekali bedanya antara yang smooth dengan yang tidak. Tapi mungkin secara elektronika tidak terlalu berpengaruh. Namun untuk keperluan visual atau jika berhubungan dengan piranti lain yang peka, sebaiknya menggunakan pin 7 dan 8.