IEEE1888 GateWay sample that handles only 1 sensor. This is older repository, see IEEE1888_MULTI_SENSOR_GW. The newer version can handle multiple sensors.

Dependencies:   EthernetInterface FiapV2 HTTPClientForSOAP NTPClient mbed-rtos mbed spxml

Fork of temp_FIAP by Yasushi TAUCHI

This program sends only *1* data to FIAP storage with IEEE1888 format.

The data represents temperature degree Celsius taken from LM35 at P20. The LM35 is temperature sensor made by National Semiconductor.

Note 1: Newer repository is available. IEEE1888 (FIAP) multi sensor gateway can handle multiple sensors.

NOTE 2: You should define 2 constants at least before using this program. The constants are FIAP_STORAGE and POINT_ID, contained in main.h file. And You can also define other constants in main.h .

from here, in Japanese. これは、IEEE1888 形式でデータを *1種類だけ* 送信するプログラムです。 このプログラムは、P20 に接続した温度センサー LM35 の値を送信します。

注意: 下記のリポジトリーのプログラムは、複数のセンサーのデータをまとめて送信したい場合を考慮した、新しい Version です。 IEEE1888 (FIAP) multi sensor gateway

また、使用前に、main.h ファイルの定数を定義する必要があります。 (少なくとも FIAP_STORAGE および POINT_ID の2つ )

/media/uploads/strysd/fiap_node.jpg

Revision:
4:f50c307c5eda
Parent:
2:930f87d8765f
Child:
5:720a29128f41
--- a/main.cpp	Wed Aug 22 02:32:14 2012 +0000
+++ b/main.cpp	Mon Feb 11 14:32:45 2013 +0000
@@ -1,40 +1,41 @@
 #include "mbed.h"
-#include "TextLCD.h"
 #include "EthernetInterface.h"
 #include "NTPClient.h"
 #include "fiap.h"
 
-#define NTPServer "ntp.nict.jp"
+#define NTPServer "ntp.jst.mfeed.ad.jp"
+#define CloudAddress "http://ec2-175-41-234-119.ap-northeast-1.compute.amazonaws.com/axis2/services/FIAPStorage"
+#define DataIdentify "http://ramat.ram.ne.jp/"
 
 EthernetInterface eth;
 NTPClient ntp;
-Ticker timer1;
 time_t ctTime;
 
-TextLCD lcd(p24, p26, p27, p28, p29, p30);
 AnalogIn ain(p15);
-DigitalOut led(LED1);
+
+DigitalOut led1(LED1);//error
+DigitalOut led2(LED2);//running
+
 char timezone[] = "+09:00";  // JST
 char atemp[6];
-FIAP fiap("http://192.168.1.3/axis2/services/FIAPStorage");
+char TimeBuffer[9];
+float ftemp;
 struct fiap_element element[]= {
-    {"http://csse-tech.jp/temp_tauchi",atemp,NULL,NULL,NULL,NULL,NULL,NULL,timezone},
+    {DataIdentify,atemp,NULL,NULL,NULL,NULL,NULL,NULL,timezone},
 };
-
+struct tm t;
+FIAP fiap(CloudAddress);
 
 void tick(void )
 {
-    float temp;
-    char buffer[9];
-    led=!led;
-    temp=ain*3.3*100.0;
+    led2=1;
+    ftemp=ain*3.3*100.0; //LM35D
+//    temp = 0.0;
     ctTime = time(NULL);
-    strftime(buffer,9,"%X",localtime(&ctTime));
-    lcd.locate(0,1);
-    lcd.printf("%s %4.1fDeg",buffer,temp);
+    strftime(TimeBuffer,9,"%X",localtime(&ctTime));
 // Save to FIAPStorage
-    sprintf(atemp,"%4.1f",temp);
-    struct tm t = *localtime(&ctTime);
+    sprintf(atemp,"%4.1f",ftemp);
+    t = *localtime(&ctTime);
     element[0].value=atemp;
     element[0].year=t.tm_year+1900;
     element[0].month=t.tm_mon+1;
@@ -43,16 +44,17 @@
     element[0].minute=t.tm_min;
     element[0].second=t.tm_sec;
     fiap.post(element,1);
+    led2=0;
 }
 
 int main()
 {
+    led1 = led2 = 0;
+
 //Ethernet Initialize
     eth.init(); //Use DHCP
     eth.connect();
-    lcd.cls();
-    lcd.locate(0,0);
-    lcd.printf("%s", eth.getIPAddress());
+    printf("%s\r\n", eth.getIPAddress());
     printf("Trying to update time...\r\n");
     if (ntp.setTime(NTPServer) == 0) {
         printf("Set time successfully\r\n");
@@ -62,16 +64,14 @@
         set_time(ctTime);
         ctTime = time(NULL);
         printf("Time is set to (JST): %s\r\n", ctime(&ctTime));
-        printf("finish \n");
     } else {
-        lcd.locate(0,1);
-        lcd.printf("Error");
+        printf("Error");
+        led1 = 1;
         return -1;
     }
-    //fiap.debug_mode=true;
-    //eth.disconnect();
+    fiap.debug_mode=true;
     while(true) {
         tick();
-        wait(2);
+        wait(5);
     }
 }