第二回:NTPサーバーから時刻を取得する&インターネットブラウザ経由でSDカードの中をみる
こんにちは、岸田です。本記事は、ESP-WROOM-02開発ボードを使った製作を紹介していく二回目の記事です。第一回はこちら:WSP-WROOM-02を使ったWi-Fi機能付き温度ロガーを作る(1):SPI通信とI2C通信を使う
さて、前回は温度などの測定ができるモジュールであるBME280との通信およびSDカードとの通信の確認をしました。しかし、これでは測定された温度が何時のものかわかりません。ここで、ESP-WROOM-02のインターネットに繋がる特徴を利用して、インターネットから時刻を取得しようと思います。また、ブラウザ経由でSDカードに記録されたファイルやディレクトリを見るというところまでやってみようと思います。
■NTPサーバーからの時刻の取得
NTPサーバーとは、簡単にいえばネットワーク上で極めて正しい時刻を刻んでいるサーバーのことです。アクセスすると、現在時刻を返してくれます。外部へのアクセスとなりますので、最大限注意を払って利用してください。今回はアクセス先に「NICT公開NTPサービス」を利用します。また、正確な時刻は必要としないのでアクセスそのものは1日に数回程度とします。
さて、NTPサーバーから時刻を取得するスケッチですが、これもサンプルスケッチが標準で付録されています。Arduino IDEからファイル->スケッチの例-> examples from custome libraries -> ESP8266WiFi -> NTPClieantを選択します。表示されない場合は、ツール->マイコンボードがGeneric ESP8266 Moduleになっているかを確認してください。
SSIDおよびパスワードを自分のものに変更し、34行目ntpServerName
を "ntp.nict.jp"
に変更します。又、127行目のdelay(10000);
をdelay(500000);(
=約8分)に変更してください。後者の変更点は、NTPサービスを利用する際のマナーです。
スケッチを書き込んで、動作を確認してください。多分、表示される時間は日本の時刻ではありませんので、これは後に修正を加えます。正しく通信が行われた場合、The UTC time is 10:15:22
といったふうに表示されます。日本はUTC+9なので19時15分となりますね。
余談ですが、Arduino IDE はプロトタイプ宣言は必要なかったと記憶していますが、本スケッチをコンパイルする際は何故か関数の未定義でコンパイルエラーが出ました。もし同様にエラーが発生した場合、この点をチェックしてみてください。
さて、これでSDカードに書き込むデータを揃えることができそうです。次は、SDカードの中身をブラウザ経由で見れるようにしましょう。
■ウェブブラウザ経由でSDカードの中身を見る
ESP-WROOM-02はそれ単体でウェブサーバーになって、HTMLなどのファイルを配布することができます。簡単に言えば、アクセスポイントにつながっているESP-WROOM-02に、普段使っているウェブブラウザでアクセスすることができて、ウェブページの表示もできるといった感じです。これも、サンプルプログラムがあるので最大限利用していきましょう。
Arduino IDEからファイル->スケッチの例-> examples from custome libraries -> ESP8266WebServer -> SDwebServerを選択してください。同じようにSSIDとパスワードを変更し、スケッチを書き込んでください。
今回は前回の記事を参考にSDカードの配線を行ってください。本スケッチではcipselectピンは暗黙的にSS=15
と指定されていますので、変更を行った場合は書き換えてください。
また、予めSDカードにファイルを書き込んでおきましょう。スケッチ->スケッチのフォルダを表示 を選択すると、エクスプローラーが開くと思います。SdRootという名前のディレクトリがあると思いますので、その中にあるファイルをまるごとSDカードのルートディレクトリに保存してください。
この中身を
このように。
SDカードをつなげた上でESP-WROOM-02を起動し、シリアルモニタの転送速度を115200 bpsにして動作をみてください。SDカードが正しく配線されていれば、SD Card initialized.
と表示され、アクセスポイントにアクセスすることができれば、Connected! IP address:
と表示されると思います。そしたら、ウェブブラウザから表示されたIPアドレス(192.168.XX.XXなど)にアクセスしてください。ウェブページが表示されたら成功です。表示されるページは下の画像の様になっているはずです。
さて、これで必要な準備はほとんど揃いました(なんとここまで準備なのです)。次は、今まで紹介したサンプルスケッチを組み合わせて、いよいよ温度などをWi-Fi経由で見ようと思います。
前回:ESP-WROOM-02を使ったWi-Fi機能付き温度ロガーを作る(1)
次回:ESP-WROOM-02を使ったWi-Fi機能付き温度ロガーを作る(3)