Remote control of electrical devices usually relies on Wi-Fi or cloud platforms. However, these approaches become unreliable or impossible when the device is located far away from the network infrastructure.
LoRa (Long Range Radio) technology provides an elegant solution to this problem by enabling low-power wireless communication across several kilometers.
In this project, we build a long-range appliance control system using Arduino Nano and the Reyax RYLR999 LoRa + BLE module. The system allows a smartphone to control electrical loads such as lights and fans over long distances using LoRa communication.
The design combines two wireless technologies:
- Bluetooth Low Energy (BLE) for short-range smartphone interaction
- LoRa radio communication for long-distance data transmission
A mobile phone sends commands to a LoRa node via BLE, which then relays the command wirelessly to another LoRa node that controls appliances through relay modules.
Key Features- Long-range wireless control using LoRa communication
- Smartphone interface via Bluetooth Low Energy
- Real-time system monitoring using I2C LCD displays
- Ability to control both AC and DC appliances
- Two-node LoRa communication system
- Bi-directional confirmation messages between nodes
The project is composed of two hardware nodes:
Controller NodeActs as the command gateway between the smartphone and LoRa network.
Components:
- Arduino Nano
- RYLR999 LoRa + BLE module
- Voltage level shifter
- 16×2 I2C LCD
The smartphone sends commands using a BLE application. The controller Arduino processes the command and forwards it through the LoRa radio.
Target NodeReceives the LoRa message and controls the appliances.
Components:
- Arduino Nano
- RYLR999 LoRa module
- Relay module
- LCD display
When the command arrives, the Arduino interprets it and switches the appropriate relay channel to control the appliance.
After execution, a confirmation message is sent back to the controller.
RYLR999 LoRa Module OverviewThe Reyax RYLR999 is a LoRa communication module that integrates both LoRa RF communication and Bluetooth Low Energy in a single compact package.
This combination makes it extremely useful for IoT applications where a smartphone needs to act as the user interface while communication happens over long distances.
In this project, the module operates in two communication modes:
BLE ModeUsed for communication between the smartphone and the controller node.
LoRa ModeUsed for transmitting commands between the controller and target nodes.
This dual-interface capability allows the system to convert short-range BLE commands into long-range LoRa transmissions.
The controller node interfaces the smartphone with the LoRa communication system.
The RYLR999 module communicates with Arduino Nano using UART serial communication.
However, the module operates at 3.3V logic, while Arduino uses 5V logic, which requires a bidirectional voltage-level shifter.
Power connections are straightforward.
The VDD pin of the RYLR999 module connects to the Arduino 5V output, while the ground pin connects to the common system ground.
The LoRa UART lines connect to the Arduino’s hardware serial pins through the voltage shifter.
The TXD_LoRa pin of the module sends data to the Arduino receive pin, while the RXD_LoRa pin receives commands from the Arduino transmit pin.
Because Arduino Nano has only one hardware serial interface, the BLE communication uses SoftwareSerial implemented on pins D2 and D3.
The BLE transmit and receive lines of the module connect to these pins through the voltage shifter.
LCD InterfaceA 16×2 I2C LCD is used to display system information.
Connections:
The LCD displays system events such as:
- BLE connection status
- Received command
- LoRa transmission
- Response from the target node
This makes debugging and monitoring much easier.
Target Node WiringThe target node receives LoRa commands and switches appliances using relay modules.
The LoRa communication wiring between the Arduino and RYLR999 module is similar to the controller setup.
However, the BLE interface is not required here.
Instead, the module remains in LoRa receive mode, continuously listening for incoming packets.
To control external appliances, a two-channel relay module is connected to the Arduino Nano. The relay module is powered directly from the Arduino by connecting its VCC pin to the Arduino 5V pin and its GND pin to the common ground.
The input control pins of the relay module are connected to digital output pins of the Arduino. In this project, relay channel 1 is connected to Arduino pin D11, which is used to control the AC bulb. Relay channel 2 is connected to Arduino pin D12, which is used to control the 12V DC fan.
When the Arduino sets one of these pins HIGH, the corresponding relay channel activates and closes its internal contacts, allowing current to flow through the connected appliance.
AC and DC Load SwitchingThe relay module allows the Arduino to control both AC and DC loads safely.
AC LoadFor the AC bulb, the relay switches the live wire of the AC supply.
The AC supply line is connected to the common terminal of the relay, while the normally open terminal connects to the bulb.
When the relay is activated, the circuit closes and the bulb turns on.
DC LoadFor the 12V fan, the relay is connected in series with the 12V supply line.
Activating the relay completes the power path and allows the fan to operate.
⚠ Always disconnect the AC supply when wiring the circuit.
Command ProtocolCommands are transmitted from the smartphone using the LightBlue BLE application.
Controller commands:
*L1# → Turn bulb ON
*L0# → Turn bulb OFF
*F1# → Turn fan ON
*F0# → Turn fan OFFThe controller extracts the payload and forwards it via LoRa.
The target node interprets the commands and controls the relays.
Target node responses:
L1 → DONE
L0 → DONE
F1 → DONE
F0 → DONEMobile ApplicationThe LightBlue BLE application is used to send commands to the controller node.
The application connects directly to the BLE interface of the RYLR999 module and allows manual command transmission.
This approach simplifies testing and avoids the need to develop a custom mobile application.
Testing Procedure- Power both nodes.
- Connect the smartphone to the controller node using LightBlue BLE.
- Send command strings through the BLE interface.
- Observe LCD feedback on both nodes.
- Verify appliance switching.
Under optimal conditions, LoRa communication can achieve several kilometers of range.
GitHub Repository
https://github.com/playwithcircuit/arduino-lora-appliance-control.git
If you’d like to explore the complete step-by-step tutorial, including circuit diagrams, wiring details, and full Arduino code, you can read the full guide here:
👉 https://playwithcircuit.com/long-range-appliance-control-from-smartphone-using-arduino/










Comments