PubSubClient. передача значений
- Войдите на сайт для отправки комментариев
Втр, 03/09/2019 - 19:01
Всем привет. Не могу разобраться, как правильно передавать данные функцией client.publish();
void get_temp() { int hum_stat; int humidity = dht.readHumidity(); int temperature = dht.readTemperature(); temp_str = String(temperature); temp_str.toCharArray(temp, temp_str.length() + 1); hum_str = String(humidity); hum_str.toCharArray(hum, hum_str.length() + 1); if (isnan(humidity) || isnan(temperature)) { // Проверка. client.publish("domoticz/in", "{\"idx\": 12, \"nvalue\": 4}"); } else { client.publish("domoticz/in", "{\"idx\": 12, \"nvalue\": 4}"); hum_stat = 0; if (humidity < 30) {hum_stat=2;}; if (humidity > 70) {hum_stat=3;}; if (humidity >= 45 && humidity <= 50) {hum_stat=1;}; client.publish("domoticz/in"", "{\"idx\": 6, \"nvalue\": 0, \"svalue\": \""+ temp + "\"""}"); } }
ругается на temp
как я понимаю, в качестве второго аргумента функция ожидает char, но не могу понять как это сделать. Прошу помощи
как ругается? матом?
весь скетч выложите и текст ошибки
Тобсик, client.publish какие параметры принимает? Какова типа?
ругается на temp
как я понимаю, в качестве второго аргумента функция ожидает char, но не могу понять как это сделать. Прошу помощи
он не на temp ругается. а на то что строки типа char* нельзя складывать оператором "+". Пользуйтесь функцией sprintf, или сначала формируйте String складыванием строк, а потом преобразуйте String в char*
Спасибо!
Релизовал таким способом:
Через snprintf() было бы дешевле по ресурсам.
Через snprintf() было бы дешевле по ресурсам.
это ЕСП, там пофиг :)