FIAPの使用の例(温度ノード)
Dependencies: EthernetNetIf NTPClient_NetServices TextLCD mbed
Diff: main.cpp
- Revision:
- 0:e489b051cf96
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Jan 04 12:49:14 2012 +0000 @@ -0,0 +1,92 @@ +#include "mbed.h" +#include "EthernetNetIf.h" +#include "NTPClient.h" +#include "fiap.h" +#include "TextLCD.h" + +#define ntp_server "ntp.cc.yamaguchi-u.ac.jp" + +DigitalOut led1(LED1); +DigitalOut led2(LED2); +DigitalOut led3(LED3); +DigitalOut led4(LED4); + +EthernetNetIf eth; +NTPClient ntp; +FIAP fiap("http://192.168.1.5/axis2/services/FIAPStorage","http://test.fiap.org/mbed_temp/"); + +TextLCD lcd(p24, p26, p27, p28, p29, p30); +AnalogIn temp(p20); +Ticker timer; + +char timezone[] = "+09:00"; // JST +int ret; +time_t next_record; + +struct fiap_element element[]={ + {"TEMP1",NULL,NULL,timezone}, +// {"P2",NULL,NULL,timezone}, +}; + +void send_fiap_storage() { + //data initialize + char buffer[17]; + float temp_data=temp.read()*330.0; + time_t seconds = time(NULL); + strftime(buffer,17," %X ",localtime(&seconds)); + lcd.locate(0,0); + lcd.printf("%s",buffer); + lcd.locate(0,1); + lcd.printf("TEMP=%4.1f Deg",temp_data); + if (seconds>=next_record) { + next_record+=60; + char data[5]; + sprintf(data,"%4.1f",temp_data); + element[0].value=data; + element[0].t=localtime(&seconds); + //do post + ret=fiap.post(element,1); + return ; + } +} + +int main() { + led1=led2=led3=led4=0; + lcd.printf("FIAP TEMP"); + fiap.debug_mode=true; + //EthernetNetIf initialize + EthernetErr ethErr = eth.setup(); + if (ethErr) { + // lcd.locate(0,1); + // lcd.printf("Error %d in setup.\n", ethErr); + return -1; + } + led1=1; + //NTPClient initia,lize + Host server(IpAddr(), 123, ntp_server); + NTPResult Ntpr=ntp.setTime(server); + //UTC-->JST +9Hour(32400Sec) + time_t ctTime; + ctTime = time(NULL); + ctTime+=32400; + set_time(ctTime); + led2=1; + next_record = (time(NULL)/60+1)*60; + + timer.attach(&send_fiap_storage, 1); + + //do + if (ret!=0) { + led4=0; + while (1) { + led3=!led3; + wait(0.5); + } + } else { + led3=0; + while (1) { + led4=!led4; + wait(0.5); + } + } +}