2016-08-16 3 views
0

내 Arduino Blend Micro (http://redbearlab.com/blendmicro/)에 연결된 온도 센서에서 데이터를 읽고이 값을 블루투스 신호로 통해 Android 스마트 폰으로 보냅니다. 두 작업은 분리 된 스케치에있을 때 성공적으로 실행할 수 있습니다. 그러나 하나의 스케치에 함께 붙여 넣으면 (라이브러리를 함께 넣을 때도) 몇 가지 오류가 나타납니다. 주어진 오류는 내 라이브러리에 여러 개의 정의가 있음을 알려줍니다.Arduino BLE 다중 정의

라이브러리 \ BLEPeripheral \ 유틸리티 \ aci_queue.cpp.o : 기능 에서`aci_queue_init (aci_queue_t *) '

C : \ 사용자 \ XXX \ 문서 \ 아두 이노 \ 라이브러리 \ BLEPeripheral \ 유틸리티/aci_queue.cpp : 33 : aci_queue_init`의 여러 정의 (aci_queue_t *) '

라이브러리 \ BLE_SDK_for_Arduino \ aci_queue.cpp.o : C : \ 사용자 \ XXX \ 문서 \ 아두 이노 \ \ BLE_SDK_for_Arduino \ SRC/aci_queue 라이브러리. cpp : 31 : 여기에서 처음 정의 됨

라이브러리 \ BLEPeripheral \ 유틸리티 \ aci_queue.cpp.o : 기능 에서`aci_queue_init (aci_queue_t는 *) '

C : \ 사용자 \ XXX \ 문서 \ 아두 이노 \ 라이브러리 \ BLEPeripheral 유틸리티/aci_queue.cpp \ : 33 : aci_queue_dequeue`의 여러 정의 (aci_queue_t의 *, hal_aci_data_t *) '

라이브러리 \ BLE_SDK_for_Arduino \ aci_queue.cpp.o :. aci_queue.cpp :(text._Z17aci_queue_dequeueP11aci_queue_tP14hal_aci_data_t + 0x0으로) : 먼저

여기에 정의

문제는 라이브러리 BLEPeripheral 및 BLE_SDK_for_Arduino. 그러나 인터넷에서의 연구는 그들이 호환되어야한다고 말해줍니다. 정말 블루투스 내 센서와 함께 작동하도록 두 라이브러리를 필요로

//"RBL_nRF8001.h/spi.h/boards.h" is needed in every new project enter code here 
    #include <boards.h> 
    #include <string.h> 
    #include <Adafruit_BME280.h> 
    #include <RBL_nRF8001.h> 
    #include <RBL_services.h> 
    #include <SPI.h> 
    #include <EddystoneBeacon.h> 

    Adafruit_BME280 bme; 

    #define EDDYSTONE_BEACON_REQ 6 
    #define EDDYSTONE_BEACON_RDY 7 
    #define EDDYSTONE_BEACON_RST 4 

    EddystoneBeacon eddystoneBeacon = EddystoneBeacon(EDDYSTONE_BEACON_REQ, EDDYSTONE_BEACON_RDY, EDDYSTONE_BEACON_RST); 

    void setup() { 
     Serial.begin(9600); 
     delay(500); 
     bme.begin(); 
     eddystoneBeacon.setLocalName("RoomSupervisor"); 
    } 

    void loop() { 
     Serial.write("Start"); 
     while(1){ 
      Serial.write("Try to send... "); 
      eddystoneBeacon.begin(-18, "WHAT THE HELL DOESN'T WORK!?"); 
      eddystoneBeacon.loop(); 
      Serial.write(" succesful! \n"); 
      delay(3000); 
     } 
    } 

:

여기 내 코드입니다. 하지만 여러 정의가있을 때 어떻게하면됩니까? 오류 제거를 위해 이미 한 라이브러리의 일부를 삭제하려고 시도했지만 내 스케치가 제대로 작동하지 않습니다.

답변

0

RedBearLabs 라이브러리 만 사용해보십시오. 라이브러리의 일부를 삭제하지 마십시오. librarys 폴더에서 sdk를 제거하고 Arduino 라이브러리 폴더에 포함시킬 라이브러리 (필요) 만 복사하십시오.

관련 문제