Introduction: Intelligent Street Light Using LoRa

About: Engineer Inside, Electrical engineer passionate about automation, IoT, Machine learning.

A city’s street lights provide safer traffic conditions, safer pedestrian environment and can represent a great improvement to the city’s architectural touristic and commercial output.

This project aims in the development of a prototype of smart street light which provides lamp level management and feedback about the performance to the user.

This prototype works on Master-slave configuration, where each street light acts as slave, and LoRa Gateway acts as the master. As Lora gateway has longer range compared to other communication services like wifi, Bluetooth, NFC etc.. Though GSM has the longer range it includes subscription charges which are not there is LoRa (Free of charge)and also LoRa consumes very less amount of power during operation. Master is connected to the internet so that user can remotely monitor street lights.So Large number of street lights can be connected and controlled from the Master gateway.


  • Lithium-ion battery
  • LED light and LED driver
  • Ultrasonic sensor
  • Nodemcu(ESP8266 12E)
  • Arduino UNO(ATMEGA 328P)
  • SX 1728 Lora transceiver

Step 2: Description of Components


ESP8266, integrates GPIO, PWM, I2C, SPI and ADC all in one board. This microcontroller has inbuilt WiFi with it, which helps us connect our project to internet. All the GPIO pins of Nodemcu can be used as PWM pins, in addition to that, it also has 1 analog pin.

LED Drivers:

AN30888A and AN30888B are DC-DC controllers ideal for driving high-luminance LEDs for LED lighting. They are equipped with 2 lighting adjustment modes (PWM control and reference voltage control), and can be made compatible with boost, buck, or buck-boost voltage by changing the external components

LORA module:

LoRa (Long-range Radio) module will take your IoT projects the distance with communication over a long-range spread spectrum. This form of wireless communication results in a larger bandwidth, increasing interference resistance, minimizing current consumption, and increasing security.

This module uses SX1278 IC and works on a 433MHz frequency. Frequency hopping—which gives you that sweet balance of quality signal transmission—will cover a range of 420-450MHz. This long range wireless capability is packed into a small (17 x 16mm) package and delivered through a spring antenna.

With the LoRa Ra-01, you don’t have to compromise in the balance of range, interference immunity, or energy consumption. The technology behind this IC means that it's perfect for those projects requiring range and strength.


  • LoRaTM spread spectrum communication
  • Half-duplex SPI communication
  • Programmable bit rate can reach to 300kbps
  • 127dB RSSI wave range.


  • Wireless Standard: 433MHz
  • Frequency range: 420 - 450MHz
  • Port: SPI/GPIO
  • Operating Voltage: 1.8 - 3.7V, default 3.3V
  • Working Current, Receive: less than 10.8mA (LnaBoost closed, Band 1)
  • Transmit: less than 120mA (+20dBm),
  • Sleep model: 0.2uA

Step 3: Schematic of Master and Slave

Give the connections as per schematic.

Master will act as a gateway and connected to the internet. Each slave is connected to individual street lights and control the brightness of the Light.

SX1728 and Ultrasonic sensor is connected to the Arduino uno as per schematic. Trig pin and Echo pin is connected to digital pins of Arduino UNO. SX1728 LoRa module is connected to Arduino by SPI communication.

SX1728 acts in 433Mhz. each country has respective bandwidth for LoRa. In India free band in 866-868 MHz. For the prototype model, 433MHz module is used here.

Step 4: Operation

When an obstacle crosses the streetlight(SLAVE), the ultrasonic sensor will detect the obstacle and increases the brightness of that particular street light. And this also send messages to upcoming street lights as RF packets. Thus the chain of street lights will increase its brightness steadily. Then it will come back to normal mode. Further each street light can be controlled individually from the master by sending messages to the particular slave.

I have used 3.2 V lithium-ion battery and LED driver in boost mode to provide LED the necessary voltage

Slave here will operate in 3 Modes, which can be configured in the software

  • Mode "1" Full brightness always (Rainy Days and emergency days)
  • Mode "2" Alternate Brightness (Evening Times - Low Light times)
  • Mode "3" Full control with ultrasonic (Midnight and low usage times)

Master will broadcast the message with particular address. The slave with corresponding address will only accept the message and act accordingly.

For the brightness control of LED, LED driver can be used such as AN30888A/B. I have obtained one such from old emergency lamp and reverse engineered it.

Step 5: Codes

Here I present the codes used for the Master and Slave, Datasheet for the LED driver I have used. - here you can download the library for LoRa.

IoT Challenge

Participated in the
IoT Challenge