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-8
My libraries