AWS IoTLowongan kerja perpustakaan demo - Gratis RTOS

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

AWS IoTLowongan kerja perpustakaan demo

penting

Demo ini di-host di repositori Amazon-freertos yang tidak digunakan lagi. Kami menyarankan Anda mulai di sini ketika Anda membuat proyek baru. Jika Anda sudah memiliki proyek FreeRTOS yang sudah ada berdasarkan repositori Amazon-freertos yang sekarang tidak digunakan lagi, lihatPanduan Migrasi Repositori Github Amazon-freertos.

Pengantar

Demo perpustakaanAWS IoT Pekerjaan menunjukkan kepada Anda cara terhubung ke layananAWS IoT Pekerjaan melalui koneksi MQTT, mengambil pekerjaan dariAWS IoT, dan memprosesnya di perangkat. Proyek demoAWS IoT Jobs menggunakan port FreeRTOS Windows, sehingga dapat dibangun dan dievaluasi dengan versi Visual Studio Community di Windows. Tidak diperlukan perangkat keras mikrokontroler. Demo membuat koneksi aman ke brokerAWS IoT MQTT menggunakan TLS dengan cara yang sama sepertiDemo otentikasi timbal balik CoremQTT.

catatan

Untuk mengatur dan menjalankan demo FreeRTOS, ikuti langkah-langkah di dalamnyaMemulai dengan FreeRTOS.

Organisasi kode sumber sumber sumber sumber sumber sumber sumber

Kode demo ada dijobs_demo.c file dan dapat ditemukan di GitHubsitus web atau difreertos/demos/jobs_for_aws/ direktori.

Konfigurasikan koneksi brokerAWS IoT MQTT

Dalam demo ini, Anda menggunakan koneksi MQTT ke brokerAWS IoT MQTT. Koneksi ini dikonfigurasi dengan cara yang sama sepertiDemo otentikasi timbal balik CoremQTT.

Fungsionalitas

Demo menunjukkan alur kerja yang digunakan untuk menerima pekerjaan dariAWS IoT dan memprosesnya di perangkat. Demo ini interaktif dan mengharuskan Anda untuk membuat pekerjaan dengan menggunakanAWS IoT konsol atauAWS Command Line Interface (AWS CLI). Untuk informasi selengkapnya tentang membuat pekerjaan, lihat create-job di ReferensiAWS CLI Perintah. Demo mengharuskan dokumen pekerjaan untuk memiliki setaction kunciprint untuk mencetak pesan ke konsol.

Lihat format berikut untuk dokumen pekerjaan ini.

{ "action": "print", "message": "ADD_MESSAGE_HERE" }

Anda dapat menggunakanAWS CLI untuk buat sebuah tugas seperti pada contoh berikut perintah.

aws iot create-job \ --job-id t12 \ --targets arn:aws:iot:region:123456789012:thing/device1 \ --document '{"action":"print","message":"hello world!"}'

Demo juga menggunakan dokumen pekerjaan yang memilikiaction kunci ditetapkanpublish untuk mempublikasikan ulang pesan ke topik. Lihat format berikut untuk dokumen pekerjaan ini.

{ "action": "publish", "message": "ADD_MESSAGE_HERE", "topic": "topic/name/here" }

Demo loop sampai menerima dokumen pekerjaan denganaction kunci yang ditetapkanexit untuk keluar dari demo. Format untuk dokumen pekerjaan adalah sebagai berikut.

{ "action: "exit" }

Titik masuk demo Jobs

Kode sumber untuk fungsi titik masuk demo Jobs dapat ditemukan di GitHub. Fungsi ini melakukan operasi berikut:

  1. Membangun koneksi MQTT menggunakan fungsi pembantu dimqtt_demo_helpers.c.

  2. Berlangganan topik MQTT untukNextJobExecutionChanged API, menggunakan fungsi pembantu dimqtt_demo_helpers.c. String topik dirakit sebelumnya, menggunakan makro yang ditentukan oleh pustakaAWS IoT Jobs.

  3. Publikasikan ke topik MQTT untukStartNextPendingJobExecution API, menggunakan fungsi pembantu dimqtt_demo_helpers.c. String topik dirakit sebelumnya, menggunakan makro yang ditentukan oleh pustakaAWS IoT Jobs.

  4. Berulang kali meneleponMQTT_ProcessLoop untuk menerima pesan masuk yang diserahkanprvEventCallback untuk diproses.

  5. Setelah demo menerima tindakan keluar, berhenti berlangganan dari topik MQTT dan putuskan sambungan, menggunakan fungsi pembantu dalammqtt_demo_helpers.c file.

Callback untuk pesan MQTT yang diterima

prvEventCallbackFungsi panggilanJobs_MatchTopic dari perpustakaanAWS IoT Jobs untuk mengklasifikasikan pesan MQTT yang masuk. Jika jenis pesan sesuai dengan pekerjaan baru,prvNextJobHandler() dipanggil.

Fungsi prvNextJobHandler, dan fungsi yang dipanggilnya, mengurai dokumen pekerjaan dari pesan berformat JSON, dan menjalankan tindakan yang ditentukan oleh pekerjaan. Yang menarik adalahprvSendUpdateForJob fungsinya.

Mengirim pembaruan untuk pekerjaan yang sedang berjalan

Fungsi prvSendUpdateForJob() memanggilJobs_Update() dari pustaka Jobs untuk mengisi string topik yang digunakan dalam operasi penerbitan MQTT yang segera mengikuti.