I have been trying to push the data of temp, humidity, and pressure from a sensor to MQTT using ESP 32Cam, and was able to do using the following code:
pressure = bme.readPressure(); //Convert the value to a char array char preString; dtostrf(pressure, 1, 2, preString); Serial.print("Pressure: "); Serial.println(preString); client.publish("esp32/pressure", preString);
When I started off with the following code for getting the mac address:
chipid=ESP.getEfuseMac();//The chip ID is essentially its MAC address(length: 6 bytes). Serial.printf("ESP32 Chip ID = %04X",(uint16_t)(chipid>>32));//print High 2 bytes Serial.printf("%08X\n",(uint32_t)chipid);//print Low 4bytes.
But when I tried to publish the Chip id, that I was getting on the serial monitor, to the MQTT, an error came up with this:
call of overloaded 'String(uint64_t)' is ambiguous
Here's my code that I tried:
char macValue; String(ESP.getEfuseMac()).toCharArray(macValue,16); client.publish("esp32/ChipID", macValue);