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 を、ロガーやインターネットへ接続するセットトップボックスにするファームウェアです。
継続して改良中です。最新のファームウェアをコンパイルしてお使いください。

-> English

  • 設定ファイルによる各種設定
  • SDメモリカードまたはUSBストレージへのCSVファイル出力
  • DHCP/固定IPアドレス切り替え
  • Pachube投稿
  • Twitter投稿(SuperTweet.net 利用)
  • Weather Stations投稿
  • XBee送信(CSV形式、透過モード)
  • SNMP対応
  • 条件指定オープンコレクタ出力
  • I2C LCD を接続できます
  • I2C LED Display を接続できます

使い方

  1. ハードウェアを組み立てる
  2. ファームウェアを開発環境にインポートする
  3. weather.h の #define 等を編集しコンパイル、mbedへ書き込み
  4. 設定ファイル weather.cfg を用意しSDメモリーカードへ保存(必要に応じILファイル weather.asm )
  5. 電源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、ニーモニック)と似ています。ラダーチャートから検討するとわかりやすいでしょう。

ILファイルについての詳細はこちら

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のみ可能

MRTGRRD 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

http://weather.sugakoubou.com/graph.php?id=1000&tagcd=0&start=25&end=0&width=200&height=80&color=0000cc http://weather.sugakoubou.com/graph.php?id=1000&tagcd=1&start=25&end=0&width=200&height=80

Powerd by Weather Stations

備考

  • 風速は、0.25秒毎に回転数をサンプリングし、2秒毎の平均値です。
  • 風向は、最大風速を観測した際の値です。
  • 雨量は、5分毎にサンプリングし、1時間の平均値です。

Acknowledge

  • UV値計算の桁違い、月表示の不具合修正 等(2011-10-07、感謝 京都H様)

戻る (back)


Report
23 Dec 2010

Dear Suga,

could you please translate the information in  english too? I'm very interessted in this thematic.

Br

Thomas

12 Jan 2011

user Thomas Boje wrote:

Dear Suga,

could you please translate the information in  english too? I'm very interessted in this thematic.

Br

Thomas

Sorry, now it is only Japanese.
If I have time to write in English.

26 Feb 2011

Google Translate is great for this; you can read someones page in your preferred language!

03 Mar 2011

Simon, thanks for this hint

02 Apr 2011
a little English version: http://mbed.org/users/okini3939/notebook/weather-platform-en/

5 comments on Weather Platform firmware - お天気プラットフォームのファームウェア:

15 Mar 2012

Suga, I tried compiling your code and the following error occurs:

"cannot open source input file "LPC1768/LPC17xx.h": No such file or directory" in file "lib/PowerControl/PowerControl/PowerControl.h", Line: 9, Col: 28

Regards, ...kevin

15 Mar 2012

I do not know if this is correct. I was resolved by this.

/PowerControl/PowerControl/PowerControl.h

Line 9 is commentout

//#include "LPC1768/LPC17xx.h"

+ /PowerControl/main.cpp

all line comment out the error if "multiple define error"

/*
#define xxxx
int main(){
    xxxx
}
*/
15 Mar 2012

When I imported the WeatherStation program, PowerControl comes as a Library which cannot be edited. ...kevin

16 Mar 2012

Hello Kevin, yzz, Thank you for your reports. I had to update the program.

16 Mar 2012

Suga, Do you sell blank PCB or kits? ...kevin

Please login to post comments.