google-site-verification: google3bd66dd162ef54c7.html

日の出、日の入り時刻からアナレンマを描く(中間まとめ)

 このところ取り組んでいる Ambient へアナレンマを描く実験ですが、データーのアップロードが順調に出来ていて、一段落した感があります。ということで、現在のハード/ソフトの状態についてまとめておきます。

▼回路
ESP-WROOM-02
 ブレッドボードに組んだ状態で動かしています。接触不良などで止まるといけないので、ユニバーサル基板で作り直したいところですが、それは暇を見てやりたいと思います。

▼回路図
回路図
 左下の太陽電池の電圧をESP-WROOM-02で読むようにしてあります。太陽電池は最大で2Aくらいの電流供給力があり、ショートが発生すると配線などの焼損の恐れがあります。そこで、安全のため10kΩの保護抵抗(R50)を入れて線を引き出しています。

 VR1で感度調整出来ますが、これはデバッグ時の入力電圧変更に使い、通常は最大感度側に回し切って使っています。約25VでADCのフルスケールになります。

 当初はI2Cのキャラクタ液晶に電圧や時刻を表示させるつもりでした。しかし、使い易いライブラリが見つからなかったこと。それに、もしI2Cバスがハングアップすると全体が止まってしまうのが怖いので止めました。実は作り込むのが面倒くさかったのが本音ですが、パネル電圧はほぼリアルタイムでAmbientのグラフで表示しているので、そっちを見る方が確実です。

▼スケッチ
スケッチはこちら(20161214_AnaLtest-x)(拡張子を inoに変えるとArduinoのIDEで読めます。また、Ambient.h Ambient.ccpが必要です。)
 先人の方のプログラムを参考させていただきました。普段はブログの記事中に見える形で公開しているのですが、今回はあまりきれいに書けていないので、リンクの形で公開します。

 下記がポイントです
1) ネットの接続処理は毎回行う 
 必要になったタイミングで毎回WiFiなどの接続を確立させています。プログラムの最初に一度だけネットの接続処理をしておく手もあります。でもそうすると、もし回線断などが発生した場合は回復不能になりそうで怖いです。何しろメンテナンスフリーで連続運転出来ないと困ります。

2) AmbientのIDは二つ使う
 パネル電圧の変化(1分間隔)とアナレンマを描くための情報(1日一回)を一つのチャンネルに混ぜるのは無理がありそうなので、別のチャンネルに送信しています。(ch:200とch:202)

3) 日の出/日の入りの検出
 日の出/日の入りは太陽電池パネルの電圧監視で行いますが、誤判定防止のため大きなヒステリシスを持たせています。なお、日の出/入りの判定は10秒周期でチェックし、結果のAmbientへの送信はパネル電圧記録のタイミング(つまり1分刻み)で実行しています。

4) IPアドレスは固定
 WiFiの接続時間短縮のためIPアドレスは固定しています。(179行目)

5) NTPはnict を使用
 参考にしたプログラムではアメリカのNTPを使っていましたが、たまに接続ミスが発生したので、国内のNTPサーバーに変更。(31行目)

6) 日付連番
 Ambientに作図するのに日付連番があった方がいいので、NTPから作成しています。但し2016年1月1日が1から始まるという俺様ルールになっています。ちなみに2017年1月1日の日付連番は367になります。(2016年は閏年なので366日あります)

◆まとめなど
 ということで、ともかくAmbientへのデーター登録は開始しました。登録したデーターは下記で公開しています。
 アナレンマを描く (チャネルID: 200)
 ソーラーパネル電圧 (チャネルID: 202)

 果たしてこれでアナレンマの8の字を描くことが出来るのか興味深いところです。この観察方法は天候の影響を受けるので、綺麗な8の字を描くのは難しいと思います。でもたぶん、8の字の下側の○くらいは何とか確認できるのではないかと期待しています。ともかく1年後にどんな結果になるのか楽しみです。

 この実験の結果は、観測場所の緯度/経度の違いに影響を受けますが、地球の公転軌道や自転軸の傾きの影響も受けます。そういう影響を総合した結果としてアナレンマの8の字が書ける訳です。つまり、大げさに言うとこの実験は天体観測をやっていることになるはずです。

 ちなみに、天候の影響が少ないきれいな8の字を描くにはどうすればいいか、考えるのも面白いと思います。気象の変化の少ない砂漠の真ん中で実験するといいのでしょうが、そうもいきません。どういうセンサーをどういうふうに使うのが良いか、試すのも面白いと思います。ソフトの工夫で異常データーを外す手もあるし、他にもいろんな対策が考えられると思います。これ、学校の天文部で取り組むと楽しそうです。

 あと、マイコンの不具合などで Ambientに変なデーターを書いてしまった場合に備え、下記を参考に定期的にデーターをダウンロードしてローカルに保存しておくと良いと思います。
 データーのダウンロード機能をリリースしました
 上のリンク内に書いてありますが、Ambientでは1年を超えるデーターは削除されるそうです。

日の出、日の入り時刻からアナレンマを描く(Ambientにアップロード開始)

 私の勘違いなどがあって遅れていましたが、Ambientへのアナレンマのデーターのアップロードを開始しました。

 最初はAmbientの一つの画面(チャンネルID)へ全部の情報を表示させようとしました。しかし、これはいろいろと無理があるようなので、太陽電池パネルの電圧と、アナレンマの情報は分けて別の画面に表示させることにしました。

▼パネル電圧モニタ
太陽電池パネル電圧
 Ambientで公開中の太陽電池パネル電圧
 ちなみにこのグラフはアナレンマを描くために必ずしも必要ではありません。ただ、これがあるとマイコンンの動作状況などの把握が楽になります。
 ちなみにアナレンマの情報は一日に一回しかアップロードしないので、もしマイコンが暴走などしていたとしても、なかなか気付かないことになります。ただ、むやみにデーターを垂れ流すとAmbientのサーバーに申し訳ないので、しばらく様子を見た後はデーターを間引くつもりです。

▼アナレンマの図
アナレンマ
 日の出/日の入り時刻などの元データーからアナレンマを作図する過程が判るようにしています。なお、実際に、 
公開中のアナレンマの作図状況はこちら。

 グラフは書き始めたばかりなので、現時点ではまだ意味不明状態です。今後徐々に形が見えてきて、一年後には全体が完成するはずです(たぶん)。なおデーターは一日一ポイント、日没検出後に追加されます。

 プログラムはそのうち公開予定ですが、おおざっぱには以下のようなことをやっています。

・マイコンにはESP-WROOM-02を使い、WiFi経由で Ambientにデーターを送信。
・日の出/日の入りはADCで太陽電池パネルの電圧を監視することで検出。
・時刻はNTPから取得。

 あと、Ambiaentの作者の下島健彦さんのAmbientのブログで、データーのダウンロード機能をリリースしましたという記事があります。これがとても参考になりました。また、これ以外の情報もいろいろブログに書かれているので、Ambientを使う人は一度全部の記事に目を通しておくと良いと思います。
カレンダー
11 | 2016/12 | 01
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード