【M5Stack】NTPサーバーから時間情報を取得する方法とは?
基礎・基本を学ぶ

No.176 長谷川正の「言ったモン勝ち」


M5ATOM Liteに戻って再チャレンジ

1.毎回、機械の始動時にスイッチオン、終了時にスイッチオフ。
2.加速度センサーを使って、金型が動いている時だけデータを取得。
3.温度が一定以上になったらデータ取得スタート、下がったらストップ。

上記2を以前のブログにて試みましたが、M5ATOM Matrixではデータ取得がうまくいきませんでした。そこで初心に戻り、M5ATOM Liteにて再チャレンジを行います。そもそもMatrixに組み込まれている加速度センサー(IMU6886)を使うことになったきっかけは、実際に機械が稼働している間だけデータを取得すれば、短期でのスプレッドシートのメモリオーバーを防止できる、と考えたからです。しかしながら、そこまで厳密でなくても機械はほぼ毎日稼働していると仮定すれば、稼働時間は会社の就業時間(8:30~17:30)をほぼ同等になるはず。つまり、〇〇時にスイッチオン、△△時にスイッチオフというタイマーみたいな機能があれば十分なのでは?

NTPサーバーから時間を取得

そのためには、まずは時間情報が欲しい。取得する方法を調べてみたところ、私が参考書としている「M5Stack 入門&実践ガイド(技術評論社)」には、”時間情報を取得したい場合はNTPサーバーと呼ばれる時間を配信しているサーバーと通信することで、簡単に時間取得ができる”と明記してありました。掲載されているサンプルスケッチを参考にして、スケッチが出来上がりました。組み込んだタイマーとしての機能は以下の通りとなっています。

・月~金曜日の間のみ計測する
・毎日8:00~17:59の間のみ計測する
・計測は5分間隔

ここでATOM Liteのスケッチを公開しても良いのですが、計測している、もしくはしていない様子の違いは非常に分かりにくく地味ですので、ここではM5StackのLCD画面を使って、計測オンの時間表示は通常の白色、オフになったら時間表示を赤色、とするスケッチを見てもらいます。条件によるif文を2回重ねている箇所のみ注目願います。

M5Stackでのスケッチ

上述した通り、M5Stackでのスケッチは上記書籍を参考に作成しています。なお、サンプルスケッチでは曜日(week)が数値のため、日曜日を0、月曜日を1という具合に0~6までの数字で曜日を表記していますが、何とも味気ないのでSunday、Mondayという文字列を格納する変数(week_days)を作成して、曜日を英文字表記に変更しています。ちなみに、時計ですので計測間隔は0.5秒です。

また、各々にて用意するSSIDとパスワードに関しては前回ブログと同様ですが、用意するWi-Fi 接続のSSIDは2.4GHz帯(無線LAN規格11b/11g)である必要があります。つまり、M5Stackシリーズでは5.0GHz帯(11a/11ac)には対応していませんのでご注意願います。

・WiFi接続に必要なSSIDとパスワード(スケッチ上の「X」と「Y」)
通常(オン)では時刻表記が白色ですが、

18:00を過ぎる(オフになる)と、下記の通り時刻表記が赤色に変化しています。

これにて、加速度センサーを使わずに、計測されたデータが自動的に蓄積される一通りのスタイルが整いました。次回のブログでは、実装した場合での課題に関して述べていきます。

参考)【M5Stack】I2C接続ケーブルの長さの限界とは?
参考)【M5Stack】WiFi経由でスプレッドシートへのデータ書込方法とは?
参考)【M5Stack】ATOM Matrixでの原因不明トラブルとは?
参考)長谷川製作所の得意技術(防水照明器具製造)


*工事不要、誰でも手軽に提灯を飾ろう!
提灯コードのイメージ
*提灯コード動画始めました。
提灯コードの動画
*国内唯一のプラスチックを膨らませる技術
「アクリルグローブ」
テラリウム

関連記事

TOP