ArduinoUnoでRealTimeClockをNTPと同期させる Step.3 Aruduino IDE Ver.0021用にライブラリを修正する
2010/12/03 Friday - 00:15:28 by chameleonArduinoUnoでRealTimeClockをNTPと同期させる Step.2 RTC8564用ライブラリの制作で、RealTimeClockを利用して、Aruduinoに計時させようと考えているわけですが、そもそも基準となる正確な時間をどのように与えるのかという問題があります。 やはり、NTPサーバーより時刻を得るのがいいのではないかと考えて、Aruduinoの開発環境用に作成されたライブラリ「Time Library」を利用してみることにします。 ダウンロードして得られた「Time.zip」を解凍すると「DS1307RTC」「Time」「TimAlarms」のフォルダができるので、librariesフォルダにコピーします。 そして、サンプルスケッチに「TimeNTP.pde」というNTPサーバーから時刻を得るスケッチがありましたので、Aruduino IDE Ver.0021環境からAruduino Unoに当該スケッチをアップロードしてみます。 TimeNTP.pdeをIDEで開いて確認すると、冒頭部分に #include <Time.h> #include <Ethernet.h> #include <UdpBytewise.h> // UDP library from: bjoern@cs.stanford.edu 12/30/2008 #if UDP_TX_PACKET_MAX_SIZE <64 || UDP_RX_PACKET_MAX_SIZE <64 #error : UDP packet size to small – modify UdpBytewise.h to set buffers to 64 bytes #endif と記述されていて、他にも「UdpBytewise.h」が必要なことがわかります。NTPサーバーはUDPを利用しますから、UDP関連のライブラリがいくつか必要なようです。このライブラリ一式はここからダウンロードできます。解凍したらできあがったファイルを「Ethernet Library」フォルダにコピーします。 ちなみに、UdpBytewise.hに記述されていてるUDP_TX_PACKET_MAX_SIZE とUDP_RX_PACKET_MAX_SIZE の値を64に変更しておけと書いてありますから、直しておきます。 では、コンパイルしてみます。はい・・・見事エラーの嵐ですね。 どうやらSPI.hをインクルードしろといっているようです。確かIDEがVer.0019になってからEthernet Liburaryを使うときにはインクルードが必要になりました。 TimeNTP.pdeに以下を書き加えます。 #include <SPI.h> [...]