WIO NODEの謎のリセット問題を調べるために作ったスケッチを公開します。
このスケッチを動かすためには、ESP8266のライブラリの他にNTPClientとTimeライブラリをインストールする必要があります。
Arduino IDEのスケッチメニューから[ライブラリをインクルード]-[ライブラリを管理...]を選び、ntpで検索をして2つのライブラリをインストールしてください。
ライブラリマネージャー (NTPClientとTimeライブラリをインストール)
スケッチ
#include <ESP8266WiFi.h>
#include <NTPClient.h>
#include <WiFiUdp.h>
#include <Time.h>
// Windows版Arduinoを使用しているときは<Time.h>の代わりに<TimeLib.h>をインクルードしてください。
// WiFiのSSIDとパスワードをセット
const char *WIFI_SSID = "<SSID>";
const char *WIFI_PASSWORD = "<PASSWORD>";
// NTP用
WiFiUDP ntpUDP;
const char *NTP_SERVER = "ntp.nict.jp"; // 情報通信研究機構(NICT)の公開NTPサーバー
const int TIME_OFFSET = 9 * 60 * 60; // UTC+9h (JST)
NTPClient timeClient(ntpUDP, NTP_SERVER, TIME_OFFSET);
const unsigned long NTP_INTERVAL_TIME = 24 * 60 * 60 * 1000; // 時刻を合わせる周期 24h
unsigned long ntp_interval;
void setup() {
Serial.begin(74880);
Serial.println("\r\nReset Reason: " + ESP.getResetReason()); // 前回のリセットの理由を出力
Serial.println(String("Free Heap Size: ") + ESP.getFreeHeap()); // フリーヒープサイズを出力
// WiFiを接続する
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Waiting for Wi-Fi connection");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\r\nConnected!");
// NTP関連の初期化
timeClient.begin();
timeClient.update();
setTime(timeClient.getEpochTime());
printLog("Program Start!");
ntp_interval = millis();
}
void loop() {
// ここにメインのプログラムを書く
// 定期的に時刻を合わせフリーヒープサイズを出力
if (millis() - ntp_interval > NTP_INTERVAL_TIME) {
timeClient.update();
printLog(String("Free Heap Size: ") + ESP.getFreeHeap());
ntp_interval = millis();
}
}
// ログ出力
void printLog(String st) {
char dt[21];
sprintf(dt, "%04d/%02d/%02d %02d:%02d:%02d ", year(), month(), day(), hour(), minute(), second());
Serial.println(String(dt) + st);
}
実行例 (外部リセットをかけた後)
シリアルモニタの速度を74880にすると文字化けせずに表示されます
ets Jan 8 2013,rst cause:2, boot mode:(3,6)
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v09f0c112
~ld
Reset Reason: External System
Free Heap Size: 46888
Waiting for Wi-Fi connection.....
Connected!
2017/03/12 01:09:33 Program Start!
2017/03/13 01:09:33 Free Heap Size: 46496