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つ )
main.cpp
- Committer:
- strysd
- Date:
- 2013-02-12
- Revision:
- 5:720a29128f41
- Parent:
- 4:f50c307c5eda
- Child:
- 6:cccef292257b
File content as of revision 5:720a29128f41:
#include "mbed.h" #include "EthernetInterface.h" #include "NTPClient.h" #include "fiap.h" #define NTPServer "ntp.jst.mfeed.ad.jp" #define CloudAddress "http://your.host.name/axis2/services/FIAPStorage" #define DataIdentify "http://your.url/" //Example: //#define CloudAddress "http://ec2-999-999-999-999.ap-northeast-1.compute.amazonaws.com/axis2/services/FIAPStorage" //#define DataIdentify "http://ramat.ram.ne.jp/" #define DEBUG_MODE false EthernetInterface eth; NTPClient ntp; time_t ctTime; AnalogIn ain(p15);//censor DigitalOut led1(LED1);//error DigitalOut led2(LED2);//tick running char timezone[] = "+09:00"; // JST char atemp[6]; char TimeBuffer[9]; float ftemp; struct fiap_element element[]= { {DataIdentify,atemp,NULL,NULL,NULL,NULL,NULL,NULL,timezone}, }; struct tm t; FIAP fiap(CloudAddress); void tick(void ) { led2=1; ftemp=ain*330.0; //in case of LM35D ctTime = time(NULL); strftime(TimeBuffer,9,"%X",localtime(&ctTime)); // Save to FIAPStorage 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; element[0].day=t.tm_mday; element[0].hour=t.tm_hour; 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(); printf("%s\r\n", eth.getIPAddress()); printf("Trying to update time...\r\n"); if (ntp.setTime(NTPServer) == 0) { printf("Set time successfully\r\n"); time_t ctTime; ctTime = time(NULL); ctTime+=32400; set_time(ctTime); ctTime = time(NULL); printf("Time is set to (JST): %s\r\n", ctime(&ctTime)); } else { printf("Error"); led1 = 1; return -1; } fiap.debug_mode=DEBUG_MODE; while(true) { tick(); wait(5); } }