Go Down

Topic: Enviar datos de pines digitales del MEGA2560 al ESP8266 y esos datos subirlos a un servidor (Read 68 times) previous topic - next topic

Kaiser_Mc

Buenas Tardes,

Solicito ayuda para enviar datos de pines digitales del MEGA2560 al ESP8266 y luego esos datos subirlos a un servidor.
Estoy Utilizando Tarjeta WEMOS Mega + WiFi + R3 ATmega2560 + ESP8266

(RXD0/TXD0) y (Switch 3 y 4 en ON)
Codigo Mega:


#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);
}

/////////////////////////////////////////////////////////////////////////////////////////////////

(RXD0/TXD0) y (Switch 5,6,7 en ON)

Codigo ESP8266:

#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 WiFi y a servidor correctamente.
El problema es que al leer en monitor Serial, no me registra temperatura.
me aparece:

Temperatura: 0.

Agradezco su ayuda.


surbyte


Go Up