追尾太陽光発電のプログラム

次は ESP8266でモーターをコントロールするプログラムです。まず、簡単に動作の流れを説明します。

このプログラムでは、基本 15分ごとにパネルを動かすようになっています。5分か10分単位でも良かったかもしれません。
15分ごとにdeep sleepから起動します。sleepと違い電源オンで起動するのとほぼ同じです。なので、まずwifiに接続し、時間を設定します。

次に、前回の動作時間を読み込んだ後に、前回と今回の太陽の位置をそれぞれ算出し、その差分だけ架台を動かします。そして次の起動時間までdeep sleepする時間を設定し、deep sleepに入ります。これの繰り返しです。また、8時半には、西から東へ移動します。

なお、wifiに接続するのでSSIDと暗号化キーをこの2行に設定してください。また、太陽の方向を計算するために太陽光発電の設置場所の緯度経度と架台の動作角度も設定しなければなりません。緯度と経度はここに設定してください。動作角度は作り方に依存するので、ひと手間かかります。これは架台と台座を完成されてからとなるので、あとで説明します。

Arduino IDEでESP8266の設定をした後にプログラムを書き込んでください。プログラムを書き込む時はRSTのラインを外してください。
書き込み後に再度 RSTのラインを接続します。電源を接続すると動作し始めます。

初期化とテストモードがあり、初期化は動作を開始する時に行い、テストモードは動作テストに使います。

まず、初期化の方法です。電源を接続した後、LEDが点滅し始めますので、Flashボタンを押してLEDの点滅がさらに速くなったらところでFlashボタンを離します。これで初期化モードに入ります。動作開始時では、現在の架台の向きが分からないので、まず、東向きに移動した後に、現在時刻の太陽の位置に移動します。後は通常の動作となります。

初期化と同様に、電源を接続した後、すぐにFlashボタンを押し続けます。LEDが点滅し始めますが そのままFlashボタンを押し続けます。すると、点滅がさらに早くなるので、この時にFlashボタンを離すとテストモードになります。テストモードでは、deep sleepの時間が3秒ですが、内部的には1時間経ったものとして起動するので、このモードを使って1日の動作を短時間で確認できます。

テストモードを解除するためには、テストモードに入る時と同じことを再度行います。