ESP8266 (ESP-WROOM-02) を SORACOM SIM と通信モジュール UC20-G を使って3G でインターネットに繋ぐ

Susumu Takahashi
qftech
Published in
6 min readJun 5, 2017

--

技適取得済み・安価・Arduino IDE で開発可能、と上海 Espressif Systems が出している超鉄板チップ ESP8266 というものがあります。

日本ではこれをモジュール化した ESP-WROOM-02 WiFi モジュールを複数の会社が販売しています。

これまで、センサ等のデータを ESP-WROOM-02 を使って無線 LAN 経由でインターネットに接続する、という使われ方は良く見られましたが、今回は無線 LAN ではなく ESP-WROOM-02 から UART 経由で 3G モジュールと接続し、インターネットに接続する、ということをやってみます。

Raspberry Pi +3G USB ドングル、というのはよく見かける構成でしたが、電力消費的にもリソース的にも若干リッチなので、マイコン+3G モジュールもあるよ、という構成の紹介です。

  • Mini PCIe モデムの Breakout 基板を作る
    市販の Mini PCIe→USB 変換基板を魔改造している人もいますが、私はそこまで技術と根性が無いので、もうちょっと簡単に扱える基板を作ることにします。
    EAGLE とか KiCAD で図面を書いても良いのですが、幸い Osmocom (Open source mobile communications) というプロジェクト内に mPCIe WWAN modem USB breakout board というオープンハードウェアのプロジェクトがあるので、そのままありがたく使います。
    基板上にアンテナ端子等も付いた v3 というバージョンもありますが、部品点数が少ないのは正義、ということで v2 を選択です。
    Zip で一式ダウンロードするとガーバデータのフォルダがあるので、圧縮して Seeed Studio の Fusion PCB にでも基板製造を依頼しましょう。
    Gnumeric で作られた BOM リストも Zip に入っているので、適宜 DigiKey の品番をアップデートして、実装も金で殴るという解決も可能です。単に個人の好みですが、ピンヘッダ以外の実装を丸投げするとこんな感じ↓になります。10枚で4,100円/枚、100枚作ると2,500円/枚くらいですね。
  • ESP-WROOM-02 と 3G モジュールを接続する
    スイッチサイエンスさんが作られている、ESP-WROOM-02 Wi-FiモジュールをArduino互換の基板に搭載したボードである ESPr® One を使います。手近にあっただけで特にこれといった理由はありませんが…
    ただ、Arduino UNO と同一形状ながら UART が 3.3V で 3G モジュールと合致していて楽ですね。Serial も 115,200bps 話せますし。
    3G モジュールはソラコムのコンソールから購入できる Quectel の UC20-G Mini PCIe を使います。アンテナも1本購入しておきます。
    あとはピンアサインを見ながらケーブルを接続します。
    UC20-G Mini PCIe のピンアサインをこちらから確認すると、作ったBreakout 基板で使う場合は5番が UART_RX、8番が UART_TX になりますね。ESPr® One で何番を使うかは完全に好みですが、仮に RX を5番、 TX を4番にしておきます。ESPr® One の4番(TX)を Breakout 基板の5番(RX)に、ESPr® One の5番(RX)を Breakout 基板の8番(TX)に接続します。
  • AT コマンドでモデムと話す
    Arduino IDE で以下のコードをコンパイルしてアップロードします。
#include <SoftwareSerial.h>
SoftwareSerial mySerial(5,4); // RX, TX
void setup()
{
Serial.begin(115200);
mySerial.begin(115200);
}
void loop()
{
if(mySerial.available())
Serial.write(mySerial.read());
if (Serial.available())
mySerial.write(Serial.read());
}

単に PC から投入する AT コマンドをシリアル (UART) でモデム(Quectel UC20-G Mini PCIe) に投げています。あとは AT コマンドのリファレンスを見ながらお好みの AT コマンドを使い、モデムを操作しましょう!
例えば

AT+QICSGP=1,1,”SORACOM.IO”,”sora”,”sora”,0 #PDP ACT
AT+QIACT=1 #OKの戻りを確認
AT+QIOPEN=1,0,”UDP”,”beam.soracom.io”,23080,0,1 #SORACOM Beam のエントリポイントに UDP で接続
<データを送信>
AT+QICLOSE=0 #TCP/UDP の接続を終了
AT+QIDEACT=1 #PDP を切断

といった流れです。マイコンから少量のデータを 3G 回線を利用してUDP で送信し、SORACOM Beam を使って UDP から JSON 形式のHTTPS にしてデータを転送する、といったことができます。

  • まとめ(お値段。税別・送料別。ケーブルとか小物除き。)
    ESPr® One: 2,980円
    Quectel UC20-G Mini PCIe: 3,980円
    HW-MULTI-GA-RSMA: 980円
    Breakout Board: 4,100円(1枚当たりの概算)
    合計: 12,040円くらい

--

--