I want to send data to an android app at every one second but hardware is sending data with a delay of 34-35 second, kindly provide me an appropriate solution this is my code,currently i am only sending hello to mqtt.
#include <string.h>
#include <stdint.h>
int val=0;
void mqtt_connect_message(uint8_t *, char *);
void mqtt_publish_message(uint8_t *, char *, char *);
void mqtt_disconnect_message(uint8_t *);
#include <SoftwareSerial.h>
SoftwareSerial GPRS(9, 10); //RX, TX
//but is more ‘smooth’
#define NUMSAMPLES 5
int samplesT [NUMSAMPLES];
int samplesH [NUMSAMPLES];
int HTU_Temp=0;
int HTU_Hum=0;
String gprsStr = “”;
int index = 0;
byte data1;
char atCommand[50];
byte mqttMessage[127];
int mqttMessageLength = 0;
//bolean flags
boolean smsReady = false;
boolean smsSent = false;
boolean gprsReady = false;
boolean mqttSent = false;
void setup(){
Serial.begin (9600); //debug
GPRS.begin(9600); //GPRS
Serial.println(“Sending Data to server using MQTT”);
}
void loop (){
// delay (1000); //Time to get GPRS Satable
// get_HTU();
Serial.println(“Checking if GPRS is READy?”);
GPRS.println(“AT”);
// delay(1000);
gprsReady= isGPRSReady();
if(gprsReady == true){
sendMQTTMessage(“gpsDevice”, “iot.eclipse.org”, “1883”, “LOCATION”, “HELLO”);
}
delay (1000);
val++;
}
boolean isGPRSReady(){
GPRS.println(“AT”);
GPRS.println(“AT+CGATT?”);//attach gprs
index = 0;
while (GPRS.available()){
data1 = (char)GPRS.read();
Serial.write(data1);
gprsStr[index++] = data1;
}
Serial.println(“Check OK”);
Serial.print("gprs str = ");
Serial.println(data1);
if (data1 > -1){
Serial.println(“GPRS OK”);
return true;
}
else {
Serial.println(“GPRS NOT OK”);
return false;
}
}
void sendMQTTMessage(char* clientId, char* brokerUrl, char* brokerPort, char* topic, char* message){
GPRS.println(“AT”); // Sends AT command to wake up cell phone
Serial.println(“send AT to wake up GPRS”);
delay(1000); // Wait a second
// digitalWrite(13, HIGH);
GPRS.println(“AT+CSTT=“bsnlnet”,”","""); // Puts phone into GPRS mode
Serial.println(“AT+CSTT=“bsnlnet”,”",""");
delay(1000); // Wait a second
GPRS.println(“AT+CIICR”);
Serial.println(“AT+CIICR”);
delay(1000);
GPRS.println(“AT+CIFSR”);
Serial.println(“AT+CIFSR”);
delay(1000);
strcpy(atCommand, “AT+CIPSTART=“TCP”,”");
strcat(atCommand, brokerUrl);
strcat(atCommand, “”,"");
strcat(atCommand, brokerPort);
strcat(atCommand, “”");
GPRS.println(atCommand);
Serial.println(atCommand);
// Serial.println(“AT+CIPSTART=“TCP”,“mqttdashboard.com”,“1883"”);
delay(1000);
GPRS.println(“AT+CIPSEND”);
Serial.println(“AT+CIPSEND”);
delay(1000);
mqttMessageLength = 16 + strlen(clientId);
Serial.println(mqttMessageLength);
mqtt_connect_message(mqttMessage, clientId);
for (int j = 0; j < mqttMessageLength; j++) {
GPRS.write(mqttMessage[j]); // Message contents
Serial.write(mqttMessage[j]); // Message contents
Serial.println(”");
}
GPRS.write(byte(26)); // (signals end of message)
Serial.println(“Sent”);
delay(8000);
GPRS.println(“AT+CIPSEND”);
Serial.println(“AT+CIPSEND”);
delay(1000);
mqttMessageLength = 4 + strlen(topic) + strlen(message);
Serial.println(mqttMessageLength);
mqtt_publish_message(mqttMessage, topic, message);
for (int k = 0; k < mqttMessageLength; k++) {
GPRS.write(mqttMessage[k]);
Serial.write((byte)mqttMessage[k]);
}
GPRS.write(byte(26)); // (signals end of message)
Serial.println("-------------Sent-------------"); // Message contents
// delay();
GPRS.println(“AT+CIPCLOSE”);
Serial.println(“AT+CIPCLOSE”);
delay(1000);
}