Pendahuluan

Dokumentasi ini akan menjelaskan kepada anda bagaimana Modul LoRa STM32 dapat terhubung dengan platform Antares. Pada tutorial ini modul atau papan pengembang yang digunakan adalah seri STM32 LoRa Discovery Kit B-L072-LRWAN1 dan IDE yang digunakan adalah STM32Cube IDE, untuk penggunaan modul lainnya anda dapat menyesuaikan dengan langkah yang ada pada tutorial ini. Untuk anda yang menggunakan Arduino IDE, dapat mengikuti tutorial berikut.

Hardware

Untuk mengikuti tutorial pada halaman ini berikut adalah beberapa perangkat yang kita butuhkan:

  • Board STM32L072 LoRa Discovery Kit
  • Papan yang digunakan pada tutorial ini adalah STM32 LoRa Discovery Kit B-L072-LRWAN1.
  • Kabel Micro USB to USB
  • Untuk menghubungkan papan anda dengan PC anda.

Software

Berikut adalah beberapa software yang dibutuhkan untuk menjalankan contoh-contoh pada dokumentasi ini:

  • STM32 Cube IDE
  • Software utama yang akan digunakan untuk memprogram papan STM32, telah dilengkapi pula dengan fitur STM32 Cube MX untuk konfigurasi pin .
    Download STM32 Cube IDE
  • I-CUBE-LRWAN
  • I-CUBE-LRWAN merupakan paket ekspansi yang disediakan oleh STMicroelectronis telah dilengkapi dengan beberapa library yang dibutuhkan dan juga beberapa contoh program yang siap digunakan dan dimodifikasi.
    Download I-CUBE-LRWAN
  • Library AS923 untuk I-CUBE-LRWAN
  • Agar dapat kompatibel dengan frekuensi LoRa yang ada di Indonesia dan yang di deploy oleh PT Telkom Indonesia maka anda perlu untuk mengganti beberapa file library yang digunakan menggunakan file yang telah disediakan oleh kami berikut:
    Download Library AS923

Proses Instalasi dan Konfigurasi Awal

Segmen berikut akan menjelaskan bagaimana langkah-langkah awal instalasi dan konfigurasi untuk anda dapat memulai memrogram papan STM32 anda.


Gambar 1. Halaman Unduh STM32Cube IDE

Jika pada PC anad belum terpasang perangkat lunak STM32Cube IDE maka anda dapat mengunjungi halaman Download pada laman resmi STMicroelectronics. Anda dapat memilih sistem operasi sesuai dengan yang anda gunakan, anda hanya perlu mengisikan beberapa data seperti nama dan email saja untuk dapat mengunduh STM32Cube IDE, atau bagi anda yang sudah memiliki akun juga dapat langsung Log-In menggunakan akun anda. Setelah melakukan pengunduhan maka langkah selanjutnya adalah instalasi yag dilakukan seperti biasa sesuai dengan sistem operasi masing-mqasing.


Gambar 2. Halaman Unduh STM32 LoRaWAN Software Expansion Pack

Untuk memudahkan para pengembang dalam mengembangkan papan STM32, STMicroelectronics telah menyediakan Software Expansion Pack yang terdiri dari beberapa library, dan juga contoh program yang dapat kita coba dan pelajari. Anda dapat mengunduhnya secara gratis pada link berikut.

Setelah melakukan pengunduhan expansion pack yang dibutuhkan maka anda dapat mengekstrak file yang telah di download pada direktori sesuai yang anda inginkan.


Gambar 3. Ekstrak file Library AS923

Gambar 4. ganti file AS923.c dan AS923.h yang ada pada software expansion pack dengan file library baru yang di unduh dari Antares

Kemudian anda perlu mengunduh file library AS923 dan lakukan ekstrak pada direktori software expansion package yang sudah anda ekstrak sebelumnya ../Middleware/Third_Party/LoRaWAN/Mac/Region, pastika file AS923.c dan AS943.h yang baru saja anda unduh menggantikan fila yang lama.



Memulai Application Baru

Setelah selesai melakukan instalasi dan konfigurasi awal maka anda dapat memulai membuat application menggunakan STM32Cube IDE yang akan terintegrasi dengan platform Antares.

Gambar 5. Memulai dengan membuat workspace baru

STM32Cube IDE menggunakan workspace untuk menyimpan file application yang akan kita buat. Anda dapat meninggalkannya secara default, atau membuat workspace baru, serta memilih workspace yang pernah anda buat.

Gambar 6. Import Application SW4STM32

Untuk mwnggunakan contoh application yang telah disediakan oleh software expansion I-CUBE-LRWAN anda dapat mengimport application yang telah disediakan pada folder ekspansi tersebut. Pada contoh kali ini kita akan menggunakan file application SW4STM32 untuk diimpor kedalam application STM32CUbe IDE kita.

Gambar 7. Pilih direktori application

Pada contoh ini kita akan mengimpor application End Node untuk mendemonstrasikan proses pengiriman data dari papan B-STM32L072-LRWAN1 Discovery kit ke platform Antares. anda dapat menemukan file application SW4STM32 pada direktori ..\Projects \B-L072Z-LRWAN1 \Applications \LoRa \End_Node \SW4STM32


Registrasi Parameter Aktivasi LoRa

Gambar 8. Memilih aktivasi OTAA atau ABP enggunakan STM32Cube IDE

Agar perangkat anda dapat terhubung dengan platform Antares maka anda perlu melakukan registrasi dan sinkronisasi beberapa parameter yang perlu dilakukan baik pada perangkat anda maupun pada platform Antares. Untuk dapat mengetahui langkah-langkah registrasi perangkat pada platform Antares, anda dapat memeplajarinya pada tutorial berikut.

Kemudian untuk melakukan registrasi parameter pada perangkat STM32 anda, anda dapat melakukannya pada file Commissioning.h yang dapat ditemukan pada I-CUBE-LRWAN expansion pacakge pada direktori ..\Projects\ B-L072Z-LRWAN1\ Applications\ LoRa\ End_Node\ LoRaWAN\ App\ inc

Sebagai contoh, anda dapat menentukan perangkat anda akan melakukan aktivasi dengan metode OTAA atau ABP pada baris kode 85, dapat melakukan konfigurasi device address pada baris kode ke 161, konfigurasi device eui pada baris kode ke 118, dan masih banyak parameter yang dapat anda konfigurasi sesuai dengan spesifikasi kebutuhan anda.

/*!
 * \file      Commissioning.h
 *
 * \brief     End device commissioning parameters
 *
 * \copyright Revised BSD License, see section \ref LICENSE.
 *
 * \code
 *                ______                              _
 *               / _____)             _              | |
 *              ( (____  _____ ____ _| |_ _____  ____| |__
 *               \____ \| ___ |    (_   _) ___ |/ ___)  _ \
 *               _____) ) ____| | | || |_| ____( (___| | | |
 *              (______/|_____)_|_|_| \__)_____)\____)_| |_|
 *              (C)2013-2017 Semtech
 *
 * \endcode
 *
 * \author    Miguel Luis ( Semtech )
 *
 * \author    Gregory Cristian ( Semtech )
 */
/**
  ******************************************************************************
  * @file    commissioning.h
  * @author  MCD Application Team
  * @brief   End device commissioning parameters
  ******************************************************************************
  * @attention
  *
  * 

© Copyright (c) 2018 STMicroelectronics. * All rights reserved.

* * This software component is licensed by ST under Ultimate Liberty license * SLA0044, the "License"; You may not use this file except in compliance with * the License. You may obtain a copy of the License at: * www.st.com/SLA0044 * ****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __LORA_COMMISSIONING_H__ #define __LORA_COMMISSIONING_H__ #ifdef __cplusplus extern "C" { #endif /*! ****************************************************************************** ********************************** WARNING *********************************** ****************************************************************************** The crypto-element implementation supports both 1.0.x and 1.1.x LoRaWAN versions of the specification. Thus it has been decided to use the 1.1.x keys and EUI name definitions. The below table shows the names equivalence between versions: +---------------------+-------------------------+ | 1.0.x | 1.1.x | +=====================+=========================+ | LORAWAN_DEVICE_EUI | LORAWAN_DEVICE_EUI | +---------------------+-------------------------+ | LORAWAN_APP_EUI | LORAWAN_JOIN_EUI | +---------------------+-------------------------+ | LORAWAN_GEN_APP_KEY | LORAWAN_APP_KEY | +---------------------+-------------------------+ | LORAWAN_APP_KEY | LORAWAN_NWK_KEY | +---------------------+-------------------------+ | LORAWAN_NWK_S_KEY | LORAWAN_F_NWK_S_INT_KEY | +---------------------+-------------------------+ | LORAWAN_NWK_S_KEY | LORAWAN_S_NWK_S_INT_KEY | +---------------------+-------------------------+ | LORAWAN_NWK_S_KEY | LORAWAN_NWK_S_ENC_KEY | +---------------------+-------------------------+ | LORAWAN_APP_S_KEY | LORAWAN_APP_S_KEY | +---------------------+-------------------------+ ****************************************************************************** ****************************************************************************** ****************************************************************************** */ /*! * When set to 1 the application uses the Over-the-Air activation procedure * When set to 0 the application uses the Personalization activation procedure */ #define OVER_THE_AIR_ACTIVATION 0 /*! * When using ABP activation the MAC layer must know in advance to which server * version it will be connected. */ #define ABP_ACTIVATION_LRWAN_VERSION_V10x 0x01000300 // 1.0.3.0 #define ABP_ACTIVATION_LRWAN_VERSION ABP_ACTIVATION_LRWAN_VERSION_V10x /*! * Indicates if the end-device is to be connected to a private or public network */ #define LORAWAN_PUBLIC_NETWORK true /*! * IEEE Organizationally Unique Identifier ( OUI ) (big endian) * \remark This is unique to a company or organization */ #define IEEE_OUI 0x01, 0x01, 0x01 /*! * When set to 1 DevEui is LORAWAN_DEVICE_EUI * When set to 0 DevEui is automatically generated by calling * BoardGetUniqueId function */ #define STATIC_DEVICE_EUI 0 /*! * Mote device IEEE EUI (big endian) * * \remark see STATIC_DEVICE_EUI comments */ #define LORAWAN_DEVICE_EUI { IEEE_OUI, 0x01, 0x01, 0x01, 0x01, 0x01 } /*! * App/Join server IEEE EUI (big endian) */ #define LORAWAN_JOIN_EUI { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 } /*! * Application root key * WARNING: NOT USED FOR 1.0.x DEVICES */ #define LORAWAN_APP_KEY { 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C } /*! * Application root key - Used to derive Multicast keys on 1.0.x devices. * WARNING: USED only FOR 1.0.x DEVICES */ #define LORAWAN_GEN_APP_KEY { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F } /*! * Network root key * WARNING: FOR 1.0.x DEVICES IT IS THE \ref LORAWAN_APP_KEY */ #define LORAWAN_NWK_KEY { 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C } /*! * Current network ID */ #define LORAWAN_NETWORK_ID ( uint32_t )0 /*! * When set to 1 DevAdd is LORAWAN_DEVICE_ADDRESS * When set to 0 DevAdd is automatically generated using * a pseudo random generator seeded with a value derived from * BoardUniqueId value */ #define STATIC_DEVICE_ADDRESS 0 /*! * Device address on the network (big endian) * * \remark see STATIC_DEVICE_ADDRESS comments */ #define LORAWAN_DEVICE_ADDRESS ( uint32_t )0x00000000 /*! * Forwarding Network session integrity key * WARNING: NWK_S_KEY FOR 1.0.x DEVICES */ #define LORAWAN_F_NWK_S_INT_KEY { 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C } /*! * Serving Network session integrity key * WARNING: NOT USED FOR 1.0.x DEVICES. MUST BE THE SAME AS \ref LORAWAN_F_NWK_S_INT_KEY */ #define LORAWAN_S_NWK_S_INT_KEY { 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C } /*! * Network session encryption key * WARNING: NOT USED FOR 1.0.x DEVICES. MUST BE THE SAME AS \ref LORAWAN_F_NWK_S_INT_KEY */ #define LORAWAN_NWK_S_ENC_KEY { 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C } /*! * Application session key */ #define LORAWAN_APP_S_KEY { 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C } #ifdef __cplusplus } #endif #endif /* __LORA_COMMISSIONING_H__ */

Build dan pre-Build Program

Secara default program yang terdapat pada ekspansi I-CUBE-LRWAN akan aktif dengan library region EU868, oelh karena itu sebelum melakukan build program, anda perlu melakukan beberapa pengaturan yang dibutuhkan agar program, yang telah anda buat dapat bekerja sesuai dengan spesifikasi LoRa indonesia yang telah disesuaikan pada library AS923.

Gambar 9. Pilih Project > Properties

Anda dapat memilih penggunaan library AS923 pertama-tama anda dapat memilih tab Project>Properties, kemudian akan terbuka jendela Properties.

Gambar 10. Mengganti Region_EU868 menjadi Region_AS923

Setelah terbuka jendela properties, maka langkah selanjutya anda dapat memilih C/C++ Build > Settings > Tool Settings > Preprocessor > Ganti "Region_EU868" menjadi "Region_AS923"

Gambar 11. Build all application

Setelah diganti menjadi Region_AS923, maka anda dapat mem-build application anda dengan cara CTRL+B, atau dapat juga memilih tab Project > Build All dan dapat juga dengan klik icon

Gambar 12. Debug Application

Kemudian anda dapat debug program anda kedalam papan B-L072Z-LRWAN dengan cara klik F11 atau klik tab Run > Debug, serta dapat juga klik icon


Untuk dapat melakukan downlink pada End-Devices, anda dapat menggunakan salah satu perangkat lunak bernama Postman yang dapat anda pelajari pada tutorial berikut. Lalu anda dapat memantaunya pada serial monitor pada STM32Cube IDE. Untuk dapat membuka serial monitor pada STM32Cube IDE, anda dapat mengikuti langkah berikut

Gambar 13, Pertama anda perlu mengetahui posisi console yang ditunjukkan panah pada gambar berikut

Gambar< 14. Lalu anda perlu membuka Command Shell Console/p>

Gambar 15. Maka akan terbuka jendela Remote COnnection, lalu tentukan Connection Type

Gambar 16. Pilih jenis koneksi Serial Port

Gambar 17. Buatlah pengaturan Connection name baru

Gambar 18. Isikan Connection name sesuai dengan keinginan anda, dan Serial Port sesuai dengan yang anda gunakan, lalu klik Finish

Gambar 19. pesan downlink yang ditampilkan pada serial monitor hasil dari POST menggunakan postman


Tutorial Video

Dibawah ini berikut kami menyertakan sebuah video tutorial untuk memudahkan anda lebih memahami penjelasan kami di atas. Jika membutuhkan informasi lebih lanjut, jangan ragu hubungi kami melalui [email protected]