Dependencies:   ChaNFSSD mbed BMP085 SHT2x

Committer:
tosihisa
Date:
Mon Jan 23 15:04:58 2012 +0000
Revision:
2:f546aaa0e1d5
Parent:
1:83960ee4d9a2
Child:
3:844fbe607dae
ENV Logger v0.5

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tosihisa 1:83960ee4d9a2 1 /*
tosihisa 1:83960ee4d9a2 2 * このソフトウェアは、大阪市立大学と京都大学生存圏ミッション研究の共同研究の成果物です。
tosihisa 1:83960ee4d9a2 3 * ソースコードそのもののライセンスは、各ソースコードのライセンスに沿って公開します。
tosihisa 1:83960ee4d9a2 4 * 2012-1-4 Toshihisa T
tosihisa 1:83960ee4d9a2 5 */
tosihisa 0:6089ae824f06 6 #include "mbed.h"
tosihisa 0:6089ae824f06 7 #include "NMEA_parse.h"
tosihisa 0:6089ae824f06 8 #include "SDFileSystem.h"
tosihisa 0:6089ae824f06 9 #include "libT/mbed/tserialbuffer.h"
tosihisa 0:6089ae824f06 10 #include "BMP085.h"
tosihisa 0:6089ae824f06 11 #include "SHT2x.h"
tosihisa 0:6089ae824f06 12 #include "AD7994.h"
tosihisa 0:6089ae824f06 13 //#include "TextLCD.h"
tosihisa 0:6089ae824f06 14 #include "TextLCD_20X4.h"
tosihisa 1:83960ee4d9a2 15 #include "UBXPacket.h"
tosihisa 0:6089ae824f06 16
tosihisa 0:6089ae824f06 17 using namespace libT;
tosihisa 0:6089ae824f06 18
tosihisa 2:f546aaa0e1d5 19 //#define _CO2_TEST
tosihisa 1:83960ee4d9a2 20 //#define _I2C_TEST
tosihisa 0:6089ae824f06 21
tosihisa 0:6089ae824f06 22 #define _USE_FS_NAME "sd"
tosihisa 0:6089ae824f06 23
tosihisa 0:6089ae824f06 24 Serial debug(USBTX,USBRX);
tosihisa 0:6089ae824f06 25
tosihisa 0:6089ae824f06 26 DigitalIn gps_int0(p24);
tosihisa 0:6089ae824f06 27 DigitalOut gps_reset(p25);
tosihisa 0:6089ae824f06 28 InterruptIn gps_pps(p26);
tosihisa 0:6089ae824f06 29 tSerialBuffer gps(p28,p27);
tosihisa 0:6089ae824f06 30 DigitalOut gps_pps_led(LED2);
tosihisa 1:83960ee4d9a2 31 #ifdef _I2C_TEST /* { */
tosihisa 1:83960ee4d9a2 32 I2C i2c(p9, p10); // sda, scl
tosihisa 1:83960ee4d9a2 33 #endif /* } */
tosihisa 0:6089ae824f06 34 BMP085 bmp085(p9, p10);
tosihisa 0:6089ae824f06 35 //SHT25 sht25(p9, p10);
tosihisa 2:f546aaa0e1d5 36 SHT2x sht25(p9,p10);
tosihisa 0:6089ae824f06 37 AD7994 ad7994(p9,p10);
tosihisa 0:6089ae824f06 38 TextLCD_20X4 lcd(p15, p16, p17, p18, p19, p20); // rs, e, d4-d7
tosihisa 0:6089ae824f06 39
tosihisa 1:83960ee4d9a2 40 SDFileSystem sd(p5, p6, p7, p8, _USE_FS_NAME);
tosihisa 0:6089ae824f06 41
tosihisa 0:6089ae824f06 42 DigitalOut myled(LED1);
tosihisa 0:6089ae824f06 43
tosihisa 0:6089ae824f06 44 tSerialBuffer CO2(p13,p14);
tosihisa 0:6089ae824f06 45
tosihisa 1:83960ee4d9a2 46 struct UBXPacket_s UBXPacket;
tosihisa 1:83960ee4d9a2 47
tosihisa 0:6089ae824f06 48 int pps_count = 0;
tosihisa 0:6089ae824f06 49 void gps_pps_rise()
tosihisa 0:6089ae824f06 50 {
tosihisa 0:6089ae824f06 51 gps_pps_led = ((pps_count+=1) & 1) ? 1 : 0;
tosihisa 0:6089ae824f06 52 }
tosihisa 0:6089ae824f06 53
tosihisa 0:6089ae824f06 54 void logFile_Init()
tosihisa 0:6089ae824f06 55 {
tosihisa 0:6089ae824f06 56 DIR *d;
tosihisa 0:6089ae824f06 57 struct dirent *p;
tosihisa 0:6089ae824f06 58
tosihisa 0:6089ae824f06 59 d = opendir("/" _USE_FS_NAME);
tosihisa 0:6089ae824f06 60 if ( d != NULL ) {
tosihisa 0:6089ae824f06 61 while ( (p = readdir(d)) != NULL ) {
tosihisa 0:6089ae824f06 62 debug.printf("FILE - %s\x0d\x0a", p->d_name);
tosihisa 0:6089ae824f06 63 }
tosihisa 0:6089ae824f06 64 closedir(d);
tosihisa 0:6089ae824f06 65 }
tosihisa 0:6089ae824f06 66 }
tosihisa 0:6089ae824f06 67
tosihisa 0:6089ae824f06 68 void FileWriteTest()
tosihisa 0:6089ae824f06 69 {
tosihisa 0:6089ae824f06 70 FILE *fp;
tosihisa 0:6089ae824f06 71 char *logname = "/" _USE_FS_NAME "/MBEDLOG.TXT";
tosihisa 0:6089ae824f06 72
tosihisa 0:6089ae824f06 73 debug.printf("FileWriteTest() open(%s) :", logname);
tosihisa 0:6089ae824f06 74 fp = fopen(logname,"a+w");
tosihisa 0:6089ae824f06 75 if(fp == NULL){
tosihisa 0:6089ae824f06 76 printf("NG\n");
tosihisa 0:6089ae824f06 77 return;
tosihisa 0:6089ae824f06 78 }
tosihisa 0:6089ae824f06 79 printf("OK\n");
tosihisa 0:6089ae824f06 80 fprintf(fp,"ENV Logger \"V1\" Start (BUILD:[" __DATE__ "/" __TIME__ "])\x0d\x0a");
tosihisa 0:6089ae824f06 81 fclose(fp);
tosihisa 0:6089ae824f06 82 }
tosihisa 0:6089ae824f06 83
tosihisa 0:6089ae824f06 84 int CO2_Read(unsigned short *val)
tosihisa 0:6089ae824f06 85 {
tosihisa 0:6089ae824f06 86 unsigned char sbuf[] = { 0xFE, 0x04, 0x00, 0x03, 0x00, 0x01, 0xD5, 0xC5 };
tosihisa 0:6089ae824f06 87 unsigned char rbuf[7];
tosihisa 0:6089ae824f06 88 int i;
tosihisa 0:6089ae824f06 89 unsigned short crc;
tosihisa 0:6089ae824f06 90 extern unsigned short modbus_CRC(unsigned char *DataPtr, unsigned short len);
tosihisa 0:6089ae824f06 91
tosihisa 0:6089ae824f06 92 for(i=0;i < sizeof(sbuf);i++){
tosihisa 0:6089ae824f06 93 //debug.printf("0x%02x ",sbuf[i]);
tosihisa 0:6089ae824f06 94 CO2.putc(sbuf[i]);
tosihisa 0:6089ae824f06 95 }
tosihisa 0:6089ae824f06 96 for(i=0;i < sizeof(rbuf);i++){
tosihisa 0:6089ae824f06 97 while(!CO2.readable()){}
tosihisa 0:6089ae824f06 98 rbuf[i] = CO2.getc();
tosihisa 0:6089ae824f06 99 }
tosihisa 1:83960ee4d9a2 100 if(rbuf[0] != 0xFE){
tosihisa 1:83960ee4d9a2 101 return -4;
tosihisa 1:83960ee4d9a2 102 }
tosihisa 1:83960ee4d9a2 103 if(rbuf[1] != 0x04){
tosihisa 1:83960ee4d9a2 104 return -1;
tosihisa 1:83960ee4d9a2 105 }
tosihisa 1:83960ee4d9a2 106 if(rbuf[2] != 0x02){
tosihisa 1:83960ee4d9a2 107 return -2;
tosihisa 1:83960ee4d9a2 108 }
tosihisa 0:6089ae824f06 109 crc = rbuf[6];
tosihisa 0:6089ae824f06 110 crc = (crc << 8) | rbuf[5];
tosihisa 0:6089ae824f06 111 if(crc != modbus_CRC(rbuf,5)){
tosihisa 1:83960ee4d9a2 112 return -3;
tosihisa 0:6089ae824f06 113 }
tosihisa 0:6089ae824f06 114 *val = rbuf[3];
tosihisa 0:6089ae824f06 115 *val = (*val << 8) | rbuf[4];
tosihisa 0:6089ae824f06 116 return 0;
tosihisa 0:6089ae824f06 117 }
tosihisa 0:6089ae824f06 118
tosihisa 0:6089ae824f06 119 // BMP085 0xee
tosihisa 0:6089ae824f06 120 // AD9774 0x44
tosihisa 1:83960ee4d9a2 121 #ifdef _I2C_TEST /* { */
tosihisa 0:6089ae824f06 122 int i2c_found() {
tosihisa 0:6089ae824f06 123 int count = 0;
tosihisa 1:83960ee4d9a2 124 lcd.locate(0,2);
tosihisa 1:83960ee4d9a2 125 lcd.printf("%-19s","I2C Dev:");
tosihisa 1:83960ee4d9a2 126 lcd.locate(8,2);
tosihisa 0:6089ae824f06 127 for (int address=0; address<256; address+=2) {
tosihisa 0:6089ae824f06 128 if (!i2c.write(address, NULL, 0)) { // 0 returned is ok
tosihisa 1:83960ee4d9a2 129 lcd.printf("%02X ",address);
tosihisa 0:6089ae824f06 130 count++;
tosihisa 0:6089ae824f06 131 }
tosihisa 0:6089ae824f06 132 }
tosihisa 1:83960ee4d9a2 133 lcd.printf("\n");
tosihisa 1:83960ee4d9a2 134 lcd.printf("%d devices found", count);
tosihisa 0:6089ae824f06 135 return count;
tosihisa 0:6089ae824f06 136 }
tosihisa 1:83960ee4d9a2 137 #endif /* } */
tosihisa 1:83960ee4d9a2 138
tosihisa 1:83960ee4d9a2 139 unsigned char NMEA_CalcSum(unsigned char *str,int len)
tosihisa 1:83960ee4d9a2 140 {
tosihisa 1:83960ee4d9a2 141 unsigned char sum = 0;
tosihisa 1:83960ee4d9a2 142 int i;
tosihisa 1:83960ee4d9a2 143 for(i = 0;i < len;i++){
tosihisa 1:83960ee4d9a2 144 sum = sum ^ (*(str + i));
tosihisa 1:83960ee4d9a2 145 }
tosihisa 1:83960ee4d9a2 146 return sum;
tosihisa 1:83960ee4d9a2 147 }
tosihisa 1:83960ee4d9a2 148
tosihisa 1:83960ee4d9a2 149 void UBX_CalcSum(unsigned char *str,int len,unsigned char *sum)
tosihisa 1:83960ee4d9a2 150 {
tosihisa 1:83960ee4d9a2 151 int i;
tosihisa 1:83960ee4d9a2 152 *(sum + 0) = *(sum + 1) = 0;
tosihisa 1:83960ee4d9a2 153 for(i = 0;i < len;i++){
tosihisa 1:83960ee4d9a2 154 *(sum + 0) = *(sum + 0) + *(str+i);
tosihisa 1:83960ee4d9a2 155 *(sum + 1) = *(sum + 1) + *(sum + 0);
tosihisa 1:83960ee4d9a2 156 }
tosihisa 1:83960ee4d9a2 157 }
tosihisa 1:83960ee4d9a2 158
tosihisa 1:83960ee4d9a2 159 int UBX_WaitAck(struct UBXPacket_s *info)
tosihisa 1:83960ee4d9a2 160 {
tosihisa 1:83960ee4d9a2 161 UBXPacket.cjobst = 0;
tosihisa 1:83960ee4d9a2 162
tosihisa 1:83960ee4d9a2 163 while(1){
tosihisa 1:83960ee4d9a2 164 while(gps.readable()) {
tosihisa 1:83960ee4d9a2 165 if(UBXPacket_Parse(&UBXPacket,gps.getc()) == 100){
tosihisa 1:83960ee4d9a2 166 if((UBXPacket.cls == 0x05) && (UBXPacket.id == 0x01)){
tosihisa 1:83960ee4d9a2 167 return 1; /* ACK */
tosihisa 1:83960ee4d9a2 168 } else if((UBXPacket.cls == 0x05) && (UBXPacket.id == 0x00)){
tosihisa 1:83960ee4d9a2 169 return 0; /* NAK */
tosihisa 1:83960ee4d9a2 170 } else {
tosihisa 1:83960ee4d9a2 171 UBXPacket.cjobst = 0;
tosihisa 1:83960ee4d9a2 172 }
tosihisa 1:83960ee4d9a2 173 }
tosihisa 1:83960ee4d9a2 174 }
tosihisa 1:83960ee4d9a2 175 }
tosihisa 1:83960ee4d9a2 176 return -1;
tosihisa 1:83960ee4d9a2 177 }
tosihisa 1:83960ee4d9a2 178
tosihisa 1:83960ee4d9a2 179 unsigned char wbuf[1024];
tosihisa 2:f546aaa0e1d5 180 int widx = 0;
tosihisa 0:6089ae824f06 181
tosihisa 0:6089ae824f06 182 int main() {
tosihisa 0:6089ae824f06 183 int ret = 0;
tosihisa 0:6089ae824f06 184 float p, t;
tosihisa 0:6089ae824f06 185 int temp;
tosihisa 0:6089ae824f06 186 unsigned short CO2_val;
tosihisa 0:6089ae824f06 187 unsigned long scanCount = 0;
tosihisa 1:83960ee4d9a2 188 FILE *fp;
tosihisa 1:83960ee4d9a2 189 char *logname = "/" _USE_FS_NAME "/ENVLOG.TXT";
tosihisa 1:83960ee4d9a2 190 char c;
tosihisa 2:f546aaa0e1d5 191 unsigned long UBXCount = 0;
tosihisa 0:6089ae824f06 192
tosihisa 0:6089ae824f06 193 debug.format(8,Serial::None,1);
tosihisa 0:6089ae824f06 194 debug.baud(115200);
tosihisa 2:f546aaa0e1d5 195 debug.printf("ENV Logger \"V0.5\" Start (BUILD:[" __DATE__ "/" __TIME__ "])\n");
tosihisa 0:6089ae824f06 196
tosihisa 0:6089ae824f06 197 debug.printf("LCD Display\n");
tosihisa 0:6089ae824f06 198
tosihisa 0:6089ae824f06 199 //lcd.cls();
tosihisa 0:6089ae824f06 200 lcd.locate(0,0);
tosihisa 2:f546aaa0e1d5 201 lcd.printf("ENV Logger \"V0.5\"");
tosihisa 2:f546aaa0e1d5 202
tosihisa 2:f546aaa0e1d5 203 lcd.locate(0,1);
tosihisa 2:f546aaa0e1d5 204 lcd.printf("WAKE UP I/O...");
tosihisa 1:83960ee4d9a2 205 wait(5.0);
tosihisa 0:6089ae824f06 206
tosihisa 0:6089ae824f06 207 //logFile_Init();
tosihisa 0:6089ae824f06 208 //FileWriteTest();
tosihisa 0:6089ae824f06 209
tosihisa 2:f546aaa0e1d5 210 lcd.locate(0,1);
tosihisa 2:f546aaa0e1d5 211 lcd.printf("SETTING GPS...");
tosihisa 2:f546aaa0e1d5 212
tosihisa 1:83960ee4d9a2 213 UBXPacket.cjobst = 0;
tosihisa 1:83960ee4d9a2 214
tosihisa 0:6089ae824f06 215 gps_pps.rise(gps_pps_rise);
tosihisa 0:6089ae824f06 216 gps.format(8,Serial::None,1);
tosihisa 0:6089ae824f06 217 gps.baud(9600);
tosihisa 0:6089ae824f06 218
tosihisa 0:6089ae824f06 219 gps_reset = 1;
tosihisa 0:6089ae824f06 220 wait(0.5);
tosihisa 0:6089ae824f06 221 gps_reset = 0;
tosihisa 0:6089ae824f06 222
tosihisa 1:83960ee4d9a2 223 wait(0.5);
tosihisa 1:83960ee4d9a2 224 if(1){
tosihisa 1:83960ee4d9a2 225 //unsigned char modeStr[] = "PUBX,41,1,0007,0003,115200,0";
tosihisa 1:83960ee4d9a2 226 unsigned char modeStr[] = "PUBX,41,1,0007,0001,115200,0";
tosihisa 1:83960ee4d9a2 227 unsigned char sum = NMEA_CalcSum(modeStr,strlen((char *)modeStr));
tosihisa 1:83960ee4d9a2 228 debug.printf("SEND:[%s](0x%02X)\n",modeStr,sum);
tosihisa 1:83960ee4d9a2 229 gps.printf("$%s*%02X%c%c",modeStr,sum,0x0d,0x0a);
tosihisa 1:83960ee4d9a2 230
tosihisa 1:83960ee4d9a2 231 debug.printf("CHG BAUD:115200\n");
tosihisa 1:83960ee4d9a2 232 gps.format(8,Serial::None,1);
tosihisa 1:83960ee4d9a2 233 gps.baud(115200);
tosihisa 1:83960ee4d9a2 234 }
tosihisa 1:83960ee4d9a2 235
tosihisa 1:83960ee4d9a2 236 gps.recvStart();
tosihisa 1:83960ee4d9a2 237 wait(0.5);
tosihisa 0:6089ae824f06 238
tosihisa 1:83960ee4d9a2 239 if(1){
tosihisa 1:83960ee4d9a2 240 unsigned char chkStr[][11] = {
tosihisa 1:83960ee4d9a2 241 { 0xB5,0x62,0x06,0x01,0x03,0x00,0x02,0x10,0x02,0xFF,0xFF }, //RXM-RAW (0x02 0x10)
tosihisa 1:83960ee4d9a2 242 { 0xB5,0x62,0x06,0x01,0x03,0x00,0x02,0x30,0x02,0xFF,0xFF }, //RXM-ALM (0x02 0x30)
tosihisa 1:83960ee4d9a2 243 { 0xB5,0x62,0x06,0x01,0x03,0x00,0x02,0x31,0x02,0xFF,0xFF }, //RXM-EPH (0x02 0x31)
tosihisa 1:83960ee4d9a2 244 //{ 0xB5,0x62,0x06,0x01,0x03,0x00,0x02,0x41,0x02,0xFF,0xFF },
tosihisa 1:83960ee4d9a2 245 { 0xB5,0x62,0x06,0x01,0x03,0x00,0x02,0x11,0x02,0xFF,0xFF }, //RXM-SFRB (0x02 0x11)
tosihisa 1:83960ee4d9a2 246 { 0xB5,0x62,0x06,0x01,0x03,0x00,0x02,0x20,0x02,0xFF,0xFF }, //RXM-SVSI (0x02 0x20)
tosihisa 1:83960ee4d9a2 247 { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF }, //END
tosihisa 1:83960ee4d9a2 248 };
tosihisa 1:83960ee4d9a2 249 int i,j;
tosihisa 1:83960ee4d9a2 250
tosihisa 1:83960ee4d9a2 251 for(j=0;chkStr[j][0] != 0x00;j++){
tosihisa 1:83960ee4d9a2 252 UBX_CalcSum(&chkStr[j][2],7,&chkStr[j][9]);
tosihisa 1:83960ee4d9a2 253 for(i = 0; i < sizeof(chkStr[0]);i++){
tosihisa 1:83960ee4d9a2 254 gps.putc(chkStr[j][i]);
tosihisa 1:83960ee4d9a2 255 }
tosihisa 1:83960ee4d9a2 256 debug.printf("%d : SET UBX Rate : %s\n",j,(UBX_WaitAck(&UBXPacket) == 1) ? "ACK" : "NAK");
tosihisa 1:83960ee4d9a2 257 }
tosihisa 1:83960ee4d9a2 258 }
tosihisa 1:83960ee4d9a2 259 UBXPacket.cjobst = 0;
tosihisa 2:f546aaa0e1d5 260 lcd.locate(0,1);
tosihisa 2:f546aaa0e1d5 261 lcd.printf("SETTING GPS...Done.");
tosihisa 1:83960ee4d9a2 262
tosihisa 1:83960ee4d9a2 263 #if 0
tosihisa 1:83960ee4d9a2 264 debug.printf("open(%s) :", logname);
tosihisa 1:83960ee4d9a2 265 if((fp = fopen(logname,"a+w")) == NULL){
tosihisa 1:83960ee4d9a2 266 printf("NG\n");
tosihisa 1:83960ee4d9a2 267 } else {
tosihisa 1:83960ee4d9a2 268 printf("OK\n");
tosihisa 1:83960ee4d9a2 269 }
tosihisa 1:83960ee4d9a2 270 widx = 0;
tosihisa 1:83960ee4d9a2 271 #endif
tosihisa 1:83960ee4d9a2 272
tosihisa 1:83960ee4d9a2 273 // ad7994.Start();
tosihisa 1:83960ee4d9a2 274
tosihisa 0:6089ae824f06 275 CO2.format(8,Serial::None,1);
tosihisa 0:6089ae824f06 276 CO2.baud(9600);
tosihisa 0:6089ae824f06 277 CO2.recvStart();
tosihisa 0:6089ae824f06 278
tosihisa 0:6089ae824f06 279 while(1) {
tosihisa 0:6089ae824f06 280 //lcd.cls();
tosihisa 2:f546aaa0e1d5 281 //lcd.locate(0,0);
tosihisa 2:f546aaa0e1d5 282 //lcd.printf("SCAN:%-10ld",scanCount);
tosihisa 0:6089ae824f06 283
tosihisa 0:6089ae824f06 284 while(gps.readable()) {
tosihisa 1:83960ee4d9a2 285 c = gps.getc();
tosihisa 1:83960ee4d9a2 286 if(UBXPacket_Parse(&UBXPacket,c) == 100){
tosihisa 2:f546aaa0e1d5 287 UBXCount++;
tosihisa 2:f546aaa0e1d5 288 lcd.locate(0,0);
tosihisa 2:f546aaa0e1d5 289 lcd.printf("UBX Recv:%-10ld",UBXCount);
tosihisa 1:83960ee4d9a2 290 debug.printf("%ld : GET UBX Packet (Class=0x%02X,ID=0x%02X,LEN=%d)\n",
tosihisa 1:83960ee4d9a2 291 scanCount,
tosihisa 1:83960ee4d9a2 292 UBXPacket.cls,
tosihisa 1:83960ee4d9a2 293 UBXPacket.id,
tosihisa 1:83960ee4d9a2 294 UBXPacket.len );
tosihisa 1:83960ee4d9a2 295 UBXPacket.cjobst = 0;
tosihisa 1:83960ee4d9a2 296 }
tosihisa 2:f546aaa0e1d5 297 //if(fp != NULL){
tosihisa 2:f546aaa0e1d5 298 // wbuf[widx] = c;
tosihisa 2:f546aaa0e1d5 299 // widx++;
tosihisa 2:f546aaa0e1d5 300 // if(widx >= sizeof(wbuf)){
tosihisa 2:f546aaa0e1d5 301 // fwrite(&wbuf,sizeof(wbuf[0]),widx,fp);
tosihisa 2:f546aaa0e1d5 302 // widx = 0;
tosihisa 2:f546aaa0e1d5 303 // }
tosihisa 2:f546aaa0e1d5 304 //}
tosihisa 0:6089ae824f06 305 }
tosihisa 0:6089ae824f06 306
tosihisa 2:f546aaa0e1d5 307 if(1){
tosihisa 2:f546aaa0e1d5 308 bmp085.update();
tosihisa 2:f546aaa0e1d5 309 p = bmp085.get_pressure();
tosihisa 2:f546aaa0e1d5 310 t = bmp085.get_temperature();
tosihisa 2:f546aaa0e1d5 311 lcd.locate(0,1);
tosihisa 2:f546aaa0e1d5 312 lcd.printf("%-8.2fhPa %-6.2fC", p, t);
tosihisa 2:f546aaa0e1d5 313 }
tosihisa 0:6089ae824f06 314
tosihisa 2:f546aaa0e1d5 315 if(1){
tosihisa 2:f546aaa0e1d5 316 sht25.SHT2x_MeasurePoll(TEMP,&temp);
tosihisa 2:f546aaa0e1d5 317 p = sht25.SHT2x_CalcTemperatureC(temp);
tosihisa 2:f546aaa0e1d5 318 sht25.SHT2x_MeasurePoll(HUMIDITY,&temp);
tosihisa 2:f546aaa0e1d5 319 t = sht25.SHT2x_CalcRH(temp);
tosihisa 2:f546aaa0e1d5 320 lcd.locate(0,2);
tosihisa 2:f546aaa0e1d5 321 lcd.printf("%-6.2fC %-6.2fRH", p, t);
tosihisa 2:f546aaa0e1d5 322 //sht25.SHT2x_SoftReset();
tosihisa 2:f546aaa0e1d5 323 }
tosihisa 1:83960ee4d9a2 324
tosihisa 1:83960ee4d9a2 325 #ifdef _I2C_TEST /* { */
tosihisa 1:83960ee4d9a2 326 i2c_found();
tosihisa 1:83960ee4d9a2 327 #endif /* } */
tosihisa 0:6089ae824f06 328
tosihisa 2:f546aaa0e1d5 329 lcd.locate(0,3);
tosihisa 1:83960ee4d9a2 330 ret = CO2_Read(&CO2_val);
tosihisa 1:83960ee4d9a2 331 if(ret == 0){
tosihisa 2:f546aaa0e1d5 332 lcd.printf("CO2:%5d.%1dppm\n",CO2_val/10,CO2_val%10);
tosihisa 0:6089ae824f06 333 } else {
tosihisa 1:83960ee4d9a2 334 lcd.printf("CO2:NG(%d) \n",ret);
tosihisa 0:6089ae824f06 335 }
tosihisa 1:83960ee4d9a2 336
tosihisa 1:83960ee4d9a2 337 #if 0
tosihisa 0:6089ae824f06 338 ad7994.update();
tosihisa 0:6089ae824f06 339 lcd.locate(0,3);
tosihisa 0:6089ae824f06 340 lcd.printf("A/D:%04X/%04X",
tosihisa 0:6089ae824f06 341 ad7994.readChn(0),
tosihisa 0:6089ae824f06 342 ad7994.readChn(1));
tosihisa 1:83960ee4d9a2 343 #endif
tosihisa 0:6089ae824f06 344
tosihisa 0:6089ae824f06 345 myled = 1;
tosihisa 1:83960ee4d9a2 346 wait(0.5);
tosihisa 0:6089ae824f06 347 myled = 0;
tosihisa 1:83960ee4d9a2 348 wait(0.5);
tosihisa 0:6089ae824f06 349
tosihisa 0:6089ae824f06 350 scanCount++;
tosihisa 0:6089ae824f06 351 }
tosihisa 0:6089ae824f06 352 }
tosihisa 2:f546aaa0e1d5 353
tosihisa 2:f546aaa0e1d5 354 /*
tosihisa 2:f546aaa0e1d5 355 * 2012-1-23 V0.5
tosihisa 2:f546aaa0e1d5 356 * U-Blox,気圧センサー,温度センサー,CO2センサーの値を表示するようにした。
tosihisa 2:f546aaa0e1d5 357 * U-Blox は受信できたパケット数を表示する。
tosihisa 2:f546aaa0e1d5 358 * マイクロSDへの保存機能はまだ(H/W的に動くのは確認済み)
tosihisa 2:f546aaa0e1d5 359 */