Tengo una APP de Andriod que se conecta a Arduino UNO a través de bluetooth (HC-05), y recibe lecturas del sensor usando el comando Serial.print () en el croquis de Arduino. La aplicación se realiza utilizando el inventor de la aplicación y utiliza bloques de Bluetooth en ese programa.
Aquí hay un complemento
Funcionabienhastaqueuseunsensordepolvo,quenecesitaAndroidparaprobarenelpinD8.
intpin=8;unsignedlongduration;unsignedlongstarttime;unsignedlongsampletime_ms=1000;//sampe30s;unsignedlonglowpulseoccupancy=0;floatratio=0;floatconcentration=0;unsignedlongtimeElapsed=2000;unsignedlongsTime;voidsetup(){Serial.begin(9600);pinMode(8,INPUT);starttime=millis();}voidloop(){duration=pulseIn(pin,LOW);lowpulseoccupancy=lowpulseoccupancy+duration;if((millis()-starttime)>sampletime_ms)//ifthesampletime==1s{ratio=lowpulseoccupancy/(sampletime_ms*10.0);//Integerpercentage0=>100concentration=1.1*pow(ratio,3)-3.8*pow(ratio,2)+520*ratio+0.62;//usingspecsheetcurveSerial.print(analogRead(analogInPin)/20);Serial.print("s");
Serial.print(analogRead(A5));
Serial.print("s");
Serial.print(analogRead(A3));
Serial.print("s");
Serial.print(concentration);
Serial.print("s");
lowpulseoccupancy=0;
starttime=millies();
}
}
La adición de la variable "concentración" anterior a Serial.print () lleva al error en el que la APP no recibe ningún bloque de información en un temporizador de reloj, luego recibe dos consecutivos en el siguiente temporizador de reloj. La aplicación está diseñada para verificar el bluetooth cada 1000 ms, y estoy enviando los datos del sensor después de 1000 ms. Cuando no recibe datos, muestra error="No se puede acceder al ítem / lista está vacío. ¿Qué hacer? Funciona bien si dejo la" concentración ". La tasa de serie es 9600 bps.