Не удается преобразовать строку в целое число при получении данных из pubnub
Мне удалось загрузить данные датчика mpu9250 на PubNub и NodeMCU, но я не смог использовать полученные данные для управления сервоприводом
Посмотрите на показания порта и увидите, что угол сервопривода по-прежнему показывает "0".
Код:-
IMU.readSensor();
char buf[500] = {};
int imu = IMU.getAccelX_mss() * 10;
sprintf(buf, "\"%d\"", imu);
Serial.print(buf);
PubNonSubClient *pclient = PubNub.publish(pubchannel, buf);
if (!pclient) return;
PublishCracker cheez;
cheez.read_and_parse(pclient);
/** You're mostly interested in `outcome()`, and,
if it's "failed", then `description()`.
*/
Serial.print("Outcome: "); Serial.print(cheez.outcome());
Serial.print(' '); Serial.println(cheez.to_str(cheez.outcome()));
Serial.print("description: "); Serial.println(cheez.description());
Serial.print("timestamp: "); Serial.println(cheez.timestamp());
Serial.print("state: "); Serial.print(cheez.state());
Serial.print(' '); Serial.println(cheez.to_str(cheez.state()));
Serial.print("IMU Reading: "); Serial.println(IMU.getAccelX_mss());
pclient->stop();
/* Wait for news. */
PubSubClient *sclient = PubNub.subscribe(subchannel);
if (!sclient) return; // ошибка
String msg;
SubscribeCracker ritz(sclient);
while (!ritz.finished()) {
ritz.get(msg);
if (msg.length() > 0) {
Serial.print("Received: "); Serial.println(msg);
pos = msg.toInt();
Serial.print("value of servo angle: "); Serial.println(pos);
myservo.write(pos);
}
}
sclient->stop();
delay(1000);
Как мне преобразовать строку в целое число, чтобы ее можно было использовать в servo?
1 ответ
Это код, который сработал для меня: -
msg.remove(0,1); msg.remove(msg.length());
pos = msg.toInt();
Serial.print("value of servo angle: "); Serial.println(pos);
myservo.write(pos);
Мне пришлось удалить этот символ (" ") с помощью msg.remove(0,1) & msg.remove(msg.length()), который удаляет начальную и конечную строки.
очиститель: msg.trim(); Serial.println("значение угла сервопривода:" + Строка(msg.toInt());
, @dandavis
хорошо, намного лучше, @Sultan Morbiwala
но msg.trim() не сработал, @Sultan Morbiwala
в ardunio это метод мутации void, а не трансформатор, как в других языках., @dandavis
- Как подключить MPU9250 к NodeMCU с помощью SPI или I2C Slave?
- Как связать MPU9250 и NodeMcu?
- NodeMCU не может подключиться к мобильной точке доступа, когда я включаю коды для считывания датчика температуры
- MPU6050 Проблема с NodeMCU
- Как загрузить данные датчиков в pubnub IOT в формате JSON?
- ESP8266 не подключается к Wi-Fi
- WebSocketsServer.h: No such file or directory
- Как публиковать запросы HTTP POST на моем веб-сайте?
Подсказка: Возможно, потребуется удалить лишние символы ("..") перед преобразованием строки в целое число., @Mikael Patel
о да, позвольте мне попробовать, @Sultan Morbiwala