There are several to get wireless communication between two microcontrollers, like Zigbee,nRF modules, bluetooth etc.
In this blog we will see how to use the cheap 433Mhz modules to implement a wireless channel between two controllers. I will be implementing a one way channel , this is can be easily extended to a half-duplex channel (to implement full duplex channel you need RF modules working in different frequencies)
Ideally you can just connect RF transmitter to TX of sending controller and RF receiver to the receiving Controller. If you do that it won’t work . You will be getting junk data at the receiver or no data at all.
The problem is that the UART TX line idle state is HIGH. Which means when you are not transmitting any data the TX line will be held HIGH (some modules have the opposite problem, means they can’t maintain a stable LOW value). The RF transmitter will not send continues HIGH signal, if the signal is not changed for a time period T, it will stop transmitting the data. We have one more problem. Impedance, the RF receiver module can’t provide enough current to drive the RX line of UART.
To solve the first problem we will invert the signal at the transmitting end as well as at the receiver end. The second problem can be solved by placing a high input impedance buffer. So ineffect you can use a Inverter Buffer(such as CD4049 ) at both trnasmitter and receiver . This method works for most of the RF modules but may not work for all of them. If it is not working for you, then there may be another problem apart from problems mentioned here.