วันจันทร์ที่ 28 พฤษภาคม พ.ศ. 2561

วิธีการ Connect/Config อุปกรณ์ CAT Starter Kit STM32 DISCO-L072Z-LRWAN1 ใช้กับ CAT LoRa Network


            วันนี้เราจะมาลองใช้งาน Board LoRa ที่เรา Pre Order มาจาก CAT กันดูครับ ว่าจะเชื่อมต่อระบบ LoRa Network ของ CAT ยังไงและต้องไป Config ค่าอะไรให้กับตัว Board บ้างคับ หลังจากที่ CAT เริ่มส่ง mail แจ้งรายละเอียด Keys ที่จำเป็นสำหรับเข้าใช้งานในระบบกันบ้างแล้ว แต่คุณต้องอยู่ในพื้นที่ที่มี GW ของ CAT ให้บริการนะครับ เท่าที่ทราบตอนนี้ คนที่มี Board แล้วสามารถมาทดสอบการเชื่อมต่อระบบได้ที่ ศูนย์บริการลูกค้าหลักสี่ กทม ครับ โดยส่ง email ไปสอบถามทางทีมงานก่อนก็ได้ครับ ว่าเราอยากเข้าไปทดสอบ สามารถเข้าไปทดสอบได้ วันและเวลาอะไร ทางเจ้าหน้าที่จะมี Account สำหรับทดสอบการเชื่อมต่อให้ครับ


             อุปกรณ์ที่ CAT จัดส่งให้ในรอบแรก เป็น Starter Kit ค่าย STM รุ่น STM32 LoRa Discovery kit for L072 MCU B-L072Z-LRWAN1 หรือเรียกว่า DISCO-L072Z-LRWAN1 อย่างที่บอกในบทความก่อนหน้านี้ ว่า Borad นี้สามารถใช้งาน Lora และ Sigfox ได้ในตัวเดียวกัน แต่ในบทความนี้เราจะพูดึงการใช้งาน Lora เป็นหลักนะครับ มาดู Pins Legend ที่จะใช้งานบน Board กันก่อนว่ามีอะไรบ้าง







            ก่อนอื่นเลยต้องมีโปรแกรม 2 ตัวหลักๆเลย คือ Tera Term และ Keil uVision5 โดย Tera Term เราใช้สำหรับ Check DevAdd และดูการรับส่งสัญญาณ TX/RX ว่ามีการรับส่งสัญญาณเกิดขึ้นหรือไม่ ส่วน Keil uVision5 เราใช้เขียน Code ที่ต้องการให้ Board ทำงานตามที่ต้องการโดยต้อง Load Libraries LoRa เข้ามาใช้งานด้วย

           เข้าไป Download Tera Term ที่ https://osdn.net/projects/ttssh2/releases/ เลือก teraterm-4.98.exe เสร็จเรียบร้อยก็ NEXT Install ครับ



            เข้าไป Download Keil uVision5 ได้ที่ https://www.keil.com/download/product/ โดยเลือก MDK-Arm Version 5.25 (March 2018) จะเป็นหน้ากรอกรายละเอียดข้อมูลผู้ใช้งาน กด Submit web จะพาไปหน้า Download : MDK525.EXE (857,517K) เสร็จเรียบร้อยก็ NEXT Install ครับ
          เมื่อ Install เสร็จเรียบร้อยแล้วจะได้ Icon ประมาณนี้ ทีนี้ก็เปิดโปรแกรมคับ อ่อ โปรแกรมอาจจะต้อง Register เพื่อใช้งานโดยสามารถขอ Key เพื่อใช้งาน Free ได้ที่ website นะครับ

          เสียบสาย USB จะเห็นว่ามี ไฟสีแดงติดอยู่ 2 จุดบน Board (LD7 ,LD5) เปิด Tera Term ขึ้นมา เลือก Port Serial ที่เราใช้งาน เครื่องใครที่ Port ไม่ขึ้นอาจจะต้องลง Driver STSW-LINK009 ให้เครื่องเห็น Port ให้ได้ก่อนนะครับ


เรียบร้อยแล้วจะได้หน้าจอสีดำ ลองกดปุ่มสีดำ (RESET) บน Board ดูจะได้เป็นภาษาต่างดาวประมาณนี้ครับ


ไม่ต้องตกใจนะคับ ถือว่ามาถูกทางแล้ว Config Setup >Terminal เลือก Receive&Transmit เป็น CR+LF


Config Setup > Serial Port : 115200


ลองกดปุ่ม RESET ดูอีกทีจะเห็นข้อมูล DevEui,DevAdd,NwkSKey,AppSKey แสดงขึ้นมาประมาณนี้ครับ


           ทีนี้เรามาดู Config เพื่อเชื่อมเข้ากับ CAT Lora Network กันต่อ เอาค่าที่ทาง CAT แจ้งมา DevEui,DevAdd,NwkSKey,AppSKey มาใช้งาน โดยเข้าไป Login : https://loraiot.cattelecom.com/portal/login โดยใช้ User/Password ที่ได้รับแจ้งทาง Mail และเข้าไป Config ในระบบตามคู่มือ (คู่มือ) ที่แจ้งมา ขอไม่อธิบายนะครับ เพราะน่าจะดูได้ตามคู่มืออยู่แล้ว


             เรียบร้อยแล้วก็ Download Code สำหรับใช้งาน Board STM32 (ที่ I-CUBE-LRWAN หรือ ที่นี่) และเปิดด้วยโปรแกรม Keil uVision เลือกเปิด Project แล้ว Click ขวาที่ main folder : mlm32l07x01 > Options for Target

เลือก Tab : C/C++ แก้ไข Dfilne เปลี่ยน REGION_EU868 เป็น REGION_AS923 (STM32L072xx,USE_B_L072Z_LRWAN1,USE_HAL_DRIVER, REGION_AS923) เพื่อกำหนดให้ใช้งานความถี่ AS923 ของ CAT


กด Build (F7) เพื่อ load library ต่างๆก่อนนะคับ จะเห็นว่า หลังจาก build project แล้วจะมี subdirectory หน้า file Projects/End_Node > main.c ขึ้นมา


เลือก Projects/End_Node > main.c  เพื่อ กำหนด Class บรรทัดที่ 95 :
#define LORAWAN_DEFAULT_CLASS CLASS_C

เลือก Projects/End_Node > main.c > hw_conf.h เพื่อ Enable บรรทัดที่ 129 :
#define DEBUG

เข้าไปแก้ไขค่า Config ต่างๆใน Projects/End_Node > main.c > Commissioning.h โดยแก้ไขตัวแปรตามนี้ {ค่าต่างๆต้องอยู่ในรูปแบบ  0x01, 0x01 ,0x01, .... นะครับ}

#define OVER_THE_AIR_ACTIVATION       0
#define STATIC_DEVICE_EUI                        1
#define STATIC_DEVICE_ADDRESS            1
#define LORAWAN_DEVICE_EUI                 {DevEui}
#define LORAWAN_DEVICE_ADDRESS     ( uint32_t ){DevAdd}
#define LORAWAN_NWKSKEY                    {0x28, 0xAE, 0xD2, 0x2B, 0x7E, 0x15, 0x16, 0xA6, 0x09, 0xCF, 0xAB, 0xF7, 0x15, 0x88, 0x4F, 0x3C}
#define LORAWAN_APPSKEY                      {0x16, 0x28, 0xAE, 0x2B, 0x7E, 0x15, 0xD2, 0xA6, 0xAB, 0xF7, 0xCF, 0x4F, 0x3C, 0x15, 0x88, 0x09}

            Config นี้เป็นการเชื่อมต่อแบบ ABP นะครับ แก้ไขเสร็จเรียบร้อยแล้ว กด Rebuild Project เสร็จแล้ว กด Load เพื่อเขียน Code ลง Board จะเห็นว่าเวลา Load Code ไฟ LD5 จะมีการกระพริบถี่ๆ จนกว่าจะ Load เสร็จ

ที่นี้กลับมาดูที่ Tera Term กด RESET ที่ Board อีกครั้ง จะเห็นค่า Config ต่างๆที่เราแก้ไขไป (DevEui,DevAdd,NwkSKey,AppSKey ) Check ว่าถูกต้องรึหรือไม่

           ถ้าถูกต้อง Board จะส่งค่า TX/RX เข้าระบบ CAT Lora Network และจะขึ้นว่า txDone , rxDone กรณีที่ใช้งานได้ปกตินะครับ

          เข้าไป Check Logger อุปกรณ์ของเราที่ https://loraiot.cattelecom.com/portal/login เลือก DevEUI ของอุปกรณ์ที่ต้องการจะดู ว่ามีข้อมูลส่งเข้ามาในระบบหรือไม่


ส่วนจะไปเขียน Code เพื่อส่งค่า Sensor ต่างๆ เพิ่มเติมนั้น ค่อยมาต่อกันในบทความหน้านะครับ




CR : https://os.mbed.com/platforms/ST-Discovery-LRWAN1/
CR: CAT LoRa IoT Team


3 ความคิดเห็น:

  1. พี่ครับ ตอนที่กดreset แล้วข้อมูลDevEui,DevAdd,NwkSKey,AppSKey มันไม่ขึ้นอ่ะครับ มันเป็นที่อะไรเหรอครับ

    ตอบลบ
  2. rxtimeout นี่เป็นที่อะไรครับผม

    ตอบลบ