Search

Thursday, September 24, 2020

[MagicMirror] MMM-TuyaSL: modul MM untuk menampilkan status perangkat smart-home berbasis Tuya

Tulisan kali ini juga masih seputar MagicMirror. Kali ini, akan diperkenalkan modul yang baru saya rilis untuk menampilkan status perangkat smart-home berbasis Tuya IoT-Platform (yang diakses via aplikasi android SmartLife).

Setelah sekian lama gak ngoprek MM, penasaran dengan banyak perangkat berbasis Tuya (merk Bardi) di rumah yang belum ditampilkan/dipantau dari MM. Setelah browsing2, akhirnya nemu contoh aplikasi web yang dapat mengakses informasi yang saya butuhkan. Setelah sukses coba protokol aksesnya via Postman, dilanjutkan coding (copas template-nya dari modul MMM-TPLink), akhirnya setelah 3 hari bisa merilis versi perdana MMM-TuyaSL.

Tampilannya, kira-kira sebagai berikut:


Kalo, tampilan di MM-nya kurang lebih seperti ini:


Saat ini, hampir semua perangkat smart-home yang terinstal di rumah, sudah dapat dipantau statusnya dari MM. :D


[MagicMirror] MMM-Yeelight: modul MM untuk menampilkan status ON/OFF dari perangkat smart-home Yeelight

Udah lama gak nulis lagi di blog ini, dan walaupun udah telat banget karena memang udah lama banget, kali ini mau bahas tentang modul MagicMirror untuk menampilkan status ON/OFF smartlight dengan merek Yeelight, namanya udah bisa ditebak MMM-Yeelight.

Gak jauh berbeda dengan MMM-TPLink yang sudah dituliskan artikel sebelumnya, yang ini hanya melakukan perubahan di bagian discovery-nya. Dan juga hanya untuk lokal (LAN). Tapi untuk Yeelight ini, lebih primitif karena untuk nama alias-nya tidak tersedia informasinya sehingga nama-nama perangkatnya (dan MAC address-nya) perlu dideklarasikan di config-nya.

Berikut adalah contoh info yang akan ditampilkan:


Sekian, sekilas infonya. :)

Monday, July 6, 2020

Electronic Lock (dan ketika bahasanya te-reset menjadi bahasa Cina)

Sejak renovasi rumah terakhir, kunci pintu rumah utama, saya ganti dengan electronic lock (tapi belum smart lock) , selanjutnya saya singkat EL merk Dekkson seri 9112. Pertimbangannya waktu itu karena fiturnya cukup lengkap dengan harga yang menurut saya relatif murah. Fitur2 EL ini cukup lengkap karena sudah memiliki fitur keamanan menggunakan password, fingerprint, dan kartu NFC/RFID (e-ktp, e-money, maupun kartu gate-access masuk kompleks juga bs dipake).
Nah kebetulan, pas hari Minggu ada kebutuhan supaya bisa akses pintu tanpa harus otentikasi, dengan kata lain mau diset ke normal mode. Berbekal info dr manual guide yang ada, saya coba set. Krn saking buru2nya, dan mungkin tidak fokus, malah mengaktifkan bahasa Cina. Walhasil, g paham dg komentar/respon yang diberikan si EL. Baca manual guide lagi sampe khatam, juga g nemu cara mengubah default language balik ke Inggris. Mencoba peruntungan dg coba2 berbagai kombinasi menu, juga tanpa hasil.
Setelah hampir setengah hari trial & error dan browsing2, g nemu info yang dimaksud, saya coba kontak ke Dekkson support via menu kontak di situsnya.
G disangka, pagi ini saya dihubungi PIC Dekkson Indonesia (p Juliz), mengkonfirmasi keluhan saya untuk membantu saya mereset kembali language EL kembali ke bahasa Inggris. Dalam hati, saya acungi jempol nih produk dan supportnya. G nyangka bakal direspon secepat ini.
Tenyata urutan menunya adalah 4-4-2 setelah masuk ke Admin/Setting mode. Kombinasi urutan menu ini yg saya cari2 setengah hari kemaren, dan g ada infonya sama sekali di internet.
Masukan juga buat Dekkson, sebaiknya menu reset language ini juga dimasukkan ke manual guide yang menyertai produknya supaya apa yang saya alami, tidak dialami juga oleh orang lain. Atau mungkin hanya saya yang pernah mengalami reset language ke bahasa Cina ya? Tapi yang penting, kini EL rumah sudah kembali berbahasa Inggris.
Sekali lagi, terima kasih atas support Dekkson (Indonesia) dan p Juliz.
Semoga makin sukses. Dan satu lagi, bwt para pembaca yang mau pake EL, produk ini patut dipertimbangkan.


Monday, May 7, 2018

[MagicMirror] MMM-TPLink: modul MM untuk menampilkan status ON/OFF dari perangkat smart-home TPLink

Saat ini sudah banyak beredar perangkat-perangkat untuk mendukung rumah pintar (smart-home devices) dengan berbagai macam merek. Salah duanya adalah Philips (Hue) dan TPLink.
Kebetulan di rumah pake perangkat dari kedua merek tersebut. Untuk menampilkan status lampu-lampu Philips Hue di MagicMirror, sudah tersedia MMM-Hue.
Akan tetapi untuk TPLink, belum tersedia modul di MM. Setelah googling, ketemulah sebuah modul nodejs tplink-smarthome-api yang menyediakan API yang cukup lengkap untuk mengakses perangkat smart-home TPLink baik plug maupun bulb. Dua jenis perangkat ini juga terpasang di rumah. Setelah trial-error, akhirnya berhasil membuat sebuah modul MM untuk menampilkan status ON/OFF dari plug maupun bulb TPLink. Adapun modul yang dimaksud dapat dilihat di github MMM-TPLink.

Foto dari MMM-Hue dan MMM-TPLink di MM saya

Semoga bermanfaat.

Monday, March 13, 2017

[MagicMirror] MMM-PrayerTime: modul MM untuk waktu sholat dan melantunkan Adzan ketika masuk waktu sholat

Setelah sebelumnya menggunakan JADWAL SHOLAT dengan memanfaatkan modul calendar dan mengambil datanya (iCal/VCAL) dari http://prayerwebcal.appspot.com dengan ukuran >600KB sering menyebabkan beberapa MM-module lainnya tidak dapat dimuat secara normal (terutama yang juga men-download data dari internet). Akhirnya, saya putuskan untuk membuat modul baru khusus untuk menampilkan info JADWAL SHOLAT. Datanya saya ambil dari https://aladhan.com. Saya juga menambahkan fitur untuk melantunkan Adzan saat masuk waktu sholat.
Modul tersebut tersedia dan dapat didownload disini.
Ini contoh tampilannya di MM saya:


Semoga bermanfaat.

Tuesday, February 21, 2017

[MagicMirror] MMM-RandomQuranAyah: modul MM untuk menampilkan ayat Qur'an secara acak

Sebagai seorang muslim, salah satu kewajiban yang harus dijalankan adalah membaca, memahami, dan mengamalkan isi kitab suci Al-Qur'an. Untuk memudahkan membaca dan memahami (dari arti), bukan berarti sudah cukup, tapi setidaknya memperbanyak peluang untuk membaca dan memahami isi ayat2 Al-Qur'an. Oleh karena itu, saya akhirnya menambahkan sebuah modul di MagicMirror saya untuk menampilkan ayat Qur'an secara random. Ayat Qur'an tsb diambil secara online-realtime dari situs https://api.alquran.cloud. Modul tersebut tersedia dan dapat didownload disini.
Ini contoh tampilannya di MM saya (top-bar):


Saya juga menambahkan JADWAL SHOLAT dengan memanfaatkan modul CALENDAR (salah satu modul default MM), dan mengambil datanya secara online-realtime dari http://prayerwebcal.appspot.com.

TODO

Alert/notif ketika akan dan masuk waktu sholat.

Semoga bermanfaat.

Friday, February 10, 2017

[PROJECT] Magic Mirror alias Cermin Ajaib



“magic mirror, on the wall – who is the fairest one of all?”

Kalimat ini tentunya sering kita dengar, minimal pernah dengar terutama bagi pecinta film animasi klasik Disney. Yap, kalimat yang sering diucapkan oleh sang Evil Queen kepada cermin ajaibnya.
Nah, bagaimana kalo kita memiliki sebuah cermin anti main-stream, g hanya buat bercermin tapi di era internet dan IoT ini, ada hal lain yang bisa kita sajikan dalam kegiatan kita bercermin. Misal menampilkan jam, tanggal, prakiraan cuaca, agenda pribadi, headline berita, bahkan sampe memutar musik dengan voice/gesture-controlled. Dan tak kalah kerennya, bisa mengenali siapa yang sedang bercermin dan menampilkan informasi (pre-setting) yang bersesuaian dengan profilnya.
Nah, pada kesempatan kali ini, saya akan mencoba sharing MagicMirror yang saya buat.

MAIN PARTS (hardware)

  • Display panel/monitor. Saya pake led panel dari TV Hisense 24". Katanya sih ini buatan Indonesia. Dimensi terluar led panel dr TV ini adalah 32cmx54,5cm. Saya hanya mengambil isi dari TV tsb. Frame-nya tidak dipake karena dimensinya cukup besar yang akan berpengaruh terhadap hasil akhir cermin yang saya inginkan.
  • One-way mirror. awalnya saya mengira, cermin ini bakal susah diperoleh (di Bandung), ternyata malah dijual di toko kaca biasa. Ukuran cermin yang saya pake adalah 32cmx54,5cm seharga 120rb disini. Ukuran cermin yang akan digunakan sebenarnya silakan sesuaikan dengan kebutuhan Anda.
  • Frame. Berhubung hasil akhir yang saya inginkan adalah cermin dengan frame kayu, saya membuat desain frame-nya pake SketchUp. Tapi sayangnya, setelah menghubungi beberapa workshop/tukang kayu, tidak ada yang mau menerima orderan dengan desain yang saya buat. Mungkin juga saya mengunjungi tempat yang salah. Akhirnya desain dibuat menjadi 2 part yaitu frame depan order ke tukang pigura, dan frame belakang pesan ke tukang kayu biasa. Yang ini habis 130rb. Mestinya sih bisa lebih murah klo bikin sendiri dan punya bahan2nya ato punya tukang kayu langganan. Jika Anda memutuskan untuk membuat cermin frame-less, bagian ini dapat diabaikan.
  • Raspberry pi (raspi). Untuk otak MM, saya pake raspi 3 model B dengan OS Raspbian Jessie. Untuk instalasi OS Raspbian, silakan ikuti petunjuknya disini. 
  • Micro SD Card. Diperlukan 1 micro SD CARD berukuran minimal 16 GB (8 GB sih cukup, tapi mending berlebih daripada kurang) untuk keperluan instalasi OS dan software lainnya.
  • Kabel HDMI. Untuk menghubungkan raspberry output ke TV/monitor.
  • Kabel Power TV dan Adaptor+Kabel Power Raspi. Jelas perlu lah, ntar dpt powernya darimana? :P Khusus untuk adaptor Raspi, sebaiknya menggunakan adaptor dengan keluaran 5V 2A.

MAIN PARTS (software)

  • MagicMirror. Saya menggunakan software yang dibuat oleh seorang blogger yang baik hati, berbasis Node.JS, dan diberi nama MagicMirror (MM). Dengan modularitas platform MM dan dukungan para kontributor/developer dari seantero dunia, maka kini MM memiliki banyak modul yang dapat dipilih dan diinstal sesuai keperluan kita. Cara instalasi MM dan modul-modulnya bisa dilihat disini.

ACCESSORIES/OPTIONAL PARTS

  • Pi-Camera (pi-cam). MM saya mengimplementasikan modul Facial-Recognition sehingga diperlukan sebuah camera. Alternatif lainnya, bisa menggunakan USB Web Camera (saya sudah pernah mencobanya juga menggunakan USB Web Cam Logitech). Tapi dengan alasan kepraktisan bentuknya, diputuskan menggunakan pi-cam.
  • PIR Sensor (HC-SR51). Sensor ini untuk keperluan monitor control (on/off secara otomatis) atau dimmed-info. Info di layar akan ditampikan jika cermin mendeteksi adanya gerakan.
  • USB Microphone. Untuk keperluan input voice-control. Saya membelinya disini.
  • Wireless keyboard+mouse. Untuk mengontrol raspi selama proses development/setup software yang diperlukan.

INSTALASI

  1. jika semua bahan sudah siap, silakan diinstal sesuai ilustrasi gambar diatas.
    Untuk kustomisasi tampilan, sensor dan lainnya akan dibahas di tulisan terpisah.
  2. pasang semua kabel-kabel (minimal):
    • kabel HDMI dari raspberry ke input TV/monitor
    • kabel power TV dan raspberry
  3. jika sudah OK semua, MM sudah siap dijalankan dan beraksi.
 

Selamat mencoba.

REFERENSI

https://magicmirror.builders

[SOFTWARE] Instalasi platform MagicMirror2

Pada tutorial kali ini, saya akan menguraikan cara instalasi sebuah software bernama MagicMirror2. Software yang bertagline "The open source modular smart mirror platform" adalah sebuah software yang digunakan untuk membangun sebuah Smart Mirror. Singkat cerita, Smart Mirror adalah sebuah cermin yang dapat menampilkan beberapa info secara dinamis maupun memiliki fungsi tambahan lainnya.
Tanpa panjang cerita, saya akan memulai cara instalasi MagicMirror2 pada sebuah mesin Raspberry Pi 3 model B (raspi) dengan OS terinstall Raspbian Jessie.
Pastikan raspi terhubung ke internet sebelum memulai proses instalasi.

INSTALASI OTOMATIS

  1. jalankan perintah berikut di shell-command:

    curl -sL https://raw.githubusercontent.com/MichMich/MagicMirror/master/installers/raspberry.sh | bash
  2. ikuti perintah yang ada di screen. Jika ada pesan kesalahan karena ada tool/system requirement yang belum terinstall, silakan diinstal dulu, kemudian ulangi langkah 1. Jika instalasi tidak mau lanjut karena dibilang bahwa instalasi MM sudah ada, silakan dihapus dulu folder instalasi tujuan MM.
  3. Jika sukses melakukan instalasi MM, bisa dilanjutkan dengan menginstal modul-modul tambahan yang diperlukan. List modul yang bisa diinstal bisa dilihat disini.
atau jika tetap ada kendala, Anda bisa menginstall dengan cara manual.

INSTALASI MANUAL

Instruksi instalasi manual selengkapnya bisa dilihat disini.

Jika sudah berhasil melakukan instalasi MM, masih ada beberapa hal yang mesti dilakukan, yaitu:
  1. Mengkonfigurasi Raspberry PI

    edit /boot/config.txt:
    sudo vi /boot/config.txt
    tambahkan baris:
    display_rotate=1
    avoid_warnings=1

    reboot Pi
    sudo reboot
  2. Menyembunyikan Kursor Mouse secara otomatis

    install unclutter:
    sudo apt-get install unclutter
    (hanya untuk versi 1)
  3. Menonaktifkan screensaver
    (Anda memerlukan paket x11-xserver-utils sudah terinstall sebelumnya)

    edit ~/.config/lxsession/LXDE-pi/autostart:
    sudo vi ~/.config/lxsession/LXDE-pi/autostart

    tambahkan baris:
    @xset s noblank
    @xset s off
    @xset -dpms

    Edit /etc/lightdm/lightdm.conf:
    sudo vi /etc/lightdm/lightdm.conf

    tambahkan baris [SetDefaults]:
    xserver-command=X -s 0 -dpms
  4. Menonaktikan WiFi Power Save

    Edit /etc/modprobe.d/8192cu.conf
    sudo vi /etc/modprobe.d/8192cu.conf

    tambahkan baris:
    # Disable power saving
    options 8192cu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1

    Untuk Raspberry Pi 3:
    Edit /etc/network/interfaces
    sudo vi /etc/network/interfaces

    Tambahkan baris dibawah seksi wlan0:
    wireless-power off

    Reboot PI
    sudo reboot
  5. Auto-start MM
    Pada bagian ini akan dijelaskan bagaimana untuk menjalankan MM secara otomatis ketika boot, dan bahkan tetap menjaga MM tetap berjalan ketika sempat terjadi kegagalan.
    • Menggunakan PM2
      PM2 adalah manager proses produksi untuk aplikasi Node.js yang dilengkapi dengan load-balancer.
      • Install PM2
        install PM2 pakai NPM
        sudo npm install -g pm2
      • Menjalankan PM2 saat boot
        untuk memastikan PM2 menjalankan fungsinya ketika sistem operasio mulai (booting), maka PM2 perlu dijalankan saat boot yaitu dengan cara:

        pm2 startup
        PM2 akan menampilkan daftar perintah yang bisa dijalankan.
      • Membuat start-script untuk MM
        MM dapat menggunakan PM2 dengan cara membuat sebuah shell-script. Disarankan membuat script ini di luar folder instalasi MM untuk memastikan tidak menimbulkan masalah saat ingin mengupdate MM.
        cd ~
        vi mm.sh

        tambahkan baris:
        cd ~/MagicMirror
        DISPLAY=:0 npm start

        Simpan dan tutup. Pastikan file tsb executable:
        chmod +x mm.sh

        Script tsb sudah siap digunakan untuk dapat menjalankan MM via PM2.
      • Menjalankan MM

        pm2 start mm.sh

        MM seharusnya sudah berjalan dan tampil di layar setelah beberapa detik.
      • Mengaktifkan MM supaya dijalankan otomatis saat boot
        untuk memastikan MM dapat dijalankan secara otomatis setelah proses booting, Anda perlu menyimpan status terkini dari semua script yang dijalankan via PM2. Untuk melakukannya, jalankan perintah berikut:

        pm2 save

        Itu saja. Dan kini MM akan dijalankan otomatis pada saat booting dan auto-restart jika terjadi kegagalan.
      • Mengontrol MM via PM2
        restart MM:
        pm2 restart mm

        stop MM:
        pm2 stop mm

        menampilkan logs
        pm2 logs mm

        menampilkan info proses MM:
        pm2 show mm
Itulah cara untuk melakukan instalasi, menjalankan, dan mengontrol MM (secara otomatis).

Untuk referensi selengkapnya, silakan kunjungi:
https://github.com/MichMich/MagicMirror/wiki
https://forum.magicmirror.builders/category/10/troubleshooting


Wednesday, October 12, 2016

[MICROCONTROLLER][ARDUINO][TUTORIAL] Jumlah LED maksimal yang dapat dikontrol oleh ARDUINO (UNO) - Bonus KnightRider LED

Tutorial ini menunjukkan jumlah maksimal LED yang dapat dikontrol secara langsung menggunakan pin digital Arduino (UNO). Dan apakah semua LED dapat menyala bersamaan?

KEBUTUHAN PERANGKAT
  • Arduino (uno)
  • LED (12 buah)
  • Resistor 220 ohm maks 1 kilo-ohm (12 buah)
  • kabel jumper (warna-warni)
SIRKUIT
  • Untuk menghubungkan 1 buah LED ke arduino, silakan lihat tutorial Blinking LED. Silakan duplikat rangkaian LED tsb hingga berjumlah 12 buah rangkaian. Masing2 kaki positif-nya dihubungkan ke pin digital D2 hingga D13. Pin D0 dan D1 tidak dapat digunakan sebagai output dikarenakan sudah memiliki fungsi khusus sebagai RX dan TX.

SKEMATIK

Lihat rangkaian skematik di Blinking LED.

KODE

Setelah membuat rangkaian sirkuitnya:
  • sambungkan Arduino ke komputer
  • jalankan Arduino Software (IDE). Jika belum terinstal, silakan didownload disini.
  • masukkan kode berikut:
//#define _CDEBUG_ // uncomment for DEBUGGING
#define LED_NUM 12
int aLedPin[LED_NUM] = {13,12,11,10,9,8,7,6,5,4,3,2}; // PIN D0 & D1 can not be set as OUTPUT because of dedicated function as RX & TX
int i = 0, iPos = 0;
int iDir = 1;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  for (i=0; i<LED_NUM; i++) {
    pinMode(aLedPin[i], OUTPUT);
    digitalWrite(aLedPin[i], LOW);
  }
}

void loop() {
  // test all LEDs are blinking simulatenously?
  //LEDAllBlinks(); // uncomment to display blinking 12-LEDs
  
  // knight rider led
  LEDKnightRider(); // uncomment to display Knight Rider LED (using 12 LEDs)
}

void LEDKnightRider() {
#ifdef _CDEBUG_
  Serial.println(iPos);
#endif
  digitalWrite(aLedPin[iPos], HIGH);
  delay(50);
  digitalWrite(aLedPin[iPos], LOW);
  iPos = iPos + iDir;
  if ((iPos == LED_NUM - 1) || (iPos == 0)) {
    iDir = iDir * -1;
  }
}

void LEDAllBlinks() {
  for (i=0; i<LED_NUM; i++) {
    digitalWrite(aLedPin[i], HIGH);
  }
  delay(1000);
  for (i=0; i<LED_NUM; i++) {
    digitalWrite(aLedPin[i], LOW);
  }
  delay(1000);
}

VIDEO

Berikut adalah video hasil tutorial diatas:

12-LEDs are blinking simultaneously

Knight Rider LED (12-LEDs)

SUMBER
https://www.arduino.cc/en/Tutorial/Blink

Selamat mencoba!

Wednesday, October 5, 2016

[MICROCONTROLLER][ARDUINO][TUTORIAL] Kontrol Arduino menggunakan BLYNK (via USB serial)

Mengontrol arduino via handphone (android /iOS) sepertinya sih keren ya. Tapi susah gak sih? Mesti develop aplikasi di android/iOS secara khusus? Cara komunikasinya pake apa? Lama dong?
Pertanyaan-pertanyaan seperti itu pasti terlintas. Tak jarang, keraguan yang akhirnya juga dapat menjadi motif urungnya melanjutkan niatan diatas.
Dengan menggunakan BLYNK yang menyediakan dashboard berisi bermacam-macam widget, hal itu tidak lagi jadi masalah, bahkan tidak sampe 1 menit (seperti iklan video-nya), kita sudah dapat mengontrol Arduino via handphone (android/iOS).

Untuk kali ini, saya akan mencoba mengontrol arduino saya dengan rangkaian yang saya buat di artikel saya sebelumnya.

KEBUTUHAN PERANGKAT
  • Lihat kebutuhan perangkat di artikel ini
  • handphone (android/iOS). Saya menggunakan handphone android (Nexus 5).
  • koneksi internet dari laptop/komputer akan kita pakai
SIRKUIT
Menggunakan sirkuit yang ada di artikel ini.

LANGKAH-LANGKAH
  • Install BLYNK di handphone. Download BLYNK (android/iOS). Buat account di BLYNK atau login dengan account facebook.
  • Setelah berhasil login, buat proyek baru di BLYNK dan tambahkan widget Button dan Value. Silakan tambahkan widget lainnya sesuai kebutuhan. Yang perlu diingat adalah BLYNK free-version menyediakan sejumlah saldo nilai energi, dimana 1 widget seharga nilai energi tertentu. Klo saldo nilai energi ini, habis atau tidak mencukupi, maka kita tidak akan bisa menambahkan widget ke proyek. Jangan lupa mengirimkan AUTH TOKEN (yg ada di kotak merah) ke e-mail anda. AUTH TOKEN ini nantinya diperlukan untuk dimasukkan ke kode program ARDUINO-nya sebagai pengenal proyek ini.
BLYNK: Project Settings
BLYNK: Project Settings

BLYNK: Project view

BLYNK: Widgets

BLYNK: Widget Button Settings

BLYNK: Widget Value Display Settings

BLYNK juga sudah menyediakan in-app purchase untuk tambahan sejumlah nilai energi tertentu dengan harga tertentu.


  • Download BLYNK library. Saya menggunakan library yang ini.
  • Ekstrak file .zip dan copy-paste-kan semua folder ke folder {instalasi arduino}/libraries.
  • Masukkan AUTH TOKEN ke kode arduino (lihat di bagian kode di bawah)
  • Upload kode ke Arduino
  • Buka console windows, dan pindah ke folder {instalasi arduino}/libraries/Blynk/scripts
  • edit file blynk-ser.bat. Ubah nilai serial COM. Sesuaikan dengan nomor port serial Arduino Anda. Untuk kasus saya, COM8 adalah port serial Arduino saya.
  • Jalankan file blynk-ser.bat
  • Dan kini, Andapun sudah dapat mengontrol LED di Arduino dan menampilkan jarak yang dideteksi ULTRASONIC SENSOR secara online-realtime.
KODE
Berikut kode yang saya pakai:
#include <SoftwareSerial.h>
SoftwareSerial DebugSerial(2, 3); // RX, TX

#define BLYNK_PRINT DebugSerial
#include <BlynkSimpleStream.h>
#include <SimpleTimer.h>
#include <NewPing.h>

#define TRIGGER_PIN  12  // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN     11  // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.

int distance = 0;
SimpleTimer timer;

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "AUTH_TOKEN_PROYEK_ANDA";

void myTimerEvent()
{
  // You can send any value at any time.
  // Please don't send more that 10 values per second.
  distance = sonar.ping_cm();
  Blynk.virtualWrite(V1, distance);
  Blynk.virtualWrite(V2, distance);
  Blynk.virtualWrite(V3, distance);
}

void setup()
{
  // Debug console
  DebugSerial.begin(9600);

  // Blynk will work through Serial
  Serial.begin(9600);
  Blynk.begin(auth, Serial);
  
  // Setup a function to be called every second
  timer.setInterval(1000L, myTimerEvent);
}

void loop()
{
  Blynk.run();
  timer.run(); // Initiates SimpleTimer
}

TIPS: masukkan AUTH TOKEN proyek Anda menggantikan teks AUTH_TOKEN_PROYEK_ANDA.
VIDEO
Berikut video hasil tutorial ini.


REFERENSI

Selamat mencoba!

Tuesday, October 4, 2016

[MICROCONTROLLER][ARDUINO][TUTORIAL] Ultrasonic Sensor

Jika Anda pecinta mokit/gunpla maupun figure statue yang memiliki LED, mungkin proyek ini cocok bagi Anda yang menghendaki LED menyala secara otomatis jika ada orang yang mendekati mokit/gunpla maupun figure statue Anda, dan secara otomatis pula LED akan mati untuk periode waktu tertentu (dan tentunya LED akan tetap menyala jika orang tersebut tetap terdeteksi berada di sekitar objek tersebut). Nah, jika Anda menghendaki mekanisme deteksi yang akan digunakan adalah jarak orang dengan objek, maka kita dapat menggunakan sensor jarak berbasis ULTRASONIC.

KEBUTUHAN PERANGKAT
  • Arduino (uno)
  • sensor ultrasonic (HC-SR04)
  • kabel jumper (warna-warni)
  • mokit/gunpla/figure statue. Dalam tutorial ini, penulis menggunakan figure statue bust ironman yang memiliki LED di MATA dan ARC REACTOR-nya. Figure statue yang digunakan ini sudah memiliki rangkaian internal yang menggunakan tenaga batere yang secara terus-menerus akan menyala jika sudah di-ON-kan. Tapi kalo hanya seperti itu, kurang menarik kan? Selain itu juga tidak hemat energi.
SIRKUIT
  • TIPS: Untuk menghubungkan titik satu ke titik lainnya yang berjauhan, silakan gunakan kabel jumper dengan warna kesukaanmu. Akan tetapi, sebaiknya gunakan warna tertentu untuk membedakan arus positif dan negatif. 


SKEMATIK


KODE

Setelah membuat rangkaian sirkuitnya:
  • sambungkan Arduino ke komputer
  • jalankan Arduino Software (IDE). Jika belum terinstal, silakan didownload disini.
  • masukkan kode berikut:
// ---------------------------------------------------------------------------
// LED-ON using Sonar
// ---------------------------------------------------------------------------

#include <NewPing.h>

#define LED_PIN 13 // Arduino pin tied to trigger pin on LED.
#define TRIGGER_PIN 12 // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN 11 // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.
#define REQUIRE_DISTANCE 20 // // cm - maximal required distance to triger LED
#define MAX_INTERVAL_ON 5000 // ms - change this value for LED interval

bool bON = false;
int distance = 0;
unsigned long ulFirstCT = 0;
unsigned long ulCT = 0;

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.

void setup() {
  while (!Serial) delay(1);
  Serial.begin(9600);
  pinMode(LED_PIN, OUTPUT);
  DoLED(LOW);
}

void loop() {
  // sonar
  distance = sonar.ping_cm();
  //Serial.println("d = " + String(distance)); // uncomment for DEBUGGING
  if (distance > 0 && distance <= REQUIRE_DISTANCE) {
    if (!bON) {
      // light-UP
      DoLED(HIGH);
      ulFirstCT = millis();
    }
    bON = true;
  }
  else { // not in range
    bON = false;
  }

  // check ON-timer
  if (!bON) {
    ulCT = millis();
    if (ulCT - ulFirstCT >= MAX_INTERVAL_ON) {
      DoLED(LOW);
      bON = false;
    }
  }

  // breathe
  delay(5);
}

void DoLED(int state) {
  digitalWrite(LED_PIN, state);
}


  • TIPS: untuk NewPing library dapat didownload disini.


VIDEO

Video hasil tutorial ini dapat dilihat YouTube:




Selamat mencoba!

Thursday, September 1, 2016

[MICROCONTROLLER][ARDUINO][TUTORIAL] Blinking Led

Tutorial ini menunjukkan hal termudah yang dapat Anda lakukan dengan Arduino yaitu dengan blinking led (led berkedip-kedip).

KEBUTUHAN PERANGKAT
  • Arduino (uno)
  • LED
  • Resistor (220 ohm, maks 1 kilo-ohm)
  • kabel jumper (warna-warni)
SIRKUIT
  • hubungkan 1 kaki resistor yang lebih panjang/bengkok (kaki positif disebut anoda) ke Arduino pin 13. 
  • hubungkan kaki lainnya yang lebih pendek (kaki negatif disebut katoda) ke Arduino GND (ground)
  • untuk menjaga supaya arus stabil (tidak berlebih), tambahkan resistor (220 ohm, ato sampai 1 kilo-ohm) diantara kaki anoda dan kabel jumper yang terhubung dengan pin 13.
TIPS: Untuk menghubungkan titik satu ke titik lainnya yang berjauhan, silakan gunakan kabel jumper dengan warna kesukaanmu. Akan tetapi, sebaiknya gunakan warna tertentu untuk membedakan arus positif dan negatif. 


SKEMATIK


KODE

Setelah membuat rangkaian sirkuitnya:
  • sambungkan Arduino ke komputer
  • jalankan Arduino Software (IDE). Jika belum terinstal, silakan didownload disini.
  • masukkan kode berikut:
/*
  Blink
  Menyalakan LED 1 detik, kemudian padam 1 detik, berulang-ulang.

  modified 8 May 2014
  by Scott Fitzgerald
 */


// function setup hanya dijalankan sekali saja sejak reset atau menyalakan board

void setup() {
  // inisialisasi digital pin 13 sebagai output

  pinMode(13, OUTPUT);
}

// fungsi loop dijalankan berulang-ulang selama ada power
void loop() {
  digitalWrite(13, HIGH);   // nyalakan LED

  delay(1000);              // tunda 1 detik
  digitalWrite(13, LOW);    // padamkan LED dengan memberikan tegangan LOW
  delay(1000);              // tunda 1 detik
}
LATIHAN

Silakan tambahkan rangkaian beberapa led baru dan tulislah kode untuk menyalakan led secara bergantian!

SUMBER
https://www.arduino.cc/en/Tutorial/Blink

Selamat mencoba!

Tuesday, June 28, 2016

[SOFTWARE] QSOFT: Aplikasi Database Quran untuk Desktop yang luar biasa

Sebuah aplikasi QURAN berbasis desktop yang memuat database Al-Quran sehingga informasi yang dapat dicari makin bervariasi dan lengkap. Aplikasi ini GRATIS dan dapat diunduh langsung dari situsnya di elra.or.id.
Sayangnya, aplikasi ini baru bisa berjalan di sistem 32-bit termasuk paket MS Office-nya karena aplikasinya berbasis dasar aplikasi MS Access.
Bagi saya pengguna laptop dan OS 64-bit, hal tsb tetap dapat dilakukan dengan menggunakan emulator VMWare dan meng-install Windows XP 32-bit dan MS-Office 32-bit (jangan lupa install MS Access-nya juga, minimal MS Office 2002).
Tampilannya setelah di-run di VMWare kurang lebih seperti ini:


Semoga bermanfaat.

Tuesday, May 10, 2016

[VACATION] Wisata 'Offroad' Merapi 2016

Pada kesempatan liburan long weekend minggu kemaren (5-8 Juli), disempatkan mampir ke Yogya (nginep di Kaliurang) dan mengikuti wisata offroad merapi. Katanya sih bagusnya pas sunrise. Mengkondisikan anak-anak bwt berangkat sebelum subuh (rencana subuhan di lokasi starting point), alhamdulillah tidak berat karena malam sebelumnya sudah diwanti-wanti dan dibatasi waktu tidur malamnya (soale klo libur suka larut tidurnya).
Berangkat dari basecamp JWM (Jeep Wisata Merapi), pukul 05:15, dengan menumpang mobil offroad yang disediakan (disopirin koq), menikmati suasana pagi jalanan menuju merapi hingga menjelang matahari terbit. Suasana yang bisa dinikmati adalah excitement mengendari mobil offroad melewati jalan tanah dan batu (dulunya sih katanya beraspal tapi habis karena erupsi merapi) dalam kondisi masih cukup gelap (karena masih pagi), menikmati sunrise dalam perjalanan menuju lokasi bunker perlindungan erupsi merapi, dan wisata museum erupsi merapi (rumah warga yang dijadikan museum).
Supaya punya gambaran lebih lengkap, saksikan saja videonya berikut:





Monday, May 2, 2016

[GADGET][REMOTE] Akses remote itu bernama TeamViewer

Masih seputar bahasan.... semua karena INDIHOME!
Dengan ditutupnya berbagai macam fasilitas network management (port-forwarder, DMZ, dll) di router INDIHOME dari akses WAN yang sangat diperlukan untuk dapat mengakses secara remote dari internet ke jaringan rumah yang menggunakan akses internet INDIHOME, cukup merepotkan.
Setelah googling dan nany-nanya, ada yang memberikan solusi mengubah tipe akses router INDIHOME yang semula bertipe ROUTE, diubah menjadi BRIDGE. Tapi tentunya untuk setup hal ini mesti melibatkan technical support dari TELKOM yang juga masih untung-untungan apakah bisa atau mau mengubah default setting tersebut. Belum lagi kalo ntar kenapa2 dengan layanan lainnya spt USeeTV, sedikit banyak akan menjadikan perubahan tersebut sebagai kambing hitam atas terganggunya layanan.
Daripada ntar ribet dan ribut, diputuskan tidak mengubah tipe setting ROUTER INDIHOME-nya. Alternatif SOLUSInya adalah dengan mengaktifkan sebuah node/device yang terhubung ke HOME ROUTER sebagai HOST yang dapat membuat remote akses ke internet.
Berbekal sebuah NanoPC yang lama tidak dipake (dulu digunakan sebagai media-center), dan sebuah aplikasi gratisan bernama TeamViewer, kini saya pun dapat mengakses semua device yang terhubung di jaringan rumah saya secara remote.
Aplikasi TeamViewer tersebut diinstal di HOST yang akan diakses secara remote maupun di CLIENT yang akan mengakses REMOTE-HOST tersebut. Juga tersedia aplikasi client/server untuk mobile-device. Juga tersedia untuk versi linux-nya.

Berikut ilustrasi jaringan di rumah yang menggunakan TeamViewer untuk keperluan remote-access:


Berikut adalah contoh capture dari aplikasi TeamViewer:


Berikut adalah contoh capture hasil koneksi ke REMOTE-HOST (rumah) dari kantor:


REMOTE-ACCESS ke jaringan LAN dengan koneksi internet INDIHOME, kini dapat dilakukan!

Tuesday, April 26, 2016

[GADGET][TV BOX] Jika Anda tidak puas dengan tayangan program USeeTV, instal Kodi+Add-Ons (Android TV BOX)

Jika Anda pelanggan INDIHOME triple-play, sudah bisa menikmati tayangan USeeTV dengan paket basic (info paket USeeTV bisa dilihat disini). Untuk paket basic, channel-channel yang menayangkan film terbaru dan TV series terbaru, sangat terbatas kecuali menambah paket add-on-nya.
Dengan perkembangan dan kemurahan hati dunia open-source saat ini, sudah tersedia banyak aplikasi media center yang dapat diinstal sebagai aplikasi tambahan untuk dapat menikmati tayangan-tayangan fim dan TV series gratis dari internet melalui streaming. Dengan speed 10Mbps, sudah sangat cukup melakukan streaming hingga kualitas Full HD. Bandingkan dengan USeeTV yang konon hanya perlu 2 Mbps untuk melakukan streaming tayangannya. Konon kabarnya juga, layanan USeeTV tidak menggunakan bandwidth yang kita sewa tsb. Jadi artinya 10Mbps masih utuh. Klo hanya dipake untuk browsing2 sesekali waktu, rasanya masih sayang, kurang optimal.
Gak perlu kuatir dengan FUP yang diterapkan per 1 Februari 2016. Kuota 300GB (ini pun hanya kuota untuk full-speed yang disewa koq) udah sangat mewah buat penggunaan harian rumahan. Rata2 pemakaian saya serumah, g nyampe 50GB sebulan (info penggunaan kuota paket internet INDIHOME dapat dilihat disini). Itupun udah dipake untuk streaming-streaming layanan dari internet menggunakan Android TV BOX maupun perangkat lainnya.
Menyinggung Android TV BOX, silakan dibaca artikel saya disini.
Klopun Anda tidak memiliki Android TV BOX, bagi pemilik laptop/komputer maupun tablet Android bisa menginstal aplikasi KODI sebagai media center. Dan display-nya bisa di-output-kan juga ke TV baik via kabel HDMI/RCA, maupun secara wireless jika TV Anda sudah mendukung wireless display (screencast). Untuk instalasi dan penggunaan KODI, silakan mengunjungi situsnya.

Contoh capture pemakaian internet INDIHOME:



Semoga bermanfaat.

Monday, April 25, 2016

[GADGET][NETWORKING] Itu semua karena Router INDIHOME yang ANEH!

Produk triple-play dari TELKOM yang diberi label INDIHOME FTTH (Fiber To The Home) via jaringan fibre-optic (FO) menawarkan paket langganan dengan layanan bundle:

  • Akses internet dengan kecepatan akses mulai 10Mbps + add-ons
  • Telpon (VoIP)
  • USeeTV (biaya sewa per STB terinstall)
Walaupun terbilang terlambat berlangganan karena mmg aksesnya baru masuk di kompleks saya (sebelumnya hanya speedy yang pake kawat tembaga), saya baru menggunakan layanan ini  baru memasuki bulan ke-3 dengan pengalaman sebagai berikut:
  • Hasil pengetesan via speedtest.net: rata kecepatan download >9,8 Mbps (kadang2 bisa tembus >11 Mbps) dan upload >1,9 Mbps. Setidaknya masih sesuai dengan paket layanan yang saya sewa.
  • Ganti STB USeeTV sampe 2x. Yang pertama tidak mau masuk ke jaringan USeeTV karena selalu tereset pdhal baru sehari aktif. Yang kedua, tayangannya flickering dan nge-blank2.
  • Akses paket USeeTV all channel hanya dapat dinikmati sampe akhir Februari saja (layanan aktif minggu terakhir Februari).
  • Router INDIHOME memiliki 4 LAN-PORT Gigabit (port ke-4 dikhususnya utk akses USeeTV, port ke-1 sampe ke-3 bisa dipake dengan mengaktifkannya terlebih dahulu via web manager). Sayangnya 3 LAN-PORT yang tersedia hanya dapat dipake untuk mengakses router dan internet, tidak bisa dipake utk mengakses peripheral yang dihubungkan dengan LAN-PORT lainnya. Terus terang, hal ini menyebalkan karena saya berencana mempensiunkan router 3G/4G yang saya pake sebelumnya (TL-MR3420-v2) karena LAN-PORT-nya masih 10/100 Mbps. Ada NAS (Network Attached Storage) 5TB yang terhubung dengan router lama saya, tidak dikenali oleh jaringan ROUTER INDIHOME (belakangan saya menyimpulkan bhw LAN-PORT di ROUTER INDIHOME dibatasi pemanfaatannya). Padahal di NAS tsb saya menyimpan koleksi film dan musik serta dokumen2 digital lainnya.
Setelah googling sepertinya memang tidak bisa menghubungkan perangkat2 network saya spt NAS tadi langsung ke ROUTER INDIHOME. Untungnya router lama saya support WDS (Wireless Distribution System), sehingga sptnya cara ini bisa dipake supaya NAS masih bisa diakses oleh perangkat2 lainnya (laptop/desktop, SmartTV, smartphone, tablet) tanpa harus pindah2 access-point (hotspot).
Setelah berhasil mensetup WDS, NAS akhirnya bisa diakses baik dari hotspot (router) lama maupun hotspot baru (INDIHOME ROUTER).
Buat streaing SD dan bbrp video HD/FHD masih OK. Tapi bbrp video FHD (1080), 2K dan UHD (4K) dan file2 BLU-RAY berukuran super jumbo (>10GB), sering tersendat-sendat bahkan terputus.
Hal ini bisa jadi disebabkan oleh salah satu kekurangan metode WDS yang hanya sampai bisa maksimal terpakai separuh dari total kecepatan transmisi wi-fi (ato karena lost package?). Selain itu, saya sebelumnya memang malas untuk memindahkan router lama dari tempatnya semula. Letaknya kurang berjarak 2 meter (garis lurus) dari ROUTER INDIHOME terpasang.
Hingga pada akhirnya, saya memutuskan untuk memindahkan lokasi NAS dan ROUTER lama supaya berdekatan dengan ROUTER INDIHOME (karena males bwt narik kabel LAN panjang dan juga merusak pemandangan kecuali mau ribet lewat plafon) dengan model implementasi ROUTER lama akan mengakses ROUTER INDIHOME via WAN-PORT ROUTER lama (IP: 192.168.0.1) ke LAN-PORT 1 ROUTER-INDIHOME (IP: 192.168.1.1).
Untuk detil cara mengeset WAN di TL-MR3420 akan dijelaskan terpisah.
Akses ke LAN dan INTERNET dilakukan dengan cara mengakses hostpot lama. Setelah terpasang dan tersetup, serta test ping sudah OK, saatnya untuk melakukan pengetesan pemakaian yang cukup ekstrem yaitu dengan melakukan streaming film BLU-RAY dari NAS yang filenya berukuran jumbo (>20GB). Woila, streaming BLU-RAY lancar jaya dan bisa skipping tanpa lagging berarti seperti yang sudah2 tanpa terputus. Secara angka belum diukur secara pasti. Tapi yang jelas sementara sudah sangat memuaskan hasilnya walopun WAN-PORT ROUTER lama hanya 10/100Mbps. Akan dicoba juga menggunakan Router baru GIGABIT yang masih baru dipesan jika nantinya sudah datang.

Berikut ilustrasi instalasi jaringan dan perangkat yang terhubung dengan ROUTER INDIHOME:



Aktivitas ngoprek di hari minggu terbayarkan dengan hasil yang sangat memuaskan. Jika saja, saya tidak malas waktu itu, mungkin hasil ini sudah saya nikmati sejak awal pasang INDIHOME. :(
Moral of the story: jangan malas dan segera lakukan yang kamu bisa apalagi sudah kebayang.


[GADGET][ENTERTAINMENT] Jadikan TV Lama Anda menjadi SmartTV

Seiring perkembangan teknologi, OS Android telah mengubah banyak hal terutama di bidang mobile devices. Tak luput pula di bidang hiburan (home entertainment), perkembangan TV BOX yang makin murah dengan adanya OS gratis ini.
Dengan TV BOX ber-OS Android, Anda bisa menjadikan TV lama Anda menjadi SmartTV tanpa harus membeli the real Smart TV yang harganya masih tergolong sangat mahal. IMHO, jadi tidak terlalu smart klo dibandingkan dengan fitur yang ditawarkan oleh sebuah Android TV BOX. Terbukti SmartTV yang saya milikipun, pada akhirnya dipasangi sebuah Android TV BOX (MX64) untuk menikmati tayangan streaming film gratis (SD, HD bahkan UHD) dari internet dan fungsi-fungsi lainnya dimana masih sangat terbatas pada fitur bawaan SmartTV-nya sendiri.
Bahkan aplikasi-aplikasi yang sudah Anda beli, dapat diinstal dan berjalan baik di Android TV menggunakan account Google Playstore yang sama dengan yang Anda gunakan di smartphone Android Anda tanpa harus membeli ulang. Jika menemui kesulitan untuk menginstal aplikasi berbayar yang sudah Anda beli, dapat melakukan remote install via web browser dengan mengunjungi https://play.google.com/store.

Berikut beberapa Android TV BOX yang saya gunakan di rumah:

MXPRO
Reviewnya dapat dilihat di YouTube.

MX64
Reviewnya dapat dilihat di YouTube.

i68G

Reviewnya dapat dilihat di YouTube.

Selamat bersenang-senang.

Tuesday, April 1, 2014

[GUNPLA] RX-93-2 Hi-Nu Gundam (HDM 1/35)

GUNPLA
Manufacturer : Hobby Crazy
Scale : 1/35 Head Desktop Model
Seller : Hongli Gading

MODIFICATION
Repaint using AB with MrHobby Primary + Paints + Top-Coat
Decals

PICTURES





More images can be viewed in my fb-album.
You can also view my work here, published on GUNJAP.NET.

Monday, February 17, 2014

[UTIL] ISO8583 Messaging Parser

Working with ISO8583 messages? Do you have a tool to parse a bunch of message stream?
You shoud visit here to help you parsing your message. It supports 1987, 1993, 2003 version.