Building a Long-Range Wireless Appliance Control System Using Arduino and LoRa
Controlling appliances wirelessly is no longer limited to Wi-Fi-based smart home systems. In many practical situations — such as agricultural fields, industrial areas, warehouses, or remote buildings — internet connectivity may not always be available or reliable.
This is where LoRa (Long Range Radio) technology becomes extremely useful.
In this project, I built a long-range appliance control system using an Arduino Nano and the RYLR999 LoRa + BLE module. The system allows electrical appliances like bulbs and fans to be controlled remotely from a smartphone using Bluetooth and LoRa communication.
The interesting part of this project is that it combines:
- Bluetooth Low Energy for smartphone communication
- LoRa for long-distance wireless transmission
- Relay-based appliance control
- Real-time LCD monitoring
The entire system works without requiring Wi-Fi or cloud connectivity.
Project Overview
The system consists of two separate hardware nodes:
Controller Node
The controller node acts as the communication gateway between the smartphone and the LoRa network.
A smartphone connects to the RYLR999 module using Bluetooth Low Energy through the LightBlue BLE mobile application. Commands sent from the mobile application are received by the Arduino Nano through the BLE interface of the RYLR999 module.
The Arduino processes the command and forwards it through the LoRa interface.
Target Node
The target node receives LoRa data transmitted by the controller.
Another Arduino Nano connected to a second RYLR999 module interprets the incoming command and controls relay outputs connected to appliances.
In this demonstration:
- Relay 1 controls a 240V AC bulb
- Relay 2 controls a 12V DC fan
Once the action is completed, the target node transmits a confirmation response back to the controller.
Why Use the RYLR999 Module?
The RYLR999 is an interesting module because it integrates both:
- LoRa communication
- Bluetooth Low Energy communication
inside a single compact module.
This allows the module to act as a bridge between a smartphone and a long-range LoRa network.
In this project:
- BLE is used for smartphone interaction
- LoRa is used for long-distance wireless communication
This dual-function capability simplifies the hardware design significantly.
Hardware Components
The following hardware components were used:
- Arduino Nano ×2
- RYLR999 LoRa + BLE module ×2
- 5V to 3.3V bidirectional voltage level shifter ×2
- 16×2 I2C LCD ×2
- 2-channel relay module
- 12V DC fan
- 240V AC bulb
- Jumper wires
- 12V power adapter
Controller Node Connections

The controller setup contains an Arduino Nano, an RYLR999 module, a voltage level shifter, and an I2C LCD display.
The RYLR999 module communicates with the Arduino using UART serial communication. Since the Arduino Nano operates at 5V logic and the RYLR999 module uses 3.3V logic, a voltage level shifter is required between them.
The VDD pin of the RYLR999 module is connected to the 5V pin of the Arduino Nano, while the GND pin connects to Arduino ground.
For LoRa communication
- TXD_LoRa of the module connects through the voltage shifter to the RX pin of the Arduino
- TX pin of the Arduino connects through the voltage shifter to RXD_LoRa of the module
The Arduino Nano has only one hardware serial port, so SoftwareSerial communication is used for BLE communication.
Digital pin D2 is configured as BLE transmit, and digital pin D3 is configured as BLE receive.
The BLE pins connect to the BLE interface of the RYLR999 module through the voltage level shifter.
The voltage level shifter also requires reference voltages:
- HV pin connects to Arduino 5V
- LV pin connects to Arduino 3.3V
The 16×2 I2C LCD is connected as follows:
- SDA → A4
- SCL → A5
- VCC → 5V
- GND → GND
The LCD displays system status messages such as:
- Received BLE commands
- LoRa transmission status
- Confirmation responses
Target Node Connections

The target node uses another Arduino Nano and RYLR999 module to receive LoRa data and control appliances.
The LoRa communication wiring is similar to the controller setup.
The TXD_LoRa pin of the module connects through the voltage level shifter to the Arduino RX pin, while the Arduino TX pin connects through the shifter to RXD_LoRa of the module.
Unlike the controller node, the BLE interface is not used in the target setup.
A 2-channel relay module is connected to the Arduino Nano for appliance control.
The relay module connections are:
- Relay VCC → Arduino 5V
- Relay GND → Arduino GND
- Relay IN1 → Arduino D11
- Relay IN2 → Arduino D12
In this project:
- D11 controls the AC bulb
- D12 controls the DC fan
When the Arduino activates a relay pin, the corresponding relay switches its contacts and powers the appliance.
For the AC bulb, the relay switches the live AC line.
For the DC fan, the relay is connected in series with the positive 12V supply line.
The target node also includes an I2C LCD connected through A4 and A5 pins to display:
- Received commands
- Appliance status
- Communication feedback
⚠️ Proper electrical safety precautions should always be followed while working with AC mains voltage.
Command Structure
The following commands are sent from the smartphone using the LightBlue BLE application:
*L1# → Turn bulb ON
*L0# → Turn bulb OFF
*F1# → Turn fan ON
*F0# → Turn fan OFF
The controller extracts the payload and transmits it using LoRa communication. The target node processes the command and returns a response after successful execution.
Although only the payload is shown above, the actual LoRa transmission uses additional AT command formatting required by the RYLR999 module.
Testing the System

After uploading the Arduino code to both boards:
- Power the controller and target nodes
- Open the LightBlue BLE application
- Connect to the RYLR999 BLE device
- Send command strings manually
- Observe LCD feedback on both nodes
- Verify relay operation
Under suitable environmental conditions, LoRa communication can achieve several kilometers of transmission range.
Final Thoughts
This project demonstrates how LoRa technology can be combined with Bluetooth and Arduino to create practical long-range wireless control systems without relying on internet infrastructure.
The hybrid BLE + LoRa architecture makes the system simple to use while still enabling long-distance communication.
For complete Arduino source code, detailed diagrams, and configuration steps, you can check the full tutorial here: Appliance Control from Smartphone Using Arduino and RYLR999 LoRa Module








