Weather Platform firmware - お天気プラットフォームのファームウェア
Weather Platform firmware - お天気プラットフォームのファームウェア
This measure the barometric pressure (BMP085), temperatures and humidity (SHT15), wind vane and rain gauge (Sparkfun), light, UV, moist (ohm), etc.
Bosch社のデジタル気圧センサー「BMP085」、SENSIRION社のデジタル温度・湿度センサー「SHT15」、浜松ホトニクス社の照度センサー「S9648-100」を使い、環境計測ができます。
オプションとして、「G5842」を付ければ紫外線、SparkFun社の「Weather Meters」を接続すれば風速・風向・雨量の計測もでき、簡易的に土壌水分(抵抗値センサー)などを計測するための端子も用意しています。 同端子はガイガーカウンターなどのパルス入力をカウントできるよう変更できます。
mbed 以外に、 LPCXpresso も搭載できます。
基板のサイズはタカチ電機工業のケース「PW-15-4-11」に収まるようデザインされています。
マイコンボードのピンがそのまま引き出せる拡張エリアには、ダイセン電子工業のユニバーサル基板「PU52x74」が搭載できます。
ボード詳細は mbed Weather Platform - お天気プラットフォーム
その mbed Weather Platform を、ロガーやインターネットへ接続するセットトップボックスにするファームウェアです。
継続して改良中です。最新のファームウェアをコンパイルしてお使いください。
- 設定ファイルによる各種設定
- SDメモリカードまたはUSBストレージへのCSVファイル出力
- DHCP/固定IPアドレス切り替え
- Pachube投稿
- Twitter投稿(SuperTweet.net 利用)
- Weather Stations投稿
- XBee送信(CSV形式、透過モード)
- SNMP対応
- 条件指定オープンコレクタ出力
- I2C LCD を接続できます
- I2C LED Display を接続できます
使い方
- ハードウェアを組み立てる
- ファームウェアを開発環境にインポートする
- weather.h の #define 等を編集しコンパイル、mbedへ書き込み
- 設定ファイル weather.cfg を用意しSDメモリーカードへ保存(必要に応じILファイル weather.asm )
- 電源ON
ダウンロード
IL(Instruction List、旧アクション定義)が別ファイルに分かれ新しくなりました。
Import programWeatherStation
mbed Weather Platform firmware http://mbed.org/users/okini3939/notebook/mbed-weather-platform-firmware/
ライセンス
- MITライセンス
- http://mbed.org/license/mit
- 要旨
- ソフトウェアを無制限に扱うことを無償で許可します。
- ソフトウェアは現状のまま提供され、何の保証もありません。
- ソフトウェアの複製や重要な部分に著作権表示・本ライセンスの表示をしてください。
weather.h
使用する機能について #define してからコンパイルしてください。(同時にいくつも有効化するとメモリーが不足ぎみです シンプルなプロトコルを一から書いたら解消しました)
weather.h
: #undef DEBUG // デバッグ用メッセージをシリアルへ表示 #define PCB_LOT 0 // 基板のバージョン表示 0:イ, 1:ロ, 2:ハ #define REG_LIGHT 1 // 照度センサ回路の抵抗値(KΩ) #define REG_UV 100 // 紫外線センサ回路の抵抗値(KΩ) #define REG_MOIST 10 // 水分(湿り気)センサ回路の抵抗値(KΩ) #define USE_IL // weather.asmの処理をする #define USE_USB // USBメモリーの有効化 #define USE_DISPLAY // I2C LCD, LEDディスプレイの有効化(オプション) #define USE_HTTP // HTTP機能の有効化(PachubeやTwitterへの投稿) #define USE_NTP // NTP機能の有効化(時刻合わせ) #undef USE_SNMP // SNMPエージェント機能の有効化 #define USE_EMAIL // メール送信機能の有効化 :
旧
アクション定義を weather.cfg ファイル内へ書くバージョン。
Import programWeatherPlatform_20110408
mbed Weather Platform firmware http://mbed.org/users/okini3939/notebook/mbed-weather-platform-firmware/
CSVファイル(ロガー)
CSVファイルのファイル名は「w00001.csv」 (数字の部分は連番で、電源ONのたびに+1される)
ファイルの出力先は設定ファイルによって指定できる。
連番はCFメモリ中の「weather.seq」というファイルで管理される。
設定ファイル
SDメモリカードに「weather.cfg」という設定ファイルがあれば電源ON時に自動的に読み込んで各種設定ができる。
weather.cfg
INTERVAL=300 FILE=SD IPADDRESS=DHCP NTPSERVER=ntp.domain.name PACHUBE_APIKEY=Pachube_API_Key PACHUBE_FEEDID=1234 STATIONS_ID=1234 STATIONS_PIN=XXXXXX TWITTER_USER=username TWITTER_PWD=password TWITTER_MESG[0]=Rainfall %.2Rmm/h %PhPa %.1T`C %H%% @ mbed Weather Platform http://bit.ly/gKSEwH #mbed #pachube SNMP_COMMNAME=public XBEE=9600 LCD_TYPE=2 LCD_CONF=10 LCD_MESG=%h:%i %.1T%337C %H%%%.1PhPa %Am/s LEDDISP_MESG=%h:%i %.1PhPa %.1T%033 %H%% %.1Am/s %V' %.2Rmm/h
IL (Instruction List) ファイル
SDメモリカードに「weather.asm」という設定ファイルがあれば電源ON時に自動的に読み込んで、
計測値を条件式に従って、Pachube・Twitter等へのデータ投稿や、オープンコレクタ出力の制御をすることができます。
書式はPLCのシーケンスプログラムのIL(Instruction List、ニーモニック)と似ています。ラダーチャートから検討するとわかりやすいでしょう。
weather.asm
DEF T0=3540 LD 1 OUT P OUT S LD A5>0 OUT T0 LDP T0 OUT W0
SNMP (Simple Network Management Protocol)
GETのみ可能
MRTG や RRD tool を使えばデータ蓄積・グラフ化も簡単。
% snmpget -v 1 -c "public" 192.168.1.4 1.3.6.1.4.1.36582.0 SNMPv2-SMI::enterprises.36582.0 = Opaque: Float: 1015.909973 % snmpget -v 1 -c "public" 192.168.1.4 1.3.6.1.4.1.36582.1 SNMPv2-SMI::enterprises.36582.1 = Opaque: Float: 19.360001 % snmpget -v 1 -c "public" 192.168.1.4 1.3.6.1.4.1.36582.2 SNMPv2-SMI::enterprises.36582.2 = Opaque: Float: 40.263752
Sample
Powerd by Weather Stations
備考
- 風速は、0.25秒毎に回転数をサンプリングし、2秒毎の平均値です。
- 風向は、最大風速を観測した際の値です。
- 雨量は、5分毎にサンプリングし、1時間の平均値です。
Acknowledge
- UV値計算の桁違い、月表示の不具合修正 等(2011-10-07、感謝 京都H様)
6 comments on Weather Platform firmware - お天気プラットフォームのファームウェア:
Please log in to post comments.
Dear Suga,
could you please translate the information in english too? I'm very interessted in this thematic.
Br
Thomas