Program Kontrol Modul USB-2REL Versi Python GUI (Tkinter)


usb2rel_python_tkinter

Sudah semingguan saya "tergila-gila" dengan Python. Betul-betul terpesona karena telah membuktikan sendiri bagaimana mudahnya membuat program dengan Python. Program yang terasa rumit ketika saya kerjakan menggunakan bahasa pemrograman yang lain seperti VB.NET, Delphi/Lazarus, FreeBASIC, XBLite, dan C, terasa sangat mudah ketika saya kerjakan dengan Python.

Python itu cespleng. πŸ˜€

Hampir setiap tutorial dan buku pemrograman Python yang saya baca, selalu menyatakan bahwa Python adalah bahasa pemrograman yang gamblang, mudah dipelajari dan mudah digunakan. Dinyatakan juga bahwa dengan Python kita dapat berkonsentrasi pada bagaimana menyelesaikan masalah pemrograman dan bukannya berkonsentrasi pada pemrograman.

Python mempunyai julukan: "Programming at the speed of thought". Mungkin karena saking mudahnya mengimplementasikan ide/pemikiran menjadi sebuah program, makanya Python mendapat julukan tersebut.

Nah, jika Anda tertarik dengan Python, maka saya sarankan untuk banyak membaca pengantar pemrograman Python dari berbagai sumber agar semakin termotivasi untuk segera mempelajari dan menggunakannya. πŸ™‚

Satu hal lagi yang membuat saya semakin tergila-gila adalah karena Python juga handal digunakan untuk pemrograman CGI, bahkan dengan kekayaan library yang dimiliki Python, interpreter ini memiliki kelebihan dibanding pemrograman CGI lain seperti PHP, Lua, atau Ruby. Setidaknya, begitulah menurut kebutuhan saya. πŸ™‚

Satu-satunya hal yang cukup menghambat laju pengembangan program aplikasi python adalah GUI. Pemrograman GUI pada Python cukup mengasikkan (baca=mengerikan). πŸ˜€

Tapi lantaran ingin sekali membuat program GUI untuk antarmuka kontrol modul RELAY USB, RELAY SERIAL, dan RELAY LPT, akhirnya kemarin saya luangkan waktu hampir seharian untuk belajar pemrograman GUI pada Python. Screenshot di atas adalah aplikasi Python GUI pertama yang pernah saya buat menggunakan Tkinter.

Sebelumnya, saya sudah bereksperimen dengan Python dan PyUSB 1.0 untuk mengontrol modul USB-2REL (baca di sini dan di sini). Dan alhamdulillaah kemarin sudah berhasil membuat versi GUI-nya. πŸ˜€

Nah, berikut adalah source code program kontrol modul USB-2REL menggunakan bahasa Python yang didukung library PyUSB 1.0 dan library GUI Tkinter. Selamat menikmati πŸ˜€

#——————————————————————————-
# Name:         USB-2REL_GUI.py
# Purpose:     Demo program kontrol modul USB-2REL
# Author:       Chandra MDE
# Created:     19/04/2013
# Copyright:   (c) Chandra MDE 2013
#——————————————————————————-

import Tkinter
import tkMessageBox
import usb.core

def main():
    Form1 = Tkinter.Tk()
    Form1.title(‘Python USB-2REL by Chandra MDE’)
    Form1.resizable(0, 0)

    ws = Form1.winfo_screenwidth()
    hs = Form1.winfo_screenheight()
    x = (ws/2) – (340/2)
    y = (hs/2) – (220/2)
    Form1.geometry(‘340×220+%d+%d’ % (x, y))

    label1 = Tkinter.Label(Form1, fg=’blue’, font=’Arial 12 bold’, text=’Demo Program Kontrol Modul USB-2REL’).place(x=10, y=10)

    btnRelay1On = Tkinter.Button(Form1, command=Relay1On, fg=’darkblue’, font=’Tahoma 9 bold’, width=10, height=1, text=’RELAY-1 ON’, padx=15, pady=4).place(x=40, y=50)
    btnRelay1Off = Tkinter.Button(Form1, command=Relay1Off, fg=’darkblue’, font=’Tahoma 9 bold’, width=10, height=1, text=’RELAY-1 OFF’, padx=15, pady=4).place(x=40, y=85)

    btnRelay2On = Tkinter.Button(Form1, command=Relay2On, fg=’darkgreen’, font=’Tahoma 9 bold’, width=10, height=1, text=’RELAY-2 ON’, padx=15, pady=4).place(x=180, y=50)
    btnRelay2Off = Tkinter.Button(Form1, command=Relay2Off, fg=’darkgreen’, font=’Tahoma 9 bold’, width=10, height=1, text=’RELAY-2 OFF’, padx=15, pady=4).place(x=180, y=85)

    btnRelay2On = Tkinter.Button(Form1, command=Relay12On, fg=’red’, font=’Tahoma 9 bold’, width=10, height=1, text=’ALL RELAY ON’, padx=15, pady=4).place(x=40, y=130)
    btnRelay2Off = Tkinter.Button(Form1, command=Relay12Off, fg=’red’, font=’Tahoma 9 bold’, width=10, height=1, text=’ALL RELAY OFF’, padx=15, pady=4).place(x=180, y=130)

    label2 = Tkinter.Label(Form1, font=’Tahoma 8′, text=’TEKNIK ELEKTRO LINKS’).place(x=10, y=180)
    label3 = Tkinter.Label(Form1, font=’Tahoma 8′, text=’Website: http://teknikelektrolinks.com’).place(x=10, y=195)

    label4 = Tkinter.Label(Form1, fg=’yellow’, bg=’red’, font=’Tahoma 10 bold’, text=’ (PyUSB, Tkinter) ‘).place(x=207, y=185)

    #dapatkan handle dari USB-2REL
    global usb2rel
    usb2rel = usb.core.find(idVendor=5824, idProduct=1500)
    if usb2rel == None:
        tkMessageBox.showinfo(‘Error!’, "USB-2REL tidak ditemukan!")
        Form1.destroy()

    Form1.mainloop()

def Relay1On():
    print "Relay 1 on"
    usb2rel.ctrl_transfer(0x40, 1, 1, 1, None)

def Relay1Off():
    print "Relay 1 off"
    usb2rel.ctrl_transfer(0x40, 1, 0, 1, None)

def Relay2On():
    print "Relay 2 on"
    usb2rel.ctrl_transfer(0x40, 1, 1, 2, None)

def Relay2Off():
    print "Relay 2 off"
    usb2rel.ctrl_transfer(0x40, 1, 0, 2, None)

def Relay12On():
    print "Relay 1, 2 on"
    usb2rel.ctrl_transfer(0x40, 2, 0, 0, None)

def Relay12Off():
    print "Relay 1, 2 off"
    usb2rel.ctrl_transfer(0x40, 3, 0, 0, None)

if __name__ == ‘__main__’:
    main()

Program berfungsi dengan baik sekali sesuai dengan yang saya harapkan. Berikut adalah tampilan program Python GUI untuk modul USB-2REL pada platform Windows XP.

usb2rel_python_gui

Modul USB-2REL dapat Anda dapatkan di: http://teknikelektrolinks.com.

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, AVR, Driver Relay, Elektronika, Gratisan, Industrial Control and Automation, Mikrokontroler, Python, Software/Programming

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.497 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: