Bagikan melalui


Tutorial: Menggunakan Eclipse ThreadX untuk menyambungkan KIT Penemuan STMicroelectronics B-L475E-IOT01A ke IoT Hub

Telusuri kode

Dalam tutorial ini, Anda menggunakan Eclipse ThreadX untuk menyambungkan kit PENEMUAN STMicroelectronics B-L475E-IOT01A (mulai sekarang, STM DevKit) ke Azure IoT.

Kemudian, selesaikan tugas-tugas berikut:

  • Memasang satu set alat pengembangan yang disematkan untuk memprogram STM DevKit di C
  • Membangun gambar dan flash ke STM DevKit
  • Menggunakan Azure CLI untuk membuat dan mengelola hub Azure IoT yang tersambung dengan aman oleh STM DevKit
  • Gunakan Azure IoT Explorer untuk mendaftarkan perangkat dengan hub IoT Anda, melihat properti perangkat, melihat telemetri perangkat, dan memanggil perintah langsung di perangkat

Prasyarat

  • PC yang menjalankan Windows 10 atau Windows 11

  • Langganan Azure aktif. Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.

  • Git dengan tujuan mengkloning repositori

  • Azure CLI. Anda memiliki dua opsi untuk menjalankan perintah Azure CLI dalam tutorial ini:

    • Gunakanlah Azure Cloud Shell, sebuah shell interaktif yang menjalankan perintah CLI di browser Anda. Opsi ini direkomendasikan karena Anda tidak butuh instal apapun. Jika Anda menggunakan Cloud Shell untuk pertama kalinya, log masuk ke portal Microsoft Azure. Ikutilah langkah-langkah tersebut di mulai cepat Cloud Shell menuju Mulai Cloud Shell dan Pilih lingkungan Azure CLI.
    • Secara opsional, menjalankan Azure CLI pada mesin lokal Anda. Jika Azure CLI sudah diinstal, menjalankan az upgrade untuk meningkatkan CLI tersebut dan ekstensi menjadi versi terbaru. Untuk memasang Azure CLI, lihat Memasang Azure CLI.
  • Perangkat Keras

    • B-L475E-IOT01A (STM Devkit)
    • Wi-Fi 2,4 GHz
    • USB 2.0 male ke kabel Micro USB male

Mempersiapkan lingkungan pengembangan

Untuk mengatur lingkungan pengembangan Anda, pertama-tama Anda mengkloning repositori GitHub yang berisi semua aset yang Anda butuhkan untuk tutorial. Lalu Anda pasang satu set alat pemrograman.

Mengkloning reka ulang

Buat klon repositori berikut untuk mengunduh semua sampel kode perangkat, skrip penyiapan, dan versi online dokumentasi. Jika sebelumnya Anda mengkloning repositori ini di tutorial lain, Anda tidak perlu melakukannya lagi.

Untuk membuat kloning repositori, jalankan perintah berikut:

git clone --recursive https://github.com/eclipse-threadx/getting-started.git

Pasang alat-alat

Repositori kloning berisi skrip persiapan yang memasang dan mengonfigurasi alat yang diperlukan. Jika Anda menginstal alat-alat ini di tutorial perangkat tersemat lain, Anda tidak perlu melakukannya lagi.

Catatan

Skrip persiapan memasang alat-alat berikut:

  • CMake: Membangun
  • ARM GCC: Kompilasi
  • Termite: Memantau output port serial pada perangkat yang terhubung

Cara memasang peralatan:

  1. Navigasi ke jalur berikut di repositori dan jalankan skrip penyiapan bernama get-toolchain.bat:

    getting-started\tools\get-toolchain.bat

  2. Buka jendela konsol baru untuk mengenali perubahan konfigurasi yang dibuat oleh skrip penyiapan. Gunakan konsol ini untuk menyelesaikan tugas pemrograman yang tersisa dalam tutorial. Anda dapat menggunakan Windows CMD, PowerShell, atau Git Bash untuk Windows.

  3. Jalankan kode berikut untuk mengonfirmasi bahwa CMake versi 3.14 atau lebih terbaru telah terpasang.

    cmake --version
    

Membuat komponen cloud

Membuat IoT Hub

Anda dapat menggunakan Azure CLI untuk membuat hub IoT yang menangani peristiwa dan pesan untuk perangkat Anda.

Membuat hub IoT:

  1. Luncurkan aplikasi CLI Anda. Untuk menjalankan perintah CLI di sisa mulai cepat ini, salin sintaks perintah, tempelkan ke aplikasi CLI Anda, edit nilai variabel, dan tekan Enter.

    • Jika Anda menggunakan Cloud Shell, klik kanan tautan untuk Cloud Shell, dan pilih opsi untuk membuka di tab baru.
    • Jika Anda menggunakan Azure CLI secara lokal, buka aplikasi konsol CLI Anda dan masuk ke Azure CLI.
  2. Jalankan az extension add untuk memasang atau meningkatkan ekstensi azure-iot ke versi saat ini.

    az extension add --upgrade --name azure-iot
    
  3. Jalankan perintah az group create untuk membuat grup sumber daya. Perintah berikut membuat grup sumber daya bernama MyResourceGroup di wilayah centralus.

    Catatan

    Anda dapat secara opsional menetapkan location alternatif. Untuk melihat lokasi yang tersedia, jalankan az account list-locations.

    az group create --name MyResourceGroup --location centralus
    
  4. Jalankan perintah az iot hub create untuk membuat hub IoT. Mungkin perlu waktu beberapa menit untuk membuat hub IoT.

    YourIotHubName. Ganti tempat penampung ini dalam kode dengan nama yang Anda pilih untuk hub IoT Anda. Nama hub IoT harus unik secara global di Azure. Tempat penampung ini digunakan di sisa mulai cepat ini untuk mewakili nama hub IoT unik Anda.

    Parameter --sku F1 membuat hub IoT di tingkat Gratis. Hub tingkat gratis memiliki set fitur terbatas dan digunakan untuk bukti aplikasi konsep. Untuk informasi selengkapnya tentang tingkat, fitur, dan harga IoT Hub, lihat Harga Azure IoT Hub.

    az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName} --sku F1 --partition-count 2
    
  5. Setelah hub IoT dibuat, lihat output JSON di konsol, dan salin nilai hostName yang akan digunakan di langkah selanjutnya. Nilai hostName seperti contoh berikut ini:

    {Your IoT hub name}.azure-devices.net

Mengonfigurasi Penjelajah IoT

Di sisa mulai cepat ini, Anda menggunakan IoT Explorer untuk mendaftarkan perangkat ke hub IoT Anda, untuk melihat properti perangkat dan telemetri, dan untuk mengirim perintah ke perangkat Anda. Di bagian ini, Anda mengonfigurasi IoT Explorer untuk menyambungkan ke hub IoT yang Anda buat, dan untuk membaca model plug and play dari repositori model publik.

Untuk menambahkan koneksi ke hub IoT Anda:

  1. Instal Azure IoT Explorer. Alat ini adalah utilitas lintas platform untuk memantau dan mengelola sumber daya Azure IoT.

  2. Di aplikasi CLI Anda, jalankan perintah az iot hub connection-string show untuk mendapatkan string koneksi untuk hub IoT Anda.

    az iot hub connection-string  show --hub-name {YourIoTHubName}
    
  3. Salin string koneksi tanpa karakter kutipan di sekitarnya.

  4. Di Azure IoT Explorer, pilih hub IoT di menu sebelah kiri.

  5. Pilih + Tambahkan koneksi.

  6. Tempel string koneksi Anda dalam kotak String koneksi.

  7. Pilih Simpan.

    Cuplikan layar menambahkan koneksi di IoT Explorer.

Jika koneksi berhasil, IoT Explorer beralih ke tampilan Perangkat.

Untuk menambahkan repositori model publik:

  1. Di IoT Explorer, pilih Beranda untuk kembali ke tampilan beranda.

  2. Di menu sebelah kiri, pilih Pengaturan IoT Plug and Play.

  3. Konfirmasikan bahwa ada entri Repositori Publik yang ada dengan titik https://devicemodels.azure.comakhir .

    Catatan

    Jika tidak ada entri repositori publik, pilih +Tambahkan, pilih Repositori publik dari menu drop-down, tentukan https://devicemodels.azure.com nilai titik akhir, lalu pilih Simpan.

    Entri lengkap untuk repositori publik terlihat seperti cuplikan layar berikut:

    Cuplikan layar menambahkan repositori model publik di IoT Explorer.

Mendaftarkan perangkat

Di bagian ini, Anda membuat instans perangkat baru dan mendaftarkannya dengan hub IoT yang Anda buat. Anda menggunakan informasi koneksi untuk perangkat yang baru terdaftar untuk menyambungkan perangkat fisik Anda dengan aman di bagian selanjutnya.

Untuk mendaftarkan perangkat:

  1. Dari tampilan beranda di IoT Explorer, pilih hub IoT.

  2. Sambungan yang sebelumnya Anda tambahkan akan muncul. Pilih Lihat perangkat di hub ini di bawah properti koneksi.

  3. Pilih + Baru dan masukkan ID perangkat untuk perangkat Anda; misalnya, mydevice. Biarkan semua properti lainnya sama.

  4. Pilih Buat.

    Cuplikan layar identitas perangkat Azure IoT Explorer.

  5. Gunakan tombol salin untuk menyalin bidang ID Perangkat dan Kunci primer.

Sebelum melanjutkan ke bagian berikutnya, simpan setiap nilai berikut yang diambil dari langkah-langkah sebelumnya, ke lokasi yang aman. Anda menggunakan nilai-nilai ini di bagian berikutnya untuk mengonfigurasi perangkat Anda.

  • hostName
  • deviceId
  • primaryKey

Siapkan perangkat

Untuk menyambungkan STM DevKit ke Azure, Anda memodifikasi file konfigurasi untuk pengaturan Wi-Fi dan Azure IoT, membangun kembali gambar, dan mem-flash gambar ke perangkat.

Menambahkan konfigurasi

  1. Buka file berikut dalam editor teks:

    getting-started\STMicroelectronics\B-L475E-IOT01A\app\azure_config.h

  2. Komentari baris berikut di dekat bagian atas file seperti yang diperlihatkan:

    // #define ENABLE_DPS
    
  3. Atur konstanta Wi-Fi ke dalam nilai berikut dari lingkungan lokal Anda.

    Nama konstanta Nilai
    WIFI_SSID {SSID Wi-Fi Anda}
    WIFI_PASSWORD {Kata sandi Wi-Fi Anda}
    WIFI_MODE {Salah satu nilai mode Wi-Fi yang dienumerasi di file}
  4. Atur konstanta informasi perangkat IoT Azure ke nilai yang Anda simpan setelah Anda membuat sumber daya Azure.

    Nama konstanta Nilai
    IOT_HUB_HOSTNAME {Nilai hostName hub lot Anda}
    IOT_HUB_DEVICE_ID {Nilai ID Perangkat Anda}
    IOT_DEVICE_SAS_KEY {Nilai Kunci primer Anda}
  5. Simpan dan tutup file.

Membuat gambar

  1. Di konsol Anda atau di File Explorer, jalankan file batch rebuild.bat di jalur berikut untuk membangun gambar:

    getting-started\STMicroelectronics\B-L475E-IOT01A\tools\rebuild.bat

  2. Setelah kompilasi selesai, konfirmasikan bahwa file biner dibuat pada jalur berikut:

    getting-started\STMicroelectronics\B-L475E-IOT01A\build\app\stm32l475_azure_iot.bin

Mem-flash citra

  1. Pada STM DevKit MCU, temukan tombol Reset (1), port Micro USB (2), yang diberi label USB STLink, dan nomor bagian papan (3). Anda akan merujuk ke item ini di langkah berikutnya. Semuanya dijelaskan dalam gambar berikut:

    Foto yang menunjukkan komponen utama di papan STM DevKit.

  2. Sambungkan kabel Micro USB ke port USB STLINK pada STM DevKit, kemudian sambungkan ke komputer Anda.

    Catatan

    Untuk informasi penyiapan terperinci tentang STM DevKit, lihat instruksi tentang kemasan, atau lihat Sumber Daya B-L475E-IOT01A

  3. Pada File Explorer, temukan file biner yang Anda buat di bagian sebelumnya.

  4. Salin file biner bernama stm32l475_azure_iot.bin.

  5. Di File Explorer, temukan STM Devkit yang tersambung ke komputer Anda. Perangkat muncul sebagai drive pada sistem Anda dengan label drive L4IOT-EVK.

  6. Tempelkan file biner ke dalam folder root STM Devkit. Flash dimulai secara otomatis dan selesai dalam beberapa detik.

    Catatan

    Selama proses flashing, LED beralih antara merah dan hijau pada STM DevKit.

Mengonfirmasi detail sambungan perangkat

Anda dapat menggunakan aplikasi Termite untuk memantau komunikasi dan mengonfirmasi bahwa perangkat Anda telah disiapkan dengan benar.

  1. Mulai Termite.

    Tip

    Jika Anda tidak dapat menghubungkan Termite ke devkit Anda, pasangdriver ST-LINK dan coba lagi. Lihat Pemecahan masalah untuk langkah tambahan.

  2. Pilih pengaturan.

  3. Dalam dialog Pengaturan port serial, periksa pengaturan berikut serta perbarui jika diperlukan:

    • Tingkat baud: 115.200
    • Port: Port yang terhubung dengan STM DevKit Anda. Jika ada beberapa opsi port pada menu drop-down, Anda dapat memilih port yang sesuai untuk digunakan. Buka Windows Device Manager, serta lihat Port untuk mengidentifikasi port mana yang akan digunakan.

    Cuplikan layar pengaturan port serial di aplikasi Termite.

  4. Pilih OK.

  5. Tekan tombol Reset pada perangkat. Tombol berwarna hitam dan diberi label pada perangkat.

  6. Pada aplikasi Termite, periksa nilai titik pemeriksaan berikut untuk mengonfirmasi bahwa perangkat telah terinisialisasi dan tersambung ke Azure IoT.

    Starting Azure thread
    
    
    Initializing WiFi
        Module: ISM43362-M3G-L44-SPI
        MAC address: ****************
        Firmware revision: C3.5.2.5.STM
    SUCCESS: WiFi initialized
    
    Connecting WiFi
        Connecting to SSID 'iot'
        Attempt 1...
    SUCCESS: WiFi connected
    
    Initializing DHCP
        IP address: 192.168.0.35
        Mask: 255.255.255.0
        Gateway: 192.168.0.1
    SUCCESS: DHCP initialized
    
    Initializing DNS client
        DNS address 1: ************
        DNS address 2: ************
    SUCCESS: DNS client initialized
    
    Initializing SNTP time sync
        SNTP server 0.pool.ntp.org
        SNTP time update: Nov 18, 2022 0:56:56.127 UTC
    SUCCESS: SNTP initialized
    
    Initializing Azure IoT Hub client
        Hub hostname: *******.azure-devices.net
        Device id: mydevice
        Model id: dtmi:eclipsethreadx:devkit:gsgstml4s5;2
    SUCCESS: Connected to IoT Hub
    

    Penting

    Jika inisialisasi klien DNS gagal dan memberi tahu Anda bahwa Wi-Fi firmware Anda telah kedaluwarsa, Anda perlu memperbarui firmware modul Wi-Fi. Unduh dan instal pembaruan firmware modul Wi-Fi Inventek ISM 43362 dari STMicroelectronics. Kemudian tekan tombol Reset pada perangkat untuk mencentang ulang koneksi Anda, dan lanjutkan dengan tutorial ini.

Biarkan Termite memonitor output perangkat dengan langkah-langkah berikut.

Melihat properti perangkat

Anda dapat menggunakan Azure IoT Explorer untuk melihat dan mengelola properti perangkat Anda. Di bagian berikut, Anda menggunakan kemampuan Plug and Play yang terlihat di IoT Explorer untuk mengelola dan berinteraksi dengan STM DevKit. Kemampuan ini mengandalkan model perangkat yang diterbitkan untuk STM DevKit di repositori model publik. Anda mengonfigurasi IoT Explorer untuk mencari repositori ini untuk model perangkat sebelumnya dalam tutorial ini. Dalam banyak kasus, Anda dapat melakukan tindakan yang sama tanpa menggunakan plug and play dengan memilih opsi menu IoT Explorer. Namun, menggunakan plug and play sering memberikan pengalaman yang ditingkatkan. IoT Explorer dapat membaca model perangkat yang ditentukan oleh perangkat plug and play dan menyajikan informasi khusus untuk perangkat tersebut.

Untuk mengakses komponen IoT Plug and Play untuk perangkat di IoT Explorer:

  1. Dari tampilan beranda di IoT Explorer, pilih hub IoT, lalu pilih Tampilkan perangkat di hub ini.

  2. Silakan pilih perangkat Anda.

  3. Pilih Komponen IoT Plug and Play.

  4. Pilih Komponen default. IoT Explorer menampilkan komponen IoT Plug and Play yang diimplementasikan pada perangkat Anda.

    Cuplikan layar komponen default STM DevKit di IoT Explorer.

  5. Pada tab Antarmuka, lihat konten JSON di deskripsi model perangkat. JSON berisi detail konfigurasi untuk setiap komponen IoT Plug and Play dalam model perangkat.

    Catatan

    Nama dan deskripsi untuk komponen default merujuk ke papan STM L4S5. Model perangkat plug and play STM L4S5 juga digunakan untuk papan STM L475E dalam tutorial ini.

    Setiap tab di IoT Explorer sesuai dengan salah satu komponen IoT Plug and Play dalam model perangkat.

    Tab Jenis Nama Deskripsi
    Interface Antarmuka STM Getting Started Guide Contoh model untuk STM DevKit
    Properti (baca-saja) Properti ledState Apakah led menyala atau mati
    Properti (bisa ditulis) Properti telemetryInterval Interval pengiriman telemetri perangkat
    Perintah Perintah setLedState Mengaktifkan atau menonaktifkan LED

Untuk melihat properti perangkat menggunakan Azure IoT Explorer:

  1. Pilih tab Properti (baca-saja). Ada satu properti baca-saja untuk menunjukkan apakah led aktif atau nonaktif.

  2. Pilih tab Properti (bisa ditulis). Ini menampilkan interval bahwa telemetri dikirim.

  3. Ubah ke telemetryInterval 5, lalu pilih Perbarui nilai yang diinginkan. Perangkat Anda sekarang menggunakan interval ini untuk mengirim telemetri.

    Cuplikan layar pengaturan interval telemetri pada STM DevKit di IoT Explorer.

  4. IoT Explorer merespons dengan pemberitahuan. Anda juga dapat mengamati pembaruan di Rayap.

  5. Atur interval telemetri kembali ke 10.

Untuk menggunakan Azure CLI untuk melihat properti perangkat:

  1. Jalankan perintah az iot hub device-twin show .

    az iot hub device-twin show --device-id mydevice --hub-name {YourIoTHubName}
    
  2. Periksa properti untuk perangkat Anda di output konsol.

Tampilkan telemetri

Dengan Azure IoT Explorer, Anda dapat melihat alur telemetri dari perangkat Anda ke cloud. Secara opsional, Anda dapat melakukan tugas yang sama menggunakan Azure CLI.

Untuk menampilkan telemetri di Azure IoT Explorer:

  1. Dari panel Komponen Colok-dan-Main IoT (Komponen Default) untuk perangkat Anda di IoT Explorer, pilih tab Telemetri. Konfirmasi bahwa Gunakan hub peristiwa bawaan diatur ke Ya.

  2. Pilih Mulai.

  3. Lihat telemetri saat perangkat mengirim pesan ke cloud.

    Cuplikan layar telemetri perangkat di IoT Explorer.

    Catatan

    Anda juga dapat memantau telemetri dari perangkat dengan menggunakan aplikasi Termite.

  4. Pilih kotak centang Perlihatkan peristiwa bermodel untuk menampilkan peristiwa dalam format data yang ditentukan oleh model perangkat.

    Cuplikan layar peristiwa telemetri yang dimodelkan di IoT Explorer.

  5. Pilih Berhenti untuk mengakhiri menerima acara.

Untuk menggunakan Azure CLI untuk melihat telemetri perangkat:

  1. Jalankan perintah monitor-peristiwa hub az iot. Gunakan nama yang Anda buat sebelumnya di Azure IoT untuk perangkat dan hub IoT Anda.

    az iot hub monitor-events --device-id mydevice --hub-name {YourIoTHubName}
    
  2. Lihat output JSON di konsol.

    {
        "event": {
            "origin": "mydevice",
            "module": "",
            "interface": "dtmi:eclipsethreadx:devkit:gsgmxchip;1",
            "component": "",
            "payload": "{\"humidity\":41.21,\"temperature\":31.37,\"pressure\":1005.18}"
        }
    }
    
  3. Pilih CTRL+C untuk mengakhiri pemantauan.

Panggil metode langsung pada perangkat

Anda juga dapat menggunakan Azure IoT Explorer untuk memanggil metode langsung yang Anda terapkan di perangkat Anda. Metode langsung memiliki nama dan secara opsional dapat memiliki payload JSON, koneksi yang dapat dikonfigurasi, dan waktu habis metode. Di bagian ini, Anda memanggil metode yang mengaktifkan atau menonaktifkan LED. Secara opsional, Anda dapat melakukan tugas yang sama menggunakan Azure CLI.

Untuk memanggil metode di Azure IoT Explorer:

  1. Dari panel Komponen Colok-dan-Main IoT (Komponen Default) untuk perangkat Anda di IoT Explorer, pilih tab Perintah.

  2. Untuk perintah setLedState, atur negara ke true.

  3. Pilih Perintah send. Anda akan melihat pemberitahuan di IoT Explorer, dan lampu LED hijau pada perangkat harus menyala.

    Cuplikan layar memanggil metode setLedState di IoT Explorer.

  4. Atur status menjadi false, lalu pilih Kirim perintah. LED harus dimatikan.

  5. Secara opsional, Anda dapat melihat output di Rayap untuk memantau status metode.

Untuk menggunakan Azure CLI untuk memanggil metode:

  1. Jalankan perintah az iot hub invoke-device-method, dan tentukan nama metode dan payload. Untuk metode ini, atur method-payload menjadi true untuk menyalakan LED, dan mengaturnya false untuk mematikannya.

    az iot hub invoke-device-method --device-id mydevice --method-name setLedState --method-payload true --hub-name {YourIoTHubName}
    

    Konsol CLI menampilkan status panggilan metode Anda di perangkat, di mana 204 menunjukkan keberhasilan.

    {
        "payload": {},
        "status": 200
    }
    
  2. Periksa perangkat Anda untuk mengonfirmasi status LED.

  3. Lihat terminal Rayap untuk mengonfirmasi pesan output:

    Received command: setLedState
        Payload: true
        LED is turned ON
    Sending property: $iothub/twin/PATCH/properties/reported/?$rid=15{"ledState":true}
    

Memecahkan masalah serta debug

Jika Anda mengalami masalah saat membangun kode perangkat, mem-flash perangkat, atau menyambungkan, lihat Pemecahan masalah.

Untuk awakutu aplikasi, lihat Awakutu dengan Visual Studio Code.

Membersihkan sumber daya

Jika Anda tidak lagi memerlukan sumber daya Azure yang dibuat dalam mulai cepat ini, Anda bisa menggunakan Azure CLI untuk menghapus grup sumber daya dan semua sumber dayanya.

Penting

Penghapusan grup sumber daya tidak bisa dipulihkan. Grup sumber daya dan semua sumber daya yang tercakup di dalamnya akan dihapus secara permanen. Pastikan Anda tidak salah menghapus grup sumber daya atau sumber daya secara tidak sengaja.

Untuk menghapus grup sumber daya berdasarkan nama:

  1. Jalankan perintah az group delete. Perintah ini akan menghapus grup sumber daya, IoT Hub, dan pendaftaran perangkat yang Anda buat.

    az group delete --name MyResourceGroup
    
  2. Jalankan perintah az group list untuk mengonfirmasi bahwa grup sumber daya sudah dihapus.

    az group list
    

Langkah selanjutnya

Dalam tutorial ini, Anda membuat gambar kustom yang berisi kode sampel Eclipse ThreadX, lalu mem-flash gambar ke perangkat STM DevKit. Anda menghubungkan STM DevKit ke Azure, dan melakukan tugas seperti melihat telemetri dan memanggil metode di perangkat.

Sebagai langkah selanjutnya, jelajahi artikel berikut ini untuk mempelajari selengkapnya tentang opsi pengembangan yang disematkan.

Penting

Eclipse ThreadX menyediakan OEM dengan komponen untuk mengamankan komunikasi dan untuk membuat kode dan isolasi data menggunakan mekanisme perlindungan perangkat keras MCU/MPU yang mendasar. Namun, setiap OEM akan bertanggung jawab untuk memastikan bahwa perangkatnya memenuhi persyaratan keamanan yang terus berkembang.