ESP8266 - 12E and Arduino Nano V3 5v

I'm working on a project that is using an ESP8266 to communicate and receive commands via a mqtt server.

The project is an automated chicken coop with communications over wifi.

The project idea should follow this:

Report temperature from chicken coop every 30 minutes - if below 32F trigger a relay to turn on a heated water bowl. If above 80F turn on fan in rafters to cool coop. - (This is a LARGE coop, 8x12 to be exact, with plans for 20-30 chickens).

Control chicken coop door - this should be mostly automated - and in theory would be controlled by the arduino side to run a stepper motor for precise control.

Control a light source in the coop (and on the front near door) for night-time access.

All controls should be controlled thru a web interface I'm developing with the mqtt server to access temp log and send commands. (Server is a raspberry pi 3).

I have a few questions on feasibility of a setup.

Currently - I do have the ESP running a "stripped down" version of the code I will eventually be running on it, but I know the ESP doesn't have enough GPIO outs on it for the final project + possible expansion ideas I'm floating around in my head.

My plan is to use two of the gpio outs on the ESP-12E to send serial to an arduino nano/uno. The arduino would control the relays and report back a status that it received the command (tho as of now I havent decided on a way to ensure the command was actually run).

Am I correct in the thought that to send the rx/tx signals between the ESP and Arduino I'm going to need a logic level converter? Since I want to leave the usb serial open on the arduino incase I need to program it later, can a softwareSerial handle 115200 baud? The ESP-12E is currently running 115200 flawlessly.

As far as powering both boards - My idea is to take an ac to dc 100W 120v to 12v 8a converter, then use an LD33V for powering the ESP and an L7805CV to power the arduino. Even after stepping down voltages to 3.3V and 5V respectively I'll still want to wire in on the Vin on both boards for the safety of their built in regulators.

Can anybody see any issues I havent quite thought of - I know I'll need a H-bridge to drive the stepper, but anything else?

Am I correct in the thought that to send the rx/tx signals between the ESP and Arduino I’m going to need a logic level converter?

It’s safest to not send 5V signals to the ESP8266. You can just put a voltage divider on the TX pin of the nano/uno. No level shifting should be necessary on the RX pin of the nano/uno.

can a softwareSerial handle 115200 baud?

No, SoftwareSerial on the nano/uno won’t work reliably at 115200.


I knew with the other ESP modules you had to use a level shifter but was unsure about the 12E.

I'll have to look into a softwareSerial on the ESP and see if I can drop its baud down to 9600 for transmitting with the arduino. Would still like to keep the 115200 on the USB serial for programming purposes.

Curious - an afterthought. I'm using the NodeMCU 12-E ESP. is it natively 3.3v as well, it does have a 5v pin.

The 5V pin on the NodeMCU is connected to a 3.3V voltage regulator. All ESP8266 run at 3.3V and have 3.3V I/O unless the board has built-in level shifters on the GPIO pins, which I haven't seen.

Just so you know, there are chips specifically made for what you're doing with the nano/uno, such as shift registers or port expanders. Your plan should also work fine though.