Slide 1

Slide 1 text

M5Stack で遊ぶ IoTLT vol56 @ SCSK Satoru Ohguchi

Slide 2

Slide 2 text

⾃⼰紹介 • 名前 • ⼤⼝ 聡(おおぐち さとる) • 仕事 • SIer勤務 ‒ 現職は、SAPテクニカルコンサルタント(Basis) 、過去は、電⼦回路設 計者、制御SE、ネットワークエンジニア、社内SEを経験 Twitter:@o_chcchi Facebook: https://www.facebook.com/ohguchi.satoru Blog: http://blog.maripara.org/ ୈ߸ • 主な保有資格 • SAP Certified Technology Associate System Administration • AWS Solution Architect Associate • 情報処理技術者(SC/SA/ST/AUほか) • 電⼦機器組⽴て技能⼠ 2級 • ほか • コミュニティ活動 • Swift愛好会運営 • JAWS-UG IoT 専⾨⽀部運営 • try!Swift Organizer • 趣味 • コンピューター、⾳楽…等々

Slide 3

Slide 3 text

週末の台⾵が凄かったですね.. 被害にあわれた⽅々に お⾒舞い申し上げます。

Slide 4

Slide 4 text

tenki.jpより

Slide 5

Slide 5 text

気圧測る絶好の機会? そう思ったのは私だけではないはず…

Slide 6

Slide 6 text

ちょっと前に私も作りました

Slide 7

Slide 7 text

オムロン絶対圧センサー+M5Stack+3G Modem

Slide 8

Slide 8 text

オムロン製 絶対圧センサー 絶対圧センサー ※ 絶対真空をゼロ基準にして表した圧⼒を検知する センサー Grove コネクター付き

Slide 9

Slide 9 text

SORACOM 3Gモデム

Slide 10

Slide 10 text

測定中… 96258 Pa !?

Slide 11

Slide 11 text

パスカルの単位の読み⽅ Wikipediaより

Slide 12

Slide 12 text

グラフみてみるとさらに驚かされる 10/12 21:20頃 96122 [Pa] SORACOM Hervest このカーブが すごい

Slide 13

Slide 13 text

実際に測定してみると驚きは ⼤きかったです。

Slide 14

Slide 14 text

課題

Slide 15

Slide 15 text

できるだけ、ほぼ、正確に10分毎に データを送りたい (今は、delay コマンドで、約1分毎に送信 これだと課⾦が…) モデムから時刻をとれないのか?

Slide 16

Slide 16 text

SORACOM 3Gモデムから時刻取得の検討 • 3Gモデムを利⽤するために、tinygsm のライブラリを使⽤している が、サンプルコードを⾒ていると、時刻取得のメソッドは、モデム が、SIMxxx series でしかサポートしないとコメントがある。 • 3Gモデムは、 u-blox社のモデムなので、その機種のコードを⾒てい るとメソッド定義がない。 • でも、3Gモデムなら時刻は持っているはず。(デジタルの携帯網はそ の仕様上、時刻情報を持っているので) // This is only supported on SIMxxx series // String gsmLoc = modem.getGsmLocation(); // DBG("GSM location:", gsmLoc); // This is only supported on SIMxxx series // String gsmTime = modem.getGSMDateTime(DATE_TIME); // DBG("GSM Time:", gsmTime); // String gsmDate = modem.getGSMDateTime(DATE_DATE); // DBG("GSM Date:", gsmDate);

Slide 17

Slide 17 text

モデムの at commands manual みると記載がある

Slide 18

Slide 18 text

モデムと⾔えばATコマンドですよね (おっさん的発想) • 技術書典7でのSORACOMさんの出 展物。 • ATコマンドについての話が載って いたので買いました。 • 昔、OMRONのアナログ電話回線⽤ モデムで、ATコマンド覚えました ね。懐かしい。

Slide 19

Slide 19 text

ATコマンドをサポートしているか確認 • TinyGSM のサンプルコード AT_Debug を、M5Stack で動くよ うにシリアル定義とボーレートを定義して、書き込む。

Slide 20

Slide 20 text

シリアルでモデムに直接繋いだので叩いてみる モデムの型式 SIMの電話番号 電波強度とエラー率 時刻とタイムゾーン

Slide 21

Slide 21 text

020の電話番号割り当て 出典: http://www.soumu.go.jp/menu_news/s-news/01kiban06_02000056.html

Slide 22

Slide 22 text

tinygsm のライブラリを改修 • SIM800のモデム⽤に書かれ たコードを利⽤して、時刻 のフォーマットにあわせて u-bloxのモデムを使うライブ ラリに移植。

Slide 23

Slide 23 text

結果 • 時刻をモデムから拾える ようになりました。 • 起動時に時刻をモデムか ら拾って、内部の時計を 校正するようにプログラ ムを修正。 • 今は、測定時の時刻を表 ⽰。後で、10分毎に送 信するように修正予定。

Slide 24

Slide 24 text

ありがとうございました。