Как я могу получить значение RSSI на эскизе Bluno nano?

Привет, я студент корейского университета. Я делаю проект, который использует bluno nano. Я хочу получить значения Integer RSSI на скриншоте Bluno. Я сделал это на серийном мониторе. Команда "AT+RSSI=?" работает очень хорошо. Но я хочу сделать это по эскизу. Как мне это сделать?

Я использовал этот код на этом сайте. Хотя я подключил android и iPhone к bluno, на последовательном мониторе отображаются только значения 0 и 0.00. в чем проблема? Кто-нибудь, помогите мне!


// while the AT connection is active, the serial port between the pc and the arduino is occuipied.
// You can manipluate the data on arduino, but to display on the serial monitor you need to exit the AT mode
char Data[100];
char RAW[3];
int INDEX;
char Value = '-';
void setup() {
  pinMode(13, OUTPUT); // This the onboard LED
  pinMode(8, OUTPUT); // This is connected to the buzzer
  Serial.begin(115200);    //Initiate the Serial comm
  Serial.print("+"); 
  Serial.print("+"); 
  Serial.print("+");   // Enter the AT mode
  delay(500); // Slow down and wait for connectin establishment
 }


void loop(){
    Serial.println("AT+RSSI=?"); // Ask about the RSSI
 for(int x=0 ; Serial.available() > 0 ; x++ ){    // get the Enter AT mode words
    //delay(20); // Slow down for accuracy
    Data[x] = Serial.read(); // Read and store Data Byte by Byte
    if (Data[x] == Value ) // Look for the elemnt of the array that have "-" that's the start of the RSSI value
      {
        INDEX=x;
      }
  }
    //Serial.println("AT+EXIT");    
    RAW[0] = Data[INDEX]; // Copy the RSSI value to RAW Char array
    RAW[1] = Data[INDEX+1]; 
    RAW[2] = Data[INDEX+2]; 
    RAW[3] = Data[INDEX+3];
    int RSSI = atoi(RAW);  //Convert the Array to an integer
    //Serial.println(RSSI);
    //delay(200); // Give the program time to process. Serial Comm sucks
    double D = exp(((RSSI+60)/-10)); //Calculate the distance but this is VERY inaccurate
    //Serial.println(D);
    if (D>1.00) // If the device gets far, excute the following>>
    {
      digitalWrite(13, HIGH);
      digitalWrite(8, HIGH);
      delay(500);
      digitalWrite(13, LOW);
      digitalWrite(8, LOW);
      delay(500);
    }

} 

1 ответ

В целом у меня такой же опыт. Хотя я отправил

Serial.println("AT+NAME=?");

Блуно возвращает только "-1"

Кто-нибудь, кто решает эту проблему (?)/ Проблема?

Другие вопросы по тегам