Я пытаюсь считывать данные с датчика температуры, подключенного к моему Arduino Blend Micro (http://redbearlab.com/blendmicro/) и отправьте это значение через Bluetooth-маяки на Android-смартфон. Обе задачи могут выполняться успешно, когда они находятся в отдельном эскизе. Но когда я собираю их в один набросок (а также собираю библиотеки), появляется несколько ошибок. Данная ошибка говорит мне, что в моих библиотеках есть несколько определений.
библиотеки \ BLEPeripheral \ utility \ aci_queue.cpp.o: в функции
`Aci_queue_init (aci_queue_t *) ‘:C: \ Users \ XXX \ Documents \ Ардуино \ библиотеки \ BLEPeripheral \ полезности / aci_queue.cpp: 33:
множественное определение `aci_queue_init (aci_queue_t *) ‘библиотеки \ BLE_SDK_for_Arduino \ aci_queue.cpp.o: C: \ Users \ XXX \ Documents \ Arduino \ библиотеки \ BLE_SDK_for_Arduino \ Src / aci_queue.cpp: 31:
сначала определено здесьбиблиотеки \ BLEPeripheral \ utility \ aci_queue.cpp.o: в функции
`Aci_queue_init (aci_queue_t *) ‘:C: \ Users \ XXX \ Documents \ Ардуино \ библиотеки \ 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 + 0х0).:
сначала определено здесь
Кажется, проблема между библиотеками 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);
}
}
Мне действительно нужны обе библиотеки для работы с Bluetooth и моим сенсором. Но как я могу это сделать, когда есть несколько определений? Я уже пытался удалить части одной библиотеки, чтобы избавиться от ошибок, но тогда мой эскиз больше не работал должным образом.
Попробуйте использовать только библиотеку RedBearLabs. Не удаляйте части библиотеки. Избавьтесь от sdk в папке библиотек и скопируйте только те библиотеки, которые вы хотите (нужно) включить в свою папку библиотеки Arduino.
Других решений пока нет …