Tutorial: Menerapkan analitik spasial IoT menggunakan Microsoft Azure Maps

Dalam skenario IoT, adalah umum untuk menangkap dan melacak peristiwa relevan yang terjadi dalam ruang dan waktu. Contohnya termasuk manajemen armada, pelacakan aset, mobilitas, dan aplikasi kota pintar. Tutorial ini memandu Anda melalui solusi yang melacak pergerakan sewa mobil bekas dengan menggunakan API Azure Maps.

Dalam tutorial ini, Anda akan:

  • Buat akun penyimpanan Azure untuk mencatat data pelacakan mobil.
  • Unggah geofence ke akun penyimpanan Azure.
  • Buat hub di Azure IoT Hub, dan daftarkan perangkat.
  • Buat fungsi di Azure Functions, menerapkan logika bisnis berdasarkan analitik spasial Azure Maps.
  • Berlangganan peristiwa telemetri perangkat IoT dari fungsi Azure melalui Azure Event Grid.
  • Filter peristiwa telemetri dengan menggunakan perutean pesan IoT Hub.

Prasyarat

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

Tip

Anda dapat mengunduh seluruh proyek C# rentalCarSimulation dari GitHub sebagai satu file ZIP dengan membuka akar sampel dan memilih tombol Kode hijau<>, lalu Unduh ZIP.

Tutorial ini menggunakan aplikasi Postman, tetapi Anda dapat memilih lingkungan pengembangan API yang berbeda.

Penting

Dalam contoh URL, ganti {Your-Azure-Maps-Subscription-key} dengan kunci langganan Azure Peta Anda.

Kasus penggunaan: pelacakan mobil sewaan

Katakanlah perusahaan persewaan mobil ingin mencatat informasi lokasi, jarak tempuh, dan kondisi yang ada untuk mobil sewaannya. Perusahaan juga ingin menyimpan informasi ini setiap kali mobil meninggalkan wilayah geografis resmi yang benar.

Mobil sewaan ini dilengkapi dengan perangkat IoT yang secara teratur mengirimkan data telemetri ke IoT Hub. Telemetri mencakup lokasi saat ini dan menunjukkan apakah mesin mobil berjalan. Skema lokasi perangkat mematuhi skema IoT Plug and Play untuk data geospasi. Skema telemetri perangkat mobil sewaan terlihat seperti kode JSON berikut:

{
    "data": {
        "properties": {
            "Engine": "ON"
        },
        "systemProperties": {
            "iothub-content-type": "application/json",
            "iothub-content-encoding": "utf-8",
            "iothub-connection-device-id": "ContosoRentalDevice",
            "iothub-connection-auth-method": "{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}",
            "iothub-connection-auth-generation-id": "636959817064335548",
            "iothub-enqueuedtime": "2019-06-18T00:17:20.608Z",
            "iothub-message-source": "Telemetry"
        },
        "body": {
            "location": {
                "type": "Point",
                "coordinates": [ -77.025988698005662, 38.9015330523316 ]
            }
        }
    }
}

Dalam tutorial ini, Anda hanya melacak satu kendaraan. Setelah Anda mengatur layanan Azure, Anda perlu mengunduh proyek rentalCarSimulation C# untuk menjalankan simulator kendaraan. Seluruh proses, dari peristiwa hingga eksekusi fungsi, diringkas dalam langkah-langkah berikut:

  1. Perangkat dalam kendaraan mengirimkan data telemetri ke IoT Hub.

  2. Jika mesin mobil berjalan, hub akan menerbitkan data telemetri ke Event Grid.

  3. Fungsi Azure dipicu karena langganan kejadiannya untuk peristiwa telemetri perangkat.

  4. Fungsi ini mencatat koordinat lokasi perangkat kendaraan, waktu kejadian, dan ID perangkat. Kemudian menggunakan Spatial Geofence Get API untuk menentukan apakah mobil telah mengemudi di luar batasan geografis. Jika telah melakukan perjalanan di luar batas geofence, fungsi menyimpan data lokasi yang diterima dari peristiwa tersebut ke dalam kontainer blob. Fungsi ini juga meminta Alamat Pencarian Mundur untuk menerjemahkan lokasi koordinat ke alamat jalan, dan menyimpannya dengan data lokasi perangkat lainnya.

Diagram berikut menyajikan gambaran umum tingkat tinggi mengenai sistemnya.

Diagram gambaran umum sistem.

Gambar berikut menyoroti area geofence dengan warna biru. Rute penyewaan mobil ditunjukkan oleh jalur hijau.

Gambar yang memperlihatkan rute geofence.

Membuat akun Azure Storage

Untuk menyimpan data pelacakan pelanggaran mobil, buat akun penyimpanan v2 tujuan umum di grup sumber daya Anda. Jika Anda belum membuat grup sumber daya, ikuti petunjuk dalam membuat grup sumber daya. Beri nama grup sumber daya Anda ContosoRental.

Untuk membuat akun penyimpanan, ikuti instruksi dalam membuat akun penyimpanan. Dalam tutorial ini, beri nama akun penyimpanan contosorentalstorage, tetapi secara umum Anda dapat menamainya apa pun yang Anda suka.

Ketika Anda berhasil membuat akun penyimpanan, Anda kemudian perlu membuat kontainer untuk menyimpan data pembuatan log.

  1. Buka akun penyimpanan yang baru dibuat. Di bagian Hal Penting, pilih link Kontainer.

    Cuplikan layar kontainer untuk penyimpanan blob.

  2. Di sudut kiri atas, pilih + Kontainer. Panel muncul di sisi kanan browser. Beri nama kontainer Anda contoso-rental-logs, dan pilih Buat.

    Cuplikan layar membuat kontainer blob.

  3. Masuk ke panel Kunci Akses di akun penyimpanan Anda, dan salin Nama akun Penyimpanan dan nilai Kunci di bagian kunci1. Anda memerlukan kedua nilai ini di bagian Buat fungsi dan tambahkan langganan Event Grid.

    Cuplikan layar salinan nama dan kunci akun penyimpanan.

Mengunggah geofence ke akun penyimpanan Azure Anda

Geofence mendefinisikan area geografis resmi untuk kendaraan sewaan kami. Gunakan geofence dalam fungsi Azure Anda untuk menentukan apakah mobil telah bergerak di luar area geofence.

Ikuti langkah-langkah yang diuraikan dalam artikel Cara membuat registri data untuk mengunggah file data JSON geofence ke akun penyimpanan Azure Anda lalu daftarkan di akun Azure Peta Anda. Pastikan untuk membuat catatan nilai pengidentifikasi unik (udid), Anda akan membutuhkannya. Adalah udid cara Anda mereferensikan geofence yang Anda unggah ke akun penyimpanan Azure dari kode sumber Anda. Untuk informasi selengkapnya tentang file data geofence, lihat Data GeoJSON geofencing.

Membuat IoT Hub

IoT Hub memungkinkan komunikasi dua arah yang aman dan andal antara aplikasi IoT dan perangkat yang dikelolanya. Untuk tutorial ini, Anda ingin mendapatkan informasi dari perangkat dalam kendaraan Anda untuk menentukan lokasi mobil sewaan. Di bagian ini, Anda membuat hub IoT dalam grup sumber daya ContosoRental. Hub ini bertanggung jawab untuk menerbitkan peristiwa telemetri perangkat Anda.

Untuk membuat hub IoT di grup sumber daya ContosoRental, ikuti langkah-langkah dalam membuat hub IoT.

Mendaftarkan perangkat di hub IoT Anda

Perangkat tidak dapat tersambung ke hub IoT kecuali mereka terdaftar di registri identitas hub IoT. Buat satu perangkat dengan nama, InVehicleDevice. Untuk membuat dan mendaftarkan perangkat dalam hub IoT Anda, ikuti langkah-langkah dalam mendaftarkan perangkat baru di hub IoT. Pastikan untuk menyalin string koneksi utama perangkat Anda. Anda akan membutuhkannya nanti.

Membuat fungsi dan menambahkan langganan Event Grid

Azure Functions adalah layanan komputasi tanpa server yang memungkinkan Anda menjalankan potongan-potongan kecil kode ("fungsi"), tanpa perlu menyediakan atau mengelola infrastruktur komputasi secara eksplisit. Untuk mempelajari selengkapnya, lihat Azure Functions.

Fungsi dipicu oleh peristiwa tertentu. Buat fungsi yang dipicu oleh pemicu Event Grid. Buat hubungan antara pemicu dan fungsi dengan membuat langganan peristiwa untuk peristiwa telemetri perangkat IoT Hub. Ketika peristiwa telemetri perangkat terjadi, fungsi Anda disebut sebagai titik akhir, dan menerima data yang relevan untuk perangkat yang sebelumnya Anda daftarkan di IoT Hub.

Berikut adalah kode skrip C# yang dimuat fungsi Anda.

Sekarang, siapkan fungsi Azure Anda.

  1. Di portal Microsoft Azure, pilih Buat sumber daya. Ketik Aplikasi Fungsi di kotak teks pencarian. Pilih Aplikasi Fungsi>Buat.

  2. Pada halaman pembuatan Aplikasi Fungsi, beri nama aplikasi fungsi Anda. Di bawah Grup Sumber Daya, pilih ContosoRental dari daftar menurun. Pilih .NET sebagai Tumpukan Runtime. Di bagian bawah halaman, pilih Berikutnya: Penyimpanan >.

    Cuplikan layar membuat aplikasi fungsi.

  3. Untuk akun Penyimpanan, pilih akun penyimpanan yang Anda buat di Buat akun penyimpanan Azure. Pilih Tinjau + buat.

  4. Tinjau detail aplikasi fungsi, dan pilih Buat.

  5. Setelah aplikasi dibuat, Anda menambahkan fungsi ke dalamnya. Buka aplikasi fungsi. Pilih tombol Buat di Portal Microsoft Azure.

    Penting

    Pemicu Azure Event Hub dan templat Pemicu Azure Event Grid memiliki nama yang sama. Pastikan Anda memilih templat Pemicu Azure Event Grid.

    Cuplikan layar buat fungsi di Portal Microsoft Azure.

  6. Panel Buat fungsi muncul. Gulir ke bawah panel Pilih templat , dan pilih pemicu Azure Event Grid lalu pilih tombol Buat .

    Cuplikan layar membuat fungsi.

  7. Beri nama fungsi. Dalam tutorial ini, gunakan nama GetGeoFunction, tetapi secara umum Anda dapat menggunakan nama apa pun yang Anda suka. Pilih Buat Fungsi.

  8. Di menu sebelah kiri, pilih panel Kode +Uji. Salin dan tempel skrip C# ke jendela kode.

    Salin/Cuplikan layar kode tempel ke dalam jendela fungsi.

  9. Dalam kode C#, ganti parameter berikut:

    • Ganti SUBSCRIPTION_KEY dengan kunci langganan akun Azure Peta Anda.
    • Ganti UDID dengan udid geofence yang Anda unggah di Mengunggah geofence ke akun penyimpanan Azure Anda.
    • Fungsi CreateBlobAsync dalam skrip membuat blob per peristiwa di akun penyimpanan data. Ganti ACCESS_KEY, ACCOUNT_NAME, dan STORAGE_CONTAINER_NAME dengan kunci akses, nama akun, dan kontainer penyimpanan data akun Anda. Nilai-nilai ini dihasilkan saat Anda membuat akun penyimpanan di Membuat akun penyimpanan Azure.
  10. Di menu sebelah kiri, pilih panel Integrasi. Pilih Pemicu Event Grid di diagram. Ketik nama untuk pemicu, eventGridEvent, dan pilih Buat langganan Event Grid.

    Cuplikan layar tambahkan langganan peristiwa.

  11. Isi detail langganan. Beri nama langganan peristiwa. UntukSkema Peristiwa, pilih Skema Event Grid. Untuk Tipe Topik, pilih Akun Azure IoT Hub. Untuk Grup Sumber Daya, pilih grup sumber daya yang Anda buat di awal tutorial ini. Untuk Sumber Daya, pilih IoT hub yang Anda buat di "Buat Azure IoT hub." Untuk Filter ke Jenis Peristiwa, pilih Telemetri Perangkat.

    Setelah memilih opsi ini, Anda akan melihat perubahan Tipe Topik ke IoT Hub. Untuk Nama Topik Sistem, Anda dapat menggunakan nama yang sama dengan sumber daya Anda. Terakhir, di bagian Detail titik akhir, pilih Pilih titik akhir. Terima semua pengaturan dan pilih Konfirmasi Pilihan.

    Cuplikan layar membuat langganan acara.

  12. Tinjau pengaturan Anda. Pastikan bahwa titik akhir menentukan fungsi yang Anda buat di awal bagian ini. Pilih Buat.

    Cuplikan layar konfirmasi membuat langganan peristiwa.

  13. Sekarang Anda kembali ke panel Edit Pemicu. Pilih Simpan.

Memfilter acara dengan menggunakan perutean pesan IoT Hub

Saat Anda menambahkan langganan Event Grid ke fungsi Azure, rute olahpesan secara otomatis dibuat di hub IoT yang ditentukan. Perutean pesan memungkinkan Anda merutekan berbagai tipe data ke berbagai titik akhir. Misalnya, Anda dapat merutekan pesan telemetri perangkat, peristiwa siklus hidup perangkat, dan peristiwa perubahan kembar perangkat. Untuk informasi selengkapnya, lihat Menggunakan perutean pesan IoT Hub.

Cuplikan layar perutean pesan di hub IoT.

Dalam contoh skenario Anda, Anda hanya ingin menerima pesan ketika mobil sewaan bergerak. Buat kueri perutean untuk memfilter peristiwa saat Engineproperti sama dengan "ON". Untuk membuat kueri perutean, pilih rute RouteToEventGrid dan ganti kueri Perutean dengan "Engine='ON'". Kemudian pilih Simpan. Sekarang hub IoT hanya menerbitkan telemetri perangkat tempat mesin menyala.

Cuplikan layar pesan perutean filter.

Tip

Ada berbagai cara untuk mengkueri pesan perangkat ke cloud IoT. Untuk mempelajari selengkapnya tentang sintaks perutean pesan, lihat perutean pesan IoT Hub.

Kirim data telemetri ke Azure IoT Hub

Saat fungsi Azure berjalan, Anda sekarang dapat mengirim data telemetri ke hub IoT, yang merutekannya ke Event Grid. Gunakan aplikasi C# untuk mensimulasikan data lokasi untuk perangkat dalam kendaraan mobil sewaan. Untuk menjalankan aplikasi, Anda memerlukan .NET SDK 6.0 di komputer pengembangan Anda. Ikuti langkah-langkah berikut untuk mengirim data telemetri yang disimulasikan ke hub IoT:

  1. Jika Anda belum melakukannya, unduh proyek C# rentalCarSimulation.

  2. Buka simulatedCar.cs file di editor teks pilihan Anda, dan ganti nilai connectionString dengan yang Anda simpan saat Anda mendaftarkan perangkat. Simpan perubahan pada file .

  3. Pastikan Anda memiliki ASP.NET Core Runtime yang terinstal di komputer Anda. Di jendela terminal lokal Anda, buka folder akar proyek C# dan jalankan perintah berikut untuk memasang paket yang diperlukan untuk aplikasi perangkat yang disimulasikan:

    dotnet restore
    
  4. Di terminal yang sama, jalankan perintah berikut untuk membangun dan menjalankan aplikasi simulasi mobil sewaan:

    dotnet run
    

Terminal lokal Anda akan terlihat seperti cuplikan layar berikut.

Cuplikan layar output terminal.

Jika Anda membuka kontainer penyimpanan blob sekarang, Anda dapat melihat empat blob untuk lokasi tempat kendaraan berada di luar geofence.

Cuplikan layar blob tampilan di dalam kontainer.

Peta berikut menunjukkan empat titik lokasi kendaraan di luar geofence. Setiap lokasi dicatat pada interval waktu reguler.

Cuplikan layar peta pelanggaran.

Jelajahi Azure Maps dan IoT

Untuk menjelajahi API Azure Maps yang digunakan dalam tutorial ini, lihat:

Untuk daftar lengkap API REST Azure Maps, lihat:

Untuk mendapatkan daftar perangkat yang bersertifikat Azure untuk IoT, kunjungi:

Membersihkan sumber daya

Tidak ada sumber daya yang memerlukan pembersihan.

Langkah berikutnya

Untuk mempelajari selengkapnya tentang cara mengirim telemetri perangkat ke cloud, dan sebaliknya, lihat: