Wemos Mega R3 + ESP8266

Buenos dias,

Estoy utilizando la tarjeta WEMOS MEGA +WIFI R3 ATMEGA2560+ESP8266
para leer sensor max6675 termocupla en pines digitales, luego pasar el datos al ESP8266 y por ultimo enviar información a un servidor.

adjunto código.

Código Mega: (RXD0 - TXD0) (Switch: 3 y 4 ON)

#include <max6675.h>

int temp;
String str;

//Pines de conexión a Arduino para tomar la lectura.

int thermoDO = 50;// SO=Serial Out;
int thermoCS = 51;// CS = chip select CS pin;
int thermoCLK = 52;// SCK = Serial Clock pin;

// Inicializar Sensor MAX;
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);

void setup()
{
Serial.begin(115200);
Serial3.begin(115200);
}

void loop()
{
temp = thermocouple.readCelsius(); //Leemos temperatura respectivamente.

Serial.print(“Temperatura: “);
Serial.print(temp);
//Serial.print(’&’);
Serial.print(” *C “);
Serial.print(” \n”);
str = String(temp);
Serial3.println(str);
delay(1000);
}


Código ESP8266: Código Mega: (RXD0 - TXD0) (Switch: 5,6 y 7 ON)

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <max6675.h>
#include <SoftwareSerial.h>

SoftwareSerial Serial3(15,14);

// Usuario y clave de red;
const char* ssid = “";
const char
password = "
**”;

unsigned long previousMillis = 0;

// We now create a URL for the request

char* host = “";
const char
server = "
*******”;
String url = “/Datos/Send_Data.php”;
String Chip_ID = “”;

int contconexion = 0;

//****************************************************************************

String enviardatos(String datos)
{
String linea = “error”;
WiFiClient client;
//strhost.toCharArray(host, 10);
if (!client.connect(host, 80))
{
Serial.println(“connection failed”);
return linea;
}

// This will send the request to the server
client.print(String("POST “) + url + " HTTP/1.1\r\n” +
"Host: " + server + “\r\n” +
“Accept: /” + “*\r\n” +
"Content-Length: " + datos.length() + “\r\n” +
“Content-Type: application/x-www-form-urlencoded” + “\r\n” +
“\r\n” + datos);
previousMillis = millis();

Serial.print("Requesting URL: ");
Serial.println(url);
if (!client.connected())
{
Serial.println(“Disconnected!”);

}
Serial.println(“Enviando datos a SQL…”);

unsigned long timeout = millis();
while (client.available() == 0)
{
if (millis() - timeout > 5000)
{
Serial.println(">>> Client Timeout!");
client.stop();
return linea;
}

}
// Read all the lines of the reply from server and print them to Serial
while (client.available())
{
linea = client.readStringUntil(’\r’);

}
Serial.print(linea);
return linea;
Serial.println();
Serial.println(“closing connection”);

}

//********************************************************************************

void setup()
{
// Inicializar puerto serial;
Serial.begin(115200);
Serial3.begin(115200);
Serial.println("");

Serial.print("chipId: ");
Chip_ID = String(ESP.getChipId());
Serial.println(Chip_ID);
// Conectando con la red WiFi
Serial.println();
Serial.print("Conectando con ");
Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED and contconexion<50)
{
++contconexion;
delay(500);
Serial.print(".");
}
if (contconexion < 50)
{
Serial.println("");
Serial.println(“Conectado a Servidor:”);
Serial.println(server);
}
else
{
Serial.println("");
Serial.println(“Error de Conexion”);
}

}

//*******************************************************************************

void loop()
{
unsigned long currentMillis = millis();

if (currentMillis - previousMillis >= 10000)
{
previousMillis = currentMillis;

//Se declara el sensor MAX6675

int thermoDO = 50;// SO=Serial Out;
int thermoCS = 51;// CS = chip select CS pin;
int thermoCLK = 52;// SCK = Serial Clock pin;

// Inicializar Sensor MAX;
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);

if(Serial.available())
{
char dato = Serial3.read();
Serial.write(dato);
Serial.println(dato);
int tempC;
tempC = String(dato).toInt();
//tempC = thermocouple.readCelsius();
Serial.println();
Serial.print("Temperatura: ");
Serial.print(tempC);
Serial.println();
// Funcion para enviar datos a la base de datos SQL
enviardatos(“Chip_ID=” + Chip_ID + “&Temperatura=” + String(tempC));

}
}
}


Se conecta a la red y al servidor correctamente.
El problema es que no lee los pines digitales del sensor, me arroja una temperatura: 0.
Es como si no se comunicara el mega con el esp8266 de manera interna.

Agradezco su ayuda!!!

Por favor lee las Normas del foro y edita tu código que debe verse con etiquetas.