#firebase-realtime-database #arduino #esp8266 #nodemcu #app-inventor
# #firebase-база данных в реальном времени #arduino #esp8266 #nodemcu #приложение-изобретатель
Вопрос:
Я пытаюсь создать приложение для Android в MIT App Inventor 2.
Это мой дизайн
Это мои блоки кода
Моя цель; когда я нажимаю где-нибудь на цветовом круге; получение координат места, на которое я нажал (черный шар), и получение его значений RGB.
Он отлично работает на экране телефона, он показывает значения. Но проблема в том, что когда я пытаюсь импортировать значения rgb в Firebase, значения выглядят как в этом формате на этом рисунке
Как вы видите, текстовые форматы в их полях похожи: ""101""
Но я хочу: 101
только. Потому что я получу значения в свой NodeMCU ESP8266 для мигания светодиода RGB. Я вставлю эти значения в analogWrite(pin,value)
функцию.
В чем моя ошибка на экране блокировки MIT App Inventor? Есть ли там какое-либо решение? Или вы можете дать мне предложение по этому поводу для части кода ESP8266 (например, разделить текст или что-то в этом роде)?
Ответ №1:
Вы можете добавить эту строку
String b_fir = Firebase.getString("B");
String str_b_fir = getStringPartByNr(b_fir, '"', 1);
int int_b_fir = str_b_fir.toInt();
Вы можете добавить эту функцию в loop
String getStringPartByNr(String data, char separator, int index)
{
// spliting a string and return the part nr index
// split by separator
int stringData = 0; //variable to count data part nr
String dataPart = ""; //variable to hole the return text
for(int i = 0; i<data.length()-1; i ) { //Walk through the text one letter at a time
if(data[i]==separator) {
//Count the number of times separator character appears in the text
stringData ;
}else if(stringData==index) {
//get the text when separator is the rignt one
dataPart.concat(data[i]);
}else if(stringData>index) {
//return text and stop if the next separator appears - to save CPU-time
return dataPart;
break;
}
}
//return text if this is the last part
return dataPart;
}
Комментарии:
1. Нет ли способа сделать это через AppInventor?