FIAPの使用の例(温度ノード)
Dependencies: EthernetNetIf NTPClient_NetServices TextLCD mbed
main.cpp@0:e489b051cf96, 2012-01-04 (annotated)
- Committer:
- yueee_yt
- Date:
- Wed Jan 04 12:49:14 2012 +0000
- Revision:
- 0:e489b051cf96
Who changed what in which revision?
User | Revision | Line number | New 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 | } |