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
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つ )
Diff: main.cpp
- Revision:
- 4:f50c307c5eda
- Parent:
- 2:930f87d8765f
- Child:
- 5:720a29128f41
diff -r 536b3d6e1555 -r f50c307c5eda main.cpp --- 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); } }