NFC and ht_sensor
Dependencies: NDefLib X_NUCLEO_IKS01A1 X_NUCLEO_NFC01A1 mbed
Fork of HelloWorld_NFC01A1 by
main.cpp
- Committer:
- namhyuck
- Date:
- 2016-05-18
- Revision:
- 17:35193469bda8
- Parent:
- 14:1b99908360c5
File content as of revision 17:35193469bda8:
#include <stdio.h> #include "mbed.h" #include "X_NUCLEO_NFC01A1.h" #include "NDefLib/NDefNfcTag.h" #include "NDefLib/RecordType/RecordURI.h" #include "NDefLib/RecordType/RecordText.h" #include "x_nucleo_iks01a1.h" /* Instantiate the expansion board */ static X_NUCLEO_IKS01A1 *mems_expansion_board = X_NUCLEO_IKS01A1::Instance(D14, D15); /* Retrieve the composing elements of the expansion board */ static GyroSensor *gyroscope = mems_expansion_board->GetGyroscope(); static MotionSensor *accelerometer = mems_expansion_board->GetAccelerometer(); //static HumiditySensor *humidity_sensor = mems_expansion_board->ht_sensor; static TempSensor *temp_sensor1;// = mems_expansion_board->ht_sensor; //use default board pinout I2C i2cChannel(X_NUCLEO_NFC01A1::DEFAULT_SDA_PIN,X_NUCLEO_NFC01A1::DEFAULT_SDL_PIN); X_NUCLEO_NFC01A1 *nfcNucleo = X_NUCLEO_NFC01A1::Instance(i2cChannel,NULL, X_NUCLEO_NFC01A1::DEFAULT_GPO_PIN,X_NUCLEO_NFC01A1::DEFAULT_RF_DISABLE_PIN, X_NUCLEO_NFC01A1::DEFAULT_LED1_PIN,X_NUCLEO_NFC01A1::DEFAULT_LED2_PIN, X_NUCLEO_NFC01A1::DEFAULT_LED3_PIN); char itoc(int i){ return i+ 0x30; } /** * Write a Ndef URI message linking to st.com site. */ float Temp(float temp) { temp_sensor1 = mems_expansion_board->ht_sensor; temp_sensor1->GetTemperature(&temp); return temp; } int NFC_send(char c[]){ printf("System Init done: !\n\r"); NDefLib::NDefNfcTag& tag =nfcNucleo->getM24SR().getNDefTag(); //open the i2c session with the nfc chip if(tag.openSession()){ printf("Session opened\n\r"); nfcNucleo->getLed1()=1; //create the NDef message and record NDefLib::Message msg; //::RecordURI rUri(NDefLib::RecordURI::FILE,c); NDefLib::RecordText rUri(c); msg.addRecord(&rUri); //write the tag if(tag.write(msg) && tag.closeSession()){ printf("Tag written\n\r"); nfcNucleo->getLed2()=1; // nfcNucleo->getLed3()=1; //상태확인 return 0; }else{ printf("Error writing \n\r"); return 0; }//if-else //close the i2c session /* if(tag.closeSession()){ printf("Session closed\n\r"); nfcNucleo->getLed3()=0; return 0; // That's point stop }else{ printf("Error closing the session\n\r"); return 0; }//if-else */ }else printf("Error opening the session\n\r"); return 0; } void Temp_NFC(float temp){ char c[7]; int i=0; //float temp; //temp=Temp(temp); //온도값을 최대를 100자리와 소숫점 첫자리까지 결과로 코딩 c[3]='.'; //소숫점 c[5]=0X60; c[6]='C'; i=temp*10; i=i%10; //소숫점아랫자리 c[4]=itoc(i); i=temp/1; //1자리 i=i%10; c[2]=itoc(i); i=temp/10; //10자리 i=i%10; c[1]=itoc(i); i=temp/100;//100자리 i=i%10; if(i>0) c[0]=itoc(i); else c[0]='0'; NFC_send(c); /*retrieve the NdefLib interface NDefLib::NDefNfcTag& tag =nfcNucleo->getM24SR().getNDefTag(); tag.openSession(); NDefLib::Message msg; //::RecordURI rUri(NDefLib::RecordURI::FILE,c); NDefLib::RecordText rUri(c); msg.addRecord(&rUri); wait(0.1); tag.closeSession(); NDefLib::NDefNfcTag& tag =nfcNucleo->getM24SR().getNDefTag(); printf("System Init done: !\n\r"); NDefLib::NDefNfcTag& tag =nfcNucleo->getM24SR().getNDefTag(); //open the i2c session with the nfc chip if(tag.openSession()){ printf("Session opened\n\r"); nfcNucleo->getLed1()=1; //create the NDef message and record NDefLib::Message msg; //::RecordURI rUri(NDefLib::RecordURI::FILE,c); NDefLib::RecordText rUri(c); msg.addRecord(&rUri); //write the tag if(tag.write(msg)){ printf("Tag written\n\r"); nfcNucleo->getLed2()=1; }else{ printf("Error writing \n\r"); }//if-else //close the i2c session if(tag.closeSession()){ printf("Session closed\n\r"); nfcNucleo->getLed3()=1; }else{ printf("Error closing the session\n\r"); }//if-else }else printf("Error opening the session\n\r"); */ } int main() { float temp; while(1){ temp = Temp(temp); Temp_NFC(temp); nfcNucleo->getLed3()=1; wait(0.1); nfcNucleo->getLed3()=0; wait(0.1); } }