Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
樓主: RJay
打印 上一主題 下一主題

Arduino藍芽感測器訊號傳給手機

[複製鏈接]
4#
 樓主| 發表於 2018-2-17 21:40:53 | 只看該作者
本帖最後由 RJay 於 2018-2-17 21:46 編輯

請問藍芽SoftwareSerial I2CBT(0,1);這一行 0代表RX 1代表TX是嗎 藍芽的那一端就要相反接?
我只有煙霧濃度出現249.29 而且不會變動 是不是哪裡還有問題(接線沒有問題Serial.print 會顯示);
3#
發表於 2018-2-17 07:55:31 | 只看該作者
1.因為送出的第0,3,6,9 個 byte
   分別就是 97, 98,99,100
   其中 ′b' 的 ascii code 就是 98, ′c′ 就是 99......
   寫法不同,但結果相同
    可以直接改成 98,99,100,比較直覺
2. 請先確定你的藍牙是否也接在 0 和 1接腳
3. 程式寫錯,那個 serial.write 的 for loop
    應該是 12, 不是 9
2#
 樓主| 發表於 2018-2-16 23:36:08 | 只看該作者

這是我看你推薦的那一篇文章照著做出來的
以下Arduino端程式
#include <SoftwareSerial.h>
SoftwareSerial I2CBT(0,1);
#include <DHT.h>     
#define DHTTYPE DHT22
const int smoke=2;
const int tem=3;
DHT dht(tem, DHTTYPE);
void setup() {
  Serial.begin(9600);
  pinMode(smoke,INPUT);
  pinMode(tem,INPUT);
  dht.begin();
}
void loop() {
  int x = analogRead(smoke);
  int y = dht.readHumidity();
  int z = dht.readTemperature();
  int a = dht.readTemperature(true);
  byte Data[12];
  Data[0]=97;
  Data[1]=x/256;
  Data[2]=x%256;
  Data[3]='b';
  Data[4]=y/256;
  Data[5]=y%256;
  Data[6]='c';
  Data[7]=z/256;
  Data[8]=z%256;
  Data[9]='d';
  Data[10]=a/256;
  Data[11]=a%256;
  
if (Serial.available() > 0) {
    char val = Serial.read();
    switch (val) {
      case 97:
        for (int i = 0 ; i < 9 ; i++) {
          Serial.write(Data);
          break;
        }
    }
}
}
有很多地方都搞不清楚為甚麼 為甚麼會這樣
像是APP的接收1無位元支無號數是 97 98 99
上面應該有不少錯 因為東西出不來
第一次做兩個連接的 有很多不懂
希望能告訴哪裡有誤 謝謝
1#
發表於 2018-2-16 07:34:03 來自手機 | 只看該作者
找一下之前的討論串“請問DHT11如果要傳送到手機”
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-6-16 05:19 , Processed in 0.238573 second(s), 7 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表