Emulate the R key on a Mac keyboard
-
Hello,
I would like to emulate the R key on a Mac keyboard using a button and an M5StickC PLUS2 ESP32.I asked my friend ChatGPT how to do it and this is what he told me
I connected my M5StickC PLUS2 via USB to my Mac to connect it to my Arduino IDE.

Only if I bring the code that ChatGPT generated for me.
Any ideas? -
Ok so if I try with my code
#include <M5StickCPlus2.h> #include <BleKeyboard.h> BleKeyboard bleKeyboard("M5StickC_Keyboard", "M5Stack", 100); void setup() { M5.begin(); Serial.begin(115200); bleKeyboard.begin(); Serial.println("En attente de connexion Bluetooth..."); } void loop() { M5.update(); if (bleKeyboard.isConnected()) { // Si on appuie sur le bouton A du M5StickC if (M5.BtnA.wasPressed()) { Serial.println("Touche R envoyée !"); bleKeyboard.press('r'); delay(100); bleKeyboard.releaseAll(); } } delay(10); }I have this error message
c:\Users\Cl�ment\Documents\Arduino\libraries\ESP32_BLE_Keyboard\BleKeyboard.cpp: In member function 'void BleKeyboard::begin()': c:\Users\Cl�ment\Documents\Arduino\libraries\ESP32_BLE_Keyboard\BleKeyboard.cpp:106:19: error: cannot convert 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'String' 106 | BLEDevice::init(deviceName); | ^~~~~~~~~~ | | | std::string {aka std::__cxx11::basic_string<char>} In file included from C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLEServer.h:26, from C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLEService.h:25, from C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLEHIDDevice.h:21, from c:\Users\Cl�ment\Documents\Arduino\libraries\ESP32_BLE_Keyboard\BleKeyboard.h:24, from c:\Users\Cl�ment\Documents\Arduino\libraries\ESP32_BLE_Keyboard\BleKeyboard.cpp:1: C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLEDevice.h:184:27: note: initializing argument 1 of 'static void BLEDevice::init(String)' 184 | static void init(String deviceName); | ~~~~~~~^~~~~~~~~~ c:\Users\Cl�ment\Documents\Arduino\libraries\ESP32_BLE_Keyboard\BleKeyboard.cpp:117:32: error: no matching function for call to 'BLECharacteristic::setValue(std::string&)' 117 | hid->manufacturer()->setValue(deviceManufacturer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~ In file included from C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLEHIDDevice.h:20: C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:193:8: note: candidate: 'void BLECharacteristic::setValue(const uint8_t*, size_t)' 193 | void setValue(const uint8_t *data, size_t size); | ^~~~~~~~ C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:193:8: note: candidate expects 2 arguments, 1 provided C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:194:8: note: candidate: 'void BLECharacteristic::setValue(const String&)' 194 | void setValue(const String &value); | ^~~~~~~~ C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:194:31: note: no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'const String&' 194 | void setValue(const String &value); | ~~~~~~~~~~~~~~^~~~~ C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:195:8: note: candidate: 'void BLECharacteristic::setValue(uint16_t)' 195 | void setValue(uint16_t data16); | ^~~~~~~~ C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:195:26: note: no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'uint16_t' {aka 'short unsigned int'} 195 | void setValue(uint16_t data16); | ~~~~~~~~~^~~~~~ C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:196:8: note: candidate: 'void BLECharacteristic::setValue(uint32_t)' 196 | void setValue(uint32_t data32); | ^~~~~~~~ C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:196:26: note: no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'uint32_t' {aka 'long unsigned int'} 196 | void setValue(uint32_t data32); | ~~~~~~~~~^~~~~~ C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:197:8: note: candidate: 'void BLECharacteristic::setValue(int)' 197 | void setValue(int data32); | ^~~~~~~~ C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:197:21: note: no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'int' 197 | void setValue(int data32); | ~~~~^~~~~~ C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:198:8: note: candidate: 'void BLECharacteristic::setValue(float)' 198 | void setValue(float data32); | ^~~~~~~~ C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:198:23: note: no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'float' 198 | void setValue(float data32); | ~~~~~~^~~~~~ C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:199:8: note: candidate: 'void BLECharacteristic::setValue(double)' 199 | void setValue(double data64); | ^~~~~~~~ C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:199:24: note: no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'double' 199 | void setValue(double data64); | ~~~~~~~^~~~~~ grpc: error while marshaling: string field contains invalid UTF-8 Compilation error: grpc: error while marshaling: string field contains invalid UTF-8My libraries


Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login