FIAPの使用の例(温度ノード)
Dependencies: EthernetNetIf NTPClient_NetServices TextLCD mbed
main.cpp
- Committer:
- yueee_yt
- Date:
- 2012-01-04
- Revision:
- 0:e489b051cf96
File content as of revision 0:e489b051cf96:
#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); } } }