У меня есть микропроцессор Arduino Uno, подключенный к датчику температуры, я могу успешно распечатать температуру на последовательном мониторе.Отправка данных от Arduino в MIT-приложение Inventor 2 через bluetooth
Идея заключается в том, что я хочу сбросить значение температуры в ярлык, сидящий на проекте MIT app inventor 2 через Bluetooth. У кого-нибудь есть идея, как это сделать?
Что я должен добавить к следующему коду, чтобы отправлять данные через 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);
}
Спасибо!
[поиск в приложении Inventor forum] (https://groups.google.com/forum/#!searchin/mitappinventortest/Arduino%7Csort:date), чтобы найти некоторые примеры – Taifun