2. Outseal Nano/Mega

Daftar Isi:

=========================================================================================


Saya menyukai Outseal. Bagi rekan-rekan yang belum tahu mengenai Outseal, silahkan mengunjungi web resminya di sini: Outseal PLC. Jadi Outseal adalah PLC yang dibuat dari Arduino, yang dilengkapi dengan software pemrograman berbentuk Ladder Diagram (diberi nama Outseal Studio), yang mendukung protokol Modbus RTU sehingga dapat berkomunikasi dengan HMI/SCADA. Dengan protokol Modbus RTU ini memungkinkan untuk menghubungkan hingga lebih dari 30 Outseal, yang semuanya dapat dikontrol dan dimonitor dari sebuah display HMI (Human Machine Interface). Banyak HMI yang tersedia di pasaran, dan salah satu software HMI yang pernah saya gunakan untuk mengendalikan Outseal ini adalah HMI Haiwell, yang memiliki fitur yang menarik, mudah diseting, dan gratis. Untuk mendapatkan gambaran mengenai HMI Haiwell, rekan-rekan dapat mengunjungi blog saya ini: https://bermainhmi.blogspot.com/p/3-simulasi-io-digital.html.Berhubung judul blog ini adalah "Bermain Adafruit IO", maka penggunaan HMI Haiwell tidak dibahas di sini. Sebagai gantinya, akan dibahas 2 software, yaitu LabVIEW dan Node-RED, serta sebuah hardware, yaitu ESP8266, yang ketiganya dapat digunakan untuk menghubungkan Outseal Nano/Mega dengan Adafruit IO, seperti ditunjukkan pada gambar berikut ini.
Gambar 1. Alternatif software dan hardware yang dapat digunakan untuk menghubungkan Outseal Nano/Mega ke Adafruit IO

Tanya: Mengapa perlu menghubungkan Outseal ke Adafruit IO? Apa menariknya Adafruit IO? 
Jawab: Adafruit IO menyediakan fasilitas akses yang mudah ke setiap feed atau variabel Cloud yang dibuat di dalamnya, yang bisa diakses dengan protokol HTTP atau protokol MQTT, yang juga menyediakan tampilan Dashboard untuk setiap feed, untuk keperluan pengendalian dan pemantauan dari halaman web. Dengan kemampuan akses melalui MQTT, layanan di HP Android, seperti IoT MQTT Panel, dapat digunakan untuk mengakses feed di Adafruit IO. 

Tulisan di bawah ini akan menunjukkan langkah-langkah menghubungkan Outseal Nano dan Outseal Mega ke Adafruit IO, yang kemudian juga komunikasinya dengan IoT MQTT Panel. Seperti terlihat pada Gambar 1 di atas, untuk menghubungkan Outseal Nano dan Outseal Mega ke Adafruit IO, ada 3 alternatif cara yang bisa ditempuh, yaitu melalui LabVIEW, Node-RED dan hardware ESP8266/ESP32.  Berikut ini akan dibahas satu persatu ketiga alternatif cara tersebut.


=========================================================================================


Cara 1: Koneksi ke Adafruit IO dengan bantuan LabVIEW

Gambaran koneksi Outseal Nano/Mega ke Adafruit IO melalui LabVIEW dapat dilihat pada diagram berikut ini:

Gambar 2. Diagram koneksi Outseal Nano/Mega ke Adafruit IO dengan bantuan LabVIEW

Tanya: Mengapa menggunakan LabVIEW? Apa menariknya LabVIEW?
Jawab: Saya menyukai LabVIEW. LabVIEW adalah bahasa pemrograman berbentuk grafis, yang berbeda dengan bahasa pemrograman pada umumnya yang berbentuk teks. Mengapa memilih grafis daripada teks? Ini ibarat kita sedang berada di rumah makan, di mana di meja makan telah tersedia daftar menu yang bisa dipesan. Apabila daftar menu tersebut ada gambarnya, kita akan bisa membayangkan, pesanan kita nanti akan seperti apa bentuknya. Sebaliknya apabila daftar menunya hanya berupa tulisan, maka bagi orang asing, yang belum pernah ke rumah makan tersebut, pasti akan susah membayangkan seperti apa jadinya nanti pesanannya. LabVIEW ibarat daftar menu yang berisi gambar, di mana kita bisa mengetahui dengan jelas, setiap instruksi program atau fungsi yang diperlukan, data apa yang harus dimasukkan, dan data apa yang bisa dihasilkan dari fungsi tersebut, karena ada gambar kaki untuk input outputnya, seperti ditunjukkan pada Gambar 3 berikut ini. 

Gambar 3. Tampilan program LabVIEW, terdiri dari 2 jendela: Front Panel dan Block Diagram. Masing-masing memiliki wadah objek, yang disebut Palet Control untuk Front Panel, dan Palet Function untuk Block Diagram

Hal yang menarik adalah, fungsi-fungsi yang diperlukan sudah tersedia di palet Function, sehingga kita hanya tinggal memilih, tidak perlu mengingat-ingat kode apa yang harus dituliskan. Semua tinggal ambil dan sambung, seperti layaknya membuat rangkaian beberapa komponen elektronika.

Baiklah, agar tidak terlalu panjang tulisannya, kembali ke topik menghubungkan Outseal Nano/Mega ke Adafruit IO melalui LabVIEW, berikut ini langkah-langkahnya:

1. Mengikuti diagram koneksi Gambar 2 di atas, mulai dari kiri, yaitu blok Outseal Nano/Mega. Di bagian Outseal Nano/Mega ini akan ditunjukkan 4 buah tipe rangkaian, yaitu:
  • Rangkaian simulasi Outseal Nano (terhubung RS232), 
  • Rangkaian simulasi Outseal Mega(terhubung RS232), 
  • Rangkaian simulasi Outseal Nano dan Mega (terhubung RS485),
  • Rangkaian prototipe dengan Arduino Nano sebagai Outseal Nano.
Berikut ini berturut-turut gambar dari keempat rangkaian di atas:

Gambar 4(a). Rangkaian Outseal Nano terhubung RS232 dengan komputer (COMPIM)

Gambar 4(b). Rangkaian Outseal Mega terhubung RS232 dengan komputer (COMPIM) 

Gambar 4(c). Rangkaian Outseal Nano dan Outseal Mega terhubung RS485 dengan komputer (COMPIM)

Gambar 4(d). Rangkaian prototipe dengan Arduino Nano sebagai Outseal Nano.

Keterangan:
  • Untuk rangkaian Gambar 4(a) - Gambar 4(c) di atas, file Proteus ketiga rangkaian tersebut dapat diunduh di bagian akhir dari tulisan ini, berturut-turut dengan nama file: Rangkaian_Outseal_Nano, Rangkaian_Outseal_Mega, dan Outseal_Nano_dan_Mega. 
  • Untuk Gambar 4(a) dan 4(b), karena hanya satu Outseal, maka tidak perlu menggunakan sambungan RS-485. Sambungan antara 2 device (komputer dan Outseal) ini sering disebut sebagai sambungan RS-232, yang dicirikan dengan sambungan saling silang pada kaki Tx di device pertama, ke kaki Rx di device kedua, dan sebaliknya. Sambungan RS-232 ini biasanya menggunakan port serial DB9. Namun saat ini komputer tidak lagi menyediakan port DB9, sebagai gantinya, hanya menyediakan port USB. untuk itu biasanya mikrokontroler seperti Arduino Nano dilengkapi dengan IC konverter TTL ke USB, agar bisa mengubah sambungan RS-232 level TTL ini ke sambungan USB. Komponen COMPIM di sini merepresentasikan komputer.
  • Rangkaian Gambar 4(c) menggunakan sambungan RS-485, di mana membutuhkan 3 buah modul RS-485, dengan rangkaian: Modul RS-485 pertama terhubung dengan komputer, yang direpresentasikan dalam bentuk komponen COMPIM, Modul RS-485 kedua terhubung dengan Tx-Rx Outseal Nano, dan Modul RS-485 ketiga terhubung dengan Tx-Rx Outseal Mega. Secara riil, Modul RS-485 ini bisa berbentuk seperti gambar berikut ini:
Gambar 5. Modul RS-485
  • Gambar 4(d) merupakan gambar pengawatan untuk rangkaian Gambar 4(a), yang ditunjukkan untuk membuktikan bahwa simulasi dengan Proteus, menghasilkan hasil yang sama seperti rangkaian yang riil.
  • Untuk membuat rangkaian pada Gambar 4(d), ada 4 komponen yang dibutuhkan, yaitu:
    • Arduino Nano
    • Dip Switch 8 jalur 
    • Potensio 10k (2 buah)
    • Modul Relay 8 Channel

2. Setelah membuat rangkaian, langkah berikutnya adalah membuat program. Program untuk Outseal Nano dan Outseal Mega ini menggunakan Ladder Diagram, yang dibuat dengan software Outseal Studio. Gambar 6(a) berikut ini menunjukkan Ladder Diagram untuk Outseal Nano (atau Arduino Nano). Sedangkan Gambar 6(b) berikut ini menunjukkan Ladder Diagram untuk Outseal Mega.

Gambar 6(a). Ladder Diagram untuk Outseal Nano, file Ladder Diagram ini dapat diunduh di bagian akhir tulisan ini dengan nama file: Outseal_Nano.plc

Gambar 6(b). Ladder Diagram untuk Outseal Mega, file Ladder Diagram ini dapat diunduh di bagian akhir tulisan ini dengan nama file: Outseal_Mega.plc

Catatan
  1. Pada dasarnya kedua Ladder Diagram di atas sama, hanya Ladder Diagram untuk Outseal Mega memiliki kontak dan coil yang lebih banyak, 2 kali lipat dari Ladder Diagram Outseal Nano, khususnya untuk jumlah input digital; dari 8 (S.1-S.8) menjadi 16 (S.1-S.16), juga output digital; dari 8 (R.1-R.8) menjadi 16 (R.1-R.16), juga output analog pwm; dari 1 (I.1) menjadi 2 (I.1-I.2), dan juga memori internal yang digunakan; dari 16 (B.1-B.16) menjadi 32 (B.1-B.32). 
  2. Karena kaki output analog pwm menggunakan kaki yang sama dengan output digital, yaitu kaki R.7 untuk Outseal Nano, dan kaki R.7 dan R.8 untuk Outseal Mega, maka untuk Outseal Nano, digunakan bantuan memori integer I.1 untuk mengatur nilai analog di R.7 dari 0 - 1000, dan memori biner B.15 untuk meng-aktif-kan/menon-aktif-kan pengaturan tersebut (nilai 1 untuk aktif, dan nilai 0 untuk non-aktif). Begitu juga untuk Outseal Mega, digunakan bantuan memori integer I.1 dan I.2 untuk mengatur nilai analog di R.7 dan R.8 dengan nilai 0 - 1000, serta memori biner B.23 dan B.24 untuk meng-aktif-kan/menon-aktif-kan kedua pengaturan tersebut (nilai 1 untuk aktif, dan nilai 0 untuk non-aktif).

3. Untuk menerapkan program Ladder Diagram di atas, buka software Outseal Studio. Klik tombol Buka, pilih file Outseal_Nano.plc apabila ingin mensimulasikan rangkaian Outseal Nano, atau pilih file Outseal_Mega.plc, apabila ingin mensimulasikan rangkaian Outseal Mega. Baik file Outseal_Nano.plc maupun Outseal_Mega.plc, dapat rekan-rekan unduh di bagian akhir dari tulisan ini. Setelah Ladder Diagram terbuka, klik tombol Settings, dan pilih Hardware sesuai Ladder Diagram yang dibuka; Untuk Ladder Diagram Outseal Nano, pilih Hardware = Nano V5, dan alamat Modbus Slave = 1. Sedangkan untuk Ladder Diagram Outseal Mega, pilih Hardware = Mega V3, dan alamat Modbus Slave = 2. Setelah itu tekan tombol Test. Apabila muncul tulisan "Tidak terdapat kesalahan", berarti Ladder Diagram telah berhasil dikompilasi.

Gambar 7(a). Apabila membuka Ladder Diagram Outseal_Nano.plc, atur seting Hardware = Nano V5 dan alamat Modbus = 1, kemudian tekan tombol Test. Apabila membuka Ladder Diagram Outseal_Mega.plc, atur Hardware = Mega V3 dan alamat Modbus = 2, kemudian tekan tombol Test.

Gambar 7(b). Untuk Outseal Nano, isi alamat Modbus = 1

Gambar 7(c). Untuk Outseal Mega, isi alamat Modbus = 2

4. Penekanan tombol Test akan membuat Ladder Diagram dikompilasi, sehingga menghasilkan file Hex. File Hex ini diperlukan untuk diisikan di kolom Program File di komponen mikrokontroler (ATmega328 atau ATmega128) di Proteus. File hasil kompilasi Outseal Studio ini selalu bernama sama dan berada di lokasi yang sama, yaitu di C:\Users\xxxxxx\AppData\Local\Temp\Outseal\, dengan nama file Hasil.hex. Tulisan xxxxxx adalah nama user komputer, seperti ditunjukkan gambar berikut ini:

Gambar 8. File hasil kompilasi Outseal Studio selalu di lokasi yang sama dengan nama Hasil.hex

Catatan: Untuk memudahkan rekan-rekan, sengaja saya menempatkan file hasil kompilasi ini di dalam folder yang sama dengan file Proteus, yang filenya saya beri nama Outseal_Nano.hex dan Outseal_Mega.hex. Untuk rangkaian Outseal Nano, isi kolom Program File komponen ATmega328 di Proteus dengan Outseal_Nano.hex. Sedangkan untuk rangkaian Outseal Mega, isi kolom Program File komponen ATmega128 di Proteus dengan Outseal_Mega.hex.

Gambar 9(a). Isi kolom Program File dengan "Outseal_Nano.hex" untuk rangkaian Outseal Nano

Gambar 9(b). Isi kolom Program File dengan "Outseal_Mega.hex" untuk rangkaian Outseal Mega

5. Setelah rangkaian selesai dibuat, dan komponen mikrokontroler untuk Outseal Nano dan Outseal Mega sudah diisi dengan file Hex hasil kompilasi Ladder Diagram di Outseal Studio, maka langkah berikutnya adalah membuat program LabVIEW agar bisa berkomunikasi dengan rangkaian Outseal Nano dan Outseal Mega menggunakan protokol Modbus. 

Catatan: Bagi rekan-rekan yang tidak memiliki software LabVIEW, silahkan bisa mengunduh file software ini di bagian akhir dari tulisan ini. Saya juga menyertakan file software DSC Toolkit, yang diperlukan untuk menambahkan library protokol Modbus di LabVIEW, dan juga file driver VISA530 untuk menyediakan driver komunikasi serial di LabVIEW.

6. Dengan program LabVIEW tersebut, diinginkan LabVIEW bisa melakukan 4 hal berikut ini:
  • membaca dan menampilkan kondisi input digital Dip Switch (SWITCH), 
  • membaca dan menampilkan input analog Potensio (POTENSIO), 
  • mengendalikan output digital LED (LED), dan 
  • mengendalikan output analog dalam bentuk intensitas cahaya LED (LED PWM). 
Catatan: Untuk bisa melakukan keempat hal di atas, LabVIEW difungsikan sebagai Master, sedangkan Outseal Nano dan Outseal Mega difungsikan sebagai Slave.

7. Berikut ini berturut-turut program LabVIEW untuk menghasilkan keempat fungsi atau hal di atas, yang diterapkan pada rangkaian yang telah dibuat, dimulai dari program LabVIEW pertama untuk rangkaian Outseal Nano di Gambar 4(a), kemudian program LabVIEW kedua untuk rangkaian Outseal Mega di Gambar 4(b), dan berikutnya program LabVIEW ketiga untuk rangkaian gabungan Outseal Nano dan Outseal Mega di Gambar 4(c). Untuk rangkaian prototipe di Gambar 4(d), karena sebenarnya merupakan rangkaian yang sama dengan Outseal Nano di Gambar 4(a), maka bisa menggunakan program LabVIEW yang pertama, dan bisa juga menggunakan program LabVIEW yang ketiga.

Catatan: Program dalam bentuk gambar snippet ini dapat teman-teman buka di Block Diagram. Mula-mula klik kanan gambar, pilih Save image as. Setelah filenya tersimpan, tarik file tersebut ke Block Diagram yang kosong, maka akan muncul kode programnya di Block Diagram dan juga tampilan objeknya di Front Panel (Catatan: kode program dalam bentuk gambar snippet ini hanya bisa dibuka dengan LabVIEW versi 2015 ke atas). Apabila teman-teman tidak dapat membuka programnya, silahkan bisa mendownload file program LabVIEW tersebut di bagian akhir dari tulisan ini. 

Gambar 10(a). Program LabVIEW pertama untuk berkomunikasi dengan Outseal Nano

Gambar 10(b). Program LabVIEW kedua untuk berkomunikasi dengan Outseal Mega

Gambar 10(c). Program LabVIEW ketiga untuk berkomunikasi dengan gabungan Outseal Nano dan Outseal Mega

8. Berikutnya, jalankan rangkaian Outseal Nano di Proteus. Namun sebelumnya, isi Physical Port di COMPIM dengan COM yang berpasangan. Untuk mengetahui pasangan COM, buka Device Manager. Apabila belum memiliki pasangan COM, silahkan menginstal software pembuat pasangan COM yang gratis di link ini: https://www.hhdsoftware.com/virtual-serial-port-tools. Pasangan COM dalam contoh di sini menggunakan COM2 dan COM4. COM2 diisikan di COMPIM Proteus, sedangkan COM4 diisikan di kotak Port COM LabVIEW. Atur pula Baud rate di COMPIM sebesar 9600, baik Physical maupun Virtual.

Gambar 11. Pasangan COM dapat dilihat di Device Manager, isikan COM yang pertama di COMPIM Proteus, COM yang kedua di kotak Port COM LabVIEW

9. Setelah Port COM dan Baud rate di COMPIM selesai diisi, jalankan rangkaian Outseal Nano di Proteus. Jalankan juga program LabVIEW pertama untuk Outseal Nano, pastikan Port COM di LabVIEW juga telah diisi. Lakukan pengubahan di LabVIEW, juga lakukan pengubahan di Proteus, seharusnya perubahan di LabVIEW juga akan diikuti perubahan di Proteus, dan begitu pula sebaliknya. 

Gambar 12. Perubahan nilai di LabVIEW ikut mengubah nilai rangkaian Outseal Nano di Proteus dan begitu pula sebaliknya

10. Setelah Outseal Nano, berikutnya jalankan rangkaian Outseal Mega di Proteus. Jalankan juga program LabVIEW kedua untuk Outseal Mega. Lakukan pengubahan di LabVIEW, juga lakukan pengubahan di Proteus, seharusnya perubahan di LabVIEW juga akan diikuti perubahan di Proteus, dan begitu pula sebaliknya.  

Gambar 13. Perubahan nilai di LabVIEW ikut mengubah nilai rangkaian Outseal Mega di Proteus dan begitu pula sebaliknya

11. Setelah Outseal Mega, berikutnya jalankan rangkaian gabungan Outseal Nano dan Outseal Mega di Proteus. Jalankan juga program LabVIEW ketiga. Lakukan pengubahan di LabVIEW, juga lakukan pengubahan di Proteus, seharusnya perubahan di LabVIEW juga akan diikuti perubahan di Proteus, dan begitu pula sebaliknya.  

Gambar 14(a). Ketika ID Slave = 1 dan Tipe = Outseal Nano, perubahan nilai di LabVIEW ikut mengubah nilai rangkaian Outseal Nano di Proteus dan begitu pula sebaliknya

Gambar 14(b). Ketika ID Slave = 2 dan Tipe = Outseal Mega, Perubahan nilai di LabVIEW ikut mengubah nilai rangkaian Outseal Mega di Proteus dan begitu pula sebaliknya

12. Terakhir, gunakan hardware riil seperti rangkaian Gambar 4(d) di atas. Hubungkan Arduino Nano ke port USB komputer. Kemudian jalankan program LabVIEW ketiga. Namun sebelum dijalankan, isi Port COM di LabVIEW dengan Port COM yang digunakan oleh Arduino Nano (lihat di Device Manager). Kemudian lakukan pengubahan di LabVIEW, juga lakukan pengubahan Dip Switch dan Potensio di rangkaian hardware, seharusnya perubahan di LabVIEW juga akan diikuti perubahan di rangkaian hardware, dan begitu pula sebaliknya.  

Gambar 15. Pengubahan Tombol LED dan Slider LED PWM di LabVIEW ikut mengubah kondisi LED dan Relay di rangkaian riil Arduino Nano dan begitu pula sebaliknya, pengubahan Dip Switch dan Potensio di rangkaian, mengakibatkan perubahan kondisi Switch dan Gauge di LabVIEW

13. Setelah komunikasi LabVIEW dengan Outseal Nano/Mega dapat berjalan lancar, langkah berikutnya adalah menghubungkan LabVIEW dengan Adafruit IO. Sebelum menambahkan program di LabVIEW, kita perlu membuat dulu feed atau variabel di Adafruit IO. Untuk itu buka Adafruit IO di link ini: https://io.adafruit.com, klik tombol Sign In di samping icon keranjang belanja.

Gambar 16. Buka Adafruit IO, klik Sign In

14. Klik tombol Sign Up apabila belum memiliki akun. Apabila sudah memiliki akun, isi email dan password, dan kemudian klik Sign In.

Gambar 17. Klik Sign Up apabila belum memiliki akun

15. Untuk pembuatan akun yang baru, isi kolom di halaman Sign Up dan klik Create Account.

Gambar 18. Isi email, username dan password, klik Create Account

16. Ketika Create Account berhasil, maka akan tampil halaman profil, di mana terlihat fasilitas yang disediakan untuk versi gratis, yaitu 2 Device, 5 Group, 10 Feed, 5 Dashboard, dan 30 Data Rate.

Gambar 19. Di profil akun, terlihat fasilitas yang disediakan

17. Klik pada Tab Feeds untuk membuka halaman Feeds. Feed di Adafruit IO ini sama seperti Variable Cloud di Arduino IoT Cloud.

Gambar 20. Klik Tab Feeds

18. Hapus Welcome Feed dengan cara beri centang pada kotak di samping tulisan Welcome Feed, kemudian pilih Delete Feed di pojok kanan. Setelah feed terhapus, klik tombol New Feed, isi Name = LED PWM1, kemudian klik Tombol Create.

Gambar 21. Klik New Feed, isi Name = LED PWM1, klik Create

19. Klik kembali tombol New Feed, dan buat feed secara berturut-turut dengan nama: LED PWM2, LED1, LED2, POTENSIO1, POTENSIO2, SWITCH1, SWITCH2, TIPE, dan UNITID seperti ditunjukkan pada gambar berikut ini.

Gambar 22. Tambahkan Feed sehingga ada 10 Feed, dengan nama berturut-turut: LED PWM1, LED PWM2, LED1, LED2, POTENSIO1, POTENSIO2, SWITCH1, SWITCH2, TIPE, UNITID

20. Perhatikan gambar icon gembok pada Gambar 22 di atas. Untuk feed dengan gambar icon gembok di kanannya, menunjukkan status feed tersebut Private, sedangkan untuk feed tanpa gambar icon gembok, menunjukkan status feed tersebut Public. Untuk feed yang datanya dikirim dari hardware Outseal, tidak perlu dibuat Public. Sedangkan feed yang datanya dari Adafruit IO, agar bisa diakses dengan protokol HTTP, perlu dibuat Public. Untuk membuat sebuah feed menjadi Public, klik 2 kali feed tersebut, kemudian di halaman feed, klik pada kolom Privacy hingga terbuka jendela Update Visibility, pilih Visibility = Public.

Gambar 23. Membuat feed dengan status Private menjadi Public

21. Pada daftar feed Gambar 22 di atas, perhatikan nama-nama feed di kolom Key. Nama-nama feed ini menggunakan huruf kecil dan garis penghubung apabila terdiri dari lebih dari 1 kata. Nama feed di kolom Key ini digunakan untuk variabel di kode program. Selain nama feed, hal penting berikutnya adalah AIO Key. Untuk membuka AIO Key, silahkan klik tombol bergambar kunci, yang ditempatkan di samping New Device.

Gambar 24. AIO Key berisi Username dan Key, yang dimunculkan dengan menekan tombol kunci

22. Setelah kesepuluh Feed berhasil dibuat, langkah berikutnya menampilkan data Feed tersebut dalam bentuk objek di Dashboard. Untuk itu klik Tab Dashboard, kemudian klik New Dashboard, beri nama sembarang, dalam contoh di sini, diberi nama "aplikasi5", kemudian klik Create.

Gambar 25. Klik Tab Dashboard, klik New Dashboard, isi Name = aplikasi5, klik Create

23. Klik tombol Seting di pojok kanan atas, pilih + Create New Block.

Gambar 26. Klik tombol Seting bergambar roda gigi, pilih + Create New Block

24. Di jendela daftar pilihan Blok, pilih Toggle untuk feed TIPE, pilih Text untuk feed LED1, LED2, SWITCH1, SWITCH2, dan UNITID, kemudian pilih Slider untuk feed LED PWM1 dan LED PWM2. dan pilih Gauge untuk feed POTENSIO1 dan POTENSIO2, dan tempatkan Blok-blok tersebut seperti Gambar 28.

Gambar 27. Pilih Blok Toggle, Text, Slider dan Gauge

Gambar 28. Tempatkan Blok-blok seperti gambar di atas

27. Setelah kesepuluh feed beserta Bloknya telah ditempatkan di Dashboard Adafruit IO, maka langkah berikutnya adalah membuat program di LabVIEW untuk meneruskan data, baik dari rangkaian Outseal ke Adafruit IO, ataupun sebaliknya, dari Adafruit IO ke rangkaian Outseal. Untuk meneruskan data ini, di program LabVIEW, digunakan protokol HTTP dengan metode GET dan POST. Berikut ini gambar snippet dari program tersebut, klik kanan gambar, dan pilih Save image as, simpan di komputer, kemudian tarik file gambar tersebut ke Block Diagram LabVIEW, maka kode program ini akan muncul di Block Diagram beserta tampilan objeknya di Front Panel.


Gambar 29. Program LabVIEW untuk meneruskan data dari rangkaian Outseal ke Adafruit IO  dengan metode POST dan sebaliknya dari Adafruit IO ke rangkaian Outseal dengan metode GET

Catatan: Program di atas merupakan program LabVIEW keempat, yang dapat digunakan untuk menghubungkan Adafruit IO dengan rangkaian Outseal Nano, Outseal Mega, maupun rangkaian gabungan Outseal Nano dan Outseal Mega. Namun demikian, program di atas hanya bisa berjalan dengan baik apabila alamat URL untuk metode GET dan POST yang diisikan benar. Untuk mendapatkan URL tersebut, lihat Tabel berikut ini:

Tabel 1. Feed, Arah data, Metode Akses Data dan URL 

Feed

Arah Data

Metode Akses Data

URL

LED1

Adafruit ke LabVIEW

GET, Feed Public, History OFF

Lihat Feed Info (API)

LED2

Adafruit ke LabVIEW

GET, Feed Public, History OFF

Lihat Feed Info (API)

LED PWM1

Adafruit ke LabVIEW

GET, Feed Public, History OFF

Lihat Feed Info (API)

LED PWM2

Adafruit ke LabVIEW

GET, Feed Public, History OFF

Lihat Feed Info (API)

TIPE

Adafruit ke LabVIEW

GET, Feed Public, History OFF

Lihat Feed Info (API)

UNITID

Adafruit ke LabVIEW

GET, Feed Public, History OFF

Lihat Feed Info (API)

POTENSIO1

LabVIEW ke Adafruit

POST dengan Webhook

Lihat Webhooks

POTENSIO2

LabVIEW ke Adafruit

POST dengan Webhook

Lihat Webhooks

SWITCH1

LabVIEW ke Adafruit

POST dengan Webhook

Lihat Webhooks 

SWITCH2

LabVIEW ke Adafruit

POST dengan Webhook

Lihat Webhooks   


28. Gambar berikut menunjukkan cara untuk mendapatkan URL, baik untuk metode GET maupun untuk metode POST. Untuk metode GET, alamat URL dapat dilihat dengan meng-klik pada kolom Feed Info, yang ada di sisi kanan halaman feed. Pastikan Visibility Feed adalah Public, bukan Private. Untuk metode POST, alamat URL dapat dimunculkan dengan meng-klik pada kolom Webhooks.

Gambar 30(a). URL untuk metode GET ada di Feed Info, di bagian API, jangan lupa membuat visibility feed menjadi Public di bagian Privacy

Gambar 30(b). URL untuk metode POST, dapat dimunculkan dengan meng-klik Webhooks, beri centang pada Show /raw webhooks URLs, kemudian tekan tombol +Create

Gambar 30(c). Pada jendela Webhook yang muncul, biarkan terisi nilai default (Expire = Never, Date rate = 5/minute), kemudian klik Create, maka muncul alamat di kolom URL Webhooks

29. Isikan secara berturut-turut kesepuluh alamat URL yang diperoleh dari Feed Info dan Webhook. Isikan URL tersebut sesuai urutan feed yang ditunjukkan gambar berikut:

Gambar 31. Isikan URL untuk kesepuluh feed di program LabVIEW sesuai gambar di atas

30. Setelah semua alamat URL yang sesuai dengan feed di Adafruit IO telah selesai diisikan pada program LabVIEW, jalankan rangkaian gabungan Outseal Nano dan Outseal Mega di Proteus. Jalankan pula program LabVIEW keempat ini. Namun demikian, sebelum dijalankan, pastikan Port COM diisi dengan COM yang sesuai (isi dengan pasangan COM). Buka Dashboard Adafruit IO. Lakukan pengubahan komponen Dip Switch dan komponen Potensio di rangkaian Outseal Nano dan Outseal Mega di Proteus, dan amati perubahan nilainya di LabVIEW dan di Dashboard Adafruit IO. Berikutnya, lakukan pengubahan ID SLAVE, TIPE, LED1, LED2, Slider LED-PWM1, Slider LED PWM2 di Dashboard Adafruit IO, dan amati perubahan tampilan LED di Proteus. Seharusnya perubahan di Proteus akan mengakibatkan perubahan yang sama di Dashboard Adafruit IO dan begitu pula sebaliknya. 

Gambar 32(a). Di Dashboard Adafruit IO, isi Alamat Slave = 1, Tipe = Nano, kemudian lakukan pengubahan LED1 dan LED PWM1, amati kondisi LED di rangkaian Outseal Nano di Proteus. Berikutnya, lakukan pengubahan Dip Switch dan Potensio di Outseal Nano, dan perhatikan nilai SWITCH1, POTENSIO1 dan POTENSIO2 di Dashboard Adafruit IO

Gambar 32(b). Di Dashboard Adafruit IO, isi Alamat Slave = 2, Tipe = Mega, kemudian lakukan pengubahan LED1, LED2, LED PWM1 dan LED PWM2, amati kondisi LED di rangkaian Outseal Mega di Proteus. Berikutnya, lakukan pengubahan Dip Switch dan Potensio di Outseal Mega, dan perhatikan nilai SWITCH1, SWITCH2, POTENSIO1 dan POTENSIO2 di Dashboard Adafruit IO

Gambar 32(c). Di Dashboard Adafruit IO, lakukan pengubahan LED1, LED2, LED PWM1 dan LED PWM2, amati kondisi LED di rangkaian Outseal Mega di Proteus. Berikutnya, lakukan pengubahan Dip Switch dan Potensio di Outseal Mega, dan perhatikan nilai SWITCH1, SWITCH2, POTENSIO1 dan POTENSIO2 di Dashboard Adafruit IO

31. Hal yang menarik dari layanan Adafruit IO ini adalah, setiap feed yang dibuat di Adafruit IO dapat diakses dengan protokol HTTP dan MQTT. Dengan fitur ini, kita dapat menghubungkan rangkaian Arduino dengan IoT MQTT Panel, yang merupakan aplikasi android untuk komunikasi dengan protokol MQTT. Gambar-gambar berikut ini (beserta keterangannya) menunjukkan langkah-langkah pengaturan IoT MQTT Panel agar bisa terhubung dengan Arduino melalui LabVIEW dan Adafruit IO:

Gambar 33. Langkah-langkah pengaturan Dashboard IoT MQTT Panel

Langkah-langkah pengaturan IoT MQTT Panel sesuai Gambar 33.
  1. Buka IoT MQTT Panel, klik pada tombol Setup a Connection (berwarna merah).
  2. Di halaman Add Connection, isi nama Connection (isi dengan nama sembarang), isi Broker web = io.adafruit.com, kemudian isi Username dan Password dengan AIO key Adafruit IO. 
  3. Klik tombol + Dashboard, isi nama Dashboard, klik tombol Save, klik tombol Create.
  4. Muncul nama Connection yang telah dibuat, klik 2 kali pada nama Connection tersebut
  5. Terbuka halaman Dashboard yang masih kosong. Klik tombol Add Panel untuk menambahkan panel objek tampilan data. 
  6. Muncul daftar panel yang bisa ditambahkan. Pilih panel Text Input.
  7. Di halaman Text Input Panel, isi Panel name = ID SLAVE, isi Topic dengan info MQTT by key, yang dapat dilihat di Feed Info sesuai feed (lihat Gambar 30(a)). Dalam contoh di sini, isian Topic-nya adalah aplikasi5/feeds/unitid. Jadi format untuk Topic di MQTT ini adalah nama akun diikuti feeds diikuti nama feed. Klik Create.
  8. Buat lebar panel ID SLAVE menjadi 1/2 lebar layar.
  9. Klik tombol + untuk menambahkan panel lagi. Pilih panel Switch. Di halaman panel Switch, isi Panel name = TIPE, isi Topic sesuai info MQTT by key di Feed Info. Dalam contoh di sini, isian Topicnya adalah aplikasi5/feeds/tipe. Isi juga Subscribe Topic dengan isi yang sama seperti Topic. Isi Payload on = 1, dan isi Payload off = 0. Klik Create.
  10. Buat lebar panel TIPE menjadi 1/2 lebar layar.
  11. Klik tombol + untuk menambahkan panel lagi. Pilih panel Text Log. Di halaman panel Text Log, isi Panel name = SWITCH1, isi Topic sesuai info MQTT by key di Feed Info. Dalam contoh di sini, isian Topicnya adalah aplikasi5/feeds/switch1. Beri centang pada tulisan Show last message only. Klik Create.
  12. Klik tombol + untuk menambahkan panel lagi. Pilih panel Text Log. Di halaman panel Text Log, isi Panel name = SWITCH2, isi Topic sesuai info MQTT by key di Feed Info. Dalam contoh di sini, isian Topicnya adalah aplikasi5/feeds/switch2. Beri centang pada tulisan Show last message only. Klik Create.
  13. Buat lebar panel SWITCH1 dan SWITCH2 masing-masing menjadi 1/2 lebar layar.
  14. Klik tombol + untuk menambahkan panel lagi. Pilih panel Text Input. Di halaman panel Text Input, isi Panel name = LED1, isi Topic sesuai info MQTT by key di Feed Info. Dalam contoh di sini, isian Topicnya adalah aplikasi5/feeds/led1. Klik Create.
  15. Klik tombol + untuk menambahkan panel lagi. Pilih panel Text Input. Di halaman panel Text Input, isi Panel name = LED2, isi Topic sesuai info MQTT by key di Feed Info. Dalam contoh di sini, isian Topicnya adalah aplikasi5/feeds/led2. Klik Create.
  16. Buat lebar panel LED1 dan LED2 masing-masing menjadi 1/2 lebar layar.
  17. Klik tombol + untuk menambahkan panel lagi. Pilih panel Slider. Di halaman panel Slider, isi Panel name = LED PWM1, isi Topic sesuai info MQTT by key di Feed Info. Dalam contoh di sini, isian Topicnya adalah aplikasi5/feeds/led-pwm1. Isi juga Subscribe Topic dengan isi yang sama seperti Topic. Isi Payload min = 0, dan isi Payload max = 1000. Klik Create.
  18. Klik tombol + untuk menambahkan panel lagi. Pilih panel Slider. Di halaman panel Slider, isi Panel name = LED PWM2, isi Topic sesuai info MQTT by key di Feed Info. Dalam contoh di sini, isian Topicnya adalah aplikasi5/feeds/led-pwm2. Isi juga Subscribe Topic dengan isi yang sama seperti Topic. Isi Payload min = 0, dan isi Payload max = 1000. Klik Create.
  19. Buat lebar panel LED PWM1 dan LED PWM2 masing-masing menjadi 1/2 lebar layar.
  20. Klik tombol + untuk menambahkan panel lagi. Pilih panel Gauge. Di halaman panel Gauge, isi Panel name = POTENSIO1, isi Topic sesuai info MQTT by key di Feed Info. Dalam contoh di sini, isian Topicnya adalah aplikasi5/feeds/potensio1. Isi Payload min = 0, dan isi Payload max = 1023. Klik Create.
  21. Klik tombol + untuk menambahkan panel lagi. Pilih panel Gauge. Di halaman panel Gauge, isi Panel name = POTENSIO2, isi Topic sesuai info MQTT by key di Feed Info. Dalam contoh di sini, isian Topicnya adalah aplikasi5/feeds/potensio2. Isi Payload min = 0, dan isi Payload max = 1023. Klik Create.
  22. Buat lebar panel POTENSIO1 dan POTENSIO2 masing-masing menjadi 1/2 lebar layar.
  23. Berhubung panel Text Input LED1 dan Text Input LED2 tidak bisa menampilkan data, maka perlu ditambahkan Text Log untuk feed LED1 dan LED2. Untuk itu, klik tombol + untuk menambahkan panel Text Log. Di halaman panel Text Log, isi Panel name = LED1, isi Topic sesuai info MQTT by key di Feed Info. Dalam contoh di sini, isian Topicnya adalah aplikasi5/feeds/led1. Beri centang pada tulisan Show last message only. Klik Create.
  24. Klik tombol + untuk menambahkan panel Text Log. Di halaman panel Text Log, isi Panel name = LED2, isi Topic sesuai info MQTT by key di Feed Info. Dalam contoh di sini, isian Topicnya adalah aplikasi5/feeds/led2. Beri centang pada tulisan Show last message only. Klik Create.
  25. Buat lebar panel LED1 dan LED2 masing-masing menjadi 1/2 lebar layar.
  26. Begitu pula untuk Text Input ID Slave. Berhubung Text Input tidak bisa digunakan untuk menampilkan data, maka untuk panel ID Slave ini, ganti panel Text Input dengan panel Combo Box. Isi Panel name = ID Slave, isi Topic sesuai info MQTT by key di Feed Info. Dalam contoh di sini, isian Topicnya adalah aplikasi5/feeds/unitid. Isi juga Subscribe Topic dengan isi yang sama seperti Topic. Berikutnya untuk data Combo Box, isi Label dan Payload secara berturut-turut, angka 1, 2, 3, 4 dan 5.
  27. Dengan Combo Box ini, selain bisa digunakan untuk mengubah data, juga bisa digunakan untuk menampilkan data ID Slave (alamat Slave).

32. Gambar berikut ini menunjukkan bagaimana aplikasi IoT MQTT Panel dapat terhubung dengan rangkaian Outseal di Proteus.

Gambar 34(a). Simulasi rangkaian Outseal di Proteus terhubung dengan IoT MQTT Panel dengan bantuan LabVIEW dan Adafruit IO

Gambar 34(b). Simulasi rangkaian Outseal di Proteus terhubung dengan IoT MQTT Panel dengan bantuan LabVIEW dan Adafruit IO

Gambar 34(c). Simulasi rangkaian Outseal di Proteus terhubung dengan IoT MQTT Panel dengan bantuan LabVIEW dan Adafruit IO

Gambar 34(d). Simulasi rangkaian Outseal di Proteus terhubung dengan IoT MQTT Panel dengan bantuan LabVIEW dan Adafruit IO

33. Gambar berikut ini menunjukkan bagaimana aplikasi IoT MQTT Panel dapat terhubung dengan rangkaian riil.

Gambar 35(a). Rangkaian riil Arduino Nano sebagai Outseal Nano terhubung dengan IoT MQTT Panel dengan bantuan LabVIEW dan Adafruit IO

Gambar 35(b). Rangkaian riil Arduino Nano sebagai Outseal Nano terhubung dengan IoT MQTT Panel dengan bantuan LabVIEW dan Adafruit IO

Gambar 35(c). Rangkaian riil Arduino Nano sebagai Outseal Nano terhubung dengan IoT MQTT Panel dengan bantuan LabVIEW dan Adafruit IO

34. Sampai di sini Cara pertama untuk membuat Outseal Nano dan Outseal Mega terhubung ke Adafruit IO dan IoT MQTT Panel dengan bantuan LabVIEW menggunakan protokol HTTP. Agar lebih jelas, berikut ini video pembuatan Cara pertama ini. 

Video menghubungkan Outseal dengan IoT MQTT Panel menggunakan LabVIEW dan Adafruit IO


=========================================================================================


Cara 2: Koneksi ke Adafruit IO dengan bantuan Node-RED

Selain LabVIEW, bahasa pemrograman berbentuk grafis yang sangat luar biasa menurut saya adalah Node-RED. Mirip seperti LabVIEW, Node-RED menyediakan antarmuka pengembangan program berbasis web yang menggunakan konsep alur kerja dalam bentuk grafis. Node-RED dapat mengintegrasikan perangkat keras dan perangkat lunak dengan mudah, serta memfasilitasi pemantauan, pengontrolan, dan analisis data, yang dilengkapi dengan banyak node (instruksi/fungsi) termasuk berbagai protokol dan layanan, seperti HTTP, MQTT, WebSocket, database, yang diperlukan untuk pengembangan IoT (Internet of Things) dan M2M (Machine to Machine). Gambaran koneksi Outseal Nano/Mega ke Adafruit IO melalui Node-RED dapat dilihat pada diagram berikut ini:

Gambar 36. Diagram koneksi Outseal Nano/Mega ke Adafruit IO dengan bantuan Node-RED

Berikut ini langkah-langkah penerapan Cara kedua sesuai diagram Gambar 35 di atas:
1. Bagi rekan-rekan yang masih baru dengan Node-RED, maka langkah pertama yang harus dilakukan adalah download dan instal Node.js. Berikut link download Node.js: https://nodejs.org/en/download
2. Setelah Node.js terinstal, buka command prompt dan ketikkan perintah "npm install -g --unsafe-perm node-red" untuk menginstal Node-RED secara global.
3. Setelah Node-RED terinstal, buka command prompt, ketikkan "node-red" pada command prompt, tunggu hingga muncul  tulisan Started flows. Munculnya tulisan tersebut menandai bahwa Node-RED sudah berjalan.

Catatan: Jangan menutup jendela command prompt ini, karena server localhost Node-RED akan berhenti apabila jendela command prompt ini ditutup.

4. Apabila Node-RED sudah berjalan, buka web browser dan ketik alamat "http://localhost:1880", maka terbuka halaman Editor Node-RED, seperti ditunjukkan pada gambar berikut ini:

Gambar 37. Server Node-RED di localhost:1880 sudah berjalan, Editor Node-RED dapat dibuka

5. Diinginkan Node-RED dapat berkomunikasi dengan rangkaian Outseal Nano dan Outseal Mega di Proteus (lihat Gambar 4(c)). Data yang dikirimkan rangkaian Outseal ke Node-RED adalah data SWITCH1, SWITCH2, POTENSIO1 dan POTENSIO2, sedangkan data yang dikirimkan Node-RED ke rangkaian Outseal adalah data LED1, LED2, LED PWM1 dan LED PWM2. Untuk membuat hal tersebut, gunakan kode program atau flow di Node-RED seperti gambar berikut:

Gambar 38. Flow Node-RED untuk komunikasi dengan rangkaian Outseal Nano dan Outseal Mega (file flow ini dapat diunduh di bagian akhir dari tulisan ini, dengan nama file: NodeRED_Outseal.json)

Catatan1: Setelah file NodeRED_Outseal.json diunduh, untuk membukanya di Node-RED, teman-teman dapat menggunakan Import, yang ada di Menu. Klik Menu (tombol dengan 3 garis bertumpuk), pilih Import. Di jendela yang muncul klik select a file to import, pilih file NodeRED_Outseal.json.

Catatan2: Flow di atas memerlukan tambahan node ui-led. Untuk menambahkan node ui-led, klik Menu, pilih Manage pallete, pilih Tab Instal, ketik ui-led di kolom pencarian, kemudian klik tombol instal pada node-red-contrib-ui-led.

Gambar 39. Instal node ui-led dengan membuka Manage pallete yang ada di daftar Menu

6. Setelah flow NR_OutsealNano.json dapat dibuka, langkah selanjutnya adalah mengatur Port COM yang digunakan node Modbus Flex Getter maupun Modbus Flex Write. Klik 2 kali node tersebut, klik tombol pensil, apabila menggunakan simulasi Proteus, pilih Port COM yang berpasangan dengan COM pada COMPIM di Proteus. Apabila menggunakan hardware riil Outseal atau Arduino Nano, pilih COM yang digunakan oleh hardware tersebut. Untuk mengetahui COM yang digunakan, buka Device Manager.

Gambar 40. Atur Port COM untuk node Modbus Flex Getter dan Modbus Flex Write

7. Setelah pengaturan Port COM selesai, lakukan pengaturan layout Dashboard. Untuk membuka layout Dashboard ini, klik tombol panah ke bawah di pojok kanan atas, di bawah tombol Menu, pilih Dashboard dari daftar. Di halaman Dashboard, klik pada tulisan layout (lihat No.1) di samping nama Dashboard (dalam contoh di sini nama Dashboard = Home). Atur ukuran dan posisi objek Dashboard. Setelah selesai, klik tombol Done (lihat No.2). Setelah pengaturan ukuran dan layout selesai, tekan tombol Deploy (lihat No.3, pilih yang Modified Flows) untuk menjalankan flow di Node-RED. Setelah muncul tulisan "Successfully deployed", klik pada panah ke atas (lihat No.4) untuk membuka Dashboard Node-RED, atau bisa juga dengan mengetikkan "localhost:1880/ui" di web browser. 

Gambar 41. Pengaturan ukuran dan posisi objek dapat dilakukan di halaman layout Dashboard

8. Gambar berikut menunjukkan tampilan Dashboard Node-RED dari flow Node-RED Gambar 37 dan pengaturan layout Gambar 40. Hal yang menarik, objek-objek di Dashboard Node-RED ini bersifat fleksibel, dapat berubah mengikuti ukuran layar. 

Gambar 42. Tampilan Dashboard Node-RED

9. Atur ID SLAVE ke 1 dan TIPE ke kiri (Outseal Nano) di Dashboard Node-RED. Jalankan Proteus, lakukan pengubahan pada Dip Switch dan Potensio di rangkaian Outseal Nano, kemudian amati indikator LED S.1 - S.8 dan Gauge Potensio1 dan Potensio2 di Dashboard Node-RED. Berikutnya lakukan pengubahan juga pada Switch R.1 - R.8 dan juga Slider LED-PWM1 di Dashboard Node-RED, dan amati perubahan nyala LED L.1 - L.8 di Proteus. Seharusnya perubahan di Proteus akan mengakibatkan perubahan yang sama di Node-RED, begitu pula sebaliknya.

Gambar 43. Pengubahan di Proteus akan mengakibatkan perubahan yang sama di Node-RED, begitu pula sebaliknya.

10. Berikutnya, atur ID SLAVE ke 2 dan TIPE ke kanan (Outseal Mega) di Dashboard Node-RED. Jalankan Proteus, lakukan pengubahan pada Dip Switch dan Potensio di rangkaian Outseal Mega, kemudian amati indikator LED S.1 - S.16 dan Gauge Potensio1 dan Potensio2 di Dashboard Node-RED. Berikutnya lakukan pengubahan juga pada Switch R.1 - R.16 dan juga Slider LED-PWM1 dan Slider LED-PWM2 di Dashboard Node-RED, dan amati perubahan nyala LED L.1 - L.16 di Proteus. Seharusnya perubahan di Proteus akan mengakibatkan perubahan yang sama di Node-RED, begitu pula sebaliknya.

Gambar 44. Pengubahan di Proteus akan mengakibatkan perubahan yang sama di Node-RED, begitu pula sebaliknya.

11. Setelah komunikasi dengan protokol Modbus antara Node-RED dengan rangkaian Outseal Nano dan Mega dapat berjalan dengan baik, langkah berikutnya adalah menambahkan protokol MQTT di Node-RED agar dapat terhubung dengan Adafruit IO. Gunakan flow Node-RED berikut ini untuk membuat komunikasi antara Node-RED dengan Outseal Nano dan Adafruit IO.

Gambar 45. Flow Node-RED untuk menghubungkan Outseal Nano ke Adafruit IO (file flow ini dapat diunduh di bagian akhir dari tulisan ini, dengan nama file: NodeRED_Outseal_AdafruitIO.json)

12. Setelah file NodeRED_Outseal_AdafruitIO.json dapat diunduh, gunakan Import di Menu untuk membukanya. Setelah terbuka, tekan tombol Deploy (pilih yang Modified Flows). Setelah muncul tulisan "Successfully deployed", seharusnya di node MQTT In (led1, led2, led-pwm1, led-pwm2) dan node MQTT Out (switch1, switch2, potensio1, potensio2) muncul tulisan "Connected" di bawahnya dengan icon berwarna hijau. Namun apabila tulisan yang muncul adalah "Connecting" dengan icon berwarna kuning, hal itu berarti ada seting parameter yang belum terisi. Untuk itu klik 2 kali pada salah satu node MQTT In/Out tersebut, klik tombol pensil, klik pada Tab Security, isi Username dan Password dengan AIO Key di Adafruit IO, seperti ditunjukkan pada gambar berikut ini.

Gambar 46. Apabila node MQTT In/Out belum bisa terhubung (Connected), maka klik 2 kali node MQTT In/Out tersebut, buka Tab Security, isi Username dan Password dengan AIO Key Adafruit IO.

13. Setelah Username dan Password di Tab Security terisi, kembali tekan tombol Deploy. Kemudian buka Dashboard Adafruit IO, dan atur ID SLAVE ke 1 dan TIPE ke kiri (Outseal Nano). Setelah itu jalankan Proteus, lakukan pengubahan pada Dip Switch dan Potensio di rangkaian Outseal Nano di Proteus, dan amati kondisi indikator LED S.1 - S.8, Gauge Potensio1 dan Potensio2 di Dashboard Node-RED dan Adafruit IO. Begitu pula sebaliknya, lakukan pengubahan Switch R.1 - R.8 dan Slider PWM1 di Dashboard Node-RED dan Dashboard Adafruit IO, dan amati kondisi LED L.1 - L.8 di Proteus. Seharusnya perubahan di Proteus akan mengakibatkan perubahan yang sama di Node-RED dan Adafruit IO, begitu pula sebaliknya, perubahan di Node-RED dan Adafruit IO akan mengakibatkan perubahan di Proteus.

Gambar 47. Pengubahan di Proteus akan mengakibatkan perubahan yang sama di Dashboard Node-RED dan Dashboard Adafruit IO, begitu pula sebaliknya.

14. Berikutnya, di Dashboard Adafruit IO, atur ID SLAVE ke 2 dan TIPE ke kanan (Outseal Mega). Setelah itu jalankan Proteus, lakukan pengubahan pada Dip Switch dan Potensio di rangkaian Outseal Mega di Proteus, dan amati kondisi indikator LED S.1 - S.16, Gauge Potensio1 dan Potensio2 di Dashboard Node-RED dan Adafruit IO. Begitu pula sebaliknya, lakukan pengubahan Switch R.1 - R.16 dan Slider PWM1 serta Slider PWM2 di Dashboard Node-RED dan Adafruit IO, dan amati kondisi LED L.1 - L.16 di Proteus. Seharusnya perubahan di Proteus akan mengakibatkan perubahan yang sama di Node-RED dan Adafruit IO, begitu pula sebaliknya, perubahan di Node-RED dan Adafruit IO akan mengakibatkan perubahan di Proteus.

Gambar 48Pengubahan di Proteus akan mengakibatkan perubahan yang sama di Dashboard Node-RED dan Dashboard Adafruit IO, begitu pula sebaliknya.

15. Berikutnya, apabila Dashboard Adafruit IO sudah berhasil menampilkan data semua objek, maka itu berarti, data tersebut dapat diakses dengan protokol MQTT, salah satunya dengan aplikasi IoT MQTT Panel. Mengulangi langkah no. 33 pada Cara 1 di atas, maka gambar-gambar berikut ini memperlihatkan tampilan Dashboard IoT MQTT Panel yang terhubung dengan rangkaian Outseal Nano di Proteus, melalui Adafruit IO dan Node-RED.

Gambar 49(a). Simulasi rangkaian Outseal di Proteus terhubung dengan IoT MQTT Panel dengan bantuan Node-RED dan Adafruit IO

Gambar 49(b). Simulasi rangkaian Outseal di Proteus terhubung dengan IoT MQTT Panel dengan bantuan Node-RED dan Adafruit IO

Gambar 49(c). Simulasi rangkaian Outseal di Proteus terhubung dengan IoT MQTT Panel dengan bantuan Node-RED dan Adafruit IO

Gambar 49(d). Simulasi rangkaian Outseal di Proteus terhubung dengan IoT MQTT Panel dengan bantuan Node-RED dan Adafruit IO

17. Gambar berikut ini menunjukkan bagaimana aplikasi IoT MQTT Panel dapat terhubung dengan rangkaian Outseal Nano riil melalui Node-RED.

Gambar 50. Rangkaian riil Arduino Nano sebagai Outseal Nano terhubung dengan IoT MQTT Panel dengan bantuan Node-RED dan Adafruit IO

18. Sampai di sini Cara pertama untuk membuat Outseal Nano/Mega terhubung ke Adafruit IO dan IoT MQTT Panel dengan bantuan Node-RED menggunakan protokol MQTT. Agar lebih jelas, berikut ini video pembuatan Cara kedua ini. 

Video menghubungkan Outseal dengan IoT MQTT Panel menggunakan Node-RED dan Adafruit IO


=========================================================================================


Cara 3: Koneksi ke Adafruit IO dengan ESP8266

Apabila Cara 1 dan Cara 2 di atas memerlukan komputer yang harus dihidupkan terus-menerus, untuk menjalankan software LabVIEW/Node-RED, maka Cara Ketiga ini memberikan alternatif yang lebih praktis. Gambaran koneksi Outseal Nano dan Outseal Mega ke Adafruit IO melalui ESP8266 dapat dilihat pada diagram berikut ini:

Gambar 51. Diagram koneksi Outseal Nano/Mega ke Adafruit IO dengan bantuan ESP8266/ESP32

Jadi di Cara Ketiga ini lebih praktis, karena hanya menggunakan hardware ESP8266 tipe 01 yang berukuran kecil dan murah. Dengan hardware ESP8266 yang bisa terhubung dengan internet melalui koneksi Wi-Fi, komunikasi dengan Adafruit IO bisa dijalankan secara mudah, tanpa harus menjalankan komputer terus-menerus. Hal yang lebih menarik, dengan komponen ESP8266 ini, kita bisa menambahkan tampilan LCD I2C, sehingga bisa menampilkan data Modbus Outseal Nano/Mega. Berikut ini langkah-langkah pembuatannya:

1. Siapkan komponen-komponen berikut ini:
  • ESP8266 tipe 01
  • AMS1117 3V3
  • LCD I2C
  • Bluetooth HC-05
2. Dengan komponen-komponen tersebut, buat rangkaian seperti berikut ini:

Gambar 52. Rangkaian ESP8266 dengan Bluetooth HC-05 dan LCD I2C

Catatan: ESP8266-01 membutuhkan tegangan kerja 3,3V. Komponen AMS1117 3V3 digunakan untuk menghasilkan tegangan 3,3 V dari tegangan 5V. Bluetooth HC-05 ditambahkan di sini untuk membuat komunikasi serial tanpa kabel, yang dapat digunakan untuk menghubungkan rangkaian hardware riil ini dengan komponen COMPIM di rangkaian simulasi Proteus, asalkan komputer memiliki koneksi Bluetooth. 

3. Gunakan kode program berikut ini untuk ESP8266-01. 

KodeProgram_ESP8266_MasterModbus.ino
  1. #include <ESP8266WiFi.h>
  2. #include "Adafruit_MQTT.h"
  3. #include "Adafruit_MQTT_Client.h"
  4. #include "Wire.h"
  5. #include "LiquidCrystal_I2C.h"
  6. #include "ModbusRTU.h"
  7. #define WLAN_SSID "FALCONJR"
  8. #define WLAN_PASS "08251027"
  9. #define AIO_SERVER "io.adafruit.com"
  10. #define AIO_SERVERPORT 1883
  11. #define AIO_USERNAME "aplikasi5"
  12. #define AIO_KEY "aio_jmsi76AKCUlCAF0LP0yuvzPaXGFV"
  13. LiquidCrystal_I2C lcd(0x27, 16, 2);
  14. ModbusRTU mb;
  15. WiFiClient client;
  16. Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
  17. Adafruit_MQTT_Publish S1 = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/switch1");
  18. Adafruit_MQTT_Publish S2 = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/switch2");
  19. Adafruit_MQTT_Publish P1 = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/potensio1");
  20. Adafruit_MQTT_Publish P2 = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/potensio2");
  21. Adafruit_MQTT_Publish L1 = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/led1");
  22. Adafruit_MQTT_Publish L2 = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/led1");
  23. Adafruit_MQTT_Publish M1 = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/led-pwm1");
  24. Adafruit_MQTT_Publish M2 = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/led-pwm2");
  25. Adafruit_MQTT_Subscribe ID = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/unitid");
  26. Adafruit_MQTT_Subscribe TP = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/tipe");
  27. Adafruit_MQTT_Subscribe E1 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/led1");
  28. Adafruit_MQTT_Subscribe E2 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/led2");
  29. Adafruit_MQTT_Subscribe W1 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/led-pwm1");
  30. Adafruit_MQTT_Subscribe W2 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/led-pwm2");
  31. void MQTT_connect();
  32. bool coil1[10];
  33. bool idis1[10];
  34. bool coil2[10];
  35. bool idis2[10];
  36. uint16_t hreg[10];
  37. uint16_t ireg[10];
  38. int uid = 1;
  39. int tp = 0;
  40. String e1 = "";
  41. String e2 = "";
  42. int w1 = 0;
  43. int w2 = 0;
  44. String var = "";
  45. int cacah = 0;
  46. unsigned long skr = 0;
  47. void setup() {
  48.   Wire.begin(0, 2);
  49.   lcd.init();
  50.   lcd.backlight();
  51.   Serial.begin(9600);
  52.   mb.begin(&Serial);
  53.   mb.setBaudrate(9600);
  54.   mb.master();
  55.   mb.readIsts(1, 0, idis1, 8);
  56.   grak();
  57.   delay(1000);
  58.   WiFi.begin(WLAN_SSID, WLAN_PASS);
  59.   while (WiFi.status() != WL_CONNECTED) {
  60.     delay(500);
  61.   }
  62.   mqtt.subscribe(&ID);
  63.   mqtt.subscribe(&TP);
  64.   mqtt.subscribe(&E1);
  65.   mqtt.subscribe(&E2);
  66.   mqtt.subscribe(&W1);
  67.   mqtt.subscribe(&W2);
  68. }
  69. void loop() {
  70.   MQTT_connect();
  71.   Adafruit_MQTT_Subscribe *subscription;  //adafruit -> esp8266
  72.   while ((subscription = mqtt.readSubscription(10000))) {
  73.     if (subscription == &ID) {
  74.       uid = atoi((char *)ID.lastread);
  75.     }
  76.     if (subscription == &TP) {
  77.       tp = atoi((char *)TP.lastread);
  78.     }
  79.     if (subscription == &E1) {
  80.       e1 = String((char *)E1.lastread);
  81.       for (int i = 0; i < 8; i++) {
  82.         mb.writeCoil(uid, i + 136 + tp * 8, (e1.substring(i, i + 1) == "1") ? 0 : 1);
  83.         grak();
  84.       }
  85.       mb.readCoil(uid, 0, coil1, 8);
  86.       grak();
  87.       lcd.setCursor(0, 0);
  88.       lcd.print("Kondisi R.1-R.8 ");
  89.       lcd.setCursor(0, 1);
  90.       lcd.print("=               ");
  91.       lcd.setCursor(2, 1);
  92.       for (int i = 0; i < 8; i++) {
  93.         lcd.print(coil1[i] ? "0" : "1");
  94.       }
  95.     }
  96.     if (subscription == &E2) {
  97.       e2 = String((char *)E2.lastread);
  98.       for (int i = 0; i < 8; i++) {
  99.         mb.writeCoil(uid, i + 144 + tp * 8, (e2.substring(i, i + 1) == "1") ? 0 : 1);
  100.         grak();
  101.       }
  102.       mb.readCoil(uid, 8, coil2, 8);
  103.       grak();
  104.       lcd.setCursor(0, 0);
  105.       lcd.print("Kondisi R.9-R.16");
  106.       lcd.setCursor(0, 1);
  107.       lcd.print("=               ");
  108.       lcd.setCursor(2, 1);
  109.       for (int i = 0; i < 8; i++) {
  110.         lcd.print(coil2[i] ? "0" : "1");
  111.       }
  112.     }
  113.     if (subscription == &W1) {
  114.       w1 = atoi((char *)W1.lastread);
  115.       mb.writeHreg(uid, 0, w1);
  116.       grak();
  117.       mb.readHreg(uid, 0, hreg, 1);
  118.       grak();
  119.       lcd.setCursor(0, 0);
  120.       lcd.print("Nilai I.1 - I.2 ");
  121.       lcd.setCursor(0, 1);
  122.       lcd.print("=               ");
  123.       lcd.setCursor(2, 1);
  124.       lcd.print(hreg[0]);
  125.       lcd.print(',');
  126.       lcd.print(hreg[1]);
  127.     }
  128.     if (subscription == &W2) {
  129.       w2 = atoi((char *)W2.lastread);
  130.       mb.writeHreg(uid, 1, w2);
  131.       grak();
  132.       mb.readHreg(uid, 0, hreg, 2);
  133.       grak();
  134.       lcd.setCursor(0, 0);
  135.       lcd.print("Nilai I.1 - I.2 ");
  136.       lcd.setCursor(0, 1);
  137.       lcd.print("=               ");
  138.       lcd.setCursor(2, 1);
  139.       lcd.print(hreg[0]);
  140.       lcd.print(',');
  141.       lcd.print(hreg[1]);
  142.     }
  143.   }
  144.   if (millis() - skr > 5000) {
  145.     skr = millis();
  146.     var = "";
  147.     tampil();
  148.     cacah++;
  149.     if (cacah > (3 + tp * 2)) cacah = 0;
  150.   }
  151. }
  152. void tampil() {
  153.   switch (cacah) {
  154.     case 0:  //coil 8 relay pertama
  155.       mb.readCoil(uid, 0, coil1, 8);
  156.       grak();
  157.       lcd.setCursor(0, 0);
  158.       lcd.print("Kondisi R.1-R.8 ");
  159.       lcd.setCursor(0, 1);
  160.       lcd.print("=               ");
  161.       lcd.setCursor(2, 1);
  162.       for (int i = 0; i < 8; i++) {
  163.         lcd.print(coil1[i] ? "0" : "1");
  164.         var = var + String(coil1[i] ? "0" : "1");
  165.       }
  166.       if (!L1.publish(var.c_str())) {};
  167.       break;
  168.     case 1:  //coil 8 input diskrit pertama
  169.       mb.readIsts(uid, 0, idis1, 8);
  170.       grak();
  171.       lcd.setCursor(0, 0);
  172.       lcd.print("Kondisi S.1-S.8 ");
  173.       lcd.setCursor(0, 1);
  174.       lcd.print("=               ");
  175.       lcd.setCursor(2, 1);
  176.       for (int i = 0; i < 8; i++) {
  177.         lcd.print(idis1[i] ? "1" : "0");
  178.         var = var + String(idis1[i] ? "1" : "0");
  179.       }
  180.       if (!S1.publish(var.c_str())) {};
  181.       break;
  182.     case 2:  //holding register
  183.       mb.readHreg(uid, 0, hreg, 2);
  184.       grak();
  185.       lcd.setCursor(0, 0);
  186.       lcd.print("Nilai I.1 - I.2 ");
  187.       lcd.setCursor(0, 1);
  188.       lcd.print("=               ");
  189.       lcd.setCursor(2, 1);
  190.       lcd.print(hreg[0]);
  191.       if (!M1.publish(hreg[0])) {};
  192.       lcd.print(',');
  193.       lcd.print(hreg[1]);
  194.       if (!M2.publish(hreg[1])) {};
  195.       break;
  196.     case 3:  //input register
  197.       mb.readIreg(uid, 0, ireg, 2);
  198.       grak();
  199.       lcd.setCursor(0, 0);
  200.       lcd.print("Nilai A.1 - A.2 ");
  201.       lcd.setCursor(0, 1);
  202.       lcd.print("=               ");
  203.       lcd.setCursor(2, 1);
  204.       lcd.print(ireg[0]);
  205.       if (!P1.publish(ireg[0])) {};
  206.       lcd.print(',');
  207.       lcd.print(ireg[1]);
  208.       if (!P2.publish(ireg[1])) {};
  209.       break;
  210.     case 4:  //coil 8 relay kedua
  211.       mb.readCoil(uid, 8, coil2, 8);
  212.       grak();
  213.       lcd.setCursor(0, 0);
  214.       lcd.print("Kondisi R.9-R.16");
  215.       lcd.setCursor(0, 1);
  216.       lcd.print("=               ");
  217.       lcd.setCursor(2, 1);
  218.       for (int i = 0; i < 8; i++) {
  219.         lcd.print(coil2[i] ? "0" : "1");
  220.         var = var + String(coil2[i] ? "0" : "1");
  221.       }
  222.       if (!L2.publish(var.c_str())) {};
  223.       break;
  224.     case 5:  //coil 8 input diskrit kedua
  225.       mb.readIsts(uid, 8, idis2, 8);
  226.       grak();
  227.       lcd.setCursor(0, 0);
  228.       lcd.print("Kondisi S.9-S.16");
  229.       lcd.setCursor(0, 1);
  230.       lcd.print("=               ");
  231.       lcd.setCursor(2, 1);
  232.       for (int i = 0; i < 8; i++) {
  233.         lcd.print(idis2[i] ? "1" : "0");
  234.         var = var + String(idis2[i] ? "1" : "0");
  235.       }
  236.       if (!S2.publish(var.c_str())) {};
  237.       break;
  238.   }
  239. }
  240. void grak() {
  241.   while (mb.slave()) {
  242.     mb.task();
  243.     delay(10);
  244.   }
  245. }
  246. void MQTT_connect() {
  247.   int8_t ret;
  248.   if (mqtt.connected()) {
  249.     return;
  250.   }
  251.   uint8_t retries = 3;
  252.   while ((ret = mqtt.connect()) != 0) {
  253.     mqtt.disconnect();
  254.     delay(10000);
  255.     retries--;
  256.     if (retries == 0) {
  257.       while (1)
  258.         ;
  259.     }
  260.   }
  261. }
CatatanKode program di atas memerlukan library Adafruit MQTT, library LCD I2C, dan library modbus-esp8266Kode program di atas dapat diunduh di akhir tulisan ini, dengan nama file KodeProgram_ESP8266_MasterModbus.ino. Pastikan untuk mengganti kode yang diberi warna merah, yaitu WLAN_SSID (nama hotspot Wi-Fi), WLAN_PASS (password Wi-Fi), AIO_USERNAME dan AIO_KEY, sesuaikan dengan yang ada.

4. Untuk meng-upload kode program di atas ke ESP8266-01, gunakan USB Adapter seperti gambar berikut ini, dan hubungkan kaki GPIO.0 dengan Ground saat program di-upload. Setelah program berhasil di-upload, lepas sambungan tersebut. Jadi ketika upload, kaki GPIO.0 harus dalam kondisi LOW.

Gambar 53(a). ESP8266-01 dan USB Adapter tampak atas

Gambar 53(b). USB Adapter tampak bawah, dengan kaki GPIO.0 dan Ground dihubungkan

5. Setelah program berhasil di-upload ke ESP8266-01, dan rangkaian Gambar 52 di atas selesai dirangkai, maka langkah berikutnya, menghubungkan rangkaian Gambar 52 tersebut ke rangkaian simulasi Proteus melalui Bluetooth HC-05. Untuk mengetahui port COM yang digunakan Bluetooth HC-05 (pastikan komputer memiliki koneksi Bluetooth, atau apabila komputer tidak memiliki koneksi Bluetooth, silahkan menambahkan Adapter USB Bluetooth), buka Settings, pilih Bluetooth & other devices, pilih More Bluetooth Options, lihat pada Port dengan Direction = Outgoing. Apabila belum muncul, klik tombol Add untuk menambahkan Port Outgoing. Port inilah yang digunakan untuk komunikasi dengan Bluetooth. Isikan Port ini di Physical Port di COMPIM. 

Gambar 54. Gunakan Port Outgoing, dalam contoh di sini terlihat COM12 adalah Port Outgoing, isikan Port Outgoing ini di Physical Port di COMPIM

6. Gambar berikut ini menunjukkan komunikasi antara rangkaian simulasi Proteus dengan rangkaian riil Gambar 52, di mana rangkaian simulasi Proteus dapat dihubungkan ke IoT MQTT Panel dengan bantuan hardware ESP8266-01 dan Adafruit IO, dan juga hardware HC-05 yang menghubungkan  ESP8266-01 dengan komponen COMPIM melalui Bluetooth.

Gambar 55(a). Rangkaian Gambar 52 terhubung ke rangkaian simulasi Proteus melalui Bluetooth, yang juga menghubungkan rangkaian simulasi Proteus tersebut dengan Adafruit IO dan IoT MQTT Panel

Gambar 55(b). Rangkaian Gambar 52 terhubung ke rangkaian simulasi Proteus melalui Bluetooth, yang juga menghubungkan rangkaian simulasi Proteus tersebut dengan Adafruit IO dan IoT MQTT Panel

Gambar 55(c). Rangkaian Gambar 52 terhubung ke rangkaian simulasi Proteus melalui Bluetooth, yang juga menghubungkan rangkaian simulasi Proteus tersebut dengan Adafruit IO dan IoT MQTT Panel

7. Lalu bagaimana bila diinginkan rangkaian Outseal riil yang terhubung ke IoT MQTT Panel, bukan rangkaian simulasi Proteus? Untuk membuat hal ini, di sini ditunjukkan penyambungan rangkaian prototipe Gambar 4(d) dengan rangkaian Gambar 52. Berhubung penyambungan dilakukan dengan kabel, maka komponen Bluetooth HC-05 tidak diperlukan di sini. Mengapa menggunakan rangkaian prototipe Gambar 4(d)? Karena kebetulan Outseal saya sudah terpasang, dan saya hanya punya Arduino Nano. Jadi di sini hardware riil Arduino Nano diprogram dengan Outseal Studio supaya dapat bekerja sebagai Outseal Nano. Berikut ini gambar pengawatan rangkaiannya:

Gambar 56. Gambar pengawatan penyambungan rangkaian ESP8266-01 Gambar 52 dengan rangkaian prototipe Outseal Nano Gambar 4(d)

8. Susun rangkaian Gambar 56 di atas, beri suplai daya, dan buka Adafruit IO di komputer dan aplikasi IoT MQTT Panel di HP, yang telah diseting sesuai Gambar 33 di atas. Lakukan perubahan di Dashboard IoT MQTT Panel, dan amati perubahan yang terjadi di rangkaian prototipe Outseal dan Dashboard Adafruit IO. Lakukan juga perubahan di rangkaian prototipe Outseal, dan perhatikan perubahan di Dashboard IoT MQTT Panel dan Adafruit IO. Lakukan juga perubahan di Dashboard Adafruit IO, dan perhatikan perubahan di Dashboard IoT MQTT Panel dan rangkaian prototipe Outseal.

Gambar 57(a). Perubahan di Dashboard IoT MQTT Panel akan mengakibatkan perubahan di rangkaian prototipe Outseal dan Dashboard Adafruit IO, dan begitu pula sebaliknya.

Gambar 57(b). Perubahan di Dashboard IoT MQTT Panel akan mengakibatkan perubahan di rangkaian prototipe Outseal dan Dashboard Adafruit IO, dan begitu pula sebaliknya.

Gambar 57(c). Perubahan di Dashboard IoT MQTT Panel akan mengakibatkan perubahan di rangkaian prototipe Outseal dan Dashboard Adafruit IO, dan begitu pula sebaliknya.

9. Sampai di sini langkah-langkah pembuatan untuk Cara Ketiga ini selesai. Agar lebih jelas, berikut ini video pembuatan Cara Ketiga ini. 

Video menghubungkan Outseal dengan IoT MQTT Panel menggunakan ESP8266 dan Adafruit IO


=========================================================================================



File Download:


Catatan: Bagi rekan-rekan yang belum memiliki software LabVIEW, bisa mengunduh versi 2015 di link ini: LabVIEW 2015 (Sekalipun versinya Evaluation, namun kemampuannya sama dengan yang versi Profesional, hanya saja memang waktu penggunaannya terbatas. Namun demikian, waktu penggunaan ini bisa diperpanjang, dengan cara, sebelum menjalankan LabVIEW, mundurkan dulu tanggal di komputer ke tahun 2000 misalnya, baru kemudian membuka LabVIEW, setelah halaman awal LabVIEW muncul, kembalikan waktu komputer ke waktu yang sekarang). Berikutnya agar LabVIEW bisa mengakses port Serial komputer silahkan menginstal VISA di link ini: VISA 530. Untuk menambahkan protokol Modbus di LabVIEW, instal software Add On DSC yang dapat diunduh di link ini: Modul Add On DSC

No comments:

Post a Comment