From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW Team Indonesia

cancel
Showing results for 
Search instead for 
Did you mean: 

Home Automation (part 1)

Halo rekan-rekan,

Sekedar sharing iseng saya di hari libur

Background:

- Pekerjaan rumah yang repetitif, menyalakan dan mematikan lampu depan dan belakang

- Saya tahu sedikit automation, tahu hanya LabVIEW dan juga waktu luang yang tidak banyak

Tujuan:

- Menyalakan dan mematikan lampu depan dan belakang secara otomatis

- Selesai dalam waktu 1-hari

Poin Penting:

1. Controller: SingleBoardRIO 9626 Dev. Kit

http://sine.ni.com/images/products/us/01121209-9626_m.jpg

Lengkapnya ada disini: http://sine.ni.com/nips/cds/view/p/lang/en/nid/210419

Kenapa pake ini? Karena barang demo NI yang lagi nganggur

2. Software: LabVIEW, LabVIEW RT dan LabVIEW FPGA

http://t3.gstatic.com/images?q=tbn:ANd9GcRxH3ozS6DDjKSzuODWJZDfPP5PvyRGN9gMA7luElZ64b3LHpoLdg

Satu-satunya bahasa program dan embedded yang saya suka, dan tidak menyita banyak waktu

3.Item yang mau dikontrol: Saklar

IMG_3327.JPGIMG_3328.JPG

Saklar ini untuk lampu belakang yang jumlahnya ada dua. Dua-duanya mau saya nyalakan secara bersamaan. Rupanya di dalam saklar 2-switch ini hanya ada tiga kabel, yaitu:

- Saklar 1+ (live)

- Saklar 2+ (live)

- Saklar COM (neutral)

Sistem-nya seperti relay, Open/Close, kalau Open lampu mati, Close lampu nyala. Untuk memastikan, saya pakai DMM (Digital Multi Meter), untuk melihat apakah betul ada tegangan 220VAC, dan ternyata betul. Untuk amannya, listriknya saya matikan dulu via MCB.

Step by Step!

1. Modifikasi Saklar

SOLUSI:
Setelah dipikir matang-matang, elektro-mekanikal relay, sebaiknya tidak diletakkan dekat dengan Breadboard, dikarenakan alasan berikut ini:

a. Karena ada signal 220VAC yang ada resiko bahaya

b. Kabel 220VAC tentu saja lebih besar ketimbang 24VDC (jadi lebih mahal dan kelihatan besar/jelek kalau tarik kabel ini dari saklar ke panel sbRIO)

Jadi solusinya adalah dengan meletakkan elektro-mekanikal relay di dalam lubang saklar, kabel 220VAC tetap pendek di dalam lubang saklar tersebut. Relaynya, saya solder di dalam. Jadi kabel keluar dari saklar ini hanya kabel tipis yang ada dua oleh 24VDC+(putih) dan 24VDC-(hitam). Berikut ini tampilan saklar yang baru:

saklar modifikasi.JPG

2. Saklar tipe-nya adalah Relay 220VAC sementara Digital Output sbRIO 9626 adalah 3.3VDC

SOLUSI:

Menggunakan kombinasi ULN2803 (Darlington Drivers) dan 24VDC Relay 220VAC

https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSfkV5YMyeAP3oLkTpjgK51oyStqrQkNKIzTtS4d1NjppRGXOIj https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRXzKMoG7a7tFJZ5-hf_E-WxrYLp3Q718boZl3isL1G_uW4ijUk

Berikut ini schematicnya yg saya ambil dari internet tentang penggunaan ULN2803 dan Relay. Contoh dibawah menggunakan Arduino (saya rasa), tapi saya ganti Arduino tsb. dengan sbRIO:

8a_relay_schematic.jpg

Setelah melakukan testing awal, tentang sirkuit di atas, lalu saya desain terlebih dahulu diagram dibawah ini:

diagram.jpg

Berikut ini adalah implementasi dalam breadboard:

breadboard.jpg

Pekerjaan elektrikal (buka saklar, solder, prototyping di dalam breadboard) sudah memakan waktu hampir 5 jam. Setelah kelar, lalu baru saya mulai programming LabVIEWnya. Tapi sebelum itu....

3.Software Development (Flowchart)

SOLUSI:

Saya biasakan membuat flowchart terlebih dahulu sebelum menyentuh LabVIEW, sehingga program menjadi lebih terencana yang arti ke depannya stabil dan lebih mudah untuk dimaintain, diupgrade dan discale ke yang lebih besar lagi. Saya pakai software yED (http://www.yworks.com/en/index.html) untuk membuat flowchartnya. Berikut ini cuplikannya:

HomeAutomation.png

Setelah diagram dan flow dibuat, baru saya mulai programming di LabVIEW.

4.LabVIEW Programming

Kebutuhan:

--> kebutuhan sekarang sangat simple, input periode nyala-mati dikontrol oleh sebuah text-file

--> saya tidak perlu UI, cukup sistem otomatis untuk sekarang

--> saya perlu sedikit event-logging

SOLUSI:

--> gunakan State Machine

--> keep modular (terpecah menjadi fungsi SubVIs)

--> cukup 1 loop saja

--> Untuk algoritma yang rumit, yaitu periode untuk nyala-mati dalam bentuk:

     - Start Time (hh.mm)

     - Stop Time (hh.mm)

Artinya, kalau saya mau nyala dari jam 6.30 sore sampai jam 5.45 pagi, maka saya akan berikan input menggunakan format 24hours, yaitu:

Start Time (hh.mm): 18.30

Stop Time (hh.mm): 05.40

Nah saya menggunakan numeric dengan tipe floating (DOUBLE), jadi menjadi angka:

18.3 dan 5.4

Untuk mendapatkan waktu sekarang, kebetulan sbRIOnya punya clock dan battery, jadi clocknya bisa dijaga. Saya cukup menggunakan fungsi Get Date/Time in Seconds, lalu saya hanya ambil hh.mm-nya saja dan mengganti dalam bentuk floating (DOUBLE). Lalu saya bandingkan waktu sekarang, terhadap Start Time dan Stop Time di atas.

Ciaatttt... termasuk debugging dan troubleshooting, program telah siap dalam 1-jam.

Codenya saya attached. Saya lampirkan program HANYA dalam versi LabVIEW 2013.


Certified LabVIEW Developer (CLD)
Certified TestStand Developer (CTD)
Using LabVIEW 8.5.1 (2008) to LabVIEW 2021
Message 1 of 2
(23,265 Views)

Mantab Kris, niat banget nih bikinnya.

0 Kudos
Message 2 of 2
(3,184 Views)