IEEE1888 GateWay sample that handles multiple sensors.

Dependencies:   EthernetInterface Fiap HTTPClientForFIAP NTPClient mbed-rtos mbed spxml

Fork of IEEE1888_TEMP_NODE by Satoru Yoshida

This program sends data to FIAP storage with IEEE1888 format.

Note: You should locate storage.txt into mbed memory at least before using this program. The storage.txt contains storage url, see example at main.h

You can launch an AMI ( Amazon Machine Image ) on Amazon Web Service ( http://aws.amazon.com/ ) as the FIAP storage. The AMI is named as "IEEE1888 FiapStorage2 Sample", registered at Tokyo region (ap-northeast-1) .

If You need more information about the AMI, see http://d.hatena.ne.jp/satoruyoshida/20130611/1370961807 .

/media/uploads/strysd/fiap_ami.jpg

This image shows sample data of IEEE1888 format.

Note: this image is shown if FIAP_DEBUG_MODE is set to true.

/media/uploads/strysd/fiap_protocol.jpg

You can define COUNT_OF_POINTS constant as number of analog sensors and digital inputs. In this program, I use P19 and P20 as analog inputs from 2 sensors. So I define the COUNT_OF_POINTS as 2.

/media/uploads/strysd/fiap_gw.jpg

P19 is connected to illuminance sensor, S9648 (HAMAMATSU PHOTONICS K.K.). And P20 is connected to temperature sensor, LM35 (National Semiconductor Corporation) .

You can also use another analog sensors and digital inputs, for example LM61BIZ instead of LM35.

/media/uploads/strysd/server_room.png

/media/uploads/strysd/mymbed_multi_censor_initial.png

from here, in Japanese. このプログラムは IEEE1888 形式で FIAP Storage にデータ送信する例です。 このプログラムを使用する前に、少なくとも FIAP Storage の url を記載した sotrage.txt をメモリに格納しておく必要があります。 url の例は、 main.h ファイルにあります。

Amazon Web Service に用意した AMI を利用して FIAP Storage を起動することができます。IEEE1888 FiapStorage2 Sample という名前の公開 AMI です。

この AMI について詳しくは、http://d.hatena.ne.jp/satoruyoshida/20130611/1370961807 をご覧ください。

なお、main.h にはほかにも定数があります。例えば、IEEE1888 (FIAP) の通信内容をコンソールで確認したい場合は、FIAP_DEBUG_MODE を true にします。 また、アナログ・センサーやデジタル入力の個数に沿って、COUNT_OF_POINTS を定義します。

このプログラム例では、P19 および P20 をセンサーからのアナログ入力として使用しています。そのため、COUNT_OF_POINTS を 2 と定義しています。 P19 には浜松ホトニクス社製の照度センサー S9648、P20 にはナショナル・セミコンダクターの温度センサー LM35 を接続しています。 参考までに LM35 をより安価な LM61BIZ に置き換えた場合の設定値もコメントアウト状態で入れてあります

(ここから日本語文のみの内容) トランジスタ技術 2012年 2月号 の P189 - P195 に、Arduino、Ethernet シールド、温度センサー(LM35)、照度センサー(S9648-100)、DIP スイッチおよびトグルスイッチを用いたネットワーク温度&照度計の記事が掲載されています(落合 秀也 様/井上 博之 様)。 このプログラムでは、照度センサーは S9648-100 ではなく、より安価な S9648 で代用し、スイッチ 2 種類は省略していますのでご注意ください。 S9648 の負荷抵抗 1KΩ に並列に入れたコンデンサーは、手元に余っていた 0.1μF です。この容量が妥当かどうかは未検証です。

LM35 の出力をアンプで6倍に増幅してみたときのメモがここにあります。

https://mbed.org/users/strysd/notebook/memo_analog_input_from_lm35dz_via_nju7032d/

照度センサーを S9648-100 に変えて、抵抗値も検討したときのメモはこちら。

https://mbed.org/users/strysd/notebook/difference_s9648_and_s9648_100/

Files at this revision

API Documentation at this revision

Comitter:
strysd
Date:
Fri Feb 15 04:17:46 2013 +0000
Parent:
11:6c8e791ea45d
Child:
13:4e51ac520b33
Commit message:
from DATA_IDENTIFY to POINT_ID

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
main.h Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Thu Feb 14 15:17:07 2013 +0000
+++ b/main.cpp	Fri Feb 15 04:17:46 2013 +0000
@@ -26,7 +26,7 @@
 int this_month;
 float ftemp;
 struct fiap_element element[]= {
-    {DATA_IDENTIFY,NULL,NULL,NULL,NULL,NULL,NULL,NULL,TIME_ZONE_CHAR},
+    {POINT_ID,NULL,NULL,NULL,NULL,NULL,NULL,NULL,TIME_ZONE_CHAR},
 };
 struct tm t;
 FIAP fiap(FIAP_STORAGE);
--- a/main.h	Thu Feb 14 15:17:07 2013 +0000
+++ b/main.h	Fri Feb 15 04:17:46 2013 +0000
@@ -3,10 +3,10 @@
 #define TIME_ZONE_SECONDS 32400   //in case of JST
 //define these values before use!!
 //#define FIAP_STORAGE  "http://your.host.name/axis2/services/FIAPStorage"
-//#define DATA_IDENTIFY "http://your.identify.url/path"
+//#define POINT_ID "http://your.identify.url/path"
 //Example:
 //#define FIAP_STORAGE "http://ec2-99-99-99-99.ap-northeast-1.compute.amazonaws.com/axis2/services/FIAPStorage"
-//#define DATA_IDENTIFY "http://ramat.ram.ne.jp/temperature"
+//#define POINT_ID "http://ramat.ram.ne.jp/temperature"
 #define DEBUG_MODE false
 #define WAIT_LAN_ERROR_SECONDS 2
 #define WAIT_LAN_ERROR_TIMES   5