NFC and ht_sensor

Dependencies:   NDefLib X_NUCLEO_IKS01A1 X_NUCLEO_NFC01A1 mbed

Fork of HelloWorld_NFC01A1 by ST

Committer:
namhyuck
Date:
Wed May 18 07:41:15 2016 +0000
Revision:
17:35193469bda8
Parent:
14:1b99908360c5
test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
giovannivisentini 11:925a5a491a5c 1
namhyuck 17:35193469bda8 2 #include <stdio.h>
giovannivisentini 0:151ae20d098f 3 #include "mbed.h"
giovannivisentini 0:151ae20d098f 4 #include "X_NUCLEO_NFC01A1.h"
giovannivisentini 4:4145a2db3349 5 #include "NDefLib/NDefNfcTag.h"
giovannivisentini 0:151ae20d098f 6 #include "NDefLib/RecordType/RecordURI.h"
namhyuck 17:35193469bda8 7 #include "NDefLib/RecordType/RecordText.h"
namhyuck 17:35193469bda8 8 #include "x_nucleo_iks01a1.h"
giovannivisentini 0:151ae20d098f 9
namhyuck 17:35193469bda8 10 /* Instantiate the expansion board */
namhyuck 17:35193469bda8 11
namhyuck 17:35193469bda8 12 static X_NUCLEO_IKS01A1 *mems_expansion_board = X_NUCLEO_IKS01A1::Instance(D14, D15);
namhyuck 17:35193469bda8 13
namhyuck 17:35193469bda8 14 /* Retrieve the composing elements of the expansion board */
namhyuck 17:35193469bda8 15 static GyroSensor *gyroscope = mems_expansion_board->GetGyroscope();
namhyuck 17:35193469bda8 16 static MotionSensor *accelerometer = mems_expansion_board->GetAccelerometer();
namhyuck 17:35193469bda8 17 //static HumiditySensor *humidity_sensor = mems_expansion_board->ht_sensor;
namhyuck 17:35193469bda8 18 static TempSensor *temp_sensor1;// = mems_expansion_board->ht_sensor;
namhyuck 17:35193469bda8 19
namhyuck 17:35193469bda8 20 //use default board pinout
giovannivisentini 0:151ae20d098f 21 I2C i2cChannel(X_NUCLEO_NFC01A1::DEFAULT_SDA_PIN,X_NUCLEO_NFC01A1::DEFAULT_SDL_PIN);
giovannivisentini 14:1b99908360c5 22 X_NUCLEO_NFC01A1 *nfcNucleo = X_NUCLEO_NFC01A1::Instance(i2cChannel,NULL,
giovannivisentini 14:1b99908360c5 23 X_NUCLEO_NFC01A1::DEFAULT_GPO_PIN,X_NUCLEO_NFC01A1::DEFAULT_RF_DISABLE_PIN,
giovannivisentini 14:1b99908360c5 24 X_NUCLEO_NFC01A1::DEFAULT_LED1_PIN,X_NUCLEO_NFC01A1::DEFAULT_LED2_PIN,
giovannivisentini 14:1b99908360c5 25 X_NUCLEO_NFC01A1::DEFAULT_LED3_PIN);
namhyuck 17:35193469bda8 26
namhyuck 17:35193469bda8 27 char itoc(int i){
namhyuck 17:35193469bda8 28 return i+ 0x30;
namhyuck 17:35193469bda8 29 }
namhyuck 17:35193469bda8 30 /**
namhyuck 17:35193469bda8 31 * Write a Ndef URI message linking to st.com site.
namhyuck 17:35193469bda8 32 */
namhyuck 17:35193469bda8 33 float Temp(float temp)
namhyuck 17:35193469bda8 34 {
namhyuck 17:35193469bda8 35 temp_sensor1 = mems_expansion_board->ht_sensor;
namhyuck 17:35193469bda8 36 temp_sensor1->GetTemperature(&temp);
namhyuck 17:35193469bda8 37 return temp;
namhyuck 17:35193469bda8 38 }
namhyuck 17:35193469bda8 39 int NFC_send(char c[]){
namhyuck 17:35193469bda8 40
namhyuck 17:35193469bda8 41
namhyuck 17:35193469bda8 42 printf("System Init done: !\n\r");
giovannivisentini 4:4145a2db3349 43 NDefLib::NDefNfcTag& tag =nfcNucleo->getM24SR().getNDefTag();
giovannivisentini 6:44204e733f96 44
giovannivisentini 0:151ae20d098f 45 //open the i2c session with the nfc chip
giovannivisentini 0:151ae20d098f 46 if(tag.openSession()){
giovannivisentini 14:1b99908360c5 47 printf("Session opened\n\r");
giovannivisentini 0:151ae20d098f 48 nfcNucleo->getLed1()=1;
giovannivisentini 0:151ae20d098f 49
giovannivisentini 0:151ae20d098f 50 //create the NDef message and record
giovannivisentini 0:151ae20d098f 51 NDefLib::Message msg;
namhyuck 17:35193469bda8 52 //::RecordURI rUri(NDefLib::RecordURI::FILE,c);
namhyuck 17:35193469bda8 53 NDefLib::RecordText rUri(c);
namhyuck 17:35193469bda8 54
namhyuck 17:35193469bda8 55 msg.addRecord(&rUri);
namhyuck 17:35193469bda8 56
namhyuck 17:35193469bda8 57 //write the tag
namhyuck 17:35193469bda8 58 if(tag.write(msg) && tag.closeSession()){
namhyuck 17:35193469bda8 59 printf("Tag written\n\r");
namhyuck 17:35193469bda8 60 nfcNucleo->getLed2()=1;
namhyuck 17:35193469bda8 61 // nfcNucleo->getLed3()=1; //상태확인
namhyuck 17:35193469bda8 62 return 0;
namhyuck 17:35193469bda8 63 }else{
namhyuck 17:35193469bda8 64 printf("Error writing \n\r");
namhyuck 17:35193469bda8 65 return 0;
namhyuck 17:35193469bda8 66 }//if-else
namhyuck 17:35193469bda8 67
namhyuck 17:35193469bda8 68 //close the i2c session
namhyuck 17:35193469bda8 69 /* if(tag.closeSession()){
namhyuck 17:35193469bda8 70 printf("Session closed\n\r");
namhyuck 17:35193469bda8 71 nfcNucleo->getLed3()=0;
namhyuck 17:35193469bda8 72 return 0;
namhyuck 17:35193469bda8 73 // That's point stop
namhyuck 17:35193469bda8 74 }else{
namhyuck 17:35193469bda8 75 printf("Error closing the session\n\r");
namhyuck 17:35193469bda8 76 return 0;
namhyuck 17:35193469bda8 77 }//if-else
namhyuck 17:35193469bda8 78 */
namhyuck 17:35193469bda8 79 }else
namhyuck 17:35193469bda8 80 printf("Error opening the session\n\r");
namhyuck 17:35193469bda8 81 return 0;
namhyuck 17:35193469bda8 82 }
namhyuck 17:35193469bda8 83
namhyuck 17:35193469bda8 84
namhyuck 17:35193469bda8 85 void Temp_NFC(float temp){
namhyuck 17:35193469bda8 86
namhyuck 17:35193469bda8 87 char c[7];
namhyuck 17:35193469bda8 88 int i=0;
namhyuck 17:35193469bda8 89
namhyuck 17:35193469bda8 90
namhyuck 17:35193469bda8 91
namhyuck 17:35193469bda8 92 //float temp;
namhyuck 17:35193469bda8 93 //temp=Temp(temp);
namhyuck 17:35193469bda8 94 //온도값을 최대를 100자리와 소숫점 첫자리까지 결과로 코딩
namhyuck 17:35193469bda8 95 c[3]='.'; //소숫점
namhyuck 17:35193469bda8 96 c[5]=0X60;
namhyuck 17:35193469bda8 97 c[6]='C';
namhyuck 17:35193469bda8 98
namhyuck 17:35193469bda8 99 i=temp*10;
namhyuck 17:35193469bda8 100 i=i%10; //소숫점아랫자리
namhyuck 17:35193469bda8 101 c[4]=itoc(i);
namhyuck 17:35193469bda8 102
namhyuck 17:35193469bda8 103 i=temp/1; //1자리
namhyuck 17:35193469bda8 104 i=i%10;
namhyuck 17:35193469bda8 105 c[2]=itoc(i);
namhyuck 17:35193469bda8 106
namhyuck 17:35193469bda8 107 i=temp/10; //10자리
namhyuck 17:35193469bda8 108 i=i%10;
namhyuck 17:35193469bda8 109 c[1]=itoc(i);
namhyuck 17:35193469bda8 110
namhyuck 17:35193469bda8 111 i=temp/100;//100자리
namhyuck 17:35193469bda8 112 i=i%10;
namhyuck 17:35193469bda8 113 if(i>0) c[0]=itoc(i);
namhyuck 17:35193469bda8 114 else c[0]='0';
namhyuck 17:35193469bda8 115
namhyuck 17:35193469bda8 116
namhyuck 17:35193469bda8 117 NFC_send(c);
namhyuck 17:35193469bda8 118
namhyuck 17:35193469bda8 119 /*retrieve the NdefLib interface
namhyuck 17:35193469bda8 120 NDefLib::NDefNfcTag& tag =nfcNucleo->getM24SR().getNDefTag();
namhyuck 17:35193469bda8 121 tag.openSession();
namhyuck 17:35193469bda8 122 NDefLib::Message msg;
namhyuck 17:35193469bda8 123 //::RecordURI rUri(NDefLib::RecordURI::FILE,c);
namhyuck 17:35193469bda8 124 NDefLib::RecordText rUri(c);
namhyuck 17:35193469bda8 125
namhyuck 17:35193469bda8 126 msg.addRecord(&rUri);
namhyuck 17:35193469bda8 127 wait(0.1);
namhyuck 17:35193469bda8 128 tag.closeSession();
namhyuck 17:35193469bda8 129 NDefLib::NDefNfcTag& tag =nfcNucleo->getM24SR().getNDefTag();
namhyuck 17:35193469bda8 130
namhyuck 17:35193469bda8 131 printf("System Init done: !\n\r");
namhyuck 17:35193469bda8 132 NDefLib::NDefNfcTag& tag =nfcNucleo->getM24SR().getNDefTag();
namhyuck 17:35193469bda8 133
namhyuck 17:35193469bda8 134 //open the i2c session with the nfc chip
namhyuck 17:35193469bda8 135 if(tag.openSession()){
namhyuck 17:35193469bda8 136 printf("Session opened\n\r");
namhyuck 17:35193469bda8 137 nfcNucleo->getLed1()=1;
namhyuck 17:35193469bda8 138
namhyuck 17:35193469bda8 139 //create the NDef message and record
namhyuck 17:35193469bda8 140 NDefLib::Message msg;
namhyuck 17:35193469bda8 141 //::RecordURI rUri(NDefLib::RecordURI::FILE,c);
namhyuck 17:35193469bda8 142 NDefLib::RecordText rUri(c);
namhyuck 17:35193469bda8 143
giovannivisentini 0:151ae20d098f 144 msg.addRecord(&rUri);
giovannivisentini 0:151ae20d098f 145
giovannivisentini 0:151ae20d098f 146 //write the tag
giovannivisentini 0:151ae20d098f 147 if(tag.write(msg)){
giovannivisentini 14:1b99908360c5 148 printf("Tag written\n\r");
giovannivisentini 0:151ae20d098f 149 nfcNucleo->getLed2()=1;
namhyuck 17:35193469bda8 150 }else{
namhyuck 17:35193469bda8 151 printf("Error writing \n\r");
giovannivisentini 1:eff1b8998438 152 }//if-else
giovannivisentini 0:151ae20d098f 153
giovannivisentini 0:151ae20d098f 154 //close the i2c session
giovannivisentini 1:eff1b8998438 155 if(tag.closeSession()){
giovannivisentini 7:435297dd022d 156 printf("Session closed\n\r");
giovannivisentini 1:eff1b8998438 157 nfcNucleo->getLed3()=1;
giovannivisentini 1:eff1b8998438 158 }else{
giovannivisentini 14:1b99908360c5 159 printf("Error closing the session\n\r");
giovannivisentini 1:eff1b8998438 160 }//if-else
giovannivisentini 1:eff1b8998438 161
giovannivisentini 0:151ae20d098f 162 }else
giovannivisentini 14:1b99908360c5 163 printf("Error opening the session\n\r");
namhyuck 17:35193469bda8 164 */
namhyuck 17:35193469bda8 165
namhyuck 17:35193469bda8 166 }
namhyuck 17:35193469bda8 167
namhyuck 17:35193469bda8 168
namhyuck 17:35193469bda8 169 int main()
namhyuck 17:35193469bda8 170 {
namhyuck 17:35193469bda8 171 float temp;
namhyuck 17:35193469bda8 172 while(1){
namhyuck 17:35193469bda8 173 temp = Temp(temp);
namhyuck 17:35193469bda8 174 Temp_NFC(temp);
namhyuck 17:35193469bda8 175 nfcNucleo->getLed3()=1;
namhyuck 17:35193469bda8 176 wait(0.1);
namhyuck 17:35193469bda8 177 nfcNucleo->getLed3()=0;
namhyuck 17:35193469bda8 178 wait(0.1);
namhyuck 17:35193469bda8 179
namhyuck 17:35193469bda8 180 }
giovannivisentini 11:925a5a491a5c 181 }