Ide Setrika Mati Otomatis

Kemarin malam mata saya menangkap sebuah nyala lampu merah di kamar. Rupanya itu lampu setrikaan. Wah, saya lupa mematikan setrika setelah menyetrika baju kantor tadi pagi. Untung saja tidak mengakibatkan kerusakan. Hanya saja, mungkin boros listrik, hiks…

P_20151216_072234

Kemudian saya jadi punya ide untuk menambahkan sensor gerakan di setrika. Ketika setrika nyala dan tidak ada gerakan selama 5 menit, maka setrika akan membunyikan alarm. Jika selama 5 menit alarm nyala tapi tidak ada tindakan dari penggunanya, maka setrika akan mati otomatis.

Kalau menggunakan Arduino tentu bisa mudah dibuat. Tinggal tambahkan sensor gerakan, relay dan buzzer. Atau kalau mau lebih canggih bisa pakai Raspberry Pi yang bisa mengirimkan email jika kita lupa mematikan setrika. Asyik kan? Kapan-kapan deh kalau punya banyak waktu lagi untuk ngoprek.

Sebenarnya ini kali ke-2 saya lupa mematikan setrika. Peristiwa lupa pertama adalah saat saya menyetrika PCB beberapa tahun yang lalu saat masih aktif ngoprek microcontroller. Syukurlah kedua lupa ini tidak kenapa-kenapa.

Iklan

Sample Dari STMicroelectronics

Hari ini kami kedatangan tamu dari Singapore, yaitu Jacky Chan (dari Future Electronics) dan TIN Boon-Fai (dari STMicroelectronics Asia Pacific Pte Ltd). Mereka mempresentasikan profil perusahaan, produk-produk dan prestasi perusahaan. Sangat menarik sekali melihat kemajuan teknologi dan betapa pesatnya perkembangan bisnis elektronik.

Kemudian TIN Boon-Fai mempresentasikan teknologi NFC (Near Field Communication). Sebuah device NFC yang kemudian dibaca datanya dengan smartphone yang memiliki fasilitas NFC. Uniknya device NFC ini tidak memerlukan baterai (atau catu daya). Secara otomatis device akan hidup ketika didekatkan dengan smartphone yang memiliki fitur NFC. Rupanya device ini memanfaatkan gelombang elektromagnetik dari smartphone untuk mendapatkan daya.

STM8S Value line discovery
STM8S Value line discovery

Yang tidak kalah menyenangkan, kami mendapat sample STM8S Value line discovery yang berguna untuk mempelajari MCU STM8S yang merupakan produk MCU multiguna dengan rasio harga per kinerja yang terbaik dari STMicroElectronics.

Sarana belajar microcontroller
Sarana belajar microcontroller

Jadi bersemangat mempelajari produk STMicroElectronics ini, terutama karena kata TIN Boon-Fai harga MCU-nya lebih murah dari pada Atmel yang setara tetapi dengan fitur yang lebih baik.

Terima kasih Pak Jacky Chan dan Pak TIN Boon-Fai. Semoga sukses berbisnis di Indonesia.

~~~

Terkait:
~ Sample dari Atmel: Pertama dan Kedua.
~ Sample dari Maxim Integrated: Pertama
~ Sample dari Pak Yandi: Board microcontroller C5131

Masih Bersemangat Ngoprek

Ketika terjadi hiruk pikuk saat launching Arduino Due saya hanya bisa berdecak kagum. Maklum, teknologi & fitur yang diusungnya jauh lebih powerful dibanding board Arduino sebelumnya. Arduino Due termasuk sesuatu yang baru yang sedikit keluar dari jalur Arduino sebelumnya karena Due menggunakan prosesor dengan arsitektur ARM sedangkan sebelumnya menggunakan AVR.

Dengan digunakannya arsitektur ARM, maka Arduino Due jadi head-to-head dengan Raspberry Pi yang telah lebih dulu mengguncang dunia sebagai PC paling murah sedunia. Walau pun sebenarnya keduanya jelas memiliki target pengguna yang berbeda, dimana Arduino bermain di dunia microcontroller sedangkan Raspberry Pi bermain di microcomputer. Pada kenyataannya keduanya bisa digunakan untuk controller dan computer dengan trik khusus.

Menurut saya langkah Arduino Due ini sudah baik walau pun keluar dari pakem Arduino sebelumnya karena transisi AVR ke ARM ini difasilitasi dengan baik oleh tim Arduino (salut!!!). Karena bisa jadi dunia microcontroller memang membutuhkan tenaga dan kemampuan yang lebih besar dari yang telah ada sekarang ini. Contohnya adalah saat Google mengeluarkan ADK, Sparkfun dengan IOIO, atau Arduino dengan ADK. Semuanya menjadikan MCU (microcontroller unit) lebih mudah diakses dengan piranti lain, khususnya piranti dengan sistem operasi Android.

Tidak dipungkiri kalau itu semua membutuhkan tenaga yang besar yang lebih dari pada yang bisa didapat dari MCU model AVR. Dan ARM adalah salah satu solusi termurah. Bisa saja kita menggunakan prosesor x86 dari Intel atau AMD, tetapi itu seperti membasmi nyamuk dengan bom.

Di tengah semakin cepatnya perkembangan teknologi saat ini, dengan segenap kerendahan hati, saya sedang merayap mempelajari MCU dengan basis arsitektur AVR. Dimulai dengan keluarga ATtiny yang sederhana sampai ke ATmega yang menengah. Sedangkan board Raspberry Pi masih tergeletak tak terurus menunggu dioprek.

Terus terang saya merasa seakan sedang mengejar ketertinggalan saya. Dan saya agak menyesal karena saat kuliah elektro dulu sering bolos dan tidak memperhatikan atau mempelajari materi kuliah dengan sungguh-sungguh. Di lain pihak, jaman saya kuliah memang masih serba sulit, baik dari segi kurangnya literatur, kurangnya komunitas elektronika, terbatasnya koneksi internet/komunikasi, dan yang pasti karena kurangnya dana untuk membiayai eksperimen.

Syukurlah saat ini semua kendala itu sudah lenyap. Dan saya bersyukur masih bisa menikmati belajar itu semua dengan semangat yang masih menyala. Kendala saya saat ini hanyalah waktu, usia dan menurunnya kemampuan (*hiks*). Namun itu semua tetap tidak mengalahkan semangat saya.

Ini curhatku, mana curhatmu?

Meneruskan Rangkaian Jamdario

Ini adalah perjalanan panjang saya dalam mendesain dan membuat rangkaian Jamdario (Jam dan Radio). Sudah sebulan ini proses terus berlangsung dari desain sampai pembuatan prototype. Panjangnya proses ini karena saya harus menunggu beberapa bagian, yang pertama adalah pembelian modul radio dari Sparkfun, pemesanan PCB dan googling banyak hal seperti LDO (Low Drop Out Voltage), contoh pemrograman radio, dll.

Antara PCB pesanan dengan buatan sendiri
Antara PCB pesanan dengan buatan sendiri

Semuanya adalah proses yang sangat menarik dan menantang. Menuangkan desain ke prototype juga suatu tantangan yang berat. Karena selama ini saya membuat PCB sendiri yang ternyata tidak rapi (*hiks*). Untuk sebuah prototype bolehlah, nanti kalau mau produksi barulah dibuat yang baik. Untuk proyek Jamdario ini saya memesan PCB ke pihak luar. Hasilnya bagus & presisi. Nyoldernya juga enak. Gambar di atas menunjukkan PCB pesanan disandingkan PCB buatan saya sendiri yang tidak rapi, hehehe…

Perakitan prototype di PCB baru
Perakitan prototype di PCB baru

Perakitan di PCB baru juga lebih nyaman karena presisi. Pelapisan perak di jalur rangkaian juga memudahkan penyolderan. Setelah semua chip ditancap, Jamdario langsung menyala dengan baik.

Selanjutnya ngoprek modul radio Si4703
Selanjutnya ngoprek modul radio Si4703

Selanjutnya adalah ngoprek modul radio. Sebelumnya sudah nge-test modul ini dengan code dari Sparkfun dan telah berjalan baik. Tinggal mengintegrasikannya ke Jamdario.

LDO ke 3.3V
LDO ke 3.3V

Untuk mengintegrasikan modul radio ini ada beberapa hal yang perlu dilakukan, pertama adalah mengintegrasikan jalur power supply. Ternyata modul ini bekerja dengan tegangan 3.3V, sedangkan Jamdario seperti layaknya MCU Arduino bekerja dengan tegangan 5 Volt. Diperlukan LDO (low drop out voltage) untuk menurunkan tegangan dari 5 V ke 3.3V. Saya menggunakan LM1117-3.3V seperti yang direkomendasikan banyak desainer elektronika.

Integrasi berikutnya adalah jalur komunikasi dengan MCU (microcontroller unit). Komunikasi dilakukan via komunikasi I2C (2-wire). Ternyata butuh pin 1 lagi untuk reset dan saya belum mengakomodasinya di PCB. Terpaksa dibuat jalur pakai kabel, hehehe…

Integrasi selanjutnya tentu secara software sehingga bisa memanfaatkan tombol-tombol di Jamdario untuk pencarian gelombang dan pengaturan volume. Sangat menantang kan?

Sayangnya desain PCB saya tidak presisi
Sayangnya desain PCB saya tidak presisi

Sayangnya desain PCB saya tidak presisi dalam hal peletakan lubang baut. Tadinya saya mendesain 4 buah lubang untuk spacer yang berguna untuk memegang modul LCD 16×2. Ternyata sedikit bergeser sehingga tidak pas dengan lubang baut di LCD. Mestinya saya mencetak desainnya dulu dan kemudian mencocokkan lubangnya dengan LCD. Masalah ini bisa diatasi dengan membuat board khusus pemegang LCD yang berfungsi pula untuk peletakan tombol-tombol.

Oprekable
Oprekable

Desain prototype Jamdario ini sedikit unik dengan meletakkan LCD mengambang di atas beberapa komponen. Fungsinya tentu saja untuk memperkecil PCB. Untuk mengopreknya tentu diperlukan cara khusus, yaitu dengan memindahkan LCD ke breadboard dan membuat jumper untuk memfungsikannya. Setelah itu barulah kita bisa mengoprek Jamdario, khususnya untuk ngoprek software-nya.

Demikian progress prototype Jamdario yang ternyata memakan waktu lama. Dalam seminggu ke depan saya akan ngoprek software-nya.

Mendesain Display Dot Matrix

Ini adalah sebuah perjuangan bagi saya saat ada seseorang yang minta didesainkan display dot matrix. Tidak seperti LCD display dan 7-segment, display dot matrix ini ruwet karena kita harus mengendalikan 64 LED (8×8) untuk 1 panel. Padahal yang diminta 10 panel. (*garuk-garuk kepala*)

Sebenarnya ada modul dot matrix 32×8 atau 40×8 yang sudah jadi yang menggunakan komunikasi serial dengan microcontroller, tapi saya belum menemukan yang jual di sini. Kalau pun mau beli dari luar pasti butuh waktu lama untuk pengiriman, padahal saya sudah gregetan. Alhasil saya pun berusaha mendesainnya sendiri dengan bekal 5 buah panel dot matrix untuk membentuk panel 40×8.

2 panel telah bekerja
2 panel telah bekerja

Berbekal pengetahuan yang pas-pasan, saya mencoba mendesain sendiri dengan mengacu datasheet. Saya mengandalkan shift register 74HC595 untuk men-drive row dan kolom panel dot matrix. Pengkabelan sangat ruwet. Persediaan kabel saya habis saat menghubungkan 3 panel dot matrix. Sudah tidak bisa lagi mengkabelkan 2 panel yang tersisa.

3 buah panel telah bekerja dan kabel pun habis
3 buah panel telah bekerja dan kabel pun habis

Saya pun mencoba mengoptimalkan software untuk menampilkan test scanning, blink test, text statis, scroll text (kanan ke kiri) dan karakter custom. Semuanya berhasil setelah ngoprek 3 malam. Semua kesulitan berhasil diatasi. Hanya saja, saya tahu banyaknya kekurangan dari desain saya ini, hiks…

Berikut ini adalah kekurangan desain saya:

  1. Column Scanning
  2. Saya menggunakan column scanning yang bagi saya mudah. Teknik ini akan bagus jika panjang panel sedikit. Begitu panel ditambah supaya display lebih panjang, maka column scanning menjadi lambat dibanding row scanning. Jika panel dot matrix 40×8, maka column scanning harus men-scan sebanyak 40 kali. Sedangkan row scanning cuma 8 kali.

    Kelemahan row scanning adalah dalam merekonstruksi pesan yang akan ditampilkan karena harus ada operasi array atau bitwise yang lebih rumit. Jadi harus lebih jeli di pemrograman. Terus terang pemilihan teknik column atau row scanning itu sangat sulit. Mau gampang tapi lambat atau sulit tapi cepat? Nah loh…

  3. Shift Register untuk scanning
  4. Ini kesalahan saya tepatnya, karena saya menggunakan teknis scanning menggunakan shift register. Mestinya saya cukup menggunakan Johnson Counter, misalnya dengan CD4017. Penggunaan shift register ini menjadikan desain tidak efisien, baik secara hardware mau pun software.

    Terus terang saya ribet banget saat membuat scanner dengan shift register, apalagi ketika menghubungkan 3 chip 74HC595 secara cascade. Anehnya chip ke-3 yang di-cascade jadi berubah pin clock dan latch, jadi harus disilang. Chip ke-3 ini sudah saya ganti dengan stok yg lain tapi tetap harus disilang. Aneh…

  5. Sourcing atau Sinking Current
  6. Ini menyalahi prinsip desain elektronika yang baik, karena saya tidak memperhitungkan arus yang harus diberikan atau dibenam oleh shift register. Dengan penyalaan 8 buah LED sekali siklus tentu sudah cukup besar arus yang harus dialirkan atau dibenam. Tetapi ketika saya abaikan, ternyata sirkuit masih berjalan dengan baik. Hanya saja saya tahu bahwa ini bukan desain yang baik.

    Terbukti nyala LED menjadi lebih redup saat 3 panel terhubung. Berarti saya harus memperhitungkan sourcing current. Syukurlah IC tidak jebol. Atau mungkin belum? Hehehe…

Menggunakan font 5x7 yg hemat
Menggunakan font 5×7 yg hemat

Baiklah, saya akan perbaiki desainnya. Kalau pun di foto nampak bekerja dengan baik, itu masih banyak kelemahannya. Rupanya saya harus belajar banyak banget. Dan tentu saja harus beli beberapa komponen tambahan, termasuk kabeeeel…

Desain Alert Jika PC/Server Mati

Hari ini dapat laporan dari salah satu cabang kalau server replikasi mati. Ironisnya kematian server replikasi ini sudah terjadi beberapa hari yang lalu tanpa ketahuan. Mengatasi kematian ini sebenarnya sangat mudah, yaitu tinggal menyalakannya lagi. Yang menjadikannya sulit adalah karena kita tidak tahu kapan server replikasi ini mati. Kita tidak bisa segera tahu saat dia mati. Sampai kemudian kita mengeceknya secara fisik dan ketahuan kalau dia mati.

Berangkat dari masalah ini, jadi timbul ide untuk merancang suatu alat yang mampu mendeteksi apakah sebuah PC/server mati. Jika dia mati, maka segera bunyikan alarm. Jika perlu langsung mengirimkan SMS/email secara otomatis untuk memberitahukan kalau PC/server mati.

Konstrainnya adalah bahwa ini merupakan alat yang berdiri sendiri, bukan merupakan PC yang digunakan untuk memonitor PC/server. Alat ini mempunyai baterai sendiri sehingga tidak terganggu saat pasokan listrik dari PLN mati.

Saat ini sedang googling jika ada alat seperti itu dan mempelajari cara kerjanya. Jika alat tersebut terlalu mahal, maka tibalah saatnya mendesain sendiri dengan microcontroller. Jadilah sebuah tantangan baru.

Anda punya ide atau informasi mengenai hal terkait masalah ini? Yuk kita sharing…

Membuat Jam Digital Sendiri

Dulu saat kelas 2 SMP saya pernah membuat jam digital dengan display seven segment besar. Jaman tahun segitu betapa bangganya saya bisa membuatnya sendiri. Memang sih dulu membeli PCB yang sudah jadi, jadi tinggal beli komponen dan solder-solder komponen saja. Sayangnya dulu kristal yang dibutuhkan tidak ada yang nilainya pas sehingga jam menjadi terlambat beberapa menit setelah beberapa hari. (*wah jam kok tidak akurat?*)

Kini setelah puluhan tahun kemudian saya diminta untuk membuat jam lagi. Kali ini saya mendesainnya dengan microcontroller Atmega328. Jam ini didesain memiliki alarm yang bisa menyalakan suara biasa atau bisa diset untuk menyalakan radio. Selain itu jam ini didesain memiliki sensor suhu. Saya mendesainnya menggunakan LM35, kebetulan ada stoknya. Tadinya mau pakai DHT11 tapi saya pikir tidak perlu sensor kelembaban. Selain menghemat biaya, pemakaian LM35 juga menghemat memori karena tidak perlu library khusus untuk pemrogramannya.

Masih 1/2 selesai
Masih 1/2 selesai

Untuk display saya menggunakan LCD 16×2. Terus terang ini solusi yang paling praktis bagi saya, karena saya sudah beberapa kali menggunakan display ini dan berjalan dengan baik. Lagi pula dengan LCD 16×2 lebih fleksibel tampilannya karena bisa menampilkan banyak karakter/angka.

Mungkin proyek selanjutnya saya akan coba pakai 7-Segment. Kebetulan harga 7-segment kecil tidak terlalu mahal.

Selain sulitnya mendesain rangkaian, tantangan terbesar adalah mendesain tampilan akhir produk. Ini yang paling sulit, bagaimana membuat produk yang enak dipandang dan dipakai. Banyak produk bagus (apa pun produknya) yang gagal di pasaran hanya karena tampilannya tidak menarik dan/atau tidak enak dipakai, padahal fiturnya canggih.

Untuk sementara ini saya memilih untuk memprioritaskan fungsionalitas. Untuk tampilan nanti sajalah saat membuat versi selanjutnya. Hehehe…

Oh iya, dalam desain jam ini masih tersisa beberapa pin, yaitu 2 pin analog dan 4 pin digital (2 di antaranya PWM). Jadi ke depannya jam ini masih bisa dioprek untuk menambahkan fitur, misalnya menambahkan sensor gas/LPG, cahaya, soil moisture (oh bisa jadi ngepot), atau bisa juga ditambahkan relay untuk lampu/AC atau motor untuk membuka/menutup tirai jendela.

Kebetulan saya pakai ATmega328 yang punya memori 32KB, yang berarti 4x lebih besar dari pada ATmega8.

Foto di atas adalah tampilan jam-nya. Masih setengah jadi. Baru bisa menampilkan tanggal dan jam saja. RTC dengan DS1307 didesain embedded. Nanti malam akan dilanjutkan untuk memasang tombol-tombol dan sensor suhu LM35. Sebenarnya saya sangat penasaran untuk segera bisa memasang modul radio (dengan breakout Si4703 dari Sparkfun). Sayangnya pesanan saya belum tiba. Hiks…