Это полный код для esp32
// ESP32 Example of the Bluetooth connection to the HM-10 module (CC2541) JDY-08
// Writes to the serial interface of the HM-10 module "Hello World"
// Receives serial data from the HM-10 module
#include "BLEDevice.h"
#define HM_MAC "00:15:85:14:9c:ca"
// Service und Characteristic des HM-10 Moduls
static BLEUUID serviceUUID("0000FFE0-0000-1000-8000-00805F9B34FB");
static BLEUUID charUUID("0000FFE1-0000-1000-8000-00805F9B34FB");
static boolean connect = true;
static boolean connected = false;
static BLEAddress *pServerAddress;
static BLERemoteCharacteristic* pRemoteCharacteristic;
BLEClient* pClient;
// BLE Callbacks
static void notifyCallback
(
BLERemoteCharacteristic* pBLERemoteCharacteristic,
uint8_t* pData,
size_t length,
bool isNotify)
{
String EingangDaten = "";
for (int i = 0; i < length; i++)EingangDaten += char(*pData++); // Append byte as character to string. Change to the next memory location
Serial.println(EingangDaten);
}
//Connect to BLE Server
bool connectToServer(BLEAddress pAddress)
{
Serial.println("Trying to Connect with.... ");
Serial.println(pAddress.toString().c_str());
pClient = BLEDevice::createClient();
pClient->connect(pAddress);
// Serial.println("CONNECTED");
// Obtaining a reference to required service
BLERemoteService* pRemoteService = pClient->getService(serviceUUID);
if (pRemoteService == nullptr)
{
Serial.print("Gefunden falsche UUID: ");
Serial.println(serviceUUID.toString().c_str());
return false;
}
// reference to required characteristic
pRemoteCharacteristic = pRemoteService->getCharacteristic(charUUID);
if (pRemoteCharacteristic == nullptr) {
Serial.print("Gefunden falsche Characteristic UUID: ");
Serial.println(charUUID.toString().c_str());
return false;
}
pRemoteCharacteristic->registerForNotify(notifyCallback);
return true;
}
void setup()
{
Serial.begin(115200);
Serial.println("Start");
BLEDevice::init("");
pinMode(22,OUTPUT);
pinMode(23,OUTPUT);
}
void loop()
{
digitalWrite(22,HIGH);
if (connect == true)
{
pServerAddress = new BLEAddress(HM_MAC);
// Serial.println("ServerAddress");
//Serial.println(pServerAddress);
if (connectToServer(*pServerAddress))
{
connected = true;
connect = false;
}
else
{
Serial.println("Connection does not work");
}
}
if (connected)
{
Serial.println("CONNECTED");
String newValue = "HELLO WORLD";
digitalWrite(23,HIGH);
digitalWrite(22,LOW);
pRemoteCharacteristic->writeValue(newValue.c_str(), newValue.length());
}
delay(1000);
}
Я пытаюсь отправить данные из esp32 в HM-10. Используя mac-адрес HM-10 и serviceUUID, charUUID (задано в программе esp32) определяет esp32модуль HM-10 и подключается, но данные отправляются ..
если (подключено) {
Serial.println ("ПОДКЛЮЧЕНО");
String newValue = "HELLO WORLD";
digitalWrite(23,HIGH);
digitalWrite(22,LOW);
pRemoteCharacteristic->writeValue(newValue.c_str(), newValue.length());
}
Если esp32, подключенный к HM-10, iam, получающий выход как подключенный и светодиодный, также включается, но данные "hello world" не отправляются в HM-10 .. как написать программу в HM-10 для получения данных из esp32