SDK Perangkat Azure IOT Hub memungkinkan aplikasi yang ditulis dalam C99 atau lebih baru atau C++ untuk berkomunikasi dengan mudah dengan Azure IoT Hub, Azure IoT Central, dan ke Azure IoT Device Provisioning. Repo ini mencakup kode sumber untuk perpustakaan, instruksi pengaturan, dan contoh yang menunjukkan skenario penggunaan.
Untuk perangkat dengan keterbatasan , yang mana memori diukur dalam kilobita dan bukan megabita, tersedia opsi SDK dengan bobot lebih ringan. Lihat SDK Azure IoT lainnya untuk mempelajari lebih lanjut.
Semua pengguna Azure IoT SDK disarankan untuk mewaspadai perubahan sertifikat TLS yang akan datang untuk Azure IoT Hub dan Device Provisioning Service yang akan memengaruhi kemampuan SDK untuk terhubung ke layanan ini. Pada bulan Oktober 2022, kedua layanan akan bermigrasi dari Root Baltimore CyberTrust CA saat ini ke root DigiCert Global G2 CA. Akan ada masa transisi sebelumnya di mana perangkat IoT Anda harus memiliki sertifikat publik Baltimore dan Digicert yang mungkin di-hardcode dalam aplikasinya atau di-flash ke modul WiFi Anda untuk mencegah masalah konektivitas.
Perangkat yang hanya memiliki sertifikat publik Baltimore akan kehilangan kemampuan untuk terhubung ke Azure IoT Hub dan Device Provisioning Service pada bulan Oktober 2022.
Untuk bersiap menghadapi perubahan ini, pastikan tumpukan TLS perangkat Anda telah mengonfigurasi kedua sertifikat akar kepercayaan publik ini.
Untuk penjelasan lebih mendalam tentang mengapa layanan IoT melakukan hal ini, silakan lihat artikel ini.
Harap dicatat, untuk skenario perangkat terbatas seperti mbed dan Arduino, tersedia opsi SDK yang lebih baik dan lebih ringan. Lihat SDK Azure IoT lainnya untuk mempelajari lebih lanjut.
Cara termudah untuk memulai Azure IoT SDK pada platform yang didukung adalah dengan menggunakan paket dan pustaka berikut:
Arduino: Pustaka SDK perangkat di Arduino IDE
Windows: SDK Perangkat di Vcpkg
iOS: SDK Perangkat di CocoaPod
Keterbatasan iOS
Untuk pengalaman iOS yang lebih lengkap termasuk dua fitur yang hilang di atas, silakan lihat contoh pustaka Swift asli kami yang dibuat di atas SDK C Tertanam.
Untuk platform lain - termasuk Linux - Anda perlu mengkloning dan membuat SDK secara langsung. Anda juga dapat membuatnya langsung untuk platform di atas.
Ada banyak sampel yang tersedia untuk SDK. Informasi lebih lanjut dapat ditemukan di sini.
Dokumentasi referensi API untuk C SDK dapat ditemukan di sini.
Untuk menemukan Azure IoT SDK dalam bahasa lain, silakan lihat panduan di sini.
Untuk mempelajari selengkapnya tentang membangun Aplikasi Azure IoT, Anda dapat mengunjungi Azure IoT Dev Center.
IoT Hub mendukung beberapa protokol agar perangkat dapat terhubung: MQTT, AMQP, dan HTTPS. MQTT dan AMQP secara opsional dapat dijalankan melalui WebSockets. SDK Klien Perangkat memungkinkan protokol dipilih pada waktu pembuatan koneksi.
SDK Klien Perangkat/Modul secara opsional memungkinkan pembuatan perangkat IoT Plug and Play.
Jika Anda tidak yakin protokol mana yang akan digunakan, Anda harus menggunakan MQTT atau MQTT-WS. MQTT memerlukan sumber daya yang jauh lebih sedikit dibandingkan AMQP dan mendukung lebih banyak fungsionalitas IoT Hub dibandingkan HTTPS. Baik AMQP maupun HTTPS tidak dijamin memiliki implementasi SDK Klien Perangkat untuk fitur-fitur baru di masa mendatang, seperti Azure IoT Plug and Play.
✔️ fitur tersedia ✖️ fitur direncanakan tetapi tidak didukung ➖ tidak ada dukungan yang direncanakan
Fitur | mqtt | mqtt-ws | amqp | amqp-ws | https | Keterangan |
---|---|---|---|---|---|---|
Otentikasi | ✔️ | ✔️* | ✔️ | ✔️* | ✔️* | Hubungkan perangkat Anda ke IoT Hub secara aman dengan autentikasi yang didukung, termasuk kunci pribadi, SASToken, X-509 Self Signed, dan Certificate Authority (CA) Signed. *IoT Hub hanya mendukung X-509 CA yang ditandatangani melalui AMQP dan MQTT saat ini. |
Kirim Pesan Perangkat-ke-Cloud | ✔️* | ✔️* | ✔️* | ✔️* | ✔️* | Kirim pesan perangkat ke cloud (maks 256 KB) ke IoT Hub dengan opsi untuk menambahkan properti kustom. IoT Hub hanya mendukung pengiriman batch melalui AMQP dan HTTPS saja saat ini. SDK ini mendukung pengiriman batch melalui HTTP. * Pengiriman batch melalui AMQP dan AMQP-WS, dan penambahan properti sistem pada pesan D2C sedang berlangsung. |
Menerima Pesan Cloud-ke-Perangkat | ✔️* | ✔️* | ✔️ | ✔️ | ✔️ | Menerima pesan cloud-ke-perangkat dan membaca properti kustom dan sistem terkait dari IoT Hub, dengan opsi untuk menyelesaikan/menolak/meninggalkan pesan C2D. *IoT Hub mendukung opsi untuk menyelesaikan/menolak/meninggalkan pesan C2D melalui HTTPS dan AMQP saja saat ini. |
Perangkat Kembar | ✔️* | ✔️* | ✔️* | ✔️* | ➖ | IoT Hub mempertahankan perangkat kembar untuk setiap perangkat yang Anda sambungkan ke IoT Hub. Perangkat dapat melakukan operasi seperti mendapatkan tag kembar, berlangganan properti yang diinginkan. *Kirim versi properti yang dilaporkan dan versi properti yang diinginkan sedang diproses. |
Metode Langsung | ✔️ | ✔️ | ✔️ | ✔️ | ➖ | IoT Hub memberi Anda kemampuan untuk memanggil metode langsung pada perangkat dari cloud. SDK mendukung pengendali untuk operasi metode spesifik dan umum. |
Unggah File ke Blob | ➖ | ➖ | ➖ | ➖ | ✔️ | Perangkat dapat memulai pengunggahan file dan memberi tahu IoT Hub ketika pengunggahan selesai. Pengunggahan file memerlukan koneksi HTTPS, tetapi dapat dimulai dari klien menggunakan protokol apa pun untuk operasi lainnya. |
Status Koneksi dan Pelaporan Kesalahan | ✔️* | ✔️* | ✔️* | ✔️* | ✖️ | Pelaporan kesalahan untuk kode kesalahan yang didukung IoT Hub. *SDK ini mendukung pelaporan kesalahan pada autentikasi dan Perangkat Tidak Ditemukan. |
Coba lagi kebijakan | ✔️* | ✔️* | ✔️* | ✔️* | ✖️ | Kebijakan percobaan ulang untuk pesan perangkat ke cloud yang gagal memiliki dua opsi: jangan coba-coba, backoff eksponensial dengan jitter (default). *Kebijakan percobaan ulang khusus sedang berlangsung. |
Perangkat multiplexing melalui koneksi tunggal | ➖ | ➖ | ✔️ | ✔️ | ✔️ | Ada lebih banyak batasan pada multiplexing daripada yang tercakup dalam tabel ini. Lihat dokumen ini untuk informasi lebih lanjut. |
Connection Pooling - Menentukan jumlah koneksi | ➖ | ➖ | ✖️ | ✖️ | ✖️ | |
Dukungan Pasang dan Mainkan Azure IoT | ✔️ | ✔️ | ➖ | ➖ | ➖ | Kemampuan untuk membangun perangkat Azure IoT Plug and Play. |
SDK ini juga berisi opsi yang dapat Anda atur dan fitur khusus platform. Anda dapat menemukan daftar detailnya di dokumen ini.
Repositori ini berisi SDK klien provisi untuk Layanan Provisi Perangkat.
✔️ fitur tersedia ✖️ fitur direncanakan tetapi tidak didukung ➖ tidak ada dukungan yang direncanakan
Fitur | mqtt | mqtt-ws | amqp | amqp-ws | https | Keterangan |
---|---|---|---|---|---|---|
Pendaftaran Perorangan TPM | ➖ | ➖ | Kami mengumumkan penghentian dukungan perpustakaan utpm-c dan dukungan autentikasi DPS-TPM dalam Azure IoT C-SDK. Mulai Mei 2023, Microsoft tidak akan menyediakan dukungan untuk perpustakaan ini. Aplikasi yang sudah ada yang menggunakan perpustakaan ini akan terus berfungsi apa adanya. Kami sangat menyarankan untuk beralih ke autentikasi DPS-X509 menggunakan Mesin OpenSSL tpm2tss. Menghubungkan perangkat Anda ke Layanan Penyediaan Perangkat melalui pendaftaran individu menggunakan Modul Platform Tepercaya akan terus berfungsi apa adanya. Mulai cepat ini mengulas cara membuat perangkat simulasi untuk pendaftaran individu dengan TPM. TPM melalui MQTT saat ini tidak didukung oleh Layanan Penyediaan Perangkat. | |||
X.509 Pendaftaran Perorangan | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | SDK ini mendukung penyambungan perangkat Anda ke Layanan Penyediaan Perangkat melalui pendaftaran individual menggunakan sertifikat daun X.509. Mulai cepat ini mengulas cara membuat perangkat simulasi untuk pendaftaran individu dengan X.509. |
Grup Pendaftaran X.509 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | SDK ini mendukung penyambungan perangkat Anda ke Layanan Penyediaan Perangkat melalui grup pendaftaran menggunakan sertifikat akar X.509. |
SDK perangkat IoT Hub untuk C dapat digunakan dengan berbagai platform dan perangkat OS.
Persyaratan minimumnya adalah agar platform perangkat mendukung hal-hal berikut:
Detail dukungan platform dapat ditemukan di dokumen ini. Anda dapat menemukan daftar lengkap platform OS tempat berbagai SDK telah diuji di katalog perangkat Azure Certified untuk IoT. Perhatikan bahwa Anda mungkin masih dapat menggunakan SDK pada platform OS dan perangkat keras yang tidak tercantum di halaman ini: semua SDK bersumber terbuka dan dirancang agar portabel. Jika Anda memiliki saran, masukan, atau masalah untuk dilaporkan, lihat bagian Kontribusi dan Dukungan di bawah.
SDK dan Perpustakaan C:
Di repositori Anda akan menemukan petunjuk dan alat pembuatan untuk mengkompilasi dan menjalankan SDK klien perangkat untuk C di Linux, Windows, dan platform mikrokontroler (lihat tautan di atas untuk informasi lebih lanjut tentang kompilasi klien perangkat untuk C).
Jika Anda mempertimbangkan untuk mem-porting SDK klien perangkat untuk C ke platform baru, lihat dokumen panduan porting.
MBED OS
Lihat juga Folder yang Tidak Digunakan Lagi di bawah untuk catatan relevan lainnya.
Jika Anda menemukan bug, mempunyai saran untuk fitur baru atau jika Anda ingin menjadi kontributor aktif pada proyek ini, silakan ikuti petunjuk yang diberikan dalam pedoman kontribusi.
/c-utility, /deps, /umqtt, /uamqp
-
Ini adalah submodul git yang berisi kode, seperti adaptor dan implementasi protokol, yang dibagikan dengan proyek lain.
/build, /build_all
Bangun dan periksa folder terkait gerbang.
/certs
Berisi sertifikat yang diperlukan untuk berkomunikasi dengan Azure IoT Hub.
/doc
Folder ini berisi panduan pengembangan aplikasi dan petunjuk pengaturan perangkat.
/iothub_client
Berisi komponen klien Azure IoT Hub yang menyediakan kemampuan perpesanan mentah perpustakaan. Lihat dokumentasi dan contoh API untuk informasi tentang cara menggunakannya.
/provisioning_client
Folder ini berisi perpustakaan klien untuk klien penyediaan perangkat.
/samples
Berisi sampel yang menunjukkan skenario E2E yang lebih kompleks menggunakan SDK.
/testtools
Berisi alat yang digunakan dalam menguji perpustakaan.
/tools
Alat lain-lain.
Folder berikut tidak digunakan lagi.
/iothub_service_client
Berisi pustaka yang memungkinkan interaksi dengan layanan IoT Hub untuk melakukan operasi seperti mengirim pesan ke perangkat dan mengelola registri identitas perangkat.
/provisioning_service_client
Berisi pustaka yang memungkinkan interaksi dengan layanan Penyediaan Perangkat untuk melakukan operasi seperti menetapkan kebijakan seputar pendaftaran.
/serializer
Berisi pustaka yang menyediakan kemampuan pemodelan dan serialisasi JSON di atas pustaka perpesanan mentah.
C SDK menawarkan rilis untuk fitur baru, perbaikan bug penting, dan Dukungan Jangka Panjang (LTS). Perbaikan bug umum tidak akan menerima rilis terpisah, melainkan terkandung dalam rilis LTS. Pembuatan versi mengikuti pembuatan versi semantik, xyz
atau major.minor.patch
. Setiap kali versi diperbarui, itu akan diberi tag xyz
.
Fitur baru dan perbaikan bug penting (termasuk pembaruan keamanan) akan dirilis di cabang utama. Rilis ini akan diberi tag menggunakan tanggal yang diformat yyyy-mm-dd
. Rilis fitur akan mengubah versi minor
dan mengatur ulang versi patch
ke 0. Perbaikan bug kritis hanya akan mengubah versi patch
.
Rilis LTS baru merupakan cabang dari main dan akan diberi tag LTS_
. Rilis LTS baru akan mewarisi versi dari cabang utama pada saat rilis. Cabang LTS diberi nama lts_mm_yyyy
untuk bulan dan tahun cabang tersebut dibuat.
Rilis LTS yang diperbarui akan terjadi ketika perbaikan bug penting (termasuk pembaruan keamanan) di-porting dari cabang utama. Rilis yang diperbarui ini akan diberi tag dengan cara yang sama kecuali untuk Ref## yang terbentur, misalnya LTS_
. Versi patch
juga akan ditingkatkan. Tidak ada fitur baru dan perbaikan bug umum yang akan di-porting ke pembaruan LTS.
Di bawah ini adalah tabel yang menunjukkan pemetaan cabang LTS ke paket yang dirilis.
Kemasan | Cabang GitHub | Tag LTS | Tanggal Mulai LTS | Tanggal Berakhir Pemeliharaan |
---|---|---|---|---|
vcpkg: 12-08-2024 | lts_08_2024 | LTS_08_2024 | 12-08-2024 | 12-08-2025 |
vcpkg: 04-03-2024 | lts_03_2024 | LTS_03_2024 | 04-03-2024 | 04-03-2025 |
'Tanggal Berakhir Pemeliharaan' mengacu pada akhir masa pakai dukungan versi terkait.
Di bawah ini adalah contoh hipotetis pembuatan versi dan penandaan untuk C SDK. versi minor
dibedakan berdasarkan warna.
1.9.0
, dan rilisnya diberi tag 2020-02-23
.LTS_07_2020
. Cabang utama mencapai 1.10.0 dan diberi tag 1.10.0
.2020-08-02
.1.10.1
, dan rilisnya diberi tag 2020-09-28
. Perbaikan bug penting di-porting ke rilis lts LTS_07_2020
(dan cabang LTS lain yang ada) dengan membuat cabang dengan nama lts_07_2020_ref02
, versinya ditingkatkan menjadi 1.9.1 dan diberi tag 1.9.1
dan LTS_07_2020_Ref02
. Submodul apa pun yang merupakan bagian dari perbaikan bug penting akan ditandai dengan LTS_07_2020_Ref02
.1.11.0
, dan rilisnya diberi tag sebagai 2020-12-14
.Proyek ini telah mengadopsi Kode Etik Sumber Terbuka Microsoft. Untuk informasi lebih lanjut lihat FAQ Pedoman Perilaku atau hubungi [email protected] jika ada pertanyaan atau komentar tambahan.
Microsoft mengumpulkan informasi kinerja dan penggunaan yang dapat digunakan untuk menyediakan dan meningkatkan produk dan layanan Microsoft serta menyempurnakan pengalaman Anda. Untuk mempelajari lebih lanjut, tinjau pernyataan privasi.