The Serial Gateway on an Arduino is probably the easiest gateway to employ. The problem is that it has to be connected to the computer that is hosting the controller. In my case, the host computer is in a place that blocks radio signals. The communication will be degraded with a long cable.
Using an ESP8266 gateway is an obvious choice when the radio (eg nRF24) needs to be in a different location. Wire the radio to the ESP board. If your using and ESP-12(E/F) you'll have some more wiring as described the the document Installing Gateway Software
I find that using C++ programs for the ESP devices can get pretty convoluted. I prefer to use Tasmota for ESP devices. The Tasmota firmware can be updated Over the Air (OtA). Yes, you can add OTA to C++ programs, but my experience is that the mDNS is finicky. With Tasmota, configuration is done through the device's web page. And coding is much more simple; for this example, the configuration takes two lines.
The downside of the ESP-12F is that 5V always causes magic smoke to escape. Arduinos are much more tolerant and have more ADC ports.
Thus I ventured into creating a Wireless Serial Cable. I use Home Assistant to which I will be referring as HA. This will probably work with other controllers. I had a lot of help from the HA forum and detail the how to create the Wireless Serial Cable there.
Here I would like to share the Wireless Serial Gateway.
If you're using an ESP-12F, you'll need 3.3V power supply. The Arduino Nano needs a 5V supply, not the USB connector because the USB serial will conflict with the serial going to the ESP device
The ESP device has Tasmota ZBBridge installed (ZBBridge32 for ESP32)
configuration is:
Set module to Generic
Set GPIO15 to TCP TX and GPIO 13 to TCP RX (17 and16 for ESP32
From the ESP device command line
Rule1 on system#boot do tcpstart 8888 end on
rule1 on
then restart with
restart1 1
On the HA side install the TCP gateway (not the serial gateway)
using the IP address of the ESP device and the port as 8888
The Arduino may need to be reset to send over the initial gateway information.