動作確認
ESP-WROOM-02
参考 http://qiita.com/exabugs/items/fe46ec45ff2ffd6c5777
https://github.com/PaulStoffregen/Time
のTimeライブラリ使用
上記のライブラリを使う上で自分が使いたい形に処理をするためのラッパー関数が必要となる。
当面目指しているのはUDPLoggerに対してUDPコマンドから時計合わせを行うこと。これでUDPLoggerが時刻を持ってくれる。
timeLib > esp8266_160619_timeLib.ino
以下のラッパー関数を実装した。
- void TimeLib_Set_yyyymmddhhnnss(char *srcPtr, int size);
- yyyymmddhhnnss 形式でのsetTime()実行
- void TimeLib_SerialTxDateTime(void);
- 日時のシリアル出力
esp8266_160619_timeLib.ino
#include <TimeLib.h>
#include <stdarg.h> // for va_XXX()
/*
* using time library by
* https://github.com/PaulStoffregen/Time
*/
/*
* v0.1 19 Jun. 2016
* - add TimeLib_SerialTxDateTime()
* - add myPrintf()
* - add Test_TimeLib_Set_yyyymmddhhnnss()
* - add TimeLib_Set_yyyymmddhhnnss()
*/
void TimeLib_Set_yyyymmddhhnnss(char *srcPtr, int size)
{
// 01234567890123
// srcPtr: yyyymmddhhnnss
if (size < 14) {
return; // error
}
char szbuf[20];
int hh, nn, ss, dd, mm, yyyy;
strcpy(szbuf, srcPtr);
ss = atoi(&szbuf[12]);
szbuf[12] = 0x00;
nn = atoi(&szbuf[10]);
szbuf[10] = 0x00;
hh = atoi(&szbuf[8]);
szbuf[8] = 0x00;
dd = atoi(&szbuf[6]);
szbuf[6] = 0x00;
mm = atoi(&szbuf[4]);
szbuf[4] = 0x00;
yyyy = atoi(&szbuf[0]);
setTime(hh, nn, ss, dd, mm, yyyy);
}
void Test_TimeLib_Set_yyyymmddhhnnss(void)
{
char settim[] = "20160619101200"; // yyyymmddhhnnss
TimeLib_Set_yyyymmddhhnnss(settim, sizeof(settim));
}
void myPrintf(char *fmt, ...)
{
char buf[128];
va_list args;
va_start(args, fmt);
vsnprintf(buf, 128, fmt, args);
va_end(args);
Serial.print(buf);
}
void TimeLib_SerialTxDateTime(void)
{
myPrintf("%02d:%02d:%02d", hour(), minute(), second() );
myPrintf(",%02d/%02d/%04d", day(), month(), year() );
Serial.println();
}
例として、上記のコードを以下のプログラムで使う。
同じスケッチ内のタブで定義。
esp8266_160619_testTimeLib.ino
void setup()
{
char settim[] = "20160619103200"; // yyyymmddhhnnss
TimeLib_Set_yyyymmddhhnnss( settim, sizeof(settim) );
Serial.begin(115200);
}
void loop() {
TimeLib_SerialTxDateTime();
delay(3000);
}
結果
10:32:03,19/06/2016
10:32:06,19/06/2016
10:32:09,19/06/2016
10:32:12,19/06/2016
10:32:15,19/06/2016
10:32:18,19/06/2016
10:32:21,19/06/2016