ユーザ用ツール

サイト用ツール


xg_series_devel:quectel_bg96:start

以前のリビジョンの文書です


Quectel BG96 LTE-M 拡張ボードの利用 (OB-SM)

XG-50 に Quectel BG96 を採用した LTE-M 回線用オプションボード FutureNet OB-SM を搭載し、LTE-M 回線を利用してみます。

XG-50 + OB-SM


サンプル

BG96 の GPS により位置情報を取得し、BG96 の TCP/IP stack を利用して SORACOM Harvest に UDP でデータをアップロードする、というサンプルです。
PPP を利用しないため接続までの時間が短くなり、電池駆動に有利となります。


コードの準備

Github から取得します。

branch は両方共 XG-50/BG96-GPS-Harvest となっています。


TCP/IP stack 利用の例

apps/xg50/gps_bg96/bg96_task.c で、

  • シリアルポートアクセスライブラリの利用
  • BG96 設定 (APN等)
  • BG96 TCP, UDP 接続・切断
  • BG96 TCP, UDP 送受信

を行っています。

以下に示す関数を使用することで、BG96 の TCP/IP スタックを用いて通信を行うことができます。


シリアルポートアクセスライブラリ 初期化

#include "libserial.h"

  char *bg96_path = "/dev/ttyS2";

  task->ser = serial_open(bg96_path, 115200, 0);


[BG96] ATコマンドの送信

int bg96_send_AT_command(serial_t *ser, const char *cmd)

  bg96_send_AT_command(task->ser, "AT+CFUN=4\r\n");
  sleep(2);
  bg96_send_AT_command(task->ser, "AT+CFUN=1\r\n");
  sleep(1);
  bg96_send_AT_command(task->ser, "AT+CGATT?\r\n");
  sleep(1);


[BG96] echo off (ATE0)

static int bg96_echo_off(serial_t *ser);

  res = bg96_echo_off(task->ser);


[BG96] LTE 接続パラメータ設定

static int bg96_setup_apn(serial_t *ser, int cid, char *apn, char *user, char *password)

  res = bg96_setup_apn(task->ser, 1, config->apn, config->user,
                       config->password);


[BG96] 時計合わせ (LTE 網より日時取得)

static int bg96_sync_clock(serial_t *ser)

      res = bg96_sync_clock(task->ser);


[BG96] LTE 網への接続

static int bg96_connect(serial_t *ser)

  /* activate PDP context */
  res = bg96_connect(task->ser);


[BG96] LTE 網からの切断

static int bg96_disconnect(serial_t *ser)

      printf("! %s: open socket failed -> RESET\n", __FUNCTION__);
      bg96_disconnect(task->ser);


マニュアル

xg_series_devel/quectel_bg96/start.1606534268.txt.gz · 最終更新: 2020/11/28 12:31 by admin