5. Koneksi dengan Arduino IoT Cloud

Mengapa menggunakan Arduino IoT Cloud? 
Jawaban dari ChatGPT: karena Arduino IoT Cloud menawarkan antarmuka pengguna yang ramah pengguna dan mudah digunakan, terutama bagi pemula dalam dunia IoT. 
Jawaban saya: karena ada paket gratis yang saya suka 😁😁😁. 

Langsung saja, mari kita gunakan Arduino IoT Cloud dan Wokwi. 
Ada 10 Sub-Topik yang akan saya buat di bagian ini, yaitu: 


Berikut ini uraiannya masing-masing:


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

1. Slide Switch & LED di Wokwi => Switch & LED di Arduino IoT Cloud 

Berikut ini langkah-langkahnya:

Gambar 1.1 Rangkaian ESP32 dengan Slide Switch (GPIO.26) dan LED (GPIO.25)

Catatan Bagian yang di dalam kotak oranye adalah kode ID dan Secret Key Device yang bersifat unik. Ganti kode tersebut dengan kode ID dan Secret Key yang rekan-rekan dapatkan ketika menambahkan Device pada Thing di Arduino IoT Cloud. Sedangkan bagian di dalam kotak hijau adalah nama variabel Cloud yang ditambahkan pada Thing di Arduino IoT Cloud. Rekan-rekan dapat mengganti nama variabel tersebut, sesuaikan dengan nama variabel Cloud yang rekan-rekan buat.

2. Pertama klik link berikut ini: https://cloud.arduino.cc untuk membuka halaman Arduino Cloud, kemudian ikuti langkah-langkah pembuatan sesuai gambar berikut ini.

Gambar 1.2 Buka halaman https://cloud.arduino.cc

Gambar 1.3 Create account apabila belum memiliki akun, apabila sudah klik Sign in

Gambar 1.4 Isi nama akun/email dan password, klik Sign In

Gambar 1.5 Klik Home, klik Create New, pilih Thing

Gambar 1.6 Di halaman Thing, klik Add

Gambar 1.7 Di jendela Add variable, isi Name: button, pilih Type: boolean, isi Variable Permission: Read & Write, isi Variable Update Policy: On change, klik Add variable

Gambar 1.8 Klik lagi tombol Add, di jendela Add variable, isi Name: led, pilih Type: boolean, isi Variable Permission: Read Only, isi Variable Update Policy: On change, klik Add variable

Gambar 1.9 Terlihat ada 2 variabel di Thing, yaitu button dan led, berikutnya klik Select Device

Gambar 1.10 Klik Set Up New Device

Gambar 1.11 Pilih Third party device

Gambar 1.12 Klik ESP32, pilih ESP32 Dev Module

Gambar 1.13 Klik Next

Gambar 1.14 Muncul kode ID dan Secret Key Device, kedua kode ini harus diisikan di program Wokwi, agar kode ini tidak hilang, klik Download PDF, beri centang pada opsi I saved ..., klik Continue

Gambar 1.15 Setup Device telah selesai, klik Done

Gambar 1.16 Muncul halaman Thing, terlihat muncul nama dan ID Device, hanya statusnya masih Offline, agar bisa Online, Device perlu diprogram, program untuk Device ini ada di Tab Sketch

Gambar 1.17 Buka Tab Sketch, program di Wokwi menggunakan program yang ada di Tab Sketch ini, pastikan variabel yang digunakan di Wokwi sama dengan variabel di Tab Sketch ini, setelah itu klik tombol menu di pojok kiri atas

Gambar 1.18 Di daftar menu, klik Dashboards, klik Create Dashboard

Gambar 1.19 Di halaman Dashboard, klik tombol Edit (bergambar pensil), klik Add, klik Tab Things, klik Untitled

Gambar 1.20 Muncul daftar variabel Thing, klik Create Widgets

Gambar 1.21 Muncul 2 widget, yaitu widget Switch untuk variabel button dan widget Status untuk variabel led

Gambar 1.22 Diinginkan ada widget LED untuk variabel led, untuk itu klik Add, klik tab Widgets, pilih widget LED

Gambar 1.23 Di jendela Widget Settings untuk LED, klik Link Variable

Gambar 1.24 Di halaman Link Variable to LED, pilih led, klik Link Variable

Gambar 1.25 Setelah widget LED terhubung dengan variabel led, klik Done

Gambar 1.26 Terlihat widget LED muncul di halaman Dashboard, berikutnya klik tombol View (bergambar mata)

Gambar 1.27 Buka program Wokwi sesuai link di atas, ganti kode Device ID dan kode Secret Key pada program Wokwi mengikuti isi file PDF yang sudah diunduh sebelumnya

Gambar 1.28 Tekan tombol Run di Wokwi, tunggu hingga muncul tulisan "Connected to Arduino IoT Cloud" di kotak Serial Monitor, apabila tulisan tersebut muncul, maka Device di Wokwi sudah terhubung dengan Arduino IoT Cloud, alias sudah "Online"

Gambar 1.29 Geser Switch di Dashboard Arduino IoT Cloud menjadi ON, seharusnya LED di ESP32 di Wokwi menyala, dan padam apabila sebaliknya

Gambar 1.30 Geser Slide Switch di Wokwi ke kanan, seharusnya widget Status dan LED di Dashboard Arduino IoT Cloud menjadi ON, dan menjadi OFF apabila sebaliknya

Agar lebih jelas, berikut ini video singkat langkah-langkah pembuatan di atas.

Video koneksi Switch dan LED di Wokwi dengan Switch dan LED di Arduino IoT Cloud



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

2. Color di Arduino IoT Cloud => RGB LED di Wokwi

Berikut ini langkah-langkahnya:

Gambar 2.1 Rangkaian ESP32 dengan RGB LED dan OLED Display

Catatan: Bagian yang di dalam kotak oranye adalah kode ID dan Secret Key Device yang bersifat unik. Ganti kode tersebut dengan kode ID dan Secret Key yang rekan-rekan dapatkan ketika menambahkan Device pada Thing di Arduino IoT Cloud.

2. Pertama klik link berikut ini: https://cloud.arduino.cc untuk membuka halaman Arduino Cloud, kemudian ikuti langkah-langkah pembuatan sesuai gambar berikut ini.

Gambar 2.2 Buka halaman https://cloud.arduino.cc

Gambar 2.3 Create account apabila belum memiliki akun, apabila sudah klik Sign in

Gambar 2.4 Isi nama akun/email dan password, klik Sign In

Gambar 2.5 Klik Home, klik Create New, pilih Thing

Gambar 2.6 Di halaman Thing, klik Add

Gambar 2.7 Di jendela Add variable, isi Name: rgb, pilih Color (Light and color), pilih Variable Permission: Read & Write dan Variable Update Policy: On Change, klik Add Variable

Gambar 2.8 Muncul variable rgb di halaman Thing, klik pada Select Device

Gambar 2.9 Klik Set Up New Device

Gambar 2.10 Pilih Third party device

Gambar 2.11 Klik ESP32, pilih ESP32 Dev Module

Gambar 2.12 Klik Next

Gambar 2.13 Muncul kode ID dan Secret Key Device, kedua kode ini harus diisikan di program Wokwi, agar kode ini tidak hilang, klik Download PDF, beri centang pada opsi I saved ..., klik Continue

Gambar 2.14 Setup Device telah selesai, klik Done

Gambar 2.15 Muncul halaman Thing, terlihat muncul nama dan ID Device, hanya statusnya masih Offline, agar bisa Online, Device perlu diprogram, program untuk Device ini ada di Tab Sketch

Gambar 2.16 Buka Tab Sketch, program di Wokwi menggunakan program yang ada di Tab Sketch ini, pastikan variabel yang digunakan di Wokwi sama dengan variabel di Tab Sketch ini, setelah itu klik tombol menu di pojok kiri atas

Gambar 2.17 Di daftar menu, klik Dashboards, klik Create Dashboard

Gambar 2.18 Di halaman Dashboard, klik tombol Edit (bergambar pensil), klik Add, klik Tab Things, klik Untitled

Gambar 2.19 Muncul daftar variabel Thing, klik Create Widgets

Gambar 2.20 Maka di halaman Dashboard akan muncul widget Color

Gambar 2.21 Buka program Wokwi sesuai link di atas, ganti kode Device ID dan kode Secret Key pada program Wokwi mengikuti isi file PDF yang sudah diunduh sebelumnya

Gambar 2.22 Jalankan simulasi Wokwi, tunggu hingga muncul tulisan Connected to Arduino IoT Cloud, setelah muncul, geser slider widget Color, perhatikan bahwa warna pada kotak Color sama dengan warna LED RGB di Wokwi

Gambar 2.23 Ketika warna widget Color di Arduino IoT Cloud dibuat kuning, LED RGB di Wokwi juga berwarna kuning

Gambar 2.24 Ketika warna widget Color di Arduino IoT Cloud dibuat hijau, LED RGB di Wokwi juga berwarna hijau

Gambar 2.25 Ketika warna widget Color di Arduino IoT Cloud dibuat biru, LED RGB di Wokwi juga berwarna biru

Gambar 2.26 Ketika warna widget Color di Arduino IoT Cloud dibuat ungu, LED RGB di Wokwi juga berwarna ungu

Gambar 2.27 Ketika warna widget Color di Arduino IoT Cloud dibuat merah muda, LED RGB di Wokwi juga berwarna merah muda

Agar lebih jelas, berikut ini video singkat langkah-langkah pembuatan di atas.

Video koneksi widget Color di Arduino IoT Cloud dengan LED RGB dan OLED di Wokwi 



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


3. Scheduler di Arduino IoT Cloud => 5 Relay di Wokwi

Berikut ini langkah-langkahnya:

Gambar 3.1 Rangkaian ESP32 dengan 5 buah Relay dan sebuah OLED display, ganti kode ID Device dan Secret Key, sesuaikan dengan ID dan Secret Key yang diperoleh dari Device yang baru

Catatan: Bagian yang di dalam kotak oranye adalah kode ID dan Secret Key Device yang bersifat unik. Ganti kode tersebut dengan kode ID dan Secret Key yang rekan-rekan dapatkan ketika menambahkan Device pada Thing di Arduino IoT Cloud.

2. Pertama klik link berikut ini: https://cloud.arduino.cc untuk membuka halaman Arduino Cloud, kemudian ikuti langkah-langkah pembuatan sesuai gambar berikut ini.

Gambar 3.2 Buka halaman https://cloud.arduino.cc

Gambar 3.3 Create account apabila belum memiliki akun, apabila sudah klik Sign in

Gambar 3.4 Isi nama akun/email dan password, klik Sign In

Gambar 3.5 Klik Home, klik Create New, pilih Thing

Gambar 3.6 Di halaman Thing, klik Add

Gambar 3.7 Di jendela Add variable, isi Name: jadwal1, pilih tipe Schedule (kategori Time), dan biarkan Variable Permission: Read & Write, Variable Update: On Change, klik Add Variable

Gambar 3.8 Ulangi langkah di atas hingga ada 5 CloudSchedule dengan nama berturut-turut: jadwal1, jadwal2, jadwal3, jadwal4 dan jadwal5, setelah itu, klik tombol Select Device

Gambar 3.9 Klik Set Up New Device

Gambar 3.10 Pilih Third party device

Gambar 3.11 Klik ESP32, pilih ESP32 Dev Module

Gambar 3.12 Klik Next

Gambar 3.13 Muncul kode ID dan Secret Key Device, kedua kode ini harus diisikan di program Wokwi, agar kode ini tidak hilang, klik Download PDF, beri centang pada opsi I saved ..., klik Continue

Gambar 3.14 Setup Device telah selesai, klik Done

Gambar 3.15 Muncul halaman Thing, terlihat muncul nama dan ID Device, hanya statusnya masih Offline, agar bisa Online, Device perlu diprogram, program untuk Device ini ada di Tab Sketch

Gambar 3.16 Buka Tab Sketch, program di Wokwi menggunakan program yang ada di Tab Sketch ini, pastikan variabel yang digunakan di Wokwi sama dengan variabel di Tab Sketch ini, setelah itu klik tombol menu di pojok kiri atas

Gambar 3.17 Di daftar menu, klik Dashboards, klik Create Dashboard

Gambar 3.18 Di halaman Dashboard, klik tombol Edit (bergambar pensil), klik Add, klik Tab Things, klik Untitled


Gambar 3.19 Setelah daftar variabel di Thing Untitled terbuka, klik tombol Create Widgets

Gambar 3.20 Maka muncul 5 widget Scheduler di halaman Dashboard, agar semua widget bisa terlihat, perkecil ukuran dan posisi widget menggunakan tool Arrange widgets

Gambar 3.21 Klik pada Widget, gerakkan pojok sudut widget ke dalam sehingga mengecil, posisikan sehingga kelima widget terlihat pada layar, klik Done

Gambar 3.22 Klik tombol View (bergambar mata) untuk menjalankan Dashboard

Gambar 3.23 Klik widget, isi Starting On, Duration dan Repeat every untuk penjadwalan

Gambar 3.24 Atur penjadwalan untuk semua widget

Gambar 3.25 Ganti kode ID dan Secret Key Device dengan kode ID dan Secret Key Device yang baru

Gambar 3.26 Jalankan Wokwi, tunggu hingga muncul tulisan "Connected to Arduino IoT Cloud"

Gambar 3.27 Kondisi Relay yang sedang ON dan OFF ditampilkan di OLED

Gambar 3.28 Tampak LED Relay 1 menyala hijau, dan waktu nyala telah berjalan 4 detik

Agar lebih jelas, berikut ini video singkat langkah-langkah pembuatan di atas.

Video pembuatan Scheduler 5 buah Relay di Arduino IoT Cloud dengan simulasi Wokwi 



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

4. Scheduler + Value Selector di Arduino IoT Cloud => 12 Relay + 6 Relay Terjadwal di Wokwi

Berikut ini langkah-langkahnya:

Gambar 4.1 Rangkaian ESP32 dengan sebuah OLED display dan 18 buah Relay, yang terdiri dari 6 buah Relay dapat dikontrol secara terjadwal dan 12 buah Relay dapat dikontrol on/off

Catatan: Bagian yang di dalam kotak oranye adalah kode ID dan Secret Key Device yang bersifat unik. Ganti kode tersebut dengan kode ID dan Secret Key yang rekan-rekan dapatkan ketika menambahkan Device pada Thing di Arduino IoT Cloud.

2. Pertama klik link berikut ini: https://cloud.arduino.cc untuk membuka halaman Arduino Cloud, kemudian ikuti langkah-langkah pembuatan sesuai gambar berikut ini.

Gambar 4.2 Buka halaman https://cloud.arduino.cc

Gambar 4.3 Create account apabila belum memiliki akun, apabila sudah klik Sign in

Gambar 4.4 Isi nama akun/email dan password, klik Sign In

Gambar 4.5 Klik Home, klik Create New, pilih Thing

Gambar 4.6 Di halaman Thing, klik Add

Gambar 4.7 Isi Name: control, pilih Type: boolean, Read & Write, On Change, Add Variable

Gambar 4.8 Isi Name: set, pilih Type: boolean, Read & Write, On Change, Add Variable

Gambar 4.9 Isi Name: select_1, pilih Type: integer, Read & Write, On Change, Add Variable

Gambar 4.10 Isi Name: select_2, pilih Type: integer, Read & Write, On Change, Add Variable

Gambar 4.11 Isi Name: schedule, pilih Type: CloudSchedule (di kategori Time), Read & Write, On Change, Add Variable

Gambar 4.12 Seharusnya muncul 5 buah variabel Cloud seperti gambar di atas, klik Select Device untuk menghubungkan kelima variabel tersebut dengan Device ESP32

Gambar 4.13 Klik Set Up New Device

Gambar 4.14 Pilih Third party device

Gambar 4.15 Klik ESP32, pilih ESP32 Dev Module

Gambar 4.16 Klik Next

Gambar 4.17 Muncul kode ID dan Secret Key Device, kedua kode ini harus diisikan di program Wokwi, agar kode ini tidak hilang, klik Download PDF, beri centang pada opsi I saved ..., klik Continue

Gambar 4.18 Setup Device telah selesai, klik Done

Gambar 4.19 Agar status Thing bisa Online, program ESP32 dengan program di Tab Sketch

Gambar 4.20 Buka Tab Sketch, program di Wokwi menggunakan program yang ada di Tab Sketch ini, pastikan variabel yang digunakan di Wokwi sama dengan variabel di Tab Sketch ini, setelah itu klik tombol menu di pojok kiri atas

Gambar 4.21 Di daftar menu, klik Dashboards, klik Create Dashboard

Gambar 4.22 Klik tombol Edit (gambar pensil), klik Add, pilih Tab Things, klik Untitled

Gambar 4.23 Pilih widget Value Selector untuk variabel select_1 dan select_2, widget Switch untuk variabel control dan widget Push Button untuk variabel set, klik Create Widgets

Gambar 4.24 Di halaman Dashboard, terlihat muncul 2 widget Value Selector, 1 widget Scheduler, 1 widget Switch dan 1 widget Push Button. Buat agar Value Selector 1 berisi 6 pilihan, yaitu: R1, R2, R3, R4, R5, R6, untuk itu klik tanda titik 3 kali, pilih Edit settings

Gambar 4.25 Di jendela Value Selector, isi Name: select_1, buat kotak pilihan menjadi 6 kotak, dengan label R1, R2, R3, R4, R5, dan R6, klik Done 

Gambar 4.26 Ulangi hal yang sama untuk widget Value Selector kedua, klik pada tanda titik 3x, pilih Edit Settings, di jendela Value Selector, isi Name: select_2, buat kotak pilihan menjadi 12 kotak, dengan label A, B, C, D, E, F, G, H, I, J, K, dan L, kemudian klik Done

Gambar 4.27 Di halaman Dashboard, di mode Edit (tombol gambar pensil dipilih), klik tombol Arrange widgets, perkecil ukuran semua widget, kemudian posisikan seperti gambar di atas

Gambar 4.28 Berikutnya, buka program Wokwi, ganti kode ID dan Secret Key di program Wokwi dengan ID dan Secret Key dari Device yang baru saja ditambahkan (ada di file pdf yang diunduh)

Gambar 4.29 Jalankan program Wokwi, dan juga Dashboard Arduino IoT Cloud dengan meng-klik menu View (tombol bergambar mata). Tunggu hingga di Serial Monitor Wokwi muncul tulisan "Connected to Arduino IoT Cloud"

Gambar 4.30 Apabila tulisan "Connected to Arduino IoT Cloud" sudah muncul, langkah berikutnya, kontrol ke-12 relay dengan menekan salah satu dari 12 pilihan diikuti Switch, sebagai contoh, bila diinginkan Relay B ON, maka pilihan B di Value Selector harus dipilih, dan Switch di-ON-kan

Gambar 4.31 Untuk kontrol Relay terjadwal, atur jadwal di widget scheduler, kemudian pilih salah satu dari 6 pilihan Relay, kemudian tekan tombol Push Button untuk mengirimkan seting jadwal tersebut ke Device

Gambar 4.32 Pengaturan waktu mulai, durasi waktu nyala di widget Scheduler

Agar lebih jelas, berikut ini video singkat langkah-langkah pembuatan di atas.

Video pembuatan kontrol 6 buah Relay (terjadwal) dan 12 buah Relay (on/off) di Wokwi dengan widget Scheduler dan Value selector di Arduino IoT Cloud



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


5. Ketika Internetnya Mati, Gunakan Remote IR sebagai Kontrol Manual

Sub-topik ini saya buat karena ide dari mas @Wadidesembri, yang mengusulkan penambahan Remote IR. Terimakasih mas @Wadidesembri atas inspirasinya. Berikut ini langkah-langkah penambahan Remote IR untuk kontrol 18 Relay di Sub-Topik 4, yang tentunya bermanfaat sekali ketika Internet mati:

Gambar 5.1 Rangkaian yang sama seperti Gambar 4.1, namun dengan penambahan Sensor Penerima  IR dan Remote IR

2. Ulangi langkah-langkah di Sub Topik 4 untuk pembuatan Thing dan Dashboard Kontrol 18 Relay di Arduino IoT Cloud (lihat video ini: https://youtu.be/kxnJ2Za2zOk).
3. Setelah pembuatan Thing dan Dashboard di Arduino IoT Cloud selesai, jalankan Wokwi dan Dashboard Arduino IoT Cloud - kode ID dan Secret Key Device tidak perlu diganti dulu, dibuat demikian agar status Device tetap offline. Perhatikan saat status Device masih offline, maka Relay dapat dikontrol dengan Remote IR. 

Gambar 5.2 Saat Internet mati, status Device offline, kontrol dapat dilakukan dari Remote 

Gambar 5.3 Kontrol 18 Relay dengan Remote

Gambar 5.4 Saat Internet mati, OLED menampikan tulisan "Connection lost....." dan kondisi Relay

4. Berikutnya, ganti kode ID dan Secret Key Device dengan kode ID dan Secret Key dari Device yang ditambahkan. Jalankan Wokwi, maka ketika status Device sudah menjadi online, Relay dapat dikontrol dari Arduino IoT Cloud. Status Device offline di sini men-simulasikan Internet mati, sedangkan status Device online men-simulasikan Internet hidup.

Gambar 5.5 Saat Internet hidup, Relay dikontrol dari Dashboard Arduino IoT Cloud, OLED menampikan waktu sekarang dan kondisi Relay

Untuk lebih jelasnya, silahkan melihat video singkat ini: 

Video penggunaan Remote IR untuk kontrol Relay saat Internet mati




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

6. Kontrol 18 Relay dan Monitor 4 Sensor 

Berikut ini langkah-langkahnya:

Gambar 6.1 Rangkaian yang sama seperti Gambar 4.1, namun dengan penambahan 4 buah Sensor: NTC, LDR, Potensio Putar dan Potensio Geser 

2. Pertama klik link berikut ini: https://cloud.arduino.cc untuk membuka halaman Arduino Cloud, kemudian ikuti langkah-langkah pembuatan sesuai gambar berikut ini.

Gambar 6.2 Buka halaman https://cloud.arduino.cc

Gambar 6.3 Create account apabila belum memiliki akun, apabila sudah klik Sign in

Gambar 6.4 Isi nama akun/email dan password, klik Sign In

Gambar 6.5 Klik Home, klik Create New, pilih Thing

Gambar 6.6 Di halaman Thing, klik Add, dan satu persatu tambahkan 5 buah variabel sesuai tabel berikut ini

No.

Name

Data Type

Permission

Update

1.

set

Boolean

Read & Write

On Change

2.

select_1

Integer

Read & Write

On Change

3.

select_2

Integer

Read & Write

On Change

4.

schedule

CloudSchedule

Read & Write

On Change

5.

teks

String

Read & Write

On Change


Gambar 6.7 Isi Name: set, pilih Type: boolean, Read & Write, On Change, Add Variable

Gambar 6.8 Isi Name: select_1, pilih Type: integer, Read & Write, On Change, Add Variable

Gambar 6.9 Isi Name: select_2, pilih Type: integer, Read & Write, On Change, Add Variable

Gambar 6.10 Isi Name: schedule, pilih Type: CloudSchedule (di kategori Time), Read & Write, On Change, Add Variable

Gambar 6.11 Isi Name: schedule, pilih Type: CloudSchedule (di kategori Time), Read & Write, On Change, Add Variable

Gambar 6.12 Seharusnya muncul 5 buah variabel Cloud seperti gambar di atas, klik Select Device untuk menghubungkan kelima variabel tersebut dengan Device ESP32

Gambar 6.13 Klik Set Up New Device

Gambar 6.14 Pilih Third party device

Gambar 6.15 Klik ESP32, pilih ESP32 Dev Module

Gambar 6.16 Klik Next

Gambar 6.17 Muncul kode ID dan Secret Key Device, kedua kode ini harus diisikan di program Wokwi, agar kode ini tidak hilang, klik Download PDF, beri centang pada opsi I saved ..., klik Continue

Gambar 6.18 Setup Device telah selesai, klik Done

Gambar 6.19 Agar status Thing bisa Online, program ESP32 dengan program di Tab Sketch

Gambar 6.20 Buka Tab Sketch, program di Wokwi menggunakan program yang ada di Tab Sketch ini, pastikan variabel yang digunakan di Wokwi sama dengan variabel di Tab Sketch ini, setelah itu klik tombol menu di pojok kiri atas

Gambar 6.21 Di daftar menu, klik Dashboards, klik Create Dashboard

Gambar 6.22 Klik tombol Edit (gambar pensil), klik Add, pilih Tab Things, klik Untitled

Gambar 6.23 Pilih widget Messenger untuk variabel teks, widget Value Selector untuk variabel select_1 dan select_2, dan widget Push Button untuk variabel set, klik Create Widgets

Gambar 6.24 Di halaman Dashboard, terlihat muncul 1 widget Messenger, 2 widget Value Selector, 1 widget Push Button dan 1 widget Scheduler. Buat agar Value Selector pertama berisi 6 pilihan, yaitu: R1, R2, R3, R4, R5, R6, untuk itu klik tanda titik 3 kali, pilih Edit settings

Gambar 6.25 Di jendela Value Selector, isi Name: select_1, buat kotak pilihan menjadi 6 kotak, dengan label R1, R2, R3, R4, R5, dan R6, klik Done 

Gambar 6.26 Ulangi hal yang sama untuk widget Value Selector kedua, klik pada tanda titik 3x, pilih Edit Settings, di jendela Value Selector, isi Name: select_2, buat kotak pilihan menjadi 12 kotak, dengan label A, B, C, D, E, F, G, H, I, J, K, dan L, kemudian klik Done

Gambar 6.27 Di halaman Dashboard, di mode Edit (tombol gambar pensil dipilih), klik tombol Arrange widgets, perkecil ukuran semua widget, kemudian posisikan seperti gambar di atas

Gambar 6.28 Berikutnya, buka program Wokwi, ganti kode ID dan Secret Key di program Wokwi dengan ID dan Secret Key dari Device yang baru saja ditambahkan (ada di file pdf yang diunduh)

Gambar 6.29 Widget Messenger menampilkan data sensor NTC

Gambar 6.30 Widget Messenger menampilkan data sensor LDR

Gambar 6.31 Widget Messenger menampilkan perubahan potensio putar

Gambar 6.32 Widget Messenger menampilkan perubahan data potensio geser

Gambar 6.33 Widget Scheduler, widget Value Selector (select_1) dan widget Push Button dapat digunakan untuk mengatur jadwal hidup/mati keenam buah Relay (R1 - R6)

Gambar 6.34 Widget Value Selector (select_2) dapat digunakan untuk menghidup/matikan ke-12 Relay (A - L)

Untuk lebih jelasnya, silahkan melihat video singkat ini: 

Video kontrol 18 buah Relay dan monitor 4 sensor dengan Wokwi dan Arduino IoT Cloud




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

7. Menampilkan Grafik Sensor dengan Arduino IoT Cloud, Webhook dan Google Sheet

Berikut ini langkah-langkahnya:

Gambar 7.1 Rangkaian yang sama seperti Gambar 6.1

2. Ulangi pembuatan Thing dan Dashboard di Arduino IoT Cloud seperti Sub-Topik 6 di atas (lebih jelasnya, lihat video ini: https://youtu.be/EfWexRh3N7w)
3. Buka Google Sheet, install Add-on Webhooks for Sheets. Ikuti langkah-langkah menginstall Webhook sesuai gambar berikut ini.

Gambar 7.2 Di Gmail, klik tombol Google Apps, pilih Sheets

Gambar 7.3. Di Google Sheet, pilih Blank (+)

Gambar 7.4 Pilih menu Extensions, pilih Add-ons, pilih Get add-ons

Gambar 7.5 Pilih add-on Webhooks for Sheets

Gambar 7.6 Klik Install, dan kemudian klik Continue

Gambar 7.7 Pilih akun untuk Sign in

Gambar 7.8 Pilih Allow untuk memberi ijin akses

Gambar 7.9 Muncul info bahwa Webhook telah terinstal, klik Next

Gambar 7.10 Klik Done untuk menutup jendela

4. Setelah instalasi Add-on Webhooks for Sheets selesai, buat link Webhook. Ikut langkah-langkah pembuatannya sesuai gambar berikut ini.

Gambar 7.11 Tampak icon Webhook muncul di Toolbar kanan

Gambar 7.12 Klik icon Webhook, maka muncul langkah-langkah pembuatan link webhook

Gambar 7.13 Klik tulisan Off di Settings Google Apps Script API

Gambar 7.14 Buat tulisan Off menjadi On untuk mengijinkan aplikasi Webhooks for Sheets dijalankan

Gambar 7.15 Klik tombol Refresh, kemudian klik tombol Create

Gambar 7.16 Klik tombol Reload Sheet untuk memunculkan menu Webhook

Gambar 7.17 Pilih menu Webhook, klik pada Authorize

Gambar 7.18 Klik tombol Continue untuk memberikan otorisasi

Gambar 7.19 Pilih akun yang muncul untuk memberikan otorisasi

Gambar 7.20 Klik tombol Allow

Gambar 7.21 Otorisasi sudah berhasil, reload Sheet lagi, kemudian tekan tombol Next

Gambar 7.22 Muncul link webhook, klik 3x pada link tersebut untuk memilih dan kemudian copy

5. Setelah link Webhook berhasil dibuat, isikan link Webhook tersebut di kolom Set Webhook di halaman Thing di Arduino IoT Cloud.

Gambar 7.23 Buka halaman Thing, klik pada tulisan Set webhook

Gambar 7.24 Muncul jendela Set webhook, isikan link webhook di kotak Webhook URL

Gambar 7.25 Setelah terisi link webhook, klik tombol Set Webhook

Gambar 7.26 Muncul tulisan Active, berarti link Webhook telah aktif

6. Jalankan simulasi Wokwi. Jangan lupa untuk mengganti kode ID dan Secret Key Device dengan Device yang baru, yang ditambahkan saat Setup Device. Setelah muncul pesan "Connected to Arduino IoT Cloud", lakukan perubahan nilai keempat sensor, perhatikan di Google Sheet akan muncul nilai keempat sensor tersebut, yang dikirimkan setiap kali terjadi perubahan nilai pada sensor. 

Gambar 7.27 Simulasi Wokwi dijalankan, lakukan pengubahan nilai pada keempat sensor dan perhatikan nilai yang muncul di kotak widget Messenger di Dashboard Arduino IoT Cloud

Catatan: Jangan melakukan perubahan nilai variabel yang terlalu cepat dan sering, karena akan membuat Webhook terputus. Usahakan untuk membuat perubahan, dari satu perubahan ke perubahan berikutnya, dengan jeda waktu tidak kurang dari 10 detik. Pengaturan ini tidak hanya berlaku untuk perubahan pada sensor saja, tetapi juga perubahan pada kontrol Relay, karena link Webhook akan membuat setiap perubahan pada kelima variabel Cloud di halaman Thing (termasuk variabel schedule, select_1, select_2, set dan teks), dikirimkan ke Google Sheet.

7. Untuk menghemat kapasitas penyimpanan data, hapus semua data kolom yang muncul di Google Sheet, kecuali 3 kolom dengan nama berikut ini: values_0_name, values_0_value dan values_0_updated_at. Buat ketiga kolom tersebut secara berturut-turut menempati kolom A, kolom B dan kolom G. Kemudian pada cell tertentu di Google Sheet, tempatkan formula sesuai Tabel berikut:

Placement

Formula

Description

Sheet:1,  Cell: C2

=arrayformula(if(B2:B="","",split(B2:B,",")))

to separate the values of the four sensors into 4 columns

Sheet:1,  Cell: H2

=arrayformula(if(G2:G="","",split(G2:G,"TZ")+7/24))

to change the timestamp to date and time with Jakarta time zone (GMT+7)

Sheet:1,  Cell: J2

=arrayformula(if(H2:H="","",value(H2:H)+value(I2:I)))

to convert the date and time into a value

Sheet:1,  Cell: K2

=arrayformula(if(H2:H="","",(J2:J-$J$2)*100000))

to create a time value in seconds, starting from 0

Sheet:2,  Cell: A1

=unique(Sheet1!A:K)

to ensure that the same value does not appear more than once

Sheet:3,  Cell: A1

=query(Sheet2!A:K,"select K,C,D,E,F where K is not null order by K asc")

to display data sorted by time and eliminate empty rows, and make columns A to E contain the time value and the values of the four sensors



8. Karena link Webhook membuat semua variabel Cloud yang ada di halaman Thing ikut dikirim setiap kali terjadi perubahan pada nilai variabel tersebut, maka perlu ditambahkan validasi data, yaitu hanya variabel teks saja yang ditampilkan di kolom A. Untuk itu klik pada kolom A, pilih Data Validation, pilih Add Rule, di kolom Criteria, pilih Text contain, kemudian isi kolom kedua dengan tulisan teks, dan di pertanyaan "if the data is invalid", pilih opsi Reject the input. Klik Done.

Gambar 7.28 Tambahkan Data validation di kolom A, agar hanya variabel teks yang berisi data keempat sensor saja yang ditampilkan di Google Sheet

9. Karena data yang dimunculkan kadang kala terjadi duplikasi, maka agar hanya data yang berbeda saja yang ditampilkan, tambahkan Sheet2, tempatkan di Cell A1 formula sesuai tabel di atas, yaitu =unique(Sheet1!A:K).

Gambar 7.29 Tambahkan Sheet2, isi dengan formula unique agar tidak ada diplukasi pada data yang ditampilkan di Google Sheet

10. Tambahkan Sheet3, isi di Cell A1 formula berikut ini: =query(Sheet2!A:K,"select K,C,D,E,F where K is not null order by K asc")Formula tersebut akan menampilkan 5 buah kolom di kolom A sampai E, yang secara berturut-turut berisi data waktu Time (s), data sensor NTC, LDR, Potensio putar dan Potensio Geser. Lakukan pengubahan pada nilai sensor di simulasi Wokwi dengan menggeser Slider pada Sensor dan memutar knob Potensio. 

Gambar 7.30 Sheet3 menampilkan data waktu dalam satuan detik diikuti data keempat sensor secara berturut-turut, yang menempati kolom A - E

Catatan: Perhatikan setiap kali terjadi pengubahan nilai sensor di Wokwi, Google Sheet tidak langsung menampilkan nilai tersebut, tetapi menunggu beberapa waktu untuk meng-update datanya. Hal ini memang disengaja, agar link Webhook tidak terputus. Lebih jelasnya, lihat baris program di Wokwi, khususnya di baris 83, di mana dibuat data sensor akan dikirimkan ke Arduino IoT Cloud setiap 10 detik. Kemudian di halaman Thing Arduino IoT Cloud, variabel teks menggunakan Update Policy On Change, ini berarti, data sensor di variable teks tersebut hanya akan diupdate tampilannya, apabila terjadi perubahan nilai. Kalau nilainya tidak berubah, maka data tersebut tidak akan ditampilkan, yang berarti juga tidak akan muncul di Google Sheet.

11. Terakhir, untuk menampilkan grafik, pilih kelima kolom, kemudian tekan tombol Insert Chart, maka akan muncul grafik keempat sensor tersebut dengan basis waktu dalam satuan detik. Untuk bisa membuat grafik tersebut muncul di halaman web, klik pada menu di Grafik (3 titik vertikal), pilih Publish Chart. Berikut ini tampilan grafik keempat sensor yang dihasilkan di Google Sheet dan juga di halaman web.

Gambar 7.31 Pilih kelima kolom, tekan tombol Insert Chart, maka muncul grafik keempat sensor di Google Sheet

Gambar 7.32 Buka menu grafik (klik 3 titik vertikal di pojok kanan atas), pilih Publish Chart, maka grafik keempat sensor tersebut dapat ditampilkan di halaman web

Untuk lebih jelasnya, silahkan melihat video singkat ini: 

Video menampilkan grafik keempat sensor di halaman web dengan bantuan Arduino IoT Cloud, webhook dan Google Sheet




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

8. Koneksi Arduino ke Arduino IoT Cloud dengan bantuan ESP32

Ketika rekan-rekan, karena 1-2 hal, terpaksa harus menghubungkan Arduino ke Arduino IoT Cloud. maka solusinya adalah, sisipkan ESP32 sebagai penghubung Arduino ke Arduino IoT Cloud.
Berikut ini langkah-langkahnya:

Gambar 8.1 Rangkaian Arduino Uno dengan Switch, LED, Potensio dan Servo

2. Buka project Wokwi ini juga: https://wokwi.com/projects/398056935104575489

Gambar 8.2 Tambahkan ESP32 agar Arduino bisa terhubung ke Arduino IoT Cloud, 

Catatan: Agar kotak Serial Monitor tetap menampilkan data dari Arduino IoT Cloud, maka untuk koneksi ke Arduino Uno, digunakan kaki GPIO.4 dan GPIO.2 sebagai RX dan TX Hardware Serial tambahan (diberi nama Serialok).

Gambar 8.3 Atur diagram.json agar bisa membuat kaki GPIO.4 dan kaki GPIO.2 menjadi kaki serial

Catatan: Selain pengaturan kaki HardwareSerial di kode program ESP32, di diagram.json perlu juga ditambahkan kode, khususnya di bagian parts dan di bagian connection, seperti berikut ini:

di bagian parts:

    {"type":"wokwi-serial-port","id":"serial","top":0,"left":0,"attrs":{"baud":"9600"}} 

di bagian connection:

    [ "esp:2", "serial:RX", "", [] ],
    [ "esp:4", "serial:TX", "", [] ]


3. Berikutnya, buat Things dan Dashboard di Arduino IoT Cloud, sesuai langkah-langkah dalam gambar berikut ini.

Gambar 8.4 Buka halaman https://cloud.arduino.cc

Gambar 8.5 Create account apabila belum memiliki akun, apabila sudah klik Sign in

Gambar 8.6 Isi nama akun/email dan password, klik Sign In

Gambar 8.7 Klik Home, klik Create New, pilih Thing

Gambar 8.8 Di halaman Thing, klik Add, dan satu persatu tambahkan 5 buah variabel sesuai tabel berikut ini

No.

Name

Data Type

Permission

Update

1.

sw

Boolean

Read & Write

On Change

2.

ld

Boolean

Read & Write

On Change

3.

pot

Integer

Read & Write

On Change

4.

serv

Integer

Read & Write

On Change

5.

data

String

Read & Write

On Change


Gambar 8.9 Name: sw, Data type: Boolean, Read & Write, On change

Gambar 8.10 Name: ld, Data type: Boolean, Read & Write, On change

Gambar 8.11 Name: pot, Data type: Integer, Read & Write, On change

Gambar 8.12 Name: serv, Data type: Integer, Read & Write, On change

Gambar 8.13 Name: data, Data type: String, Read & Write, On change

Gambar 8.14 Terlihat pada halaman Thing, ada 5 buah Cloud variable telah ditambahkan, berikutnya klik Select Device untuk menghubungkan Thing ke sebuah Device

Gambar 8.15 Klik Set Up New Device

Gambar 8.16 Pilih Third party device

Gambar 8.17 Klik ESP32, pilih ESP32 Dev Module

Gambar 8.18 Klik Next

Gambar 8.19 Muncul kode ID dan Secret Key Device, kedua kode ini harus diisikan di program Wokwi, agar kode ini tidak hilang, klik Download PDF, beri centang pada opsi I saved ..., klik Continue

Gambar 8.20 Setup Device telah selesai, klik Done

Gambar 8.21 Berikutnya klik Sketch untuk memprogram Device sehingga status Device menjadi Online

Gambar 8.22 Program di Wokwi diambil dari program di Sketch ini, pastikan nama variabel di Wokwi  sama dengan variabel di program di Sketch ini, setelah itu klik tombol menu

Gambar 8.23 Klik tombol Menu, klik Dashboards, klik Create Dashboard
 
Gambar 8.24 Klik tombol Edit, klik Add, klik Things, klik Untitled

Gambar 8.25 Buat widget untuk kelima variabel sesuai gambar di atas, yaitu berturut-turut Messenger (data), Gauge (pot), Slider (srv), Switch (ld) dan LED (sw), kemudian klik Create Widgets

Gambar 8.26 Atur ukuran dan posisi kelima widget dengan tombol Arrange widgets

Gambar 8.27 Tambahkan sebuah widget Chart, klik Add, klik Chart di Tab Widgets

Gambar 8.28 Klik Link variable

Gambar 8.29 Klik variabel pot, dan klik tombol Link variable

Gambar 8.30 Setelah variabel pot muncul di linked variable, klik Done

Gambar 8.31 Atur ukuran dan posisi widget Chart seperti gambar di atas

Gambar 8.32 Edit widget Slider, buat nilai Max dari 50 menjadi 180, klik Done

Gambar 8.33 Edit widget Gauge, buat nilai Max dari 100 menjadi 1023, klik Done

Gambar 8.34 Edit widget LED, pilih tipe Red and Green, klik Done

4. Berikutnya, setelah Things dan Dashboard selesai dibuat, langkah berikutnya, buka Wokwi ESP32, ganti kode ID Device dan Secret Key Device dengan kode dari Device Thing yang baru saja dibuat (lihat file pdf yang telah diunduh).

Gambar 8.35 Ganti ID Device dan Secret Key dengan kode dari Device yang baru saja ditambahkan

Gambar 8.36 Buka juga projek Wokwi Arduino, sekalipun tidak terlihat, namun sebenarnya kaki TX RX Arduino terhubung dengan kaki GPIO.4 dan GPIO.2 ESP32 melalui komunikasi serial

5. Jalankan simulasi Wokwi Arduino dan simulasi Wokwi ESP32. Seharusnya ketika simulasi berjalan, muncul kotak dialog penentuan port COM yang digunakan. Apabila kotak port COM tersebut belum muncul, tekan tombol Stop, kemudian jalankan lagi, maka seharusnya kotak tersebut muncul. 

Catatan: Pastikan pilihan port COM yang digunakan adalah pasangan COM. Untuk mengetahui pasangan COM, buka Device Manager. Apabila rekan-rekan belum memiliki pasangan COM, instal software virtual serial port ini (https://freevirtualserialports.com/), kemudian buat pasangan COM dengan software tersebut (secara default, pasangan COM yang dibangkitkan adalah COM1 & COM2).

Gambar 8.37 Muncul kotak penentuan COM, pilih COM yang berpasangan (lihat Device Manager)

Gambar 8.38(a) Lakukan pengubahan posisi Switch dan Potensio di Arduino, seharusnya kondisi LED dan nilai Gauge dan Chart pada Dashboard berubah, begitu pula lakukan pengubahan Switch dan Slider di Dashboard, seharusnya kondisi LED dan posisi Servo di Arduino berubah

Gambar 8.38(b) Lakukan pengubahan posisi Switch dan Potensio di Arduino, seharusnya kondisi LED dan nilai Gauge dan Chart pada Dashboard berubah, begitu pula lakukan pengubahan Switch dan Slider di Dashboard, seharusnya kondisi LED dan posisi Servo di Arduino berubah

Gambar 8.38(c) Lakukan pengubahan posisi Switch dan Potensio di Arduino, seharusnya kondisi LED dan nilai Gauge dan Chart pada Dashboard berubah, begitu pula lakukan pengubahan Switch dan Slider di Dashboard, seharusnya kondisi LED dan posisi Servo di Arduino berubah

Gambar 8.38(d) Lakukan pengubahan posisi Switch dan Potensio di Arduino, seharusnya kondisi LED dan nilai Gauge dan Chart pada Dashboard berubah, begitu pula lakukan pengubahan Switch dan Slider di Dashboard, seharusnya kondisi LED dan posisi Servo di Arduino berubah

Gambar 8.38(e) Lakukan pengubahan posisi Switch dan Potensio di Arduino, seharusnya kondisi LED dan nilai Gauge dan Chart pada Dashboard berubah, begitu pula lakukan pengubahan Switch dan Slider di Dashboard, seharusnya kondisi LED dan posisi Servo di Arduino berubah

Catatan: Perubahan nilai data yang terlalu cepat, bisa membuat koneksi ke Arduino IoT Cloud terputus. Untuk mencegah perubahan nilai yang terlalu cepat ini, ditambahkan interval sebesar 2 detik, khususnya pada nilai potensio, yang nilainya akan dikirimkan ke Arduino IoT Cloud melalui ESP32 apabila nilainya berubah dan selang waktunya sudah lebih dari 2 detik dari nilai sebelumnya.

Gambar 8.39 Menambahkan selang waktu lebih dari 2 detik untuk mencegah laju data yang terlalu cepat, sehingga koneksi ke Arduino IoT Cloud tidak terputus

Agar lebih jelas mengenai langkah pembuatannya, silahkan melihat video berikut ini:

Video pembuatan koneksi Arduino Uno ke Arduino IoT Cloud dengan bantuan ESP32




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

9. Koneksi Arduino IoT Cloud dengan Modbus RTU

Saya mendapat ide sekaligus tantangan untuk menghubungkan PLC dengan Arduino IoT Cloud. PLC umumnya menggunakan protokol Modbus. Berikut ini langkah-langkah menghubungkan Arduino IoT Cloud dengan 2 buah Modbus Slave RTU, dengan bantuan ESP32 sebagai Modbus Master:

Gambar 9.1 Rangkaian Wokwi dengan ESP32 sebagai Modbus Master yang menghubungkan Modbus RTU Slave ke Arduino IoT Cloud

2. Buat simulasi Modbus RTU Slave menggunakan software Modbus Slave. Buka software Modbus Slave, pilih menu Setup. Di jendela Slave Definition, isi Slave ID: 1, Function: 01 Coil Status (0x), Quantity: 8, Fit to Quantity, klik OK, muncul Mbslave1 berisi ID=1, F=01, dengan 8 data bernilai 0.

Gambar 9.2 Di Slave Definition, isi Slave ID: 1, Function: 01 Coil Status (0x), Quantity: 8, Fit to Quantity

3. Ulangi langkah no. 2 di atas, dengan menambahkan Mbslave, hingga sebanyak 8 buah, dengan cara memilih menu File, kemudian pilih New. Kemudian satu demi satu Mbslave, atur isi Slave Definition mengikuti tabel berikut ini:

4. Mengikuti tabel di atas, maka seharusnya tampilan Modbus Slave seperti berikut ini: 

Gambar 9.3 Ada 2 Slave (ID=1 dan ID=2), masing-masing Slave memiliki 4 tipe, yang terdiri dari Coil (F =01), Input Status (F=02), Holding Register (F=03) dan Input Register (F=04)

5. Berikutnya buka menu Connection, pilih Connect. Muncul jendela Connection Setup. Pilih Connection:Serial Port, Serial Settings: isi dengan COM yang berpasangan, 9600 Baud, 1 Data Bits, None Parity, 1 Stop Bit, klik OK.

Gambar 9.4 Pilih menu Connection, pilih Connect, di jendela Connection Setup, pilih Serial Port, pilih COM yang berpasangan, 9600 Baud, 8 Data bits, None Parity, 1 Stop Bit, klik OK

6. Berikutnya buat Thing dan Dashboard di Arduino IoT Cloud. Ikuti langkah-langkah pembuatan sesuai gambar berikut ini.

Gambar 9.5 Buka halaman https://cloud.arduino.cc

Gambar 9.6 Create account apabila belum memiliki akun, apabila sudah klik Sign in

Gambar 9.7 Isi nama akun/email dan password, klik Sign In

Gambar 9.8 Klik Home, klik Create New, pilih Thing

Gambar 9.9 Di halaman Thing, klik Add, dan satu persatu tambahkan 5 variabel sesuai tabel berikut ini


Gambar 9.10 Isi Name: Listreq, Type: Integer, Read & Write, On Change

Gambar 9.11 Isi Name: Messg, Type: String, Read & Write, On Change

Gambar 9.12 Isi Name: Request, Type: String, Read Only, On Change

Gambar 9.13 Isi Name: Response, Type: String, Read Only, On Change

Gambar 9.14 Isi Name: Scheduler, Type: CloudSchedule, Read & Write, On Change


Gambar 9.15 Terlihat pada halaman Thing, ada 5 buah Cloud variable telah ditambahkan, berikutnya klik Select Device untuk menghubungkan Thing ke sebuah Device

Gambar 9.16 Klik Set Up New Device

Gambar 9.17 Pilih Third party device

Gambar 9.18 Klik ESP32, pilih ESP32 Dev Module

Gambar 9.19 Klik Next

Gambar 9.20 Muncul kode ID dan Secret Key Device, kedua kode ini harus diisikan di program Wokwi, agar kode ini tidak hilang, klik Download PDF, beri centang pada opsi I saved ..., klik Continue

Gambar 9.21 Setup Device telah selesai, klik Done

Gambar 9.22 Berikutnya klik Sketch untuk memprogram Device sehingga status Device menjadi Online


Gambar 9.23 Program di Wokwi diambil dari program di Sketch ini, pastikan nama variabel di Wokwi  sama dengan variabel di program di Sketch ini, setelah itu klik tombol menu

Gambar 9.24 Klik Dashboards, klik Create Dashboard
 
Gambar 9.25 Klik tombol Edit, klik Add, klik Things, klik Untitled

Gambar 9.26 Pilih widget untuk Messg: Messenger, Request: Value, Response: Value, Listreq: Value Selector, Scheduler: Scheduler, klik Create Widgets

Gambar 9.27 Muncul 5 buah widget, atur posisi dan ukuran kelima widget tersebut dengan Tool Arrange widgets. Setelah itu tambahkan widget Sticky Note, isi dengan catatan di bawah ini. 

Salin catatan di bawah ini, dan tempelkan di widget Sticky Note:

1,1,0,8 read 8 Coil in Slave1 from address 0 
1,2,0,8 read 8 InStat in Slave1 from address 0
1,3,0,2 read 2 HReg in Slave1 from address 0
1,4,0,2 read 2 InReg in Slave1 from address 0
2,1,0,8 read 8 Coil  in Slave2 from address 0
2,2,0,8 read 8 InStat in Slave2 from address 0
2,3,0,2 read 2 HReg in Slave2 from address 0
2,4,0,2 read 2 InReg in Slave2 from address 0
1,5,0,1 write 1 Coil at 0 in Slave1 with True 
2,5,1,0 write 1 Coil at 1 in Slave2 with False
1,6,0,100 write 1 HReg at 0 in Slave2 with 100
2,6,1,200 write 1 HReg at 1 in Slave2 with 200
InStat = Input Status
InReg = Input Register
Hreg = Holding Register

7. Jalankan Dashboard dengan menekan tombol View (bergambar mata) di samping tombol Edit (bergambar pensil).
8. Berikutnya, setelah Things dan Dashboard selesai dibuat, langkah berikutnya, buka Wokwi ESP32, ganti kode ID Device dan Secret Key Device dengan kode dari Device Thing yang baru saja ditambahkan (lihat file pdf yang telah diunduh).

Gambar 9.28 Ganti kode ID Device dan Secret Key Device dengan kode dari Device Thing yang baru saja ditambahkan

9. Jalankan simulasi Wokwi di atas. Seharusnya ketika simulasi berjalan, muncul kotak dialog pilihan port COM yang digunakan. Apabila kotak port COM tersebut belum muncul, tekan tombol Stop, kemudian jalankan lagi, maka seharusnya kotak tersebut muncul. 

Catatan: Pastikan pilihan port COM yang digunakan adalah COM yang berpasangan dengan COM yang digunakan di software Modbus Slave. Untuk mengetahui pasangan COM, buka Device Manager. Apabila rekan-rekan belum memiliki pasangan COM, instal software virtual serial port ini (https://freevirtualserialports.com/), kemudian buat pasangan COM dengan software tersebut (secara default, pasangan COM yang dibangkitkan adalah COM1 & COM2).

Gambar 9.29 Muncul kotak pilihan COM, pilih COM yang berpasangan (lihat Device Manager)

Gambar 9.30 Tekan salah satu pilihan di kotak Selector Listreq, maka pilihan tersebut ditampilkan di kotak Request, dan isi requestnya dikirimkan ke Modbus Slave

Gambar 9.31 Atur waktu di widget Messenger untuk durasi 1 detik, yang diulang setiap menit, maka setiap menit, Arduino IoT Cloud akan mengirimkan request ke Modbus Slave

Gambar 9.32 Setiap menit sekali, otomatis data request dikirimkan dan direspon oleh Modbus Slave, seperti terlihat pada data dan catatan waktu di kotak widget Messenger

Gambar 9.33 Ketik di kotak kirim widget Messenger: 2,6,0,555, maka kotak ID=2, F=03, di baris pertama bernilai 555

Agar lebih jelas, silahkan melihat video pembuatan berikut ini:

Video pembuatan koneksi Arduino IoT Cloud dengan2 buah Modbus RTU Slave




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

10. Koneksi PZEM-004T v3 ke Arduino IoT Cloud & Google Sheet melalui Arduino Uno dan Wokwi

Berikut ini langkah-langkahnya:
1. Siapkan Arduino Uno, PZEM-004T v3 dan kabel ekstensi seperti gambar berikut ini:

Gambar 10.1 Bahan yang diperlukan: Arduino Uno, PZEM-004T v3 dan Kabel Ekstensi

2. Buat rangkaian seperti gambar berikut ini:

Gambar 10.2 Pengawatan Arduino Uno, PZEM-004T v3 dan Kabel Ekstensi

3. Gunakan library PZEM004Tv30 untuk membaca data PZEM-004T v3, silahkan download library tersebut di link ini: https://github.com/mandulaj/PZEM-004T-v30/archive/refs/heads/master.zip

4. Instal library PZEM004Tv30 di software Arduino IDE, setelah itu buka Examples di menu File, pilih PZEM004Tv30, dan pilih PZEMSoftwareSerial.

Gambar 10.3 Buka program PZEMSoftwareSerial di Examples library PZEM004Tv30

5. Edit program PZEMSoftwareSerial sehingga menjadi seperti berikut ini:


Catatan: Berikut ini beberapa perubahan dari PZEMSoftwareSerial pada kode program di atas:
  • Buat kode program pada baris no. 25, dari Serial.begin(115200); menjadi Serial.begin(9600);
  • Buat agar instruksi Serial.print di baris 28 - 29 dimatikan dengan memberi tanda komentar.
  • Buat agar instruksi Serial.print di baris 52 - 62 untuk data voltage, current, power, energy, frequency dan power factor, tidak diberi keterangan nama dan satuan, langsung saja pada nilainya, dan diberi pemisah tanda koma dan diakhiri dengan karakter Enter (CR+LF), yang dihasilkan dari instruksi Serial.println().
  • Buat agar instruksi delay di akhir program, dari 2000 menjadi 10000, agar laju pengiriman data melalui komunikasi serial tidak terlalu cepat (apabila terlalu cepat bisa membuat koneksi ke Webhook Google Sheet terputus).

6. Upload program di langkah no. 5 di atas ke Arduino Uno. Setelah upload berhasil, rangkai Arduino dengan PZEM-004T v3 seperti Gambar 10.2 di atas.


8. Berikutnya buka Arduino IoT Cloud dengan meng-klik link ini:  https://cloud.arduino.cc, kemudian ikuti langkah-langkah pembuatan Thing dan Dashboard sesuai gambar berikut ini.

Gambar 10.4 Buka halaman https://cloud.arduino.cc

Gambar 10.5 Create account apabila belum memiliki akun, apabila sudah klik Sign in

Gambar 10.6 Isi nama akun/email dan password, klik Sign In

Gambar 10.7 Klik Home, klik Create New, pilih Thing

Gambar 10.8 Di halaman Thing, klik Add

Gambar 10.9 Di jendela yang muncul, isi Name: PZEM_data, tipe: String, Read Only, dan Periodically

Gambar 10.10 Terlihat pada halaman Thing, sebuah variable dengan nama PZEM_data telah ditambahkan, berikutnya klik Select Device untuk menghubungkan Thing ke sebuah Device

Gambar 10.11 Klik Set Up New Device

Gambar 10.12 Pilih Third party device

Gambar 10.13 Klik ESP32, pilih ESP32 Dev Module

Gambar 10.14 Klik Next

Gambar 10.15 Muncul kode ID dan Secret Key Device, kedua kode ini harus diisikan di program Wokwi, agar kode ini tidak hilang, klik Download PDF, beri centang pada opsi I saved ..., klik Continue

Gambar 10.16 Setup Device telah selesai, klik Done

Gambar 10.17 Agar status Thing bisa Online, program ESP32 dengan sketch program di Tab Sketch

Gambar 10.18 Program di Wokwi diambil dari program di Sketch ini, pastikan nama variabel di Wokwi  sama dengan variabel di program di Sketch ini, setelah itu klik tombol menu di pojok kiri atas

Gambar 10.19 Di daftar menu, pilih Dashboard, klik Create Dashboard

Gambar 10.20 Klik tombol Edit, klik Add, pilih Things, pilih Untitled

Gambar 10.21 Pilih PZEM_data, klik Create Widgets

Gambar 10.22 Muncul widget Messenger di halaman Dashboard, jalankan Dashboard dengan menekan tombol View (bergambar mata)

9. Setelah pembuatan Thing dan Dashboard di Arduino IoT Cloud selesai, langkah berikutnya adalah buka kembali project Wokwi ini: https://wokwi.com/projects/399242203036221441, kemudian ganti kode ID Device dan Secret Key Device dengan kode dari Device Thing yang baru saja diperoleh dari langkah di atas (lihat file pdf yang diunduh).

Gambar 10.23 Ganti kode ID Device dan Secret Key Device di Wokwi dengan ID Device dan Secret Key yang diperoleh dari pembuatan Thing di langkah di atas

10. Setelah kode ID Device dan Secret Key diganti, sebelum Wokwi dijalankan, hubungkan colokan kabel ekstensi ke listrik AC 220V. Beri beban listrik (seperti lampu, charger, atau yang lainnya) pada lubang colokan kabel ekstensi. Hubungkan juga kabel USB Arduino ke port USB komputer. Kemudian jalankan simulasi Wokwi di atas. Seharusnya ketika simulasi berjalan, muncul kotak daftar pilihan port COM yang digunakan. Apabila kotak daftar port COM pada Wokwi belum muncul, tekan tombol Stop, kemudian jalankan lagi, maka seharusnya kotak tersebut muncul. 

Catatan: Pilih port COM yang digunakan oleh Arduino Uno. Untuk mengetahui port COM yang digunakan ini, buka Device Manager, pilih port COM yang menampilkan tulisan Arduino atau USB.

Gambar 10.24 Buka Device Manager, perhatikan port COM yang bertuliskan Arduino, dalam contoh di sini adalah COM10, jalankan Wokwi, ketika kotak daftar COM muncul, pilih COM yang digunakan

11. Setelah port COM yang digunakan Arduino berhasil dipilih, tunggu beberapa saat hingga di Serial Monitor Wokwi muncul tulisan "Connected to Arduino IoT Cloud". Ketika muncul tulisan tersebut, seharusnya widget Messenger akan menampilkan 6 buah data PZEM, yang secara berturut-turut terdiri dari voltage, current, power, energy, frequency dan power factor seperti gambar berikut ini.

Gambar 10.25 Setelah pilihan port COM yang digunakan Arduino berhasil dipilih, tunggu hingga muncul tulisan Connected to Arduino IoT Cloud di Serial Monitor Wokwi, jika sudah muncul, maka widget Messenger akan menampilkan data PZEM 

Gambar 10.26 Data PZEM ini secara periodik dikirimkan ke widget Messenger setiap 10 detik sekali

12. Sekalipun data sudah bisa muncul di widget Messenger, namun data tersebut masih kurang jelas. Untuk membuat mana data voltage, current, power, dll. terlihat jelas, kita akan memanfaatkan Google Sheet, yang bisa menampilkan grafik data dan juga gauge/meter. Untuk bisa menghubungkan data di Arduino IoT Cloud dengan Google Sheet, kita memanfaatkan bantuan Webhook. Untuk itu buka Google Sheet, install Add-on Webhooks for Sheets. Ikuti langkah-langkah menginstall Webhook sesuai gambar berikut ini.

Gambar 10.27 Di Gmail, klik tombol Google Apps, pilih Sheets

Gambar 10.28 Di Google Sheet, pilih Blank (+)

Gambar 10.29 Pilih menu Extensions, pilih Add-ons, pilih Get add-ons

Gambar 10.30 Pilih add-on Webhooks for Sheets

Gambar 10.31 Klik Install, dan kemudian klik Continue

Gambar 10.32 Pilih akun untuk Sign in

Gambar 10.33 Pilih Allow untuk memberi ijin akses

Gambar 10.34 Muncul info bahwa Webhook telah terinstal, klik Next

Gambar 10.35 Klik Done untuk menutup jendela

13. Setelah instalasi Add-on Webhooks for Sheets selesai, buat link Webhook. Ikut langkah-langkah pembuatannya sesuai gambar berikut ini.

Gambar 10.36 Tampak icon Webhook muncul di Toolbar kanan

Gambar 10.37 Klik icon Webhook, maka muncul langkah-langkah pembuatan link webhook

Gambar 10.38 Klik tulisan Off di Settings Google Apps Script API

Gambar 10.39 Buat tulisan Off menjadi On untuk mengijinkan aplikasi Webhooks for Sheets dijalankan

Gambar 10.40 Klik tombol Refresh, kemudian klik tombol Create

Gambar 10.41 Klik tombol Reload Sheet untuk memunculkan menu Webhook

Gambar 10.42 Pilih menu Webhook, klik pada Authorize

Gambar 10.43 Klik tombol Continue untuk memberikan otorisasi

Gambar 10.44 Pilih akun yang muncul untuk memberikan otorisasi

Gambar 10.45 Klik tombol Allow

Gambar 10.46 Otorisasi sudah berhasil, reload Sheet lagi, kemudian tekan tombol Next

Gambar 10.47 Muncul link webhook, klik 3x pada link tersebut untuk memilih dan kemudian copy

14. Setelah link Webhook berhasil dibuat, isikan link Webhook tersebut di kolom Set Webhook di halaman Thing di Arduino IoT Cloud.

Gambar 10.48 Klik tombol menu di pojok kiri atas, pilih Things, pilih Untitled, maka muncul halaman Thing Untitled, klik tombol Set webhook di pojok kiri bawah

Gambar 10.49 Di jendela Set webhook, tempelkan link dari Webhook Google Sheet

Gambar 10.50 Muncul jendela status Webhook aktif, klik OK

Gambar 10.51 Terlihat di halaman Thing, muncul link Webhook dengan statusnya Active

15. Setelah Webhook aktif, apabila Arduino Uno, Wokwi, dan juga Dashboard Arduino IoT Cloud dijalankan, maka seharusnya di Google Sheet akan menampilkan data seperti terlhat pada gambar di atas. Agar data yang diperlukan saja yang ditampilkan, hapus data di kolom A sampai E. 

Gambar 10.52 Hapus data di kolom A sampai E, agar data yang diperlukan saja yang ditampilkan

Gambar 10.53 Setelah terhapus, berikutnya hapus kolom C dan E sehingga hanya tersisa 3 kolom dengan nama kolom: values_0_name, values_0_value, dan values_0_updated_at 

Gambar 10.54 Berikutnya Insert 1 column right sebanyak 11 kali, sehingga muncul kolom kosong tambahan hingga kolom M

16. Terlihat bahwa dengan Webhook, data yang diterima Google Sheet sangat banyak. Saking banyaknya, data menjadi tidak urut waktu karena terjadi antrian data, dan data yang sama bisa dimunculkan beberapa kali. Untuk mengatasi duplikasi data dan ketidakurutan waktu data serta keperluan lainnya, tambahkan formula berikut ini:

No.

Sheet

Cell

Formula

1.

Sheet1

D2

=arrayformula(if(C2:C="","",split(C2:C,"TZ")+7/24))

2.

Sheet1

F2

=arrayformula(if(D2:D="","",value(D2:D)+value(E2:E)))

3.

Sheet1

G2

=arrayformula(if(F2:F="","",(F2:F-$F$2)*100000))

4.

Sheet1

H2

=arrayformula(if(B2:B="","",split(B2:B,",")))

5.

Sheet2

A1

=unique(Sheet1!A:M)

6.

Sheet3

A1

=query(Sheet2!A:M,"select H,I,J,K,L,M,G where G is not null order by G asc")

7

Sheet4

A1

=index(Sheet3!A:A, counta(Sheet3!A:A))


17. Ubah Timestamp yang bertipe String menjadi Date and Time di kolom D dan E:

Gambar 10.55 Di Sheet1 cell D2, isi dengan formula berikut ini (lihat Tabel 10.1):  
=arrayformula(if(C2:C="","",split(C2:C,"TZ")+7/24))

Gambar 10.56 Format kolom D dengan format Date, di kategori Number

Gambar 10.57 Format kolom E dengan format Time, di kategori Number

18. Dari kolom Time, buat menjadi nilai sumbu X untuk grafik, yang tentunya nilainya dimulai dari 0.

Gambar 10.58 Di Sheet1 cell F2, isi dengan formula berikut ini (lihat Tabel 10.1): 
=arrayformula(if(D2:D="","",value(D2:D)+value(E2:E))) 

Gambar 10.59 Di Sheet1 cell G2, isi dengan formula berikut ini (lihat Tabel 10.1): 
=arrayformula(if(F2:F="","",(F2:F-$F$2)*100000))

19. Lakukan pemisahan data keenam nilai, tempatkan di kolom H, I, J, K, L dan M. Beri judul kolom secara berturut-turut: V, I, P, E, f dan pf. 

Gambar 10.60 Di Sheet1 cell H2, isi dengan formula berikut ini (lihat Tabel 10.1): 
=arrayformula(if(B2:B="","",split(B2:B,",")))

Gambar 10.61 DSheet1, beri judul pada kolom H sampai M secara berturut-turut: V, I, P, E, f, dan pf

20. Buat agar data yang ditampilkan tidak ada duplikasi. Untuk itu buka Sheet2, isikan formula: =unique(Sheet1!A:M).

Gambar 10.62 Di Sheet2 di cell A1, isi dengan formula berikut ini (lihat Tabel 10.1): 
=unique(Sheet1!A:M)

Gambar 10.63 Dengan formula di atas, terlihat Sheet2 menampilkan data yang sama dengan Sheet1, hanya bedanya, di Sheet2 ini tidak ada duplikasi data

21. Buka Sheet3, buat agar data keenam nilai (V, I, P, E, f dan pf) dan waktu (Time s) saja yang ditampilkan. Gunakan formula: =query(Sheet2!A:M,"select H,I,J,K,L,M,G where G is not null order by G asc").

Gambar 10.64 Di Sheet3 di cell A1, isi dengan formula berikut ini (lihat Tabel 10.1): 
=query(Sheet2!A:M,"select H,I,J,K,L,M,G where G is not null order by G asc")

Gambar 10.65 Dengan formula di atas, terlihat Sheet3 menampilkan data PZEM-004T v3, yang secara berturut-turut terdiri dari: voltage (V), current (I), power (P), energy (E), frequency (f) dan power factor (pf), dilengkapi dengan catatan waktu dalam detik

22. Gunakan Insert Chart untuk menampilkan grafik keenam nilai satu persatu terhadap waktu. 

Gambar 10.66 Untuk menampilkan grafik voltage (V) terhadap waktu (Time), pilih kolom V dan Time (tekan tombol Control untuk memilih lebih dari 1 kolom), kemudian pilih menu Insert, pilih Chart. Atur X-axis: Time(s) dan Series: V

Gambar 10.67 Untuk menampilkan grafik current (I) terhadap waktu (Time), pilih kolom I dan Time (tekan tombol Control untuk memilih lebih dari 1 kolom), kemudian pilih menu Insert, pilih Chart. Atur X-axis: Time(s) dan Series: I

Gambar 10.68 Untuk menampilkan grafik power (P) terhadap waktu (Time), pilih kolom P dan Time (tekan tombol Control untuk memilih lebih dari 1 kolom), kemudian pilih menu Insert, pilih Chart. Atur X-axis: Time(s) dan Series: P

Gambar 10.69 Untuk menampilkan grafik energy (E) terhadap waktu (Time), pilih kolom E dan Time (tekan tombol Control untuk memilih lebih dari 1 kolom), kemudian pilih menu Insert, pilih Chart. Atur X-axis: Time(s) dan Series: E

Gambar 10.70 Untuk menampilkan grafik frequency (f) terhadap waktu (Time), pilih kolom f dan Time (tekan tombol Control untuk memilih lebih dari 1 kolom), kemudian pilih menu Insert, pilih Chart. Atur X-axis: Time(s) dan Series: f

Gambar 10.71 Untuk menampilkan grafik power factor (pf) terhadap waktu (Time), pilih kolom pf dan Time (tekan tombol Control untuk memilih lebih dari 1 kolom), kemudian pilih menu Insert, pilih Chart. Atur X-axis: Time(s) dan Series: pf

Gambar 10.72 Di Sheet4 di cell A1, isi dengan formula berikut ini (lihat Tabel 10.1): 
=index(Sheet3!A:A, counta(Sheet3!A:A))

23. Buka Sheet4, munculkan nilai terakhir dari keenam nilai, dan gunakan Insert Chart, pilih Chart type: Gauge Chart. 

Gambar 10.73 Di Sheet4 di cell A1 akan muncul nilai voltage yang terakhir, tarik cell A1 (untuk men-copy formula) hingga cell F1, maka di B1, C1, D1, E1 dan F1 berturut-turut muncul nilai current, power, energy, frequency, dan power factor yang terakhir

Gambar 10.74 Berikutnya, ketik V, I, P, E, f dan pf di cell A2 sampai F2

Gambar 10.75 Berikutnya, pilih A1 sampai F2, kemudian pilih Insert, pilih Chart, ubah Chart Type dari Line Chart menjadi Gauge Chart

24. Publish chart agar tampilan Gauge keenam nilai dapat ditampilkan di web.

Gambar 10.76 Klik pada titik 3 kali di pojok kanan atas kotak Gauge chart, pilih Publish chart

Gambar 10.77 Di jendela yang muncul, pilih Interactive, pilih Publish

Gambar 10.78 Muncul link web, copy link tersebut, buka dengan browser

Gambar 10.79 Terlihat 6 buah Gauge yang menampilkan data dari PZEM-004T v3


Gambar 10.80 Refresh browser, maka tampilan data akan diupdate mengikuti nilai saat itu

25. Agar lebih jelas, silahkan melihat video pembuatan berikut ini:

Video PZEM terhubung dengan Arduino IoT Cloud dan Google Sheet melalui Arduino Uno dan Wokwi





















No comments:

Post a Comment