Arduino Uno/Mega conectar a ESP 01S Serial o I2c

Hola buenas, estoy con un proyecto donde quiero controlar varios sensores de Entrada/Salida y la información subida o la información a bajada siempre este en la nube de Firebase.

En un principio pensé en utilizar shield de red, pero me tope con un pequeño pero potente modulo wifi, el ESP-01S. Este modulo no solo era mas pequeño que el propio Arduino sino que mas potente.

Me decidí a comprarlo, en un principio todo bien con sus comandos AT, hasta que me di cuenta que alguien logro poner el IDE de Arduino dentro de el. Así que tome cartas en el asunto e instale todo para que este funcionara con IDE de Arduino.

Funcionando correcto lo conecte con firebase, hasta acá todo un éxito! Pero...

Me tope con algo el ESP01 solo tiene 4 pines: TX,RX,GPIO0 y GPIO2.

Lo quise sumar a mi proyecto con Arduino y me hice mis propios comandos AT.

Definí algunas variables como:

CON SSID PASS (Para conectarme a la WiFi)
FBC HOST KEY (Para conectarme a la Base de datos en tiempo real de Firebase),
FBS NODO VALOR(Para cargar/setear los datos en la base)

Por medio de estos le enviaba Arduino al ESP01 (conectado como Serial) y se definía lo que había que hacer.

Ahora el problema es que esto lo hice con un SoftwareSerial(2,3), cuando coloco en el serial original(0,1) del Arduino solo me envía hacia el ESP pero el ESP no se comunica con el Arduino. Creo que seria un problema mas de corriente ya que el ESP trabaja a 3.3V mientras que el Arduino lo hace con 5V.

Dado que existe el Bus I2C ¿conviene mas hacer la conexión por serie o conviene que cambie a I2C?

Muchas Gracias, es mi primer publicación.

Dos cuestiones:

  • Si funciona con softwareserial, y no con serial (0,1) no es un problema de tensión. Mas bien es algo de software, configuración de velocidad probablemente. El serial por hardware va un poco regular a altas velocidades.

  • De donde vas a sacar un puerto I2C del ESP si solo tiene gpio0, gpio2, tx, y rx????

Opciones: trabaja con software serial si dices que funciona o consigue un esp12 o similar que son los hermanos mayores del esp01.