FIAPの使用の例(温度ノード)

Dependencies:   EthernetNetIf NTPClient_NetServices TextLCD mbed

Committer:
yueee_yt
Date:
Wed Jan 04 12:49:14 2012 +0000
Revision:
0:e489b051cf96

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yueee_yt 0:e489b051cf96 1 #include "mbed.h"
yueee_yt 0:e489b051cf96 2 #include "EthernetNetIf.h"
yueee_yt 0:e489b051cf96 3 #include "NTPClient.h"
yueee_yt 0:e489b051cf96 4 #include "fiap.h"
yueee_yt 0:e489b051cf96 5 #include "TextLCD.h"
yueee_yt 0:e489b051cf96 6
yueee_yt 0:e489b051cf96 7 #define ntp_server "ntp.cc.yamaguchi-u.ac.jp"
yueee_yt 0:e489b051cf96 8
yueee_yt 0:e489b051cf96 9 DigitalOut led1(LED1);
yueee_yt 0:e489b051cf96 10 DigitalOut led2(LED2);
yueee_yt 0:e489b051cf96 11 DigitalOut led3(LED3);
yueee_yt 0:e489b051cf96 12 DigitalOut led4(LED4);
yueee_yt 0:e489b051cf96 13
yueee_yt 0:e489b051cf96 14 EthernetNetIf eth;
yueee_yt 0:e489b051cf96 15 NTPClient ntp;
yueee_yt 0:e489b051cf96 16 FIAP fiap("http://192.168.1.5/axis2/services/FIAPStorage","http://test.fiap.org/mbed_temp/");
yueee_yt 0:e489b051cf96 17
yueee_yt 0:e489b051cf96 18 TextLCD lcd(p24, p26, p27, p28, p29, p30);
yueee_yt 0:e489b051cf96 19 AnalogIn temp(p20);
yueee_yt 0:e489b051cf96 20 Ticker timer;
yueee_yt 0:e489b051cf96 21
yueee_yt 0:e489b051cf96 22 char timezone[] = "+09:00"; // JST
yueee_yt 0:e489b051cf96 23 int ret;
yueee_yt 0:e489b051cf96 24 time_t next_record;
yueee_yt 0:e489b051cf96 25
yueee_yt 0:e489b051cf96 26 struct fiap_element element[]={
yueee_yt 0:e489b051cf96 27 {"TEMP1",NULL,NULL,timezone},
yueee_yt 0:e489b051cf96 28 // {"P2",NULL,NULL,timezone},
yueee_yt 0:e489b051cf96 29 };
yueee_yt 0:e489b051cf96 30
yueee_yt 0:e489b051cf96 31 void send_fiap_storage() {
yueee_yt 0:e489b051cf96 32 //data initialize
yueee_yt 0:e489b051cf96 33 char buffer[17];
yueee_yt 0:e489b051cf96 34 float temp_data=temp.read()*330.0;
yueee_yt 0:e489b051cf96 35 time_t seconds = time(NULL);
yueee_yt 0:e489b051cf96 36 strftime(buffer,17," %X ",localtime(&seconds));
yueee_yt 0:e489b051cf96 37 lcd.locate(0,0);
yueee_yt 0:e489b051cf96 38 lcd.printf("%s",buffer);
yueee_yt 0:e489b051cf96 39 lcd.locate(0,1);
yueee_yt 0:e489b051cf96 40 lcd.printf("TEMP=%4.1f Deg",temp_data);
yueee_yt 0:e489b051cf96 41 if (seconds>=next_record) {
yueee_yt 0:e489b051cf96 42 next_record+=60;
yueee_yt 0:e489b051cf96 43 char data[5];
yueee_yt 0:e489b051cf96 44 sprintf(data,"%4.1f",temp_data);
yueee_yt 0:e489b051cf96 45 element[0].value=data;
yueee_yt 0:e489b051cf96 46 element[0].t=localtime(&seconds);
yueee_yt 0:e489b051cf96 47 //do post
yueee_yt 0:e489b051cf96 48 ret=fiap.post(element,1);
yueee_yt 0:e489b051cf96 49 return ;
yueee_yt 0:e489b051cf96 50 }
yueee_yt 0:e489b051cf96 51 }
yueee_yt 0:e489b051cf96 52
yueee_yt 0:e489b051cf96 53 int main() {
yueee_yt 0:e489b051cf96 54 led1=led2=led3=led4=0;
yueee_yt 0:e489b051cf96 55 lcd.printf("FIAP TEMP");
yueee_yt 0:e489b051cf96 56 fiap.debug_mode=true;
yueee_yt 0:e489b051cf96 57 //EthernetNetIf initialize
yueee_yt 0:e489b051cf96 58 EthernetErr ethErr = eth.setup();
yueee_yt 0:e489b051cf96 59 if (ethErr) {
yueee_yt 0:e489b051cf96 60 // lcd.locate(0,1);
yueee_yt 0:e489b051cf96 61 // lcd.printf("Error %d in setup.\n", ethErr);
yueee_yt 0:e489b051cf96 62 return -1;
yueee_yt 0:e489b051cf96 63 }
yueee_yt 0:e489b051cf96 64 led1=1;
yueee_yt 0:e489b051cf96 65 //NTPClient initia,lize
yueee_yt 0:e489b051cf96 66 Host server(IpAddr(), 123, ntp_server);
yueee_yt 0:e489b051cf96 67 NTPResult Ntpr=ntp.setTime(server);
yueee_yt 0:e489b051cf96 68 //UTC-->JST +9Hour(32400Sec)
yueee_yt 0:e489b051cf96 69 time_t ctTime;
yueee_yt 0:e489b051cf96 70 ctTime = time(NULL);
yueee_yt 0:e489b051cf96 71 ctTime+=32400;
yueee_yt 0:e489b051cf96 72 set_time(ctTime);
yueee_yt 0:e489b051cf96 73 led2=1;
yueee_yt 0:e489b051cf96 74 next_record = (time(NULL)/60+1)*60;
yueee_yt 0:e489b051cf96 75
yueee_yt 0:e489b051cf96 76 timer.attach(&send_fiap_storage, 1);
yueee_yt 0:e489b051cf96 77
yueee_yt 0:e489b051cf96 78 //do
yueee_yt 0:e489b051cf96 79 if (ret!=0) {
yueee_yt 0:e489b051cf96 80 led4=0;
yueee_yt 0:e489b051cf96 81 while (1) {
yueee_yt 0:e489b051cf96 82 led3=!led3;
yueee_yt 0:e489b051cf96 83 wait(0.5);
yueee_yt 0:e489b051cf96 84 }
yueee_yt 0:e489b051cf96 85 } else {
yueee_yt 0:e489b051cf96 86 led3=0;
yueee_yt 0:e489b051cf96 87 while (1) {
yueee_yt 0:e489b051cf96 88 led4=!led4;
yueee_yt 0:e489b051cf96 89 wait(0.5);
yueee_yt 0:e489b051cf96 90 }
yueee_yt 0:e489b051cf96 91 }
yueee_yt 0:e489b051cf96 92 }