Penambahan Parameter Delay Untuk Command-Line Interface Modul Relay USB

USB-1REL Sirine

Salah satu keinginan saya di tahun 2016 ini adalah lebih menguasai bidang pemrograman, baik pemrograman mikrokontroler maupun pemrograman komputer. Saya ingin lebih ahli memrogram bahasa CREBOL dan .NET. Selain ketiga bahasa pemrograman tersebut, saya juga ingin lebih memahami tentang HTML/CSS dan Clojure. Oleh karenanya sekarang saya luangkan lebih banyak waktu untuk melakukan perbaikan-perbaikan program yang sudah ada dan berusaha mengembangkan lebih banyak program aplikasi.

Parameter Delay Untuk Relay USB

Penambahan parameter delay ini sangat berguna agar kita bisa memberikan delay pada urutan proses yang kita bangun melalui sederetan parameter tersusun pada saat memanggil/mengeksekusi program CLI.

Parameter delay ini diawali dengan karakter ‘d‘ dan diikuti dengan nominal delay untuk menunda proses selama hitungan milidetik. Satuan delay yang digunakan adalah 100 milidetik. Jadi, jika ingin melakukan penundaan proses selama 1 detik, maka parameter yang harus dimasukkan adalah d10 (10 x 100 = 1000 milidetik = 1 detik).

usb1rc dengan delay

Contoh penggunaan parameter d[n] adalah sebagai berikut:

C:\>usb1rc USB1REL-001 R d15 r

Parameter “R d15 r” akan diproses oleh CLI usb1rc dengan urutan:

  1. RELAY ON
  2. Delay selama 15 x 100ms = 1500ms = 1,5 detik
  3. RELAY OFF

Dan kita bisa dengan mudah menghidupkan relay sebanyak 3 kali dengan durasi-on selama 1 detik dan durasi-off selama 0,5 detik dengan perintah:

C:\>usb1rc USB1REL-001 R d10 r d5 R d10 r d5 R d10 r

Nah, sangat handy bukan?

Fungsi Sleep()

Untuk memberikan waktu tundaan saya gunakan fungsi bawaan Windows yakni Sleep (unsigned int); Berikut adalah cuplikan program CLI yang menangani parameter waktu tundaan.

else if (argv[n][0] == 'd')
{
   s = strtok(argv[n], "d");
   delay = atoi(s);
   Sleep (100 * delay);
}

Aplikasi

Salah satu aplikasi yang memanfaatkan fitur penambahan parameter delay ini adalah aplikasi bel otomatis. Dengan adanya parameter delay ini, kita dapat membuat beberapa pola bunyi bel untuk event tertentu semisal bel masuk, bel istirahat dan bel pulang. Berikut adalah beberapa contoh pola bunyi bel:

  • Bunyi selama 10 detik
    C:\>usb1rc USB1REL-001 R d100 r
  • Bunyi selama 2 detik
    C:\>usb1rc USB1REL-001 R d20 r
  • Bunyi on-off sebanyak 3 kali dengan durasi 1 detikan
    C:\>usb1rc USB1REL-001 R d10 r d10 R d10 r d10 R d10 r
  • Bunyi on-off sebanyak 2 kali dengan durasi-on 5 detik dan durasi-off 1 detik
    C:\>usb1rc USB1REL-001 R d50 r d10 R d50 r

 

Kepada User Relay USB

Jika Anda adalah pengguna modul relay USB dan ingin mendapatkan update program CLI relay USB, silakan menghubungi saya melalui SMS/WA ke 081231784018 atau melalui BBM ke 746099CA.

Semoga dengan penambahan fitur ini bisa menambah kreativitas Anda sebagai user modul relay USB. Dan semoga juga bisa semakin menarik calon-calon user untuk membeli modul relay USB dari USBinov.

Salam inovatif.

Advertisement
Tagged with: , , , ,
Posted in Programming

Penggunaan Timer Untuk Polling Masukan Dari Port USB

USB-2R3IO Bahasa C GUI

Polling adalah cara mendeteksi perubahan kondisi masukan (input) yang dilakukan dengan cara membaca secara terus-menerus masukan. Secara pemrograman, polling bisa dilakukan dengan menggunakan perulangan yang akan berhenti jika kondisi masukan mengalami perubahan seperti yang dikehendaki (busy-wait) seperti contoh berikut ini.

motor_tutup_pintu = on;  //motor on ...
while (pintu == terbuka) //selama pintu terbuka.
{
   pintu = baca_sensor_pintu();
}
motor_tutup_pintu = off; //pintu tertutup, motor off.

Penggunaan polling seperti contoh di atas sah-sah saja dilakukan pada sistem single-process atau single-purpose dimana sistem tidak perlu melakukan tugas lain selama menunggu perubahan kondisi masukan.

Namun demikian, jika kecepatan proses cukup cepat, program bisa melakukan hal lain selain hanya membaca kondisi masukan, misalnya update tampilan seperti contoh berikut ini

while (1)
{
   if (Serial.available())
   {
      kar = baca_karakter();
      switch (kar)
      {
         case '1': ngapain_1();
         case '2': ngapain_2();
      }
   }
   update_tampilan();  //hal lain
}

Pada contoh kedua, program melakukan polling pada masukan port serial dan melakukan update tampilan pada perulangan yang sama. Hal ini sah-sah saja selama kecepatan proses masih cukup cepat dan tidak mengganggu kinerja sistem secara keseluruhan. Model polling secara pemrograman seperti contoh di atas disebut juga software-driven IO.

Polling Dengan Timer

Proses polling masukan juga bisa dilakukan dengan menggunakan timer. Cara ini masih masuk kategori software-driven IO, belum masuk kategori interrupt-driven IO. Pada sistem operasi multitasking saat ini, polling menggunakan timer adalah cara yang paling rasional (mudah) untuk tipe masukan dengan perubahan yang lambat seperti tombol, sensor proximity, limit-switch, sensor suhu/kelembaban dan lain-lain.

Dan sesuai judulnya, maka pada tulisan ini akan saya bagikan contoh penggunaan timer untuk polling membaca masukan dari port USB, tentunya menggunakan salah satu produk USBinov yakni USB-2R3IO. Bahasa pemrograman yang saya gunakan dalam hal ini adalah Bahasa C pada sistem operasi Windows.

USB-2R3IO

USB-2R3IO 300x225Adalah modul antarmuka USB dengan 2 buah relay sebagai output dan 3 buah GPIO yang masing-masing bisa difungsikan sebagai input atau output. Default GPIO adalah sebagai input.

USB-2R3IO membutuhkan catudaya DC 5V. Tegangan bisa dari catudaya eksternal seperti adaptor atau mengambil dari power-supply komputer.

Modul juga bisa mengambil catudaya langsung dari port USB (USB Powered) sehingga cukup praktis digunakan.

Cuplikan Program Timer

Berikut adalah cuplikan kode program timer dan event-handler timer yang aktif setiap kali timer mencapai batas nilai intervalnya.

USB Polling Timer

Pada program C di atas, Timer1 diset dengan interval 100ms yang berarti event timer akan muncul 10 kali dalam 1 detik. Atau dengan kata lain program akan membaca kondisi masukan pada USB-2R3IO sebanyak 10 kali dalam 1 detik.

Pengesetan dilakukan pada bagian event-handler untuk pesan WM_INITDIALOG dengan perintah:

Timer1 = SetTimer(hwndDlg, Timer1, 100, NULL);

Kita bisa mengeset timer dengan interval yang lebih cepat bilamana diperlukan. Dengan mengeset interval timer menjadi 10 misalnya, maka program akan membaca masukan sebanyak 100 kali dalam 1 detik.

Setiap kali interval timer terlampaui (muncul event timer), sistem operasi akan membangkitkan pesan WM_TIMER. Pada bagian event-handler inilah program melakukan pembacaan masukan dan kemudian melakukan update tampilan. Program akan mengeset teks komponen edit dengan nilai “OPEN” jika kondisi masukan tidak aktif atau nilai “CLOSE” jika kondisi masukan aktif.

case WM_TIMER:
  if (POLLING==TRUE) {
    nBytes = usb_control_msg(handle, USB_TYPE_VENDOR |
      USB_RECIP_DEVICE | USB_ENDPOINT_IN, USB2RIO_INPUT, 0,
      0, (char *)buffer, sizeof(buffer), 5000);
  if (nBytes<0) MessageBox(hwndDlg, usb_strerror(),
      "Error!", MB_ICONINFORMATION);
    else {
      if (buffer[0]=='L')
        SetDlgItemText(hwndDlg, ID_EDIT_IO1, "CLOSE");
      else if (buffer[0]=='H')
        SetDlgItemText(hwndDlg, ID_EDIT_IO1, "OPEN");
      if (buffer[1]=='L')
        SetDlgItemText(hwndDlg, ID_EDIT_IO2, "CLOSE");
      else if (buffer[1]=='H')
        SetDlgItemText(hwndDlg, ID_EDIT_IO2, "OPEN");
      if (buffer[2]=='L')
        SetDlgItemText(hwndDlg, ID_EDIT_IO3, "CLOSE");
      else if (buffer[2]=='H')
        SetDlgItemText(hwndDlg, ID_EDIT_IO3, "OPEN");
    }
  }
  return TRUE;

Perlu diperhatikan juga bahwa pembacaan dan update tampilan akan dieksekusi hanya bila nilai variabel POLLING bernilai TRUE. Hal ini saya lakukan untuk memberikan contoh bahwa pembacaan masukan dapat dilakukan secara manual menggunakan klik pada tombol atau secara otomatis menggunakan timer.

Berikut adalah tampilan programnya.

USB-2R3IO Bahasa C GUI

Aplikasi

Modul USB-2R3IO telah diaplikasikan oleh beberapa user pada sistem parkir otomatis. Dengan modul ini, program pada komputer membaca masukan berupa penekanan tombol tiket. Ketika terdeteksi adanya penekanan tombol, maka program akan melakukan pencetakan tiket parkir dan kemudian membuka portal dengan mengirimkan sinyal pada panel portal melalui relay USB-2R3IO.

Download Program USB-2R3IO

Anda bisa mendapatkan kode program USB-2R3IO ini dengan cara menuliskan komentar pada tulisan ini beserta nama dan alamat email. Saya akan kirimkan alamat URL untuk mengunduh file proyek USB-2R3IO langsung ke email Anda.

Sampai berjumpa pada tulisan selanjutnya dan salam inovatif.

Tagged with: , , ,
Posted in Programming, USB-2R3IO

Update Firmware dan Software

Update USB-2R3IO

 

Update firmware (pada mikrokontroler modul) hampir selalu disertai dengan update software (pada komputer). Dan jika update software diperlukan, maka update harus dilakukan pada semua platform yang saya dukung yakni Windows, Linux and Raspberry Pi. Jadi setiap kali update firmware yang dilakukan menuntut adanya update software, maka saya harus melakukan update pada program-program berikut:

  • Command-Line Interface versi Windows, Linux dan Raspbery Pi (menggunakan Bahasa C)
  • Demo kontrol versi C (Windows GUI)
  • Demo kontrol versi Python
  • Demo kontrol versi REBOL
  • Demo kontrol versi VB.NET
  • Dan versi bahasa pemrograman lain jika sempat atau diperlukan

Update USB-2R3IO Raspberry Pi

Karena banyak versi yang harus di update, maka cukup melelahkan juga prosesnya. Dan terkadang butuh seharian bahkan lebih. Tapi jika bukan saya yang mengerjakan, siapa lagi? 🙂

Terpikir oleh saya tentang bagaimana caranya supaya proses update software bisa lebih cepat dilakukan atau mungkin lebih mudah atau mungkin lebih menyenangkan.

Cara Efektif Update Software

Pada bagian ini saya bukan hendak menjelaskan tentang bagaimana cara efektif melakukan update software. Dengan ini saya bertanya dan mohon masukan dari Pembaca sekalian sekiranya ada yang punya pengalaman semacam ini, silakan share opininya di komentar.

Terima kasih.

Salam inovatif.

Tagged with: , ,
Posted in Programming

Mengontrol USB Relay 8-Channel Menggunakan Delphi

USB-8REL_DELPHI

 

Screenshot di atas adalah tampilan program Delphi untuk mengontrol USB Relay 8-Channel (USB-8REL). Sederhana saja. Cuma demo pengontrolan kondisi relay, ON atau OFF.

USB-8REL adalah sebuah board berbasis mikrokontroler ATtiny2313A yang dapat mengontrol 8 buah relay dari komputer melalui perantaraan port USB. Selain modul USB dengan 8 relay, terdapat juga modul dengan 1/2/4 relay yakni: USB-1REL, USB-2REL dan USB-4REL.

USB-8REL membutuhkan catudaya 9-12V DC minimal 1A. Relay yang digunakan memiliki kontak NO dengan kemampuan menghantarkan arus maksimal 10A.

Modul USB Relay dapat digunakan untuk mengontrol berbagai peralatan listrik seperti lampu, fan, TV, AC, bel/sirine, motor portal parkir dan lain-lain.

Contoh aplikasi yang dapat dibuat dengan USB-8REL antara lain adalah:

  • kontrol lampu pada sistem rental meja biliar
  • kontrol lampu ruangan otomatis
  • kontrol penyiram tanaman otomatis
  • kontrol power TV pada sistem rental PlayStation

Delphi

Delphi merupakan salah satu perangkat lunak pengembang aplikasi yang populer di Indonesia. Dahulu semasa saya kuliah, hampir semua rekan menggunakan Delphi untuk membuat program interfacing. Delphi dianggap lebih mudah untuk pemrograman hardware dibanding VB terlebih lagi C/C++.

Apalagi waktu itu masih jaman Windows95/98 dan sistem operasi belum seprotektif sekarang. Kita bisa langsung mengakses port IO tanpa minta ijin kepada sistem operasi. Dan dengan Delphi, kita bisa dengan mudah menyisipkan kode program assembly untuk mengakses port IO. Sebelum mikrokontroler populer, port paralel (LPT) dan card PPI8255 (ISA) merupakan interface yang sangat populer pada waktu itu. Baru setelah mikrokontroler ramai digunakan, port serial pun mulai digunakan.

Sekarang Jaman USB

Sekarang port paralel sudah hampir punah, demikian pula halnya dengan port serial (secara fisik). Kini jamannya USB. Laptop dan komputer keluaran terbaru bahkan sudah tidak menyertakan lagi port serial DB9. Oleh karenanya mau-tidak-mau kita harus menggunakan port USB untuk keperluan interfacing, baik secara langsung atau menggunakan konverter USB-to-RS232.

Mengakses port USB secara langsung tidaklah mudah, perlu penguasaan teknologi USB, baik secara hardware maupun software. Untuk hardware kita bisa menggunakan mikrokontroler AVR dengan implementasi USB seperti V-USB yang dibuat oleh http://www.obdev.at.

Untuk software, salah satu library USB yang tersedia gratis adalah LIBUSB. Library ini tersedia dalam bentuk file DLL. Semua bahasa pemrograman yang memiliki kemampuan mengakses DLL bisa memanfaatkan library ini untuk menjembatani pemrograman antarmuka USB.

Untuk lebih gampangnya, saya biasa menggunakan bahasa C. Namun pada tulisan ini saya menggunakan Delphi (bahasa Pascal).

Unit LIBUSB.PAS

Untuk mengakses port USB menggunakan Delphi, kita memerlukan sebuah unit yang menghubungkan program Delphi dengan library LibUSB. Unit LIBUSB.PAS adalah unit yang saya dapatkan dari salah satu situs forum di luar negeri (Jerman kalau tidak salah). Dengan unit ini kita bisa mengakses port USB menggunakan Delphi dengan lebih mudah. Unit ini sudah saya coba gunakan juga menggunakan Lazarus dan bekerja dengan baik.

Berikut adalah cuplikan unit libusb.pas:

libusb_delphi

Dengan LIBUSB.PAS, kita dapat berkomunikasi dengan perangkat USB secara langsung tanpa kesulitan. Dengan mengirimkan data tertentu yang sesuai dengan apa yang telah diprogramkan kepada mikrokontroler pada modul, maka kita dapat mengontrol kondisi relay pada modul tersebut.

Nah, berikut adalah cuplikan kode program yang meng-handle button Relay-1 ON dan Relay-1 OFF.

usb8rel_delphi_r1

Untuk mengaktifkan Relay-1 pada modul, program menggunakan perintah:

n:= usb_control_msg(USB8REL_Handle, $C0, 1, 0, 1, buffer, sizeof(buffer), 5000);

Fungsi tersebut akan mengembalikan jumlah karakter dari pesan yang diterima dari USB Relay sebagai tanda bahwa perintah sukses dijalankan oleh mikrokontroler. Jika jumlah karakter yang diterima = 0 (nol), maka berarti gagal. Nilai pesan diletakkan pada parameter buffer.

USB-8REL In Action

Dan berikut ini adalah foto hasil pengujiannya.

USB-8REL Testing

CD USB-8REL

Proyek Delphi USB-8REL ini tersedia pada CD bawaan modul USB-8REL. Selain versi Delphi, tersedia juga contoh program versi C, Python dab REBOL. Kami juga menyediakan program Command-Line Interface versi Windows, Linux dan Raspberry Pi untuk memudahkan user dalam membuat aplikasi menggunakan bahasa pemrograman apapun.

Silakan menuliskan komentar atau menghubungi kami jika Anda berminat dengan program ini atau produk terkait.

Salam inovatif.

Tagged with: , , ,
Posted in USB-8REL

Modul Sensor Suhu USB-TC101 Kini Semakin Baik

USB-TC101 BARU

 

USB-TC101 – modul piranti USB dengan sensor suhu yang dilengkapi dengan output TRIAC dan BUZZER kini semakin baik. Beberapa revisi yang kami lakukan adalah:

  • Desain yang lebih baik
  • PCB yang lebih baik
  • Firmware yang lebih baik
  • Mengganti sensor suhu LM35DZ dengan DS18B20
  • Driver yang lebih baik untuk buzzer
  • Indikator LED (berkedip sejenak setiap bbrp detik tanda modul aktif)

Dukungan Platform Windows, Linux dan Raspberry Pi

Kami mendukung pengaplikasian USB-TC101 pada platform Windows, Linux dan Raspberry Pi. Semoga Allah SWT berkenan melimpahkan kelebihan rizki biar bisa beli Mac. A-miin.

USB-TC101 Linux

usbtc101c – Command-Line Interface

Untuk memudahkan pengaplikasian modul-modul USB kami, kami menyediakan program CLI untuk setiap modul. Program CLI bisa dipanggil menggunakan SHELL dari program apapun, baik itu VB, Delphi, PHP, dan lain sebagainya. Kami menyediakan CLI untuk versi Windows, Linux dan Raspberry Pi.

USB-TC101 CLI

Artikel Contoh Aplikasi

  1. Alarm Suhu
  2. Data Logger Suhu
  3. Kontroler Suhu + Alarm + Logger

Info Harga dan Pemesanan

Informasi harga dan cara pemesanan dapat Anda lihat di www.usbinov.com/usb-tc101.

Salam inovatif!

 

Tagged with: , , ,
Posted in USB-TC101

Membuat Bel Sekolah/Kantor Dengan USB-1REL dan REBOL

usb1rel_alarm

Membuat program REBOL untuk aplikasi bel sekolah dengan USB-1REL sangatlah mudah. Perhatikan program REBOL berikut ini.

BEL.R3

REBOL [
  Filename: bel.r3
  Description: "Contoh program bel sekolah/kantor"
]

Senin-Kamis: [
  Masuk1    07:30
  Istirahat 12:00
  Masuk2    13:00
  Pulang    16:00
  TESTING   22:46
]

Jumat: [
  Masuk1    07:30
  Istirahat 11:30
  Masuk2    13:00
  Pulang    16:00
]

durasi-bel: 00:00:05

forever [
  hari: now/weekday
  print ["Tanggal:" now/date " Pukul:" now/time]
  if all [hari >= 1 hari <= 4 ][
    foreach [jadwal jam] Senin-Kamis [
      if now/time - jam == 0:00 [ 
        print ["******* Pukul: " jam " -- " jadwal]
        print "******* Bunyikan bel."
        call "sudo ./usb1rc R"
        wait durasi-bel
        print "******* Matikan bel."
        call "sudo ./usb1rc r"
      ]
    ]
  ]

  if hari = 5 [
    foreach [jadwal jam] Jumat [
      if now/time - jam == 0:00 [ 
        print ["******* Pukul: " jam " -- " jadwal]
        print "******* Bunyikan bel."
        call "sudo ./usb1rc R"
        wait durasi-bel
        print "******* Matikan bel."
        call "sudo ./usb1rc r"
      ]
    ]
  ]
  wait 1
]

Program BEL.R3 adalah contoh program sederhana yang membunyikan bel sesuai jadwal yang telah ditentukan. Pada contoh ini jadwal belnya adalah sebagai berikut:

Jadwal Bel Hari Senin-Kamis

Senin-Kamis: [
  Masuk1    07:30
  Istirahat 12:00
  Masuk2    13:00
  Pulang    16:00
  TESTING   22:46
]

Jadwal Bel Hari Jumat

Jumat: [
  Masuk1    07:30
  Istirahat 11:30
  Masuk2    13:00
  Pulang    16:00
]

Pada jadwal bel hari Senin-Kamis terdapat item jadwal TESTING pada pukul 22:46. Data ini untuk keperluan pengujian karena saya membuat tulisan ini pada malam hari.

Bagian program selanjutnya adalah perulangan tanpa-batas

forever [
  #...
]

yang di dalamnya terdapat kode program untuk mengambil data tanggal dan jam sekarang, kemudian membandingkannya dengan jadwal yang telah dibuat. Jika ada kesamaan hari dan jam sekarang dengan hari dan jam pada data jadwal, maka program akan mengeksekusi perintah

call "sudo ./usb1rc R"

untuk membunyikan bel. Lamanya bel berbunyi diatur oleh variabel durasi-bel

durasi-bel: 00:00:10 #10 detik

Setelah durasi bunyi bel tercapai program akan mematikan bel dengan mengeksekusi perintah

call "sudo ./usb1rc r"

Menjalankan Program

Untuk menjalankan program BEL.R3, perintahnya adalah sebagai berikut:

$ sudo ./r3 bel.r3

Adapun hasil pengujian program di atas dapat dilihat pada screenshot berikut ini

usb1rel_bel_view

REBOL3 bekerja pada platform Linux, Raspberry Pi dan Windows. Jadi dengan kode program yang sama (BEL.R3) dan versi usb1rc yang sesuai platform, maka akan didapatkan hasil yang sama. Program REBOL3 ini tentunya lebih mudah dicerna dibandingkan dengan bila kita membuat penjadwalan eksekusi menggunakan CRON.

Untuk membuat jadwal bel, kita tinggal mengedit file BEL.R3 dan menyusun jadwal seperti format yang telah dicontohkan. Program di atas hanya mengenal 2 kelompok jadwal yakni jadwal untuk hari Senin-Kamis dan jadwal untuk hari Jumat. Tentu kita dapat memodifikasi program untuk jadwal dengan data per hari Senin-Minggu.

Program di atas hanyalah contoh sederhana dan dapat dikembangkan lebih lanjut sehingga menjadi program aplikasi yang bagus dan mudah digunakan.

Download

Rebol3, usb1rc dan bel.r3 dapat Anda download melalui link berikut ini:

http://www.usbinov.com/downloads/bel_r3.zip

Instalasi Bel Listrik

Bagaimana cara menghubungkan bel listrik ke relay USB-1REL? Berikut adalah gambar instalasinya.

instalasibel

Ketika relay aktif, maka terminal C dan terminal NO akan terhubung (connected) sehingga bel akan terhubung ke jalur LINE dari PLN (bel berbunyi). Dan ketika relay tidak aktif, terminal C dan terminal NO akan terlepas (disconnected).

Solusi Murah

Dengan membeli modul USB-1REL, kami akan bantu Anda memodifikasi program di atas agar sesuai dengan jadwal bel Anda. REBOL tidak memerlukan instalasi dan bisa langsung digunakan hanya dengan meng-copy file aplikasi REBOL dan file program BEL.R3. Modul USB-1REL tidak membutuhkan catudaya eksternal, jadi tinggal colok ke port USB dan rangkai kabel PLN dan bel ke terminal relay. Mudah dan murah.

Untuk program bel sekolah/kantor menggunakan bahasa pemrograman lain seperti BASIC, C, Pascal, Python dan VB/VB.NET dapat kami sediakan sesuai permintaan.

Salam inovatif!

Tagged with: , ,
Posted in USB-1REL

Download Buku Panduan Perancangan Piranti USB

usbcomplete

Buku USB Complete buah karya Jan Axelson ini dapat kita download dari berbagai situs, salah satunya adalah:

http://s.eeweb.com/members/mark_harrington/answers/1333179451-USB_Complete_3rdEdition.pdf

Semoga bermanfaat.

Salam inovatif!

Tagged with: ,
Posted in Rerefensi

USB-10REL – Modul USB Dengan Output 10 Relay

usb8rel_605

Foto di atas adalah modul kontroler relay USB-8REL. Dengan modul ini kita bisa mengontrol delapan buah relay (on/off) menggunakan PC atau Raspberry Pi melalui port USB.

Terkadang kami harus melakukan sedikit modifikasi untuk memenuhi permintaan user. Gambar berikut ini adalah USB-10REL, yakni modul kontroler 10 relay dengan antarmuka port USB, hasil modifikasi dari USB-8REL.

usb10rel

Kami membuatkan program demo untuk setiap tipe modul USB yang kami rancang. Kami membuatkan program kontrol versi GUI (Graphical User Interface) dan CLI (Command-Line Interface). Program standarnya kami buat menggunakan bahasa pemrograman C (bukan C++).

Untuk versi CLI kami menyediakan file executable untuk platform Windows, Linux dan Raspberry Pi. Program CLI memudahkan pengguna dalam mengakses modul menggunakan bahasa pemrograman apapun. Program CLI dapat dieksekusi dengan ShellExecute atau fungsi akses sistem yang umumnya dimiliki oleh semua bahasa pemrograman. Berikut adalah screenshot CLI usb10rc.exe (versi Windows).

usb10rc_win

Sedangkan untuk versi GUI, kami menyediakan versi Windows yang kami buat menggunakan kompiler Pelles C. Berikut adalah screenshot USB-10REL versi Windows.

usb10rel_pellesc

Tidak hanya bahasa C, secara bertahap kami juga mengembangkan contoh-contoh program kontrol untuk bahasa pemrograman yang lain seperti PASCAL, PHP, PYTHON, REBOL, RUBY, SHELL, VB.NET dan lain-lain yang kami mampu.

Hubungi Kami

Silakan menghubungi kami jika Anda membutuhkan piranti USB untuk kebutuhan aplikasi Anda. Kami menyediakan modul interface USB seperti relay, GPIO dan sensor. Cek produk kami di www.usbinov.com.

Salam inovatif!

Tagged with: ,
Posted in USB-10REL, USB-8REL

Contoh Aplikasi Alarm Suhu (Raspberry Pi)

raspi_usbtc101_alarm_400

Alarm suhu adalah sistem yang secara kontinyu melakukan pengukuran suhu dan membandingkannya dengan suatu nilai yang telah ditentukan (setting value). Jika suhu aktual (present value) melebihi nilai yang telah ditentukan, maka alarm akan berbunyi. Sistem alarm suhu seperti ini disebut Overheated Alarm. Sistem yang bekerja sebaliknya, yakni alarm berbunyi jika suhu aktual kurang-dari nilai yang telah ditentukan disebut Underheated Alarm.

Contoh aplikasi alarm suhu ini kita beri judul: Overheated Alarm Untuk Ruang Server Komputer Berbasis Raspberry Pi.

Adalah sangat penting untuk menjaga suhu ruang server agar senantiasa sejuk. Oleh karenanya, untuk menghindari masalah besar akibat hal yang tidak diinginkan seperti AC bermasalah/mati/rusak atau mungkin kebakaran, maka perlu adanya sistem peringatan dini untuk menjaga keselamatan server.

Dengan Overheated Alarm yang akan membunyikan alarm jika suhu melebihi batas yang telah ditentukan, maka kita bisa segera mengetahui apabila ada masalah temperatur di ruang server, sehingga kita bisa segera menindak-lanjuti peringatan yang muncul.

USB-TC101

Contoh aplikasi ini menggunakan modul USB-TC101 yakni piranti USB dengan sensor suhu dan output TRIAC dan BUZZER. Untuk membaca suhu kita gunakan command-line interface (CLI) bawaan modul USB-TC101 yakni usbtc101c. Hasil pembacaan ini kemudian dibandingkan dengan 30.0. Jika suhu lebih besar dari 30.0 maka alarm akan dibunyikan. Alarm akan otomatis dimatikan jika suhu sudah turun dibawah 30.0.

Skrip alarmsuhu.sh

# alarmsuhu.sh
# www.usbinov.com
#!/bin/bash
SV=30.0
while true
do
   datasuhu=$(sudo ./usbtc101c SUHU)
   echo $datasuhu
   IFS=' '
   set $datasuhu
   if [[ $3 > $SV ]]
   then
      echo Overheated! I am turning the alarm on.
      sudo ./usbtc101c ALARM
   else
      sudo ./usbtc101c alarm
   fi
   sleep 1
done

Keterangan Singkat Skrip

Variabel datasuhu menyimpan string tampilan hasil perintah sudo ./usbtc101c SUHU. Setelah menampilkan ke layar console dengan perintah echo, selanjutnya program melakukan parsing string dengan separator spasi. Ketika suhu aktual bernilai 28.2, maka hasil parsingnya adalah string “SUHU”, string “=” dan string “28.2”. Ketiga string tersebut disimpan dalam variabel string $1, $2 dan $3. Setelah mendapatkan nilai suhu aktual, program membandingkannya dengan SV dan melakukan aksi sesuai hasil perbandingan tersebut.

Buzzer pada USB-TC101 diaktifkan dengan perintah sudo ./usbtc101c ALARM. Untuk mematikan buzzer digunakan perintah sudo ./usbtc101c alarm.

Nah, sangat sederhana bukan? Setelah skrip selesai diketik dan disimpan, ubah atributnya menjadi executable dengan perintah chmod +x alarmsuhu.sh. Bagaimanakah hasil eksekusinya, simak screenshot berikut ini.

usbtc101_raspi_alarm

Nampak pada screenshot bahwa ketika suhu melebihi batas yang telah ditentukan (30.0) , maka alarm akan diaktifkan dan ketika suhu turun dibawah 30.0, maka buzzer akan dimatikan.

Contoh aplikasi ini bisa dikembangkan agar Raspberry Pi mengirimkan pesan singkat kepada staf-staf yang berwenang melalui ethernet (TCP/IP) atau SMS. Selain itu, logging suhu dan kondisi alarm juga bisa dilakukan untuk keperluan evaluasi dan laporan.

Salam inovatif!

Tagged with:
Posted in Raspberry Pi, USB-TC101

Contoh Aplikasi Data Logger Suhu (Raspberry Pi)

USB-TC101raspi_tc101_400 adalah sebuah piranti USB yang dilengkapi dengan rangkaian sensor suhu LM35DZ dan rangkaian driver TRIAC. LM35DZ memiliki jangkauan pengukuran suhu antara 0-100°C, sedangkan driver TRIAC digunakan untuk mengontrol (ON/OFF) beban bertegangan AC220V.

Dengan menggunakan modul USB-TC101 kita dapat mengukur suhu dan mengontrol beban seperti pemanas atau kipas angin. Oleh karenanya dengan modul ini kita bisa membuat program sistem kontrol suhu pada Raspberry Pi.

USB-TC101 dapat diakses menggunakan library LibUSB. Modul USB-TC101 dapat langsung dikenali oleh sistem operasi Raspbian karena driver LibUSB telah terinstalasi sebagai paket bawaan.

Modul USB-TC101 dilengkapi dengan command-line interface (CLI) untuk mengakses piranti tersebut dari terminal (console). Nama program utilitas tersebut adalah usbtc101c. Program ini dibuat menggunakan bahasa pemrograman C.

Program USBTC101C.C dikompilasi menggunakan GCC versi 4.6.3 dengan kelengkapan paket pustaka libusb-dev dan libusb-1.0-0-dev. Dan karena program akan mengakses perangkat keras sistem, maka program usbtc101c harus dipanggil menggunakan akses superuser dengan perintah sudo. Berikut adalah screenshot-nya.

usbtc101_console

usbtc101c juga dilengkapi fasilitas untuk mengontrol driver TRIAC pada modul USB-TC101. Untuk mengaktifkan driver TRIAC digunakan perintah OUTPUT dan untuk mematikan driver TRIAC digunakan parameter output.

Data Logger Suhu Sederhana

Data logger suhu yang akan kita buat sederhana saja, menggunakan Shell. Skrip data logger nantinya akan menampilkan data waktu dan suhu ke layar console setiap 5 detik. Selain menampilkan ke console, skrip juga menuliskan data ke sebuah file suhu.log dengan format file CSV. Nah, berikut adalah skrip data logger suhu sederhana.

loggersuhu.sh

# datalogger suhu raspi + usb-tc101
# www.usbinov.com

#!/bin/bash

> suhu.log
while true
do
   datasuhu=$(sudo ./usbtc101c SUHU)
   IFS=' '
   set $datasuhu
   echo $(date), $3
   echo $(date), $3 >> suhu.log
   sleep 5
done

Setelah file skrip loggersuhu.sh selesai ditulis, ubah atribut file menjadi executable dengan perintah chmod +x loggersuhu.sh. Selanjutnya kita bisa memanggil skrip ./loggersuhu.sh dan data logger suhu sederhana pun akan menampilkan dan menyimpan data waktu dan suhu hingga user menekan tombol break (CTRL+C).

Berikut adalah screenshot tampilan data logger pada layar console dan tampilan file suhu.log yang dihasilkan.

logsuhu_console

logsuhu_file

Nah, mudah bukan? Kita bisa mengembangkan eksperimen ini menjadi monitoring suhu via web, kontroler suhu dan alarm suhu.

Salam Inovatif!

Tagged with: , , ,
Posted in Produk, Raspberry Pi, USB-TC101