Comunicar arduino UNO y esp8266 usando libreria esp8266.h

hola…veran llevo un par de dias en este foro, pero el poco tiempo que he estado he podido aprender y resolver algunos problemas gracias a esta comunidad.
En esta ocasion vengo a pedirles ayuda con un pequeño problema. Llevo unos dias con un proyecto, el cual consiste en realizar el conteo de objetos durante periodos de tiempo para luego mandarlos a una base de datos local(mysql-xampp) haciendo uso del modulo esp8266-01
Al inicio estaba usando sus comandos AT, pero decidi actualizar el firmware para poder programarlo con el IDE de Arduino y haciendo uso de la libreria ESP8266(GitHub - itead/ITEADLIB_Arduino_WeeESP8266: An easy-to-use Arduino ESP8266 library besed on AT firmware.).
Bueno empeze usando el esp8266 sin arduino, y pude enviar datos a mysql desde teclado.
Ahora decidi usar el esp8266 con el arduino, ya que necesito un par de interfaces de entrada/salida que el esp8266 no abastece. Asi que quise comunicarlos por serial haciendo uso de la libreria Softwareserial, pero lamentablemente no he podido comunicar a estos dos hasta el momento.
Veo q ambos funcionan bien de manera independiente…el arduino va contando, y el el esp8266 logra mandar datos a mysql, pero mi problema que no logro enviar el conteo de arduino al esp8266. Pienso que no estoy considerando algunas cosas posiblemente basicas, ya que no llevo mucho tiempo con arduino. De todas formas staria agradecido si alguien pudiera ayudarme con este pequeño problema.
Dejo adjunto el codigo de arduino y el esp8266

Codigo de arduino

#include <SoftwareSerial.h>
SoftwareSerial esp8266(3,2);
char mensaje;//guarda el dato que se ingresa por teclado
int cont=0;
void setup(){  
  pinMode(8,INPUT);
  Serial.begin(9600);
  esp8266.begin(9600);    
}
void loop()
{     
    while(Serial.available()>0)
    {
      mensaje=Serial.read();
    }
        if(mensaje=='1')//habilitamos el conteo
        {
            if(digitalRead(8)==HIGH)
            {
              cont++;                           
              Serial.println(cont);
              delay(250);              
            }
        }
        else{
              if(mensaje=='0')//enviamos el dato de conteo   
              {
                esp8266.write(cont);tambien probe con print
                cont=0;//reiniciamos el contador
                mensaje='1';//habilitamos el conteo nuevamente
              }                  
        }
}

este es el codigo del esp8266

#include <ESP8266WiFi.h>

const char* ssid     = "SSID";
const char* password = "PASSWORD";
const char* host = "10.0.0.10";//ip de mi pc
WiFiClient client;

void setup() {
  Serial.begin(9600);
  // We start by connecting to a WiFi network
  WiFi.begin(ssid, password);
}

void loop() {
  delay(5000);
  
  const int httpPort = 80;
  if (!client.connect(host, httpPort)) {
    return;
  }
  while(Serial.available()>0)
  {
    int dato=Serial.read();//no se como recibe el dato, o como entero o caracteres
    delay(10);
    client.print("GET /Proyecto/guardar.php?valor=");
    client.print(dato);
    client.println("HTTP/1.1");
    
  }

}

Una cosa mas, no se si sera de ayuda…pero veo que los leds de transmision de datos tanto del arduino como del esp8266 parpadean en el momento de enviar el dato de arduino a esp8266. A mi parecer creo que el esp8266 no logra entender lo que le esta enviando arduino.
Bueno cualquier ayuda siempre es bien recibida…gracias de antemano

Hola Cesar

Te recomiendo que escuches este podcast sobre el ESP8266, te puede aclarar muchas cosas.

ESP8266 todo lo que necesitas saber del módulo WiFi para Arduino

Un saludo.