Weather Centerへようこそ
Digi-Keyのアプリケーションエンジニアリングチームのメンバーは、2010年2月、共同でDigi-Key Weather Centerの開発に着手しました。Digi-Key Weather Centerは2010年7月、ミネソタ州シーフリバーフォールズにあるDigi-Keyの60万平方フィートの施設の屋上に設置されました。Digi-Key Weather Centerは、Digi-Keyが販売しサポートする製品を使用して、お客様に接続性を実証するために開発されたものです。Digi-Keyは、夏と冬で天候が劇的に変化するミネソタ州北部に位置しているため、気象観測所とのデータ通信を実証するのに最適な場所と判断されました。
Digi-Key Weather Centerの開発に使用された主要デバイスは、ZigbeeとEthernetを接続するゲートウェイConnectPort X4です。このゲートウェイは、Digi-Keyの440を超えるフランチャイズサプライヤの1つであるDigi InternationalのiDigiへのアクセスを備えています。さらに、ZigbeeファームウェアでプログラムされたDigi InternationalのSeries 2 XBeeモジュールが、センサデバイスとゲートウェイへのワイヤレス通信に使用されました。初期のセンサボードは、MicrochipのマイクロコントローラPIC18F14K22とVTIの温度/圧力センサを中心に設計され、両者はIP65定格のBUDの密閉ボックスに収納されています。 Digi-Key Weather Centerの開発には、Parallaxのソーラーパネルと、B.B.BatteryおよびPanasonicの密閉型鉛蓄電池も使用しました。
Digi-Keyアプリケーション・エンジニアリング・チームのSteve Dahl、Kevin Culkins、Shawn Rhen、Brandon Tougas、およびScott Raekerの各メンバーは、それぞれ異なる部品と開発ステージを担当し、プロジェクトはソーラーパネル、コントロールボックス、およびセンサノードを収納する構造物の設計と建設から始まりました。構造物が完成すると、センサノードへの電力貯蔵と配電のために、密閉型鉛蓄電池と充電回路が必要になると判断されました。プロジェクトのために開発された最初のセンサノードは、温度/圧力センサと、Ethernetゲートウェイとの間で情報を中継するZigBeeモジュールで機能するPWMコントローラです。次に、センサノードとのデータの中継と管理を行うゲートウェイ用のPythonドライバを開発しました。最後に、データを表示するためにAndroidとBlackberry用のアプリケーションを開発しました。
外部インターフェース
Android用のアプリケーション
インストールとセットアップ
- Eclipseをインストールする
- Android SDKをダウンロードする Android Mobile App Developer Tools – Android Developers
- Eclipseにプラグインを追加する(Download Android Studio & App Tools - Android Developers)
- New Projectを生成する
- File – new – Android Project
- Project name:
- build targetを選択する – “Android x.x”
- Application name:
- Package name:
- Activityを作成する:
- Min SDK version:
- Finishを選択する
- プロジェクトのファイルを右クリックする
1. Run Configurationとして実行 - Android Tab:
1. ブラウズして現在のプロジェクトを選択する
2. 起動:リストにあるものを選択 - Target tab:
1. Automatic – managerを選択する
2. Virtual Device – New- Name:
- Target:
- SD Card:
- Skin:
- Hardware
- AVDを生成する
- manager windowを閉じる
- 新たに生成したAVDを選択する – 実行
- AndroidManifest.xml fileで、アプリ用のアイコンを変更できる
- string.xml fileで、アプリの名前を変更できる
スマートフォンでアプリを読み込む
- スマートフォン:「Settings、Applications、Development」で「USB debugging」を有効にします。
- Eclipse:「Run, Run Configurations」で「target」タブを選択します。Deployment Target Selection Modeで「Manual」を選択します。
- スマートフォンのUSBドライバをPCにダウンロードしてインストールし、 Androidアプリケーションを実行します。
ゲートウェイ
Digiのソフトウェアパッケージ
DigiPython ESP
「‘New Project:’」
- New - iDigi Dia Project
- iDigi Dia Project Wizard
- Project name:xxx
- デフォルトのlocationを使用する
- iDigi Diaの設定:
1. デフォルトのiDigi Dia Version: 1.3.8を使用する - Advanced projectの設定
1. File name: xxx.yml
2. Include iDigi Dia source code in project - Pythonの設定:
1. Interpreter:Python 2.4.3 - リモートデバイス:
- 現在のリモートデバイスを使用する
「‘Run Project:’」
iDigiゲートウェイ
- 「xx.yml」ファイルを修正して保存する
- コマンドプロンプトのpython.exeから実行する
- “c:\idigi_dia\dia_pkg_1.3.8> c:\Python24\python.exe make.py demos\xxx\xxx.yml”
- ゲートウェイ用ファイルのアップロードを行う
- dia.zip
- dia.py
- ゲートウェイからファイルを削除する
- dia.pyr
- ゲートウェイを再起動する
- .IPアドレス192.168.1.xxx、ポート23 を使用してゲートウェイに Telnet し、入力する
- python dia.py
- ウェブ・ブラウザで次のように入力して、ゲートウェイのdia htmlページを表示する
- 192.168.1.xxx/xxx
コントロールボックス
コントロールボックスには、ソーラー充電回路基板、バッテリ、および外部センサへの配電回路が収められています。
第1世代充電器
バッテリ充電器ボードには、Texas Instrumentsの鉛蓄電池急速充電IC BQ2031が使われています。回路はTIの鉛蓄電池充電器開発ボードDV2031S2をベースにしており、2段階電圧充電アルゴリズムを使用して6セル・バッテリ用に構成されています。急速(バルク)充電電圧は14.9V、メンテナンス(フロート)電圧は13.7Vに設定されています。充電器の入力電力は、3つのソーラーパネルから供給されます(各ソーラーパネルの出力は、フル太陽光条件下で約20V@0.5A)。
ChargerBOMG1.pdf(11.0 KB)
第3世代充電器
充電器の最新リビジョンでは、National Semiconductorのスイッチングレギュレータ回路LM2679の出力電圧を制御するためにPIC30F6015が実装されています。PICの制御ソフトウェアはPWM出力信号を生成し、この信号は以下の回路に送られます。
フィードバック信号はLM2679 のフィードバックピンに接続されています。PWM信号がデューティ0%に設定されると、PWM_LPFノードは実質的にゼロボルトになり、R20を介してフィードバックノードがローレベルにプルされます。これによりレギュレータは、フィードバックピンが1.21Vに達するまで出力を増加させます。逆に、PWM信号が100%デューティに設定されている場合、PWM_LPFノードは3.3Vに駆動され、R20を介してフィードバックノードがハイレベルにプルされます。これにより、LM2679 はフィードバックノードが 1.21 ボルトに達するまで出力を減少させます。10ビット分解能のPWMの出力により、LM2679は9.6Vから14Vの間で約4mVのステップの出力が可能です。これにより、12V鉛蓄電池に供給される電圧と電流を非常に正確に制御できます。
dsPIC30F6015の制御アルゴリズムは、3Aのシステム制限に従ってバッテリを13.8ボルトまで充電し、ソーラーパネルのピーク出力パワーポイントを追跡します。また、他の各ノードが消費している電流を測定し、大電流が流れたり、バッテリ電圧が低下したりした場合に、各ノードを個別に無効にすることができます。
2020年DFRobotの鉛蓄電池充電器
Weather Center 2020のシーズンに向けて、我々は鉛蓄電池充電器を既製品ソリューションのDFRobotのDFR0580にアップグレードし、同じく4つの電流センサINA219を搭載したDFRobotのSEN091により、デュアルのB&B BatteryのBP12-12-T2を常に満充電にしています。
センサノード
センサノードやゲートウェイのPythonドライバの開発時間を短縮するために、データを渡すための共通フォーマットが作成され、標準化されました。これにより、ゲートウェイとXBee対応センサノード間でやり取りされるデータ量も削減されます。
ゲートウェイのキャラクタキー
request = “R” - すべてのリクエストはNULL (0x00)演算子で始まり、スリープしているノードがUARTでウェイクアップするために使用されます。
Xbeeのノード要件:
XBee - 3.3v XBee PRO - 3.3v
デフォルトの通信:
ボーレート:9600 フロー制御:なし データビット:8 パリティ:なし ストップビット:1
注: 必要に応じて構成を変更できますが、ネットワークに接続するときに指定する必要があります。
XBeeセンサノードの通信フォーマット:
機能 | リターンフォーマット | 単位 | 例 | 変換 |
---|---|---|---|---|
温度 | Txxxx | C | T0756 | 75.6 C |
湿度 | Hxx | H26 | 26 | |
明るさ(照度) | Lxxxxx | L | L12345 | 12,345 Lux |
気圧 | Pxxxx | hPa | P1234 | 1,234 hPa |
電池電圧 | Bxxx | V | B128 | 12.8 V |
太陽電池の電圧 | Sxxx | V | S163 | 16.3V |
風(速度/突風) | Wxxxzzz | Km/h, Km/h | W012027 | 12 Km/h, 27 Km/h |
デューティサイクル | Dzxxx | D1045 | PWM1 = 45% |
例 1:Request Gateway:「R」 XBee ノード:「3T0756P0100H26」 注:センサノードからの返信の最初の文字は、この通信で送信される異なるセンサデータの数です。
例 2:Hello Gateway:「H」 Xbeeノード:「*」 注:この単純な「Hello」リクエストの目的は、センサノードにpingを送ることです。
例 3:Error Gateway:「T」 XBeeノード:「Error」 注:ゲートウェイリクエストに定義されていない文字がある場合、センサノードは「Error」メッセー ジで応答します。
風速計
ワイヤレス風速計モジュールは、ワイヤレスモジュールXBEE Pro、風速計#40R、およびnanoWatt XLPマイクロコントローラPIC18F14K22を使用し、すべてBud Industriesの「AN」シリーズの筐体に収納されています。
電源はSwitchcraftの密閉型電源ジャックL712ASから供給されます。
電圧レギュレーションは、V-InfinityのDC/DCコンバータV7803-500によって提供されます。このフォームファクタと性能レベルにより、V78XXシリーズはTO220パッケージのLM78xxリニアレギュレータのドロップイン代替品となります。
風速計#40Rは、3つのカップにドライ接点のリードスイッチセンサを搭載した風速計です。周波数はカップの回転速度に比例します。
Anemometer_source.zip(22.1 KB)
Anemometer_schematic_rev_A.pdf(25.1 KB)
Anemometer_Flowchart.pdf(15.5 KB)
Anemometer_board_rev_A.zip(13.4 KB)
カメラ
Beagleboard xM
LogitechのUVCカメラ
AtherosのUSB WiFi(5GHz)
設置の詳細: [[Weather Center Camera]]
明るさ/湿度/電源電圧/温度
MCU PIC24FJ192GA110は、温度、湿度、供給電圧、およびルクス(光束密度)のワイヤレス測定値を返すウェザーノードに使用しました。ルクスセンシングには、温度安定性と人間の目に近い分光感度特性から、MicrosemiのルクスセンサLX1971IDUを使用しました。湿度測定には、HoneywellのHIH-5031湿度センサ480-3284-1-NDを使用しました。このセンサが選ばれたのは、相対湿度の動作範囲が0~100%で、ヒステリシスが±3%と低いからです。温度はMicrochipの温度センサTC1047AVNBCTを用いて測定しました。悪天候に備えてユニットを強化することは必須でした。これには、NEMA認定の筐体377-1459とC&Kの密閉型IP67定格タクタイル押しボタンスイッチCKN10004を使用しました。
Node2_Sch.pdf(99.5 KB)
Node2_Prog_flow.pdf(10.3 KB)
Source_Code_Temp_Hum_Vcc_Lux.zip (10.8 KB)
Node2_Temp_Hum_Vcc_Lux_BOM.zip (11.5 KB)
気圧
ワイヤレス温度/気圧センサモジュールは、ワイヤレスモジュールXBEE Pro、Bosch Sensortecの BMP085、およびnanoWatt XLPマイクロコントローラPIC18F14K22を使用し、すべてBud Industriesの「AN」シリーズの筐体に収納されています。PIC nanoWatt XLPマイクロコントローラは、スリープモードでわずか34nAの超低消費電力を実現します。電源はSwitchcraftの密閉型電源ジャックL712ASから供給します。電圧レギュレーションは、V-InfinityのDC/DCコンバータV7803-500によって行います。このフォームファクタと性能レベルにより、V78XXシリーズはTO220パッケージのリニアレギュレータLM78xxのドロップイン代替品となります。
ソーラー電力
現在、このWeather Stationの発電には、Parallax Incの18V@10Wソーラーパネル750-00032-NDを3枚使用しています。
構造
このプロジェクトで使用した電子エンクロージャはBud Industries製です。メインボックスはBudのNBAシリーズ377-1139-NDです。このボックスはIEC 529のIP65およびNEMA 1、2、4および4x規格に適合しています。温度範囲は-40°C~+70°Cです。このボックスは屋外仕様とはなっていませんが、ミネソタ州北部の環境にはよく耐えています…夏には華氏100度(約38°C)近くまで上がり、この冬はマイナス38度(約-39°C)まで下がりましたが、何の問題もありません。ボックスへの通気を確保するため、Budの湿度用ベントNBX-10910-NDとNBX-10911-NDを両端に1つずつ設置しました。これらのベントはボックスの換気に非常に効果的で、今のところボックスへの雪や湿気の侵入は検知されていません。ボックスとセンサのインターフェースには、SwitchcraftsのジャックSC1391-NDとプラグSC1381-NDを使用しました。これらのコネクタはIP68に適合していますが、適切に嵌合された場合のみ適用されることにご注意ください。ジャックは内部で密閉されていないため、ジャックに何も接続していない場合は、必ず「JCAP」SC1396-NDを使用してジャックを密閉してください。箱の内側には、Injectorall ElectricsのFR4アンクラッド基板PC8-UNCLAD-NDを取り付け、バックパネルとしました。パネルには、MolexのWM5737-NDを使用して、一次回路基板と2つの配電ストリップを取り付けました。
中継ボックス
2010年7月30日、将来のソーラーパネル拡張のため、weather stationに中継ボックスが追加されました。使用するコネクタは、Switchcraftの密閉型電源プラグ761KSxx(Digi-Key品番SC1382-ND)および電源ジャックL712AS(Digi-Key品番SC1390-ND)です。これらのコネクタはIP68およびNEMA 250(6P)定格で、未使用のジャックを密閉するために使用されるJキャッププラグ(Digi-Key品番SC1396-ND)を備えています。使用するボックスはBud Industriesの「AN」シリーズ(Digi-Key品番377-1429-NDで、IP65、IP66、IP67、NEMA 1、2、4、4X、12、13、UL-508定格です。画像更新:中継ボックスは、ショットキーダイオードをZetex Diodesの「Super Barrier」ダイオードSBR2U30P1(Digi-Key品番SBR2U30P1DICT-ND)に交換する変更を行いました。Super Barrierダイオードは、2.0Aで最大0.4Vという超低順電圧降下特性を持っています…
バッテリモニタ
部品リスト:
Arduino Pro 3.3v/8MHz(Digi-Key)
Arduino用XBeeシールド(Digi-Key)
2x 電流測定モジュールINA219B(Digi-Key)
ラッチングミニリレー(Digi-Key)
Arduino用電源ジャック(Digi-Key)
ジャンパワイヤ(Digi-Key)
XBee S2Cモジュール(Digi-Key)
XBee用アンテナ(Digi-Key)
10KΩ抵抗(Digi-Key)
Arduinoプロジェクト:
BatteryCharger