我有一个与温度传感器连接的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);
}
谢谢!