#topicpath

** ezTime [#kdc46226]
*** はじめに [#x93984ef]
- 背景~
NTP の情報は、1秒以下の情報もあるのに、それが有効に活用されていない。~
いろいろなサイトを参照して、それを実装しようとしたがうまくいかない。~
([[NTP_SampleProgram>../NTP_SampleProgram]]参照)~
C言語の時刻の扱いにはいくつかの系統があるようで面倒だ(個人の感想)。~
最近になって、ezTime というライブラリができたことを知った。~
~
- 参照URL
-- github : https://github.com/ropg/ezTime
-- Arduino CC : https://forum.arduino.cc/index.php?topic=568903.0

*** 導入 [#u195c13e]
- Arduino IDE から~
++ ツール > ライブラリを管理 > 「検索をフィルタ」に milli NTP を入力してライブラリを検索
++ 表示部分にマウスのポインタを合わせて、最新バージョンを選択して、インストール

*** 使い方 [#f30aecba]
- サンプルプログラムを示す。~
※ マニュアルを読むと、結構、いい感じの方針で仕事をしているように思った。~
~
 #include <ezTime.h>
 #include <WiFi.h>
 
 Timezone myTZ;
 
 void setup() {
   
   Serial.begin(115200);
   while (!Serial) { ; }		// wait for Serial port to connect. Needed for native USB port only
   // WiFi 接続を入れる
   Serial.println("WiFi connected");
   Serial.print  ("SSID          : "); 
   Serial.println(WiFi.SSID());
   Serial.print  ("IP address set: "); 
   Serial.println(WiFi.localIP());
 
   setDebug(INFO);                    // デバッグ情報をシリアルポートへ。 NONE で表示しなくなる。
   myTZ.setLocation(F("Asia/Tokyo")); // Timezone の設定。日本時間
   myTZ.setDefault();                 // 
   setServer("ntp.jst.mfeed.ad.jp");  // サーバーの設定
   setInterval(60);                   // NTPデータの更新の時間間隔 60s
   waitForSync();                     // 最初の時刻の取得。
   Serial.println(myTZ.dateTime());
 }
 
 void loop() {
   // バックグラウンドでは動かないので、これを毎回 loop() で動かす。動作状況は setDebug() してあるので表示される。
   events();
   if( secondChanged() ){
     Serial.println(myTZ.dateTime());
   if( secondChanged() ){             // 1秒おきの実行
     Serial.println(myTZ.dateTime()); // 日時の表示
   }
 }

トップ   編集 差分 添付 複製 名前変更 リロード   新規 単語検索 最終更新   ヘルプ   最終更新のRSS