Done compiling, but serial monitor not consistent showing results. Even showing results, always shows wdt reset. This is the code:
#include <SoftwareSerial.h>
#include<ESP8266WiFi.h>
#define RX 0
#define TX 1
#include <Wire.h>
#include <Adafruit_MLX90614.h>
int red = 6;
int green = 5;
int buzzer = 11;
float arrayData[5];
int i = 0;
int j, k;
int x = 0;
String AP = "Wifi"; // AP NAME
String PASS = "12345"; // AP PASSWORD
String API = "3LWVPF4PXH079JPA"; // Write API KEY
String HOST = "api.thingspeak.com";
String PORT = "80";
String field = "field1";
int countTrueCommand;
int countTimeCommand;
boolean found = false;
float valSensor = 1;
SoftwareSerial wifi(RX ,TX );
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
void setup() {
Serial.begin(9600);
wifi.begin(115200);
sendCommand("AT",5,"OK");
sendCommand("AT+CWMODE=1",5,"OK");
sendCommand("AT+CWJAP=\""+ AP +"\",\""+ PASS +"\"",20,"OK");
mlx.begin();
pinMode(red, OUTPUT);
pinMode(red, LOW);
pinMode(green, OUTPUT);
pinMode(green, HIGH);
}
void loop() {
valSensor = getSensorData();
String getData = "GET /update?api_key="+ API +"&"+ field +"="+String(valSensor);
sendCommand("AT+CIPMUX=1",5,"OK");
sendCommand("AT+CIPSTART=0,\"TCP\",\""+ HOST +"\","+ PORT,15,"OK");
sendCommand("AT+CIPSEND=0," +String(getData.length()+4),4,">");
wifi.println(getData);delay(1500);countTrueCommand++;
sendCommand("AT+CIPCLOSE=0",5,"OK");
digitalWrite(green, HIGH);
Serial.println();
for (int i = 0; i < 5; i++) {
arrayData[i] = arrayData[i + 1];
}
arrayData[4] = mlx.readObjectTempC();
for (int i = 0; i < 5; i++) {
Serial.println(arrayData[i]);
}
delay(1000);
Serial.println();
for (int i = 0; i < 5; i++) {
if (arrayData[i] < 37.5)break;
if (i == 4) {
digitalWrite(green, LOW);
digitalWrite(red, HIGH);
delay(500);
for (j = 0; j < 3; j++) {
tone(buzzer, 300);
delay(500);
noTone(buzzer);
delay(500);
}
digitalWrite(red, LOW);
} else {
digitalWrite(red, LOW);
digitalWrite(green, HIGH);
delay(1000);
}
}
}
float getSensorData(){
Serial.print("Ambient = ");
Serial.print(mlx.readAmbientTempC());
Serial.print("*C\tObject = ");
Serial.print(mlx.readObjectTempC());
Serial.println("*C");
delay(2000);
return mlx.readObjectTempC();
}
void sendCommand(String command, int maxTime, char readReplay[]) {
Serial.print(countTrueCommand);
Serial.print(". at command => ");
Serial.print(command);
Serial.print(" ");
while(countTimeCommand < (maxTime*1))
{
wifi.println(command);//at+cipsend
if(wifi.find(readReplay))//ok
{
found = true;
break;
}
countTimeCommand ++;
}
if(found == true)
{
Serial.println("OYI");
countTrueCommand ++;
countTimeCommand = 0;
}
if(found == false)
{
Serial.println("Fail");
countTrueCommand = 0;
countTimeCommand = 0;
}
found = false;
}
Can I get some help? Thank you.