Mengontrol Modul Relay USB-2REL Menggunakan Python dan PyUSB 1.0


usb2rel_python

PyUSB 1.0 adalah library Python yang dibuat untuk memudahkan kita dalam mengakses port USB. Jika versi sebelum-sebelumnya library ini ditulis menggunakan bahasa C, maka tidak demikian halnya dengan PyUSB versi 1.0. PyUSB ditulis 100% menggunakan bahasa Python!

USB adalah protokol yang sangat rumit, akan tetapi dengan PyUSB, maka pemrograman USB terasa sangat sederhana. 😀

Untuk membuktikan betapa mudahnya menggunakan library PyUSB 1.0, berikut adalah skrip ringan yang hanya terdiri dari beberapa baris saja yang bertujuan untuk mengontrol relay-relay yang ada pada modul USB-2REL.

Program pengontrolan modul USB-2REL menggunakan Python ini sangat berbeda dengan program kontrol USB-2REL versi Delphi, Lazarus, dan VB.NET. Ketiga versi program tersebut HANYA memanggil program USB2R.EXE untuk mengontrol USB-2REL. Adapun versi Python ini langsung berkomunikasi dengan USB-2REL seperti halnya pada program kontrol versi C.

Semakin menarik, bukan? Namun sebelum dapat menggunakan PyUSB, kita harus melakukan instalasi terlebih dahulu. Pertama-tama, download PyUSB dari situsnya. Pada eksperimen ini saya menggunakan PyUSB-1.0.0a3.

Setelah download, ekstraksi file pyusb-1.0.0a3.zip dan eksekusi file setup.py menggunakan console dengan perintah:

python setup.py install

Berikut adalah screenshot instalasi PyUSB 1.0 pada komputer saya.

image

Pada komputer saya, Python 2.5 terinstalasi pada direktori C:\Python25, oleh karenanya digunakan perintah:

c:\python25\python setup.py install

Selanjutnya, kita dapat menguji PyUSB dengan modul driver relay USB-2REL. Berikut adalah screenshot eksperimen yang saya lakukan dalam Python Shell.

image

Perintah import usb.core berfungsi meng-import fungsi-fungsi yang terdapat pada modul usb.core agar selanjutnya dapat kita gunakan dalam program.

Perintah usb2rel = usb.core.find(idVendor=5824, idProduct=1500) berfungsi untuk mendapatkan handle untuk modul USB-2REL. Melalui handle inilah nantinya program akan berkomunikasi dengan modul USB-2REL. Perintah ini secara spesifik mencari piranti USB dengan idVendor=5824 dan idProduct=1500. Jika terdapat lebih dari satu piranti USB dengan ID yang sama, maka piranti yang pertamalah yang digunakan.

Catatan: idVendor dan idProduct yang digunakan adalah ID gratisan yang diberikan oleh OBDEV.COM pada program freeware V-USB. Oleh karenanya ID USB-2REL akan sama dengan piranti USB lain yang dibuat dengan V-USB. Contoh yang populer adalah USBASP.

Fungsi usb.core.find() akan mengembalikan nilai None jika tidak menemukan piranti USB yang dimaksud, dan akan mengembalikan sebuah alamat handle/object jika berhasil menemukan piranti USB dengan ID yang cocok. Pada eksperimen ini USB-2REL ditemukan dengan alamat 0x00BD2070.

Perintah selanjutnya adalah usb2rel.ctrl_transfer(0x40, 1, 1, 1, None) yang berfungsi untuk mengaktifkan RELAY-1.

Dan perintah usb2rel.ctrl_transfer(0x40, 1, 0, 1, None) berfungsi untuk mematikan RELAY-1.

Perintah yang sama berlaku juga untuk RELAY-2 namun dengan parameter yang berbeda. Berikut adalah perintah untuk mengaktifkan RELAY-2 dan mematikan RELAY-2.

usb2rel.ctrl_transfer(0x40, 1, 1, 2, None)  # RELAY-2 ON

usb2rel.ctrl_transfer(0x40, 1, 0, 2, None)  # RELAY-2 OFF

usb2rel.ctrl_transfer(0x40, 2, 0, 0, None)  # ALL RELAYS ON

usb2rel.ctrl_transfer(0x40, 3, 0, 0, None)  # ALL RELAYS OFF

Untuk melengkapi eksperimen ini, berikut adalah skrip Python yang akan mengaktifkan dan mematikan kedua relay USB-2REL secara bersamaan dengan interval 1 detikan sebanyak 10 kali.

#——————————————————————————-
# Name:     USB-2REL.py
# Purpose:  TESTING PyUSB – USB2REL
# Author:   Chandra MDE
# Created:  13/04/2013 (c) Chandra MDE 2013
#——————————————————————————-

import usb.core
import time

def main():
    usb2rel = usb.core.find(idVendor=5824, idProduct=1500)
    if usb2rel == None:
        print "USB-2REL tidak ditemukan!"
        exit
    else:
        for i in range(1, 11):
            print “Perulangan ke-“, i
            usb2rel.ctrl_transfer(0x40, 2, 0, 0, None) #ALL ON
            time.sleep(1) #tunda 1 detik
            usb2rel.ctrl_transfer(0x40, 3, 0, 0, None) #ALL OFF
            time.sleep(1) #tunda 1 detik

if __name__ == ‘__main__’:
    main()

Untuk IDE Python, saya menggunakan PyScripter 2.4.3.0 yang muantab! 😀

usb2rel_pyscripter

Demikian sedikit informasi yang dapat saya berikan, semoga bermanfaat.

Jika Anda berminat dengan modul driver relay USB-2REL, silakan mengunjungi situs kami di: http://teknikelektrolinks.com untuk mengetahui informasi harga dan pemesanan.

Selamat belajar dan selamat berkarya!

🙂

Iklan
Perihal

Cek situs kami di http://teknikelektrolinks.com. Blog Raspberry Pi: http://raspi.teknikelektrolinks.com

Tagged with: , , ,
Ditulis dalam Antarmuka Komputer, Driver Relay, Elektronika, Gratisan, Industrial Control and Automation, Python, Software/Programming
2 comments on “Mengontrol Modul Relay USB-2REL Menggunakan Python dan PyUSB 1.0
  1. mantab mas,, bermanfaat sekali.. 🙂

  2. juist berkata:

    referensi tentang USB 2 REL ini ada bukunya bg chandra…?

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Kategori

Bergabunglah dengan 2.498 pengikut lainnya

Display Counter 3-Digit Dengan Koneksi Wi-Fi
Display Nomor Antrian WiFi Android
Mengontrol Relay Via USB/Serial dan Wi-Fi
Blog Linux dan Raspberry Pi


USB Relay USB-2REL
USB Relay USB-4REL
Water Level Control WLC-02
Serial Relay SER-4REL
NEO STARDUINO SMS ALARM

Alarm SMS Berbasis NEO STARDUINO

1 PC – 6 Unit USB-2REL

Testing 6 USB-2REL Pada 1 Komputer

Standard Pengujian USB-2REL

Pengujian USB-2REL Sebelum Dikirim

LPT-4REL on Knoppix 7.0.5

Testing LPT-4REL on Knoppix Linux

T101 Inkubator Telur

T101 Inkubator Penetas Telur

KONTROL PERALATAN LISTRIK VIA PORT LPT KOMPUTER

Demo Kontrol Kontaktor via Port LPT

STARDUINO meets ANDROID

Demo Kontrol Bluetooth Relay Android

STARDUINO SMS RELAY

Kontrol Relay Via SMS Dengan Starduino

STARDUINO WEB RELAY

Demo Kontrol Relay Via Web/Internet

JustBASIC USB-2REL Control

Demo Kontrol USB-2REL + JustBASIC

STARDUINO + GPS + LCD

Demo Starduino GPS Dengan LCD

USB-2REL EXTREME TEST

Demo Kontrol On/Off Lampu USB-2REL

THERMOSTAT T101 IN ACTION

Demo Thermostat T101 Pada SV=37.5°C

WATER LEVEL CONTROL WLC-02

Demo Kontrol Level Air Tandon WLC-02

HUMIDITY CONTROLLER H103

Demo Kontrol Kelembaban H103 (DHT11)

%d blogger menyukai ini: