Arduino IDEにあるESP8266のExamplesを試す。
Arduino IEDを真面目に使い始めたのは2015/12/13から、ESP8266は2015/12/11から。
つまり、初心者の右往左往の記録だ。
しかも、この初心者、あきらめだけはめっぽう素早い。
File > Examples > ESP8266WebServer > WebUpdate は、実行できるが、いまひとつ何をやっているのかわからない。
表示されているのが指定したファイルのサイズなのは確かだけど。
File > Examples > ESP8266WiFi > HTTPSRequest は、良く分からないのでパス。
File > Examples > ESP8266WiFi > NTPClient を、例によって、ssidとpassだけ書き込んでコンパイルすると以下のエラーが出る。
‘sendNTPpacket’ was not declared in this scope
これ、前にも出たな、確か。
前は放置してスルーしたが、ふと、PICのXC8とかでも出るfunction declared implicitみたいな感じじゃないかと気付いた。
なので、sendNTPpacketをソース内で検索してみると、確かに関数本体はエラーの行より後にある。
こういうとき出るんだよな、function declared implicitの場合は。
Arduino IDEの吐くメッセージも内容的には似たようなことを言ってるように思える。
sendNTPpacketの本体をエラーの出ている行より前に移してコンパイルしてみたら、エラー無しにコンパイルできた。
え、そういうことでよかったの?
ならば、先頭の方に
unsigned long sendNTPpacket(IPAddress& address);
を追加してあらかじめ宣言すれば良かろうということで、やはり問題なくコンパイルできた。
Examplesってそういうのが放置されたままななのか、私が何か設定を忘れているのか、それは分からない。
いずれにしても、このExampleはタイム・サーバーから時刻を拾ってくるという、非常に有用な例だ。
観測時刻を記録するとか、正確な時計が欲しいとか、時刻がらみの要求はWi-Fiの範囲内であればほとんど満たされるわけだ。
微妙に時間が遅れるのは内部で換算しているのでその手間がかかっている分なのか?