• 無線で気象データを転送したい 2016/4動作良好です
 

気象データ送信用基板は2.4GのXbeeです、調べるとXbeeは本体にADコンやデジタル入力があるようでこういった用途には最適とか書いてありました。
Xbeeでネットワークを作るには『コーデネーター』と呼ばれる親分が必ず必要です
子分が気象データをポンポン送信すりゃ問題は無いようですが、調べるとそんな簡単な話じゃありません、送信するデータにはネットワークの識別データや転送データによって送信パケットの長さも変わりますし、チェックサムも必要です。
なんと言っても困ったのはXbeeがスリープするには条件があるからです、又スリープから起きると結構と長い時間ネットワークの確立にかかります、これって電池で動かすと大きな電力を消費します、それでなくとも2.4Gなんて周波数の電波は大きな電力を消費します
メッシュのネットワークだと中継や途中のポイントがダメでも迂回転送(インターネットみたいです)も出来ますがソフトの開発手法が全く違います、AVRかPICで組んでダメな部分は力仕事でアセンブラを埋め込もうとか思っていましたが、ターゲットはPCかARDUINOのようです
ARDUINOはありますが私はあまり好きじゃありません(好みの問題か?)
単にXbeeをシルアル転送の無線として使った方が簡単なので時にこれで実験する事に

←基本操作確認中のブレボー基板

 

実際に使っている受信部の様子、電波は写真の右から来ます、左側のアルミホイルはパラボラアンテナです、この焦点にXbeeの受信部を置いて使っています、送信電波の伝達経路は送信部がプラボックスの中ですからデータの電波はプラボックスを通過しさらに私の部屋の窓ガラスも通過して来る訳です、受信部のXbee単体だと受信動作が雨の時などは不安定になったので、パラボラアンテナ方式にしました、これだと快適に受信できるようです。

部屋に設置のWiFiが邪魔します!!
一般にWiFiは2.4ギカですから、この受信部の付近に設置するとWiFi電波の抑圧を受けます
最初は受信不安定状態で悩みました、WiFi装置(ネットのルーター兼用品)を他の部屋に移動したらウソのように安定動作になりました、WiFiがの通信電波が邪魔をしていたようです、勉強になりました!

   

気象データ送信基板の様子
液晶がありますがデータ確認用です(ほとんど使っていません、配線はしてあります)
液晶のした部分は1秒の割込パルスを出すカレンダクロックです、基板に配線してありますが、これは時間あわせのためです、RTCコントロール用にAVRのチップも乗っています。

電源は現在はリチウムイオン電池2本直列の約7.5Vで動かしています、この電池からDDコンで3.3Vを作っています、秋月のDDコン用のICは多種ありますが、リニアテクノロジーのLTC3245がベターのようです、250mAしかとれませんが無負荷の消費電力がマイクロアンペアオーダーです電池駆動の場合はこれが一番重要です、それでもリチウム電池をフル充電で2週間でエンドになりましたので現在は太陽電池パネルの小型タイプで充電しながら動かしています。
冬期間1シーズン動かしましたが良好で連続運転OKでした、太陽電池からリチウムイオン電池への充電は単にシリーズレギュレータで落として充電しています充電設定電圧は7.8Vです
5分に1回データを送りますが、この時リチウム電池の電圧もデータと一緒に送ります、他に送信部が入れてあるプラボックスの内部温度もデータの一環として送信します、ある程度は気象測定ボックスの様子が自宅で把握できるようにしました。

●ソフト&ハードの概要
データ送信の中枢はアトメルのMEGA88です、温度データはLM61でアナログデータですので基準電圧用にLM336_2.5Vを使ってADコンの基準電圧を作っています、基準電圧は作るのに電力を消費しますのでADコンバータ動作を行う場合のみFETスイッチで電力を供給し他はオフにして省エネ動作とします温度センサーのLM61の電源も同様に測定時のみの電源供給です。
送信部はXbeeで気象データ(現在は雨量と温度、日照)を送信しますがこのタイミングはRTCより1秒クロックをカウントして行います、Xbeeは通常はスリープ動作で寝ていますので、送信データを送る時間の約20秒前に起します(安定時間が無いとデータ送信が不安定になるようです)、データを送信してから数秒経過してからXbeeをスリープさせます、この動作の為にAVRは1秒ごとの外部割込みが入ります、AVRの割込が入るとこの回数をカウントして所定の時間になったら1連の動作を行いそのほかはAVR自体もスリープしています
★雨量は雨量枡が動作すると別の割込信号としてAVRは動作します、この回数を内部カウントし同時に中のEROMに書き出します、データ送信の時間が来たらこのデータも送信します
雨量は加算データですので時間あたちの雨量は受信側で計算して出します。
★温度は測定用の筒を作ってその中にセンサを入れてあります保温材で周囲を巻いて太陽の直射熱の影響をなるべく避けてあります、筒の上部にファンをつけてまわしています、この電源は小さな太陽電池ユニットです日照があると温度筒の温度が上昇して誤差がでますのでこの時は発電してファンをまわし影響を避ける目的です

2年位使ってみるとRTCの1秒クロックの誤差もバカになりません、数ケ月に1回程度、基準時間を作るRTCを外部から強制リセットする手段を現在考察中です

現在は5分に1回データがくるようにしております


   
 
 
     
   

雨量枡、地上50センチって感じです
雪の季節ははずしますが、送信部は下のタワーを補強して、地上3メートル前後にしてそのまま温度を測っていようと思っています、このルーフタワーは大雪の中、越冬6年目ですから ちょい補強すれな十分いけると思います

★送信基板回路

★送信部ソフト(RTC部分は含まない)

   
         

●受信部分電源は前の携帯電話の充電器です(5V)
まだソフトは未完成です、AVRのBASICで書きました、お試し版はメモリのリミットがあるので仕方なく製品版を買いました、ATMEGA168を最終版で使う予定ですが、写真はATMEGA88です外部EEPROMを付けてあります、データの保存用です、シリアルでPCに転送する予定です
横160ドットのグラフックLCDを繋ぐ予定ですがもう少し先の話です、