綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[求助] Arduino藍芽傳送數據至Android的問題

[複製連結] 查看: 5609|回覆: 2|好評: 0
跳轉到指定樓層
樓主
adsl123449 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2014-2-6 16:11

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
請問各位先輩,我要用android接收arduino傳過來的溫度跟超音波數據
但是兩筆數據都只能在一個Text上顯示,我上網google找了好幾天
還是找不到怎麼判斷把兩筆數據分開放在不同Text上
麻煩各位先輩給小弟指點迷津一下,謝謝。

Android Code如下↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

這是一部分的Code,從網路抓下來的範例稍微有修改過
h = new Handler() {
            public void handleMessage(android.os.Message msg) {
                    switch (msg.what) {
            case RECIEVE_MESSAGE:                                                    // 如果接受訊息
                    byte[] readBuf = (byte[]) msg.obj;
                    String strIncom = new String(readBuf, 0, msg.arg1);            // 從字節數組創建字符串
                    sb.append(strIncom);                                                            // 追加字符串       
                    int endOfLineIndex = sb.indexOf("
");                            // 確定最終的行
                    if (endOfLineIndex > 0) {                                                     // 如果行結束
                            String sbprint = sb.substring(0,endOfLineIndex);     // 提取字符串
                    sb.delete(0, sb.length());                          
                    int intprint = new Integer(sbprint).intValue();       
                    TempView.setText(""+intprint);
                    
               
                    }
                    break;
                    }
        };
  };
public void run() {
                byte[] buffer = new byte[1024];  // 緩衝存儲
                int bytes; //返回的字節讀取()

                // 監控的InputStream,直到發生異常
                while (true) {
                        try {
                        // 從InputStream中讀取
                        bytes = mmInStream.read(buffer);                // 獲取的字節數和消息的“buffer”
                    h.obtainMessage(RECIEVE_MESSAGE, bytes, -1, buffer).sendToTarget();// 發送到消息隊列處理程序
                    } catch (IOException e) {
                        break;
                    }
                }
            }
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
kansas73 | 收聽TA | 只看該作者
發表於 2014-2-14 23:06
設兩個陣列分別處存兩筆傳過來的資料這樣就可以分開顯示了
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
odom | 收聽TA | 只看該作者
發表於 2015-5-1 09:13
本帖最後由 odom 於 2015-5-1 09:15 編輯
kansas73 發表於 2014-2-14 23:06
設兩個陣列分別處存兩筆傳過來的資料這樣就可以分開顯示了

請問大大要怎麼分兩個陣列 小的不會寫想請教@@

#include <Ultrasonic.h>
#include <Servo.h>
#define TRIGGER_PIN  A2
#define ECHO_PIN     A3
#define M1_in1 12
#define M1_in2 11
#define M2_in3 10
#define M2_in4 9
int speed;
Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN);                  
int incomingByte;                                          //讀取進來的資料存放位置。
const byte ENB = 5;
const byte ENA = 6;
unsigned long Time;                        //time
void setup() {
   
  Serial.begin(57600);                                   //設定傳輸速度
                                                                   // 設定LED 燈的接腳
pinMode(M1_in1,OUTPUT);
pinMode(M1_in2,OUTPUT);
pinMode(M2_in3,OUTPUT);
pinMode(M2_in4,OUTPUT);
speed = 100;
}
void Go_Ahead() {
      digitalWrite(M1_in1, HIGH);
      digitalWrite(M1_in2, LOW);
      digitalWrite(M2_in3, HIGH);
      digitalWrite(M2_in4, LOW);
      delay(1000);
    }
void Stop(){
      digitalWrite(M1_in1, LOW);
      digitalWrite(M1_in2, LOW);
      digitalWrite(M2_in3, LOW);
      digitalWrite(M2_in4, LOW);
      delay(1000);
    }
void Go_Back(){
      digitalWrite(M1_in1, LOW);
      digitalWrite(M1_in2, HIGH);
      digitalWrite(M2_in3, LOW);
      digitalWrite(M2_in4, HIGH);
      delay(1000);
    }
void Left(){
      digitalWrite(M1_in1, LOW);
      digitalWrite(M1_in2, LOW);
      digitalWrite(M2_in3, HIGH);
      digitalWrite(M2_in4, LOW);
      delay(1000);
    }
void Right(){
      digitalWrite(M1_in1, HIGH);
      digitalWrite(M1_in2, LOW);
      digitalWrite(M2_in3, LOW);
      digitalWrite(M2_in4, LOW);
      delay(1000);
    }   
    void a(){
    float cmMsec;
    long microsec = ultrasonic.timing();
    cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
    Serial.print("CM: ");
    Serial.print(cmMsec);
    Serial.print("
");
    }
     void b(){
     int sV;
     sV = analogRead(A0);
     Serial.print("Flame:");
     Serial.println(sV);
     Serial.print("
");
    }
     void c(){
     int va;                                      // 煙霧
     va=analogRead(A1);   
     Serial.print("Smoke:");
     Serial.println(va,DEC);
     Serial.print("
");
     delay(1000);
    }
void loop() {                           //超音波
  
  analogWrite(ENA, speed);                //輸出 PWM 脈衝到 ENA
  analogWrite(ENB, speed);                //輸出 PWM 脈衝到 ENB
  a();
  b();
  c();
  
  
  
  
   
                                                 // 看看是否有資料進來?
  if (Serial.available() > 0) {                  //馬達   
                                                // 讀取資料
    incomingByte = Serial.read();
  if (incomingByte == "A")
     Go_Ahead();
  else if (incomingByte == "B")
     Stop();     
  else if (incomingByte == "C")
     Go_Back();
  else if (incomingByte == "D")
     Left();
  else if (incomingByte == "E")
     Right();
  }
  {

  }

}
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則