Raspberry Pi2ウェザーステーション
私たちのハッカースペース(Bloominglabs)は最近、寛大な恩人からADS-WS1気象観測所を受け取りました。さらに、InstructablesによってRaspberry Pi 2ハッカソンに選ばれたため、いくつかのRPi2をハッキングすることができました。私のプロジェクトでは、RPi2を使用して気象観測所をオンラインにすることにしました。
当局では、風向、風速、雨、気温、湿度を測定できます。ユニットは、シリアルを含むさまざまな方法でデータを出力できます。データを読み取り、ポールからネットワークに転送する方法が必要でした。 Raspberry Pi 2は、マストの防水エンクロージャーへのPoE実行でこれをうまく実行します。
1) ADS-WS1ウェザーステーション(シリアルデータ出力をサポートするウェザーステーションはすべて機能します)
2) Raspberry Pi(どのバージョンでも機能します。バージョン2を使用しました)
3) シリアル-USBアダプター
4) 少なくとも1つのメスDB9シェルを備えたシリアルケーブル
5) イーサネット–屋外の気象観測所に到達するのに十分
6) 5V電源、1-2A
7) 屋外エンクロージャー
オプションですが推奨:
8) イーサネットサージサプレッサ
9) Power-Over-Ethernetインジェクションアダプタ
最初に取得するのは気象観測所です。 Argent DataのADS-WS1ステーションを使用しましたが、必須ではありません。ただし、このユニットは非常によく文書化されており、APRSを介して気象データをブロードキャストするための統合TNCも備えています(アマチュア無線に接続した場合)。ただし、これは私が行っていることには必要ありません。必要なのは、データを読み込むためのシリアルポート出力だけです。消費電力はわずか50mAであるため、RPiによって、またはRPiへの供給電力から分割することによって供給することができます。
http://wiki.argentdata.com/index.php?title=ADS-WS1…
ステップ2:Rasperry Pi2でOSをセットアップする
どのOSでも使用できますが、私は8GBSDカードでRaspbian7.1を使用しました。作業しているOSの指示に従ってください:
https://www.raspberrypi.org/documentation/installa…
SDカードの準備ができたら、RPi2にインストールして電源を入れます。ローカルコンソール(HDMIをサポートするディスプレイとUSBキーボード)があると便利です。 Raspbianは、デフォルトでDHCPを使用し、ルーターがある場合はネットワークに接続する必要があります。しかし、私はこれが行き当たりばったりであることに気づきました。
このドキュメントの残りの部分では、Linuxに基本的な知識があることを前提としています。ここから、RPi2のセットアップに問題がある場合は、RaspberryPiのドキュメントが非常に役立ちます。
https://www.raspberrypi.org/documentation/
このステップの最後の1つは、USB-シリアルアダプタを接続することです。標準のFTDIまたはその他の一般的なSerial-to-USBデバイスであると仮定すると、Raspbianは自動的に構成します。プラグを差し込むと、新しい/ dev / ttyUSBxデバイスが表示されます。
[メール保護]〜$ ls / dev / ttyUSB * / dev / ttyUSB0
USB-シリアルデバイスが接続されているのは/ dev / ttyUSB0だけだと仮定します。 「lsusb」コマンドは、すべてのUSBデバイスを表示します。これは、デバイスが正しく表示されていない場合にデバイスを識別するのに役立つ場合があります。
[email protected]〜$ lsusb
Bus 001 Device 002:ID 0424:9514 Standard Microsystems Corp. Bus 001 Device 001:ID 1d6b:0002 Linux Foundation 2.0 roothubBus 001 Device 003:ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 005:ID 0403:6001 Future Technology Devices International、Ltd FT232 USB-Serial(UART)IC
静的IPを設定することを好みます。これは、RPi2が空のポールにあるときに、問題が発生する心配が1つ少ないためです。 / etc / network / interfacesを編集し、次の行を変更します:
iface eth0 inet dhcp
この行へ:
iface eth0 inet static
そして、これらの行を追加します。ネットワークに適した値のIPアドレスとゲートウェイに置き換えます:
address 192.168.x.xnetmask 255.255.255.0gateway 192.168.x.x
次に、必要なソフトウェア、Webサーバー用のApache2およびその他のユーティリティをインストールします。 Minicomは、シリアル通信が正しく機能していることを確認するための優れたツールです。wgetは、次のセクションのweather.shスクリプトをダウンロードするためのものです。
apt-get install apache2apt-get install wgetapt-get install minicom
今後のテストのために、このスクリプトをダウンロードすることをお勧めします:
wget -O Weather.sh "http://server1.nuge.com/~weather/software/weather -...
何らかの理由で上記のリンクが失敗した場合は、weather.shスクリプトの最新バージョンをここで見つけることができます:
http://server1.nuge.com/~weather/
最後になりましたが、/ etc / groupファイルを編集して、アカウント「pi」またはテストするアカウントを「dialout」グループに追加する必要がある場合があります。これにより、アカウントがシリアルデバイス(/ dev / ttyUSBx)に対して読み取りおよび書き込みを行うための適切な権限が付与されます。
ステップ3:weewxをインストールして構成し、起動時に開始するようにサービスを構成します
Weewxは、気象観測所のいくつかのメーカーからシリアルデータを読み込み、データをグラフ化するためのWebインターフェイスを提供するプログラムです。
apt-get install weewx
次に、それを構成する必要があります。 /etc/weewx/weewx.confを編集し、意味のある変数を調整します。構成ファイルは自己文書化されているため、簡単にカスタマイズできます。
#$ Id:weewx.conf 2901 2015-02-05 21:15:03Z tkeffer $ ## WEEWX CONFIGURATION FILE ## Copyright(c)2009-2014 Tom Keffer#完全な権利についてはファイルLICENSE.txtを参照してください。################################################### ##############################このセクションは一般的な構成情報用です#追加のデバッグ情報については1に設定し、それ以外の場合はコメントアウトしますまたは、zero.debug =0#に設定します。このステーションのweewxデータファイル階層のルートディレクトリ。WEEWX_ROOT=/#ソケット(FTP、HTTP)接続をタイムアウトするまでの待機時間:socket_timeout =20#これを変更しないでください-これは、インストールおよび更新時にsetup.pyによって使用されます。version=3.1.0 ################################## ############################################# [ステーション]#これセクションは、ステーションに関する情報です。#ステーションの場所の説明。 location ="Bloominglabs-インディアナ州ブルーミントン"#緯度と経度(小数)...
最後に、起動時に開始するようにapache2とweewxを構成します。
update-rc.d apache2 defaults 99 2update-rc.d weewx defaults 99 2
これで、これらのサービスは、RPi2の電源がオンになるたびに自動的に起動します。これで、RPi2に必要なすべてのことができます。
コントローラを配線するために必要なのは、3本のワイヤと2本の電源ワイヤだけです。私の写真では、ねじ込み式端子の上位5つにワイヤーがあります。これらは、TNC / APRSデータをアマチュア無線に送信するためのものであり、このチュートリアルでは必要ありません。
したがって、最初にシリアルケーブルをウェザーコントローラーに配線する必要があります。ケーブルをシリアル-USBアダプタに接続します。次に、シリアルケーブルの残りの端を切り取ります。必要に応じてケーブルを配線するのに十分なたるみを確保し、ワイヤの外側のシースを少なくとも2インチはがします。個々のワイヤは、1/4インチ程度だけ剥がす必要があります。マルチメータを使用してケーブルのピンをマップし、DB9シェル内のピンのピン2、3、および5に一致するワイヤを見つける必要があります。通常、よく見ると、ピン番号がピンの横に表示されています。
ピン2のワイヤーはコントローラーのTXD1に接続されます。
ピン3のワイヤーはコントローラーのRXD1に接続されます。
ピン5のワイヤーはコントローラーのアースに接続されます。
それがすべて配線されたら、コントローラーにいくらかの電力が必要です。 9Vバッテリーは、テスト、または5Vまたは12V電源で正常に動作します。プラス線を「DC入力」まで配線し、アース線をコントローラの下部GND入力に配線します。
このインストールでは、Power-over-Ethernet(PoE)アダプターのペアを使用しました。 RPi2とウェザーコントローラーの両方に5Vの電源をオフにし、リモートエンド用のアダプターを作成してそれらの間で電力を分割しました。これは要素に含まれるため、接続を整然と耐候性にするために収縮チューブを使用しました。これはすべて耐候性のある箱に入っていますが、漏れが発生した場合に備えて保護層を追加しても問題はありません。
最後になりましたが、RPi2の5V電源は、両方のデバイスに電力を供給するのに適しています。実際、microUSBコネクタを切断して、PoEアダプタのリモートエンドで使用できます。
これで、RPi2とコントローラーの電源を入れることができるはずです。両方の電源を入れたら、minicomを使用して通信が機能していることを確認します。正しく動作する前に、ADS-WS1コントローラーのファームウェアを再フラッシュする必要がありました。コントローラには、設定が必要なインタラクティブシリアルインターフェイスがあります。 Argentは、ユニットに送信できるコマンドを含むコントローラーのwikiを管理しています。
http://wiki.argentdata.com/index.php?title=ADS-WS1…
コントローラが通常のデータを送信したら、weather.shスクリプトを使用してみてください。これで、インテリジェントなデータを取得していることを確認できます。
次に、すべてを屋外コンテナ用のある種のコンテナに入れる必要があります。技術的には、適切な屋外温度測定値を確保するために百葉箱を作成する必要があります。温度センサーと湿度センサーは、気象コントローラーボックス内にあります(読み取り用の開口部があります)。
http://en.wikipedia.org/wiki/Stevenson_screen
今のところ、PVC NEMA4インチの防水エンクロージャを使用しました。欠点は、湿度の測定値が得られず、日中の温度の測定値が華氏10〜15度上昇する可能性があることです。将来的には、正確な測定値を取得するために百葉箱を作成する予定です。
詳細:Raspberry Pi 2 Weather Station
製造プロセス