Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Play with M5Stack

Play with M5Stack

- Record the pressure of Typhoon #19
- Fix the program to get the modem time

Satoru Ohguchi

October 15, 2019
Tweet

More Decks by Satoru Ohguchi

Other Decks in Technology

Transcript

  1. M5Stack で遊ぶ
    IoTLT vol56 @ SCSK
    Satoru Ohguchi

    View Slide

  2. ⾃⼰紹介
    • 名前
    • ⼤⼝ 聡(おおぐち さとる)
    • 仕事
    • 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
    • 趣味
    • コンピューター、⾳楽…等々

    View Slide

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

    View Slide

  4. tenki.jpより

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  9. SORACOM 3Gモデム

    View Slide

  10. 測定中…
    96258 Pa !?

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  14. 課題

    View Slide

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

    View Slide

  16. 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);

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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


    View Slide