เริ่มต้นใช้งานบอร์ด Quectel EC200U 4G LTE Cat 1 IoT ด้วย QNavigator และ QuecOpen SDK

CNXSoft: บทความนี้เป็นการโพสต์จาก Eicut ที่มาแบ่งปันวิธีเริ่มต้นใช้งานบอร์ดพัฒนา Quectel EC200U 4G TLE Cat 1 IoT โดยใช้ QNavigator และ QuecOpen SDK

ในโปรเจกต์ IoT และโดยรวมในระบบสมองกลฝังตัว (Embedded Systems) — เราได้เห็นความต้องการที่เพิ่มขึ้นของอัตราการแลกเปลี่ยนข้อมูลที่สูงขึ้น ควบคู่ไปกับการรองรับย่านความถี่ที่กว้างขึ้น ความก้าวหน้าเหล่านี้ถือเป็นสิ่งสำคัญต่อการเพิ่มความน่าเชื่อถือของการเชื่อมต่อสื่อสารระหว่างอุปกรณ์กับเครือข่าย ดังนั้นโมดูล 4G ที่สามารถถอยกลับ (fallback) ไปยังเครือข่าย 2G และ 4G ได้ จึงได้กลายเป็นหนึ่งในโซลูชันหลักของวงการ แต่คำถามสำคัญยังคงอยู่ก็คือ: เราควรเลือกใช้โมดูลใดเพื่อใช้ประโยชน์จากเทคโนโลยีนี้ และโมดูลเหล่านั้นมีคุณสมบัติอะไรบ้าง?

โมดูล Quectel EC200U LTE Cat 1 สำหรับ IoT

ในส่วนนี้ของ EC200U tutorial เราจะมาดูรายละเอียด — โมดูล EC200U ของ Quectel ถ้าคุณเคยทำงานกับโมดูล LTE Cat 1 มาก่อน น่าจะเคยพบเจอโมดูลตัวนี้ (หรืออาจจะเคยนำไปใช้พัฒนาผลิตภัณฑ์แล้วด้วยซ้ำ) แต่ถ้าคุณยังใหม่กับ EC200U มีการแนะนำสั้น ๆ

EC200U เป็นซีรีส์โมดูล LTE Cat 1 ที่ถูกออกแบบมาให้เหมาะสมกับงาน M2M (Machine-to-Machine) และ IoT รองรับการถอยกลับไปใช้เครือข่าย 2G เมื่อเครือข่าย 4G ใช้งานไม่ได้ เพื่อให้มั่นใจได้ว่าการเชื่อมต่อยังคงเสถียร โดยสามารถทำความเร็วได้สูงสุด 10 Mbps (ดาวน์โหลด) และ 5 Mbps (อัปโหลด) ผ่าน LTE-FDD (Frequency-Division Duplexing) และทำความเร็วได้สูงสุด 8.96 Mbps (ดาวน์โหลด) และ 3.1 Mbps (อัปโหลด) ผ่าน LTE-TDD (Time-Division Duplexing)

คุณสมบัติเด่นและรุ่นย่อย

  • ฟอร์มแฟกเตอร์แบบ Mini PCIe เพื่อรองรับการใช้งานร่วมกับอุตสาหกรรมได้อย่างกว้างขวาง
  • มีรุ่นย่อย 3 แบบตามภูมิภาค:
    • EC200U-CN (จีน/อินเดีย)
    • EC200U-EU (ยุโรป, ตะวันออกกลาง, แอฟริกา, ออสเตรเลีย, นิวซีแลนด์)
    • EC200U-AU (ลาตินอเมริกา)

แต่ละรุ่นย่อยรองรับย่านความถี่ที่ตรงกับตลาดเป้าหมาย โดยโมดูลนี้ยังรองรับโปรโตคอลและอินเทอร์เฟซที่หลากหลาย พร้อมไดรเวอร์ USB สำหรับ Windows 8.1/10/11, Linux และ Android ทำให้เหมาะสำหรับการใช้งานในระบบ POS, อุปกรณ์ POC และโซลูชัน IoT อื่น ๆ

นอกเหนือจากการเชื่อมต่อพื้นฐานแล้ว EC200U ยังมีความสามารถเพิ่มเติม ได้แก่:

  • รองรับการครอบคลุม LTE & GSM/GPRS ทั่วโลก
  • อินเทอร์เฟซสำหรับการพัฒนาแอปพลิเคชันที่หลากหลาย
  • รองรับการใช้งาน เสียงแบบแอนะล็อก
  • มีระบบ GNSS ในตัว (รองรับ GPS/GLONASS/BeiDou/Galileo)
  • ฟังก์ชัน Wi-Fi scanning, Bluetooth และ FOTA (Firmware Over-the-Air updates)

สามเวอร์ชัน: AB vs AA vs AC

EC200U มีด้วยกัน 3 เวอร์ชันย่อย (AB, AA และ AC) ซึ่งเราจะมาเปรียบเทียบรายละเอียดในภายหลัง จุดเด่นคือ ทุกรุ่นใช้ฟุตพรินต์ (footprint) และเลเยอร์ซอฟต์แวร์เหมือนกันทุกประการ ทำให้สามารถสลับใช้งานระหว่างกันในโปรเจกต์ได้โดยไม่เกิดปัญหาความเข้ากันได้

คุณสมบัติEC200U-EU ABEC200U-EU AAEC200U-EU AC
LTE CategoryCat 1Cat 1Cat 1
ความเร็วดาวน์โหลดสูงสุด10 Mbps10 Mbps10 Mbps
ความเร็วอัปโหลดสูงสุด5 Mbps5 Mbps5 Mbps
รองรับ GNSSไม่รองรับรองรับไม่รองรับ
BLEรองรับรองรับไม่รองรับ
ฟอร์มแฟกเตอร์LCC PackageLCC PackageLCC Package

แพลตฟอร์มการพัฒนา QuecOpen

หนึ่งในคุณสมบัติเด่นของโมดูลนี้ และเป็นหัวใจของซีรีส์บทเรียนนี้ก็คือ QuecOpen ซึ่งมีการทำงานคล้ายกับ OpenCPU (ที่หลายคนอาจคุ้นเคยจากโมดูล 2G ของ Quectel เช่น MC60 และ M66)

ด้วย QuecOpen นักพัฒนาสามารถเขียนเฟิร์มแวร์ของอุปกรณ์ให้รันโดยตรงบนโมดูลได้ โดยไม่จำเป็นต้องใช้ไมโครคอนโทรลเลอร์ภายนอกในหลาย ๆ กรณี วิธีนี้ไม่เพียงแต่ช่วยให้การออกแบบง่ายขึ้น แต่ยังช่วยลดต้นทุนได้อีกด้วยคล้ายกับสิ่งที่เราเคยเห็นในโมดูล 2G ของ Quectel แต่คราวนี้ถูกยกระดับขึ้นมาเพื่อการใช้งานบนเครือข่าย LTE สามารถดูรายละเอียดเต็มเกี่ยวกับสเปคฮาร์ดแวร์และซอฟต์แวร์ของ EC200U สามารถดูได้จาก datasheet

เริ่มต้นใช้งานบอร์ดพัฒนา Quectel EC200U

คุณจะต้องมีแพลตฟอร์มฮาร์ดแวร์ที่อ้างอิงจากโมดูล Quectel EC200U โดยบทเรียนนี้ใช้บอร์ด EC200U Evaluation Board ของ Eicut (ภาพด้านล่าง) แต่คุณก็สามารถใช้ QuecPython EC200U evaluation board อย่างเป็นทางการที่มีหลายบริษัทผลิตซ้ำออกมาได้เช่นกัน ตัวอย่างเช่น C4-P01 board ของ Waveshare

โปรดทราบว่า โมดูล Quectel EC200U mini PCIe จะไม่สามารถใช้ได้ในกรณีนี้เนื่องจากอินเทอร์เฟซขาดอุปกรณ์ต่อพ่วงหลายอย่าง และปุ่ม USB BOOT ไม่ได้ถูกนำออกมาให้ใช้งาน ทำให้ไม่สามารถแฟลชระบบปฏิบัติการ (OS) ได้

Eicut Quectel EC200U-EU development board
Eicut EC200U evaluation board

EC200U Evaluation Board เป็นแพลตฟอร์มพัฒนาขนาดกะทัดรัดสำหรับโมดูล Quectel EC200U series LTE Cat-1 เหมาะสำหรับการสร้างต้นแบบ (prototyping) ด้าน IoT

อุปกรณ์ต่อพ่วง (peripherals) หลักสำหรับการทดสอบ:

  • ช่องใส่ SIM card และ SD card
  • ขั้วต่อ IPEX จำนวน 3 จุด สำหรับเสาสัญญาณ 4G และ GNSS, เสาเซรามิก WiFi/Bluetooth
  • รองรับโปรโตคอลการสื่อสารหลากหลาย
  • pin header 14 พิน พร้อมสัญญาณ UART, I2C, ADC, 5V, GND

EICUT LTE EVB A bottom pinout diagram

การสื่อสารกับโมดูล

นอกจากการใช้งาน QuecOpen (ที่ได้กล่าวถึงไปก่อนหน้านี้) โมดูล EC200U ยังรองรับการสื่อสารผ่าน AT commands ได้ด้วย:

  • พอร์ต Serial port (อินเทอร์เฟซหลักสำหรับการสื่อสาร)
  • พอร์ต USB 

การตั้งค่าเริ่มต้นด้วย QNavigator

สำหรับการทดสอบพื้นฐานและการส่งคำสั่ง AT commands เราจะใช้ QNavigator software ของ Quectel โดย QNavigator ใช้สำหรับทดสอบโมดูลของ Quectel เท่านั้น การใช้เครื่องมือนี้จะช่วยให้คุณคุ้นเคยกับการทำงานของฟังก์ชันหลัก ๆ เช่น การโทร (Call), ข้อความ SMS, TCP/UDP, PPP และ QuceLocator ได้ แม้ว่าคุณจะไม่รู้จักคำสั่ง AT เลยก็ตาม

  • ผู้ใช้ Windows: เชื่อมต่อบอร์ดผ่าน USB และเปิดใช้งาน QNavigator ได้ทันที
  • ผู้ใช้ Linux: ต้องใช้ Wine เพื่อรันซอฟต์แวร์ที่ทำงานบน Windows

การติดตั้งไดรเวอร์ (เฉพาะ Windows)

เชื่อมต่อโมดูลเข้ากับคอมพิวเตอร์ ถ้าระบบไม่สามารถตรวจจับโมดูลได้อัตโนมัติ:

  1. แตกไฟล์ไดรเวอร์ Windows ของ Quectel (สามารถติดต่อฝ่ายสนับสนุนของ Quectel เพื่อขอรับไดรเวอร์)
  2. รันไฟล์ Setup และทำตามขั้นตอนการติดตั้งจนเสร็จสิ้น

Quectel EC200U drivers

การเชื่อมต่อกับโมดูล

  1. เปิด QNavigator แล้วเลือก พอร์ต COM ที่ถูกต้อง (จะแสดงในหน้าต่างซอฟต์แวร์)
  2. คลิก Connect — เมื่อเชื่อมต่อสำเร็จ ซึ่งจะเห็นการแลกเปลี่ยนข้อมูลแบบเรียลไทม์ระหว่างซอฟต์แวร์กับโมดูล

QNavigator Connect to module Quectel USB AT Port QNavigator Connect to EC200U module Quectel EC200U QNavigator AT commands monitoring

เมื่อโมดูลของคุณทำงานได้ถูกต้อง คุณจะเห็นผลลัพธ์ที่คล้ายกับภาพหน้าจอด้านบน โดยมีคำสั่ง AT commands แสดงอยู่ใน serial console หลังจากเสร็จสิ้นการทดสอบพื้นฐานเหล่านี้แล้ว ก็สามารถดำเนินการต่อไปยังขั้นตอนถัดไปของบทเรียนได้เลย

การทดสอบฟีเจอร์หลัก

  1. การส่ง SMS:
    • เลือกเมนู SMS จากแถบด้านซ้าย
    • กรอกหมายเลขโทรศัพท์ของคุณในช่อง Receiver พิมพ์ข้อความในช่อง Input แล้วกด Send message
    • ถ้าส่งสำเร็จ คุณจะเห็นข้อความยืนยันในคอนโซล (และคุณจะได้รับ SMS บนโทรศัพท์ของคุณ)
      Quectel EC200U QNavigator Send SMS
  2. การโทรออก:
    • ใช้ฟีเจอร์ Call เพื่อทดสอบการเชื่อมต่อเสียง
    • กรอกหมายเลขโทรศัพท์ของคุณลงในช่องแล้วกด CALL
    • การแก้ปัญหา: หากพบข้อผิดพลาด อาจเกิดจาก ซิมการ์ด เสาอากาศ หรือแหล่งจ่ายไฟ
      Quectel EC200U QNavigator Call
  3. คำสั่ง AT แบบกำหนดเอง:
    • สำหรับงานขั้นสูง สามารถใช้ส่วน AT Command เพื่อส่งคำสั่งด้วยตนเองได้ (มีการแสดงรายการคำสั่งที่รองรับทั้งหมดไว้)
      Quectel EC200U QNavigator AT Commands

ขั้นตอนถัดไป

หลังจากทดสอบโมดูลเรียบร้อยแล้ว ตอนนี้เราพร้อมที่จะเจาะลึกไปที่:

  • SDK ของ EC200U
  • การพัฒนาด้วย QuecOpen

EC200U Tutorial Part 2 – การตั้งค่า SDK และโปรเจกต์ Hello World

ในตอนก่อนหน้านี้ เราได้พูดถึงพื้นฐานของโมดูล EC200U และวิธีการสื่อสารไปแล้ว คราวนี้เราจะเจาะลึกการใช้งาน SDK ของโมดูล และลองทำโปรเจกต์ง่าย ๆ อย่าง “Hello World” เพื่อช่วยให้คุณคุ้นเคยกับการเขียนโปรแกรมลงบนโมดูลโดยตรง

ข่าวดีคือ Quectel ได้เตรียมทุกอย่างไว้ให้เกือบหมดแล้ว! SDK มาพร้อมกับโค้ดตัวอย่างที่พร้อมใช้งานสำหรับฟีเจอร์หลัก ๆ ของโมดูล เช่น:

ฟังก์ชันการโทรและส่ง SMS

  • โปรโตคอลการสื่อสาร (รวมถึง MQTT)
  • การอัปเดตเฟิร์มแวร์ระยะไกล
  • การจัดการพลังงาน
  • และอื่น ๆ อีกมากมาย

หมายเหตุ: บทเรียนนี้ใช้บน Debian Linux แต่ผู้ใช้ Windows ก็สามารถทำตามได้เช่นกันโดยเราจะระบุจุดที่แตกต่างให้ระหว่างทาง

การตั้งค่าสภาพแวดล้อมสำหรับการพัฒนา

Tools You’ll Needเครื่องมือที่คุณต้องใช้:

  1. SDK – สำหรับเขียนและคอมไพล์โค้ด
  2. QLoader (Linux) หรือ QFlash (Windows) – สำหรับอัปโหลดโปรแกรมลงบนโมดูล

หมายเหตุ: หากต้องการรับ SDK, QLoader และ QFlash, กรุณาติดต่อฝ่ายสนับสนุนของ Quectel.

คู่มือการตั้งค่าใน Linux

  1. ดาวน์โหลดและแตกไฟล์ SDK
  2. เตรียมสภาพแวดล้อมสำหรับการคอมไพล์ (build environment):

    ตรวจสอบให้แน่ใจว่า บรรทัดแรกแสดงเป็น: #!/bin/bashbuildall script
  3. คอมไพล์โปรเจกต์ (Build the project)

    ผู้ใช้ Windows: คุณสามารถข้ามขั้นตอนที่เฉพาะสำหรับ Linux ด้านบนไปได้ โดยจะอธิบายการตั้งค่าสำหรับ Windows ในส่วนถัดไป

แฟลชโปรแกรมลงบนโมดูล EC200U

สำหรับผู้ใช้ Linux

  1. ตรวจสอบผลลัพธ์การคอมไพล์
    หลังจากคอมไพล์สำเร็จ ให้ตรวจสอบโฟลเดอร์ /EC200UEU_AA_V01 คุณควรจะเห็นไฟล์ต่าง ๆ เช่น:
  2. เตรียม QDloader
    • ดาวน์โหลดและแตกไฟล์ QDloader
    • คอมไพล์โดยรันคำสั่ง make ในโฟลเดอร์ของมัน
    • ไฟล์ loader ที่คอมไพล์เสร็จแล้วจะอยู่ในโฟลเดอร์ out/
  3. แฟลชโมดูล
    คัดลอกไฟล์ .pac ไปยังโฟลเดอร์ out/ ของ QDloader รันคำสั่งแฟลช:

    หมายเหตุ: ปรับค่า /dev/ttyUSB0 ถ้าโมดูลของคุณใช้พอร์ตอื่น

สำหรับผู้ใช้ Windows

  • คอมไพล์โปรเจกต์
    เปิด Command Prompt ในโหมด Administrator, ไปยังโฟลเดอร์ SDK ของคุณ แล้วรันคำสั่ง:

    QuecOpen Windows Build
  • แฟลชโปรแกรมด้วย QFlash
    • เปิดซอฟต์แวร์ QFlash
    • โหลดไฟล์ .pac ของคุณ (สร้างขึ้นในโฟลเดอร์ target เช่น 8915DM_cat1_open_V01_merge.pac)
    • คลิก “Start” เพื่อเริ่มโปรแกรมลงบนโมดูล

Quectel Firmware Windows

การแก้ไขโค้ดของโมดูล

ตอนนี้เมื่อเราได้ตรวจสอบแล้วว่าการแฟลชโปรแกรมทำงานได้ถูกต้อง เรามาลองแก้ไขโค้ดครั้งแรกกัน:

  • ไปที่ไฟล์ ql_int.c:

    ค้นหาและเอาเครื่องหมายคอมเมนต์ออก:
  • ไปยังการตั้งค่า LED configuration (ใน VSCode: กด F12 หรือคลิกขวาแล้วเลือก “Go to Definition”) เพื่อเปิดไฟล์ led_cfg_demo.c

โค้ดตัวอย่าง LED (และโค้ดอื่น ๆ เกือบทั้งหมด) ถูกจัดเป็นสามส่วนหลัก:

  • การสร้างงานของ OS (OS Task Creation) – อยู่ด้านล่างของไฟล์
  • โค้ดหลัก (Main code)
  • ส่วนบันทึก (Log Section)

ส่วนแรก เป็นการเริ่มต้นงานของระบบปฏิบัติการ (OS task) :


ส่วนถัดไป คือฟังก์ชันที่ OS จะทำงาน:


ส่วนสุดท้ายของโค้ดคือ Log code, SDK มาพร้อมกับ framework สำหรับการบันทึก (logging framework) ที่มีประโยชน์ แมโครเหล่านี้ใช้ควบคุมการแสดงผลข้อความดีบัก (debug output)

ปรับแต่งรูปแบบการกระพริบของ LED (LED Blink)

มาลองแก้ไขพฤติกรรมของ NET Status LED กัน วิธีสร้างวงจรกระพริบ 1 วินาที ทำได้โดยแก้ไขฟังก์ชัน main ดังนี้:

การคอมไพล์และแฟลชโค้ดที่แก้ไขแล้ว

  1. คอมไพล์โค้ด:
    ใน Linux:

    ใน Windows:
  2.  แฟลชโมดูล:
    ใน Linux:

    ใน Windows: ใช้ QFlash เหมือนที่ทำไปแล้ว
  3. ตรวจสอบความสำเร็จ: LED NET Status ควรกระพริบด้วยช่วงเวลา 1 วินาที

ขั้นตอนถัดไป

  • ลองปรับระยะเวลา sleep เพื่อสร้างรูปแบบการกระพริบที่แตกต่าง
  • ทดลองใช้งาน GPIO pins อื่น ๆ
  • เพิ่ม log messages เพื่อตรวจสอบการเปลี่ยนแปลงสถานะของ LED

แปลจากบทความภาษาอังกฤษ : Getting Started with Quectel EC200U 4G LTE Cat 1 IoT board using the QNavigator and the QuecOpen SDK

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
โฆษณา