Menghubungkan Node-RED dengan Outseal Nano
- Mengontrol R.1 - R.8 melalui node Inject
- Mengontrol R.1 - R.8 melalui Telegram
- Membaca notifikasi S.1 - S.8 melalui Telegram
Berikut ini uraian masing-masing:
==========================================================================
1. Mengontrol R.1 - R.8 melalui node Inject
Berikut ini langkah-langkahnya:1. Buka Node-RED, buka menu, pilih Manage Palette, pilih Tab Install, ketik "modbus", pilih node-red-contrib-modbus, klik install.
2. Di kolom palet, ketik modbus, ambil node Modbus Flex Write. Tekan tombol Help (bergambar buku).
Gambar 1.2 Ambil node Modbus Flex Write, klik Help
3. Di kolom Help, terlihat petunjuk penggunaan node Modbus Flex Write untuk menulis data Coil R.1 - R.8, yaitu memerlukan node function dengan isi node seperti ditunjukkan pada gambar berikut ini. Copy isi node tersebut, dan isikan di node function.
- msg.payload = {
- value: msg.payload,
- 'fc': 5,
- 'unitid': 1,
- 'address': 0,
- 'quantity': 1
- }
- return msg
Gambar 1.4 Tempelkan hasil copy-an ke isi node function
5. Ganti angka 0 di samping tulisan 'address' dengan msg.topic. Penggantian ini dimaksudkan agar alamat Coil bisa diganti-ganti dari luar node function, dengan mengisikannya di variabel msg.topic.
Gambar 1.5 Ganti angka 0 dengan msg.topic
6. Berikutnya, tambahkan node Inject, isi kolom Name: R1:1. msg.payload: 1, dan isi msg.topic: 128. Data di msg.payload merupakan nilai untuk Coil, sedangkan data di msg.topic merupakan alamat Coil, di mana 128 merupakan alamat Coil B.1 di Outseal.
Gambar 1.6 Isi node Inject, Name: R1:1, msg.payload:1, msg.topic:128
7. Terlihat ada segitiga merah di node Modbus Flex Write, ini menunjukkan node tersebut belum terisi dengan benar. Klik 2 kali node tersebut, di kolom Server, klik tombol + untuk menambahkan Server.
Gambar 1.7 Klik 2 kali node Modbus Flex Write, tekan tombol + untuk menambahkan Server
8. Pilih Tupe: Serial, dan isi Serial port dengan COM yang berpasangan. Dalam contoh di sini menggunakan pasangan COM5 dan COM6 (lihat Device Manager). COM5 untuk node Modbus Flex Write, dan COM6 untuk rangkaian Wokwi. Klik Add.
Gambar 1.8 Atur tipe modbus: Serial, dan pilih COM yang berpasangan
9. Apabila tidak ada error, maka akan muncul nama di kolom Server. Klik Done.
Gambar 1.9 Pengisian Server telah berhasil, klik Done
10. Apabila kolom Debug Messages sudah tertutup, untuk membukanya kembali, klik tombol Menu, pilih View, pilih Debug messages.
Gambar 1.10 Buka Debug messages dengan memilih Menu, pilih View, pilih Debug messages
11. Agar tidak hanya 1 yang dikirimkan, tetapi juga bisa mengirimkan 0, maka duplikasi node Inject R1:1, ubah isinya menjadi Name: R1:0, msg.payload:0.
Gambar 1.11 Agar tidak hanya menghidupkan, tetapi juga bisa mematikan, duplikasi node Inject, ubah isinya menjadi Name: R1:0, dan msg.payload:0
Gambar 1.12 Terlihat rangkaian Arduino Nano sebagai Outseal Nano yang terhubung dengan Bar Graph LED di kaki R.1 - R.8
13. Berikutnya buka Outseal Studio, kemudian buat Ladder Diagram seperti berikut ini:
Gambar 1.13 Ladder Diagram untuk menerima data di B.1 - B.8 dan meneruskannya di R.1 - R.8
Catatan:
Rekan-rekan dapat mengunduh file Ladder Diagram di atas di link ini:
14. Klik Setting, pilih Hardware: Nano V5, dan alamat Modbus:1
Gambar 1.14 Di Settings, pilih Hardware: Nano V5, dan alamat Modbus: 1
15. Tekan tombol Test untuk kompilasi program, pastikan pesan yang muncul "Tidak terdapat kesalahan".
Gambar 1.15 Tekan tombol Test untuk kompilasi program, seharusnya muncul pesan "Tidak terdapat kesalahan"
16. Di Wokwi, klik kanan pada halaman Sketch, pilih Command Palette, pilih Upload Firmware & Start Simulation.
Gambar 1.16 Klik kanan halaman Skectch, pilih Command Palette, pilih Upload Firmware and Start Simulation
17. Arahkan ke lokasi file Hasil.hex, yang berada di "C:\Users\xxx\AppData\Local\Temp\Outseal", di mana xxx = nama User komputer.
Gambar 1.17 Arahkan ke lokasi file Hasil.hex, yang berada di "C:\Users\xxxAppData\Local\Temp\Outseal"
18. Seharusnya akan muncul kotak dialog pemilihan COM, apabila kotak ini tidak muncul, ulangi Upload Firmware and Start Simulation, dan pilih Hasil.hex lagi, seharusnya kotak pemilihan COM tersebut muncul.
Gambar 1.18 Pastikan kotak pemilihan COM muncul, apabila kotak pemilihan ini tidak muncul, ulangi Upload Firmware and Start Simulation, dan pilih Hasil.hex lagi
19. Berikutnya buat Wokwi dan Node-RED berdampingan. Agar data yang dikirimkan ke Wokwi bisa tampil di kolom Debug Message, tambahkan node Debug, kemudian hubungkan output node function ke node Debug, kemudian tekan tombol Deploy. Apabila Deploy berhasil, tekan tombol di samping node Inject R1:1, maka seharusnya LED pertama di LED Bar Graph menyala dan muncul data di kolom Debug Messages.
Gambar 1.19 Deploy flow, tekan tombol di samping node Inject R1:1, maka seharusnya LED pertama di Bar Graph menyala, dan muncul data di kolom Debug Messages
20. Berikutnya tekan tombol di samping node Inject R1:0, seharusnya LED pertama di Bar Graph menjadi padam, dan muncul data di kolom Debug Message.
Gambar 1.20 Tekan tombol di samping node Inject R1:0, maka seharusnya LED pertama di Bar Graph padam, dan muncul data di kolom Debug Messages
21. Duplikasi node Inject R1:1 dan R1:0 sebanyak 7 kali, sehingga ada 16 node Inject. Buat ke-16 node Inject tersebut disusun dari atas ke bawah, dengan isi mengikuti Tabel 1 berikut:
Tabel 1. Nama, nilai dan alamat dari ke-16 node Inject
Gambar 1.21 Duplikasi node Inject R1:1 dan R1:0 sehingga menjadi sebanyak 16 node, dengan isinya mengikuti Tabel 1 di atas
22. Tekan tombol Deploy, tekan mulai dari R1:1, R2:1, R3:1, R4:1, R5:1, R6:1, R7:1, dan R8:1, maka ke-8 LED Bar Graph menyala.
Gambar 1.22 Tekan tombol di samping node Inject, dari R1:1 sampai R8:1, maka ke-8 LED Bar Graph akan menyala
Catatan: Flow atau program Node-RED untuk ke-16 node Inject ini dapat diunduh di sini:
23. Agar lebih jelas, berikut ini video pembuatannya:
Video pembuatan kontrol R.1-R.8 Outseal dengan Node Inject
==========================================================================
2. Mengontrol R.1 - R.8 melalui Telegram
Berikut ini langkah-langkahnya:Sebelum memulai langkah pembuatan, rekan-rekan bisa mengunduh file-file program yang telah dibuat di bagian sebelumnya, agar dapat digunakan di bagian ini. Ada 2 file yang diperlukan, yaitu flow Node-RED (link: flow Node-RED bagian 1) dan Ladder Diagram Outseal (link: LD Outseal bagian 1).
1. Buka Node-RED, dan instal node-red-contrib-telegrambot. Caranya: pilih Menu, pilih Manage palette, pilih Tab Instal, ketik telegram, pilih node-red-contrib-telegrambot, klik Install, klik Done.
2. Setelah terinstal, ketik di kolom filter nodes: telegram, muncul 6 buah node di kolom palet, ambil node Telegram Receiver.
3. Klik 2 kali node Telegram Receiver, klik tombol + untuk menambahkan Bot.
Gambar 2.3 Klik tombol + untuk menambahkan Bot
4. Untuk menambahkan Bot memerlukan Nama Bot dan Token.
Gambar 2.4 Untuk menambahkan Bot memerlukan Nama Bot dan Token
5. Untuk mendapatkan Nama Bot dan Token, buka Telegram, buat Bot dengan bantuan @BotFather. Setelah Telegram terbuka, cari @BotFather, di kolom Write a message, ketik /newbot, kemudian buat sembarang nama, apabila nama tersebut diterima, tambahkan akhiran _Bot agar menjadi Nama Bot. Apabila Nama Bot tersebut berhasil diterima, maka @BotFather akan memberikan Token. Isikan Nama Bot dan kode Token di isian Bot di node Telegram Receiver Gambar 2.4 di atas.
Gambar 2.5 Dengan bantuan @BotFather, ketik /newbot, buat sembarang nama, apabila diterima, beri nama _Bot di belakang nama yang telah dibuat, maka @BotFather akan memberikan Token
6. Isikan Nama Bot dan Token yang telah diperoleh di Node Telegram Receiver, kemudian klik Add, klik Done.
Gambar 2.7 Hubungkan node Telegram Receiver ke node Debug, klik Deploy
8. Buat Node-RED berdampingan dengan Telegram, kemudian di Telegram, buka halaman Bot dengan meng-klik link yang diberikan @BotFather.
Gambar 2.8 Klik link yang diberikan @BotFather untuk membuka halaman Bot yang telah dibuat
9. Di halaman Bot di Telegram, klik tombol /start, maka muncul tulisan "/start" di kolom Debug Message. Ketik sembarang kata, misal "halo", maka muncul tulisan "halo" di kolom Debug Message.

Gambar 2.9 Ketik sembarang kata di halaman Bot Telegram, maka di kolom Debug Message akan muncul kata yang diketik tersebut
10. Untuk memudahkan pengguna, diinginkan kontrol R.1 - R.8 menggunakan tombol pilihan di Telegram. Untuk bisa menampilkan tombol pilihan di Telegram, tambahkan node Telegram Command, node Function dan node Telegram Sender, hubungkan ketiganya seperti ditunjukkan gambar berikut ini:
Gambar 2.10 Tambahkan node Telegram Command, node Function dan node Telegram Sender, hubungkan ketiganya
11. Klik 2 kali node Telegram Command, di kolom Bot, pilih Nama Bot yang dibuat sebelumnya, di kolom Command, isi dengan kata "/kontrol1" tanpa tanda petik.
Gambar 2.11 Klik 2 kali node Telegram Command, pilih nama Bot yang telah dibuat sebelumnya, isi kolom Command: /kontrol1
12. Klik 2 kali node Function, isi dengan kode program seperti berikut ini:
- var opts = {
- reply_markup: JSON.stringify({
- "inline_keyboard": [[
- {
- "text": "R1:1",
- "callback_data": "128,1"
- },
- {
- "text": "R1:0",
- "callback_data": "128,0"
- },
- {
- "text": "R2:1",
- "callback_data": "129,1"
- },
- {
- "text": "R2:0",
- "callback_data": "129,0"
- },
- {
- "text": "R3:1",
- "callback_data": "130,1"
- },
- {
- "text": "R3:0",
- "callback_data": "130,0"
- },
- {
- "text": "R4:1",
- "callback_data": "131,1"
- },
- {
- "text": "R4:0",
- "callback_data": "131,0"
- }]
- ]
- })
- };
- msg.error = false;
- msg.payload.content = 'Pilihan?';
- msg.payload.options = opts;
- msg.payload.chatId = 1773437310;
- msg.payload.type = "message";
- return [msg];
Catatan: Ubah isi msg.payload.chatId di baris 42 dengan angka chatId yang diperoleh pada langkah ke-9 (lihat Gambar 2.9).
Gambar 2.12 Klik 2 kali node Function, isi dengan kode program di atas, jangan lupa mengganti angka pada chatId dengan angka yang diperoleh di langkah ke-9
13. Kode program di atas hanya memuat 8 tombol saja (R1:1, R1:0, R2:1, R2:0, R3:1, R3:0, R4:1, R4:0), sementara untuk bisa menghidup/matikan R.1 - R.8 dibutuhkan 16 buah tombol. Untuk memenuhi kebutuhan 16 buah tombol, tambahkan lagi node Telegram Command dan node Function seperti gambar berikut ini:
Gambar 2.13 Tambahkan node Telegram Command dan node Function
14. Klik 2 kali node Telegram Command yang kedua, isi pada kolom Command: "/kontrol2" tanpa tanda petik dua.
Gambar 2.14 Klik 2 kali node Telegram Command, isi di kolom Command: /kontrol2
15. Klik 2 kali node Function yang terakhir, isi dengan kode program berikut ini:
- var opts = {
- reply_markup: JSON.stringify({
- "inline_keyboard": [[
- {
- "text": "R5:1",
- "callback_data": "132,1"
- },
- {
- "text": "R5:0",
- "callback_data": "132,0"
- },
- {
- "text": "R6:1",
- "callback_data": "133,1"
- },
- {
- "text": "R6:0",
- "callback_data": "133,0"
- },
- {
- "text": "R7:1",
- "callback_data": "134,1"
- },
- {
- "text": "R7:0",
- "callback_data": "134,0"
- },
- {
- "text": "R8:1",
- "callback_data": "135,1"
- },
- {
- "text": "R8:0",
- "callback_data": "135,0"
- }]
- ]
- })
- };
- msg.error = false;
- msg.payload.content = 'Pilihan?';
- msg.payload.options = opts;
- msg.payload.chatId = 1773437310;
- msg.payload.type = "message";
- return [msg];
Catatan: Ubah isi msg.payload.chatId di baris 42 dengan angka chatId yang diperoleh pada langkah ke-9 (lihat Gambar 2.9).
Gambar 2.15 Klik 2 kali node Function, isi dengan kode program di atas, jangan lupa mengganti angka pada chatId dengan angka yang diperoleh di langkah ke-9
16. Berikutnya, klik 2 kali node Telegram Sender, pilih nama Bot yang telah dibuat sebelumnya, klik Done.
Gambar 2.16 Klik 2 kali node Telegram Sender, pilih nama Bot yang telah dibuat sebelumnya
17. Agar tombol yang dipilih oleh pengguna dapat ditampilkan di kolom Debug Message, tambahkan node Telegram Event (callback query). Klik 2 kali node ini, dan pilih nama Bot yang telah dibuat sebelumnya. Hubungkan output node Telegram Event (callback query) ini ke node Debug. Klik Done.
Gambar 2.17 Klik 2 kali node Telegram Event, pilih nama Bot yang telah dibuat, klik Done, kemudian hubungkan output node Telegram Event ini ke node Debug
18. Klik Deploy. Di halaman Bot di Telegram, ketik /kontrol1, klik kirim, maka akan muncul tombol pilihan sebanyak 8, mulai dari R1:1 hingga R4:0. Tekan salah satu tombol, maka akan muncul data di kolom Debug Message. Berikutnya ketik /kontrol2, klik kirim, maka akan muncul tombol pilihan sebanyak 8, mulai dari R5:1 hingga R8:0. Tekan salah satu tombol, maka akan muncul data di kolom Debug Message.
Gambar 2.17 Ketik /kontrol1, kirim, ketik /kontrol2, kirim, tekan sembarang tombol dan perhatikan di kolom Debug Message akan muncul data yang bersesuaian dengan tombol yang ditekan
19. Perhatikan data yang muncul di kolom Debug Message di Gambar 2.17 di atas. Di kategori content, terlihat data berupa teks (String) yang terdiri dari data alamat dan data nilai, yang dipisahkan dengan koma, seperti "128,1". Diinginkan, data ini dapat digunakan untuk mengontrol R.1 - R.8 melalui node Modbus Flex Write, di mana node Function sebagai penghubungnya memerlukan data alamat diisikan di msg.topic dan data nilai diisikan di msg.payload. Agar bisa menghasilkan data di msg.payload dan di msg.topic, tambahkan node Change untuk menghubungkan node Telegram Event (callback query) dengan node Function pada node Modbus Flex Write. Kemudian isi node Change seperti berikut:
Set msg.topic to the value:
$substringBefore(msg.payload.content, ",")Set msg.payload to the value: $number($substringAfter(msg.payload.content,","))
Catatan: isi node Change di atas akan membuat msg.topic terisi data teks sebelum koma, dan membuat msg.payload terisi angka yang dibuat dari data teks setelah koma, sebagai contoh untuk data teks "128,1", maka di msg.topic akan terisi teks "128", sedangkan di msg.payload akan terisi angka 1.
Gambar 2.19 Menambahkan node Change agar data dari node Telegram Event (callback query) dapat diteruskan ke node Function dari node Modbus Flex Write, yang digunakan untuk mengontrol R.1 - R.8
20. Tekan tombol Deploy, kemudian buka rangkaian Outseal Nano di link Wokwi ini:
21. Jalankan simulasi Wokwi dengan menggunakan Upload Firmware Hasil.Hex, yang berada di lokasi C:/Users/xxx/AppData/Local/Temp/Outseal, dengan xxx = nama user komputer. Saat simulasi berjalan, pastikan kotak dialog pemilihan COM muncul, pilih COM yang berpasangan dengan COM di node Modbus Flex Write (apabila kotak pilihan COM ini tidak muncul, ulangi Upload Firmware).
22. Sementara simulasi Wokwi berjalan, buat agar Node-RED, Telegram dan Wokwi berdampingan, dan tekan sembarang tombol di Telegram, seharusnya LED Bar Graph di Wokwi akan menyala atau padam sesuai dengan tombol yang ditekan.
23. Untuk memudahkan rekan-rekan, silakan bisa mengunduh Flow atau program Node RED di atas di link ini: https://drive.google.com/file/d/1m4stq4QYzGg4GXDMinZ5iRclM3XU3fpp/view?usp=sharing
24. Agar lebih jelas, berikut ini video pembuatan sesuai langkah-langkah di atas:
==========================================================================
3. Membaca notofikasi S.1 - S.8 melalui Telegram
Berikut ini langkah-langkahnya:1. Buka Wokwi di link ini:









































No comments:
Post a Comment