Приложения для Android, получающие данные от Arduino - PullRequest
0 голосов
/ 02 июня 2019

Я разрабатываю приложения для Android для получения данных от Arduino.

Я собираю данные о влажности, температуре и расстоянии от Arduino и передаю их в приложения для Android с помощью HC-06. Я хотел бы отобразить значение каждого из данных в различных TextView. Вот мой код:

Adruino:

...
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
...
distance = duration*(speedofsound/10000)/2;
BT.print("h");
BT.print(humidity);
BT.print("t");
BT.print(temperature);
BT.print("d");
BT.print(distance);
BT.print("e");

Android Studio:

 ...
 String humidity, temperature, distance;
 ...
 TextView textView,textView2,textView3;
 ...
 textView = (TextView) findViewById(R.id.textView);
 textView2 = (TextView) findViewById(R.id.textView2);
 textView3 = (TextView) findViewById(R.id.textView3);
 void beginListenForData()
{
    final Handler handler = new Handler();
    stopThread = false;
    buffer = new byte[1024];
    Thread thread  = new Thread(new Runnable()
    {
        public void run()
        {
            while(!Thread.currentThread().isInterrupted() && !stopThread)
            {
                try
                {
                    int byteCount = inputStream.available();
                    if(byteCount > 0)
                    {
                        byte[] rawBytes = new byte[byteCount];
                        inputStream.read(rawBytes);
                        final String string=new String(rawBytes,"UTF-8");
                        handler.post(new Runnable() {
                            public void run()
                            {
                                //textView.append(string);
                               humidity=string.substring(string.indexOf("h")+1,string.indexOf("t"));
 temperature=string.substring(string.indexOf("t")+1,string.indexOf("d"));
 distance=string.substring(string.indexOf("d")+1,string.indexOf("e"));
                                textView.setText(humidity);
 textView2.setText(temperature);
 textView3.setText(distance);
                            }
                        });

                    }
                }
                catch (IOException ex)
                {
                    stopThread = true;
                }
            }
        }
    });

    thread.start();
}

Произошла ошибка и приложение остановилось. Может ли кто-нибудь помочь мне решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...