5. Kontroler Suhu TK4S-T4CN

Menampilkan data Suhu dan mengatur Setpoin TK4S dari Dashboard Adafruit IO

Berikut penampilan dari kontroler suhu TK4S-T4CN:

link: Autonics

Berikut langkah-langkah untuk menampilkan data suhu Thermocouple ke Dashboard Adafruit IO:
1. Buat pengawatan berikut ini:

Gambar 1. Pengawatan Kontroler suhu TK4S Autonics dengan sensor Termokople dan Modul Konverter USB to RS485


2. Seperti terlihat pada Gambar 1 di atas, Kontroler suhu TK4S dilengkapi dengan sambungan RS-485, yang memungkinkan untuk dihubungkan dengan protokol Modbus RTU. Untuk bisa membaca suhu dan mengatur setpoint melalui protokol Modbus, gunakan bantuan software Modbus Poll. Dari manual datasheet Kontroler suhu TK4S, diketahui bahwa nilai Suhu ditempatkan di alamat 31000 (basis software), atau alamat 31001 (basis hardware), sedangkan nilai Setpoin, ditempatkan di alamat 40057 (basis software), atau alamat 40058 (basis hardware). Di samping itu, untuk seting komunikasi serial, diperlukan pengaturan sebagai berikut: baud rate = 9600, data bit = 8, tanpa parity bit dan stop bit = 2.

3. Untuk mengimplementasikan pengaturan di atas, buka software Modbus Poll, dan ikuti langkah-langkah berikut ini:

Gambar 2. Pengaturan tipe memori data untuk pembacaan nilai suhu di TK4S, yaitu di Input Register (alamat 3xxxxx)  dengan urutan indeks ke 1000 (basis software)

Gambar 3. Pengaturan tipe memori data untuk pengaturan nilai setpoin di TK4S, yaitu di Holding Register (4xxxxx) dengan urutan indeks ke 57 (basis software)

Gambar 4. Buka Device Manager, lihat Port COM yang digunakan USB to RS485, isi Port COM tersebut di jendela Connection Setup, isi seting komunikasi: 9600, 8 bit data, no parity dan 2 stop bit

4. Hidupkan kontroler TK4S, seharusnya di Modbus Poll akan muncul data seperti berikut ini:

Gambar 5. Perhatikan bahwa tampilan suhu dan setpoin di TK4S Autonics adalah sama seperti nilai suhu dan setpoin di Modbus Poll 

5. Setelah data nilai suhu dan setpoin dari Autonics TK4S dapat dibaca dan ditampilkan di Modbus Poll, dan untuk nilai setpoin, tidak hanya dibaca, tetapi juga bisa diubah nilainya dari Modbus Poll, maka langkah berikutnya, membuat NodeMCU menggantikan Modbus Poll dan menghubungkannya secara RS-485 dengan Autonics TK4S. Agar bisa terhubung secara RS-485, tambahkan sebuah modul HW-0519 yang akan menghubungkan kaki TX-RX ke jalur AB RS-485 dan sebaliknya. Lebih jelasnya, lihat rangkaian berikut:

Gambar 6. Hubungkan kaki D1 dan D2 NodeMCU ke TXD dan RXD HW-0519, dan kaki AB H-0519 ke kaki 15 dan 16 Autonics TK4S  



6. Berikutnya, agar bisa berkomunikasi dengan Modbus RTU, tambahkan library modbus-esp8266 pada program, dan upload program berikut ini ke NodeMCU ESP8266:
    1. #include <ModbusRTU.h>
    2. #include <SoftwareSerial.h>
    3. SoftwareSerial S(D1, D2);
    4. ModbusRTU mb;
    5. int a = 0;
    6. int b = 0 ;
    7. boolean case1 = false;
    8. boolean case2 = false;
    9. uint16_t Ireg[2];
    10. unsigned long skr = 0;
    11. void setup() {
    12.   Serial.begin(115200);
    13.   S.begin(9600, SWSERIAL_8N2);
    14.   mb.begin(&S);
    15.   mb.master();
    16.   mb.readIreg(1, 1000, Ireg, 1);
    17.   while (mb.slave()) {
    18.     mb.task();
    19.     delay(10);
    20.   }
    21.   delay(1000);
    22. }
    23. void loop() {
    24.   if (millis() - skr > 1000) {
    25.     skr = millis();
    26.     a = a + 1;
    27.     if (a > 2) a = 1;
    28.     switch (a) {
    29.       case 1:
    30.         mb.readIreg(1, 1000, Ireg, 1);
    31.         case1 = true;
    32.         break;
    33.       case 2:
    34.         mb.writeHreg(1, 57, b);
    35.         case2 = true;
    36.         break;
    37.     }
    38.   }
    39.   while (mb.slave()) {
    40.     mb.task();
    41.     delay(10);
    42.   }
    43.   if (case1) {
    44.     Serial.print(Ireg[0]);
    45.     Serial.print(',');
    46.     case1 = false;
    47.   }
    48.   if (case2) {
    49.     b = b + 1;
    50.     if (b > 50) b = 0;
    51.     Serial.println(b);
    52.     case2 = false;
    53.   }
    54. }
Keterangan program:
1. Program di atas membutuhkan tambahan library modbus-esp8266, yang dapat diunduh di: https://github.com/emelianov/modbus-esp8266/archive/refs/heads/master.zip
2. Komunikasi data Modbus dilakukan pada kaki D1 dan D2, yang terhubung dengan Modul RS-485 HW-0519, yang diprogram sebagai kaki port serial secara virtual dengan software serial, dengan baud rate 9600, 8 data bit, no parity dan 2 stop bit.
3. Program di atas secara bergantian setiap detik akan membaca data suhu di alamat 31000 (basis software) dan menulis data setpoin di alamat 40057 (basis software).
4. Pembacaan data suhu dan penulisan data setpoin ditampilkan di Serial Monitor.
5. Untuk penulisan data setpoin, data berupa angka yang bertambah satu setiap 2 detik sekali, dan ketika mencapai angka lebih besar dari 50, akan kembali ke angka 0.


 






menampilkan nilai suhu dan setpoin tersebut di Dashboard Adafruit IO. Untuk itu buat akun Adafruit IO. 

6. Apabila akun Adafruit sudah berhasil dibuat, klik pada Account (di samping gambar keranjang beroda), pilih Adafruit IO Profile. Di Account Status, terlihat jumlah pemakaian Devices, Groups, Feeds, Dashboards dan Data Rate. Secara gratis, Adafruit IO menyediakan 10 buah Feeds (variabel yang bisa dibaca dan ditulis) dan 5 buah Dashboard (halaman yang dapat digunakan untuk menampilkan objek Feeds) yang dapat dibaca dan diatur secara interaktif.

7. Hal penting berikutnya adalah AIO Key, yang dapat dibuka dengan menekan tombol kunci dalam lingkaran berwarna kuning, yang berisi akun dan password yang nantinya diperlukan untuk pembuatan aplikasi.

Gambar 6. Contoh tampilan AIO Key yang berisi username dan password, yang nantinya diperlukan dalam pembuatan aplikasi

7. Berikutnya, klik Tab Feeds untuk membuat 2 buah feeds, beri nama Suhu dan Setpoin.

Gambar 7. Klik Tab Feeds, pilih New Feed, beri nama Setpoin dan buat lagi dengan nama Suhu

6. Berikutnya, setelah 2 buah feeds berhasil dibuat, langkah berikutnya buat program NodeMCU berikut ini untuk bisa berkomunikasi dengan Adafruit IO melalui protokol komunikasi MQTT.


7. Buka software IDE Arduino, dan buat program seperti berikut ini:
8. Upload dan kemudian buka Serial Monitor, seharusnya muncul data suhu di Serial Monitor seperti berikut ini.
9. Perhatikan tampilan data feeds suhu di Adafruit IO, seharusnya menampilkan data suhu yang sama dengan yang ada di kontroler TK4S
10. Ambil Gauge di Dashboard, dan hubungkan feed nya dengan data feed suhu.
11. Selesai.




No comments:

Post a Comment