通过蓝牙将数据从Arduino发送到MIT app Inventor 2

时间:2015-07-16 17:21:49

标签: bluetooth arduino app-inventor

我有一个与温度传感器连接的Arduino Uno微处理器,我能够成功打印串行监视器上的温度。

我的想法是,我想通过蓝牙将温度值转移到MIT app inventor 2项目的标签上。任何人都知道如何做到这一点?

我应该向以下代码添加什么才能通过Arduino发送数据。

const int dataPin = 8;
int temperature = -1;
int humidity = -1;


void setup() {
 Serial.begin(115200);

}

int readDHT11(){
  uint8_t recvBuffer[5];
  uint8_t cnt = 7;
  uint8_t idx = 0;
  for(int i = 0; i<5; i++){
    recvBuffer[i] = 0;
  }

  pinMode(dataPin, OUTPUT);
  digitalWrite(dataPin, LOW);
  delay(18);
  digitalWrite(dataPin, HIGH);

  delayMicroseconds(40);
  pinMode(dataPin, INPUT);
  pulseIn(dataPin, HIGH);

  unsigned int timeout = 10000;
  for(int i = 0; i<40; i++){
      timeout = 10000;
      while(digitalRead(dataPin) == LOW){
          if(timeout == 0) return -1;
          timeout--;
      }
  unsigned long t = micros();

  timeout = 10000;
  while(digitalRead(dataPin) == HIGH){
      if(timeout == 0) return -1;
      timeout--;

  }  

  if ((micros() - t) > 40) recvBuffer[idx] |= (1 << cnt);
  if(cnt ==0){
    cnt = 7;
    idx++;
  }else{
    cnt--;
  }



  }

  humidity = recvBuffer[0];
  temperature = recvBuffer[2];
  uint8_t sum = recvBuffer[0] + recvBuffer[2];
  if(recvBuffer[4] != sum) return -2;
return 0;  

}

void loop() {
  int ret = readDHT11();
  if(ret!=0) Serial.println(ret);
  Serial.print("Humidity: "); Serial.print(humidity); Serial.print(" %\t");

  Serial.print("Temperature: "); Serial.print(temperature); Serial.print(" C\n");

  delay(500);
}

谢谢!

1 个答案:

答案 0 :(得分:1)

看看here。当我还是初学者时,本教程对我很有帮助。希望它也能帮到你!

祝你好运。

相关问题