Skip to content

Low-cost sensor node device using solar energy and a sx1276 LoRa transmitter for a Wireless Sensor Network.

Notifications You must be signed in to change notification settings


Folders and files

Last commit message
Last commit date

Latest commit



90 Commits

Repository files navigation

A low cost and low power LoRa device sensor-node

Version commits-shield Stargazers language-shield Size

📄 Explore the documentation 📄
⚠️ Report or Suggest Something ⚠️

System Architecture

Table of Contents

About The Project

This is a project of a new LoRa device sensor-node. This device is capable of collecting environment data such as temperature, humidity, soil moisture and ambient as well as sending all data to a LoRa gateway from miles away. As can be seen from the component specifications table, this device is very inexpensive, therefore it is suitable equipment to apply to a wireless sensor network in an agricultural field.

More details can be seen in this publication (Portuguese language).

Built With

IDE and Compiler Version

Detailed Description

This device is designed to work automatically without any human intervention.


The PIC16F18426 is perfect for the project, it's a family of Microchip MCUs intended to sensor node devices.


The device has 4 sensors to measure air temperature, ground temperature, air humidity, soil moisture and sunlight or light levels.

LoRa Transmitter

The cheap SX1276 transmitter works well at a frequency of 915 MHz, because I'm using it in Brazil.

Power Supply System

The electrical and power system is designed for decades of operation, with a combination of a large rechargeable battery and a solar-powered recharge system. It is possible to use this device only with solar energy without battery, the battery is only for power supply when there is no sunlight, such as at night and cloudy days.

Power-Saving Operation Mode

Most of the time the device remains in power save state with all peripherals turned off. When it is necessary to perform some task the system is woken up by an interruption. The data send and transmit period can be set between 5 and 80 minutes, so the system is woken up by a timer interrupt, performs the tasks and returns to power save mode.

Status LED

The device can signal its current status through a flashing blue LED when it is operating normally and red when something is wrong such as low battery, sensor reading failure or incorrect sensor data such as 80ºC temperature.

Components specifications

Component Description/Documentation Price (USD)
Microcontroller PIC16F18426 $1,02
LoRa Transmiter SX1276 $4,15
Solar Panel Wavgat solar panel 1W/5V $1,31
Voltage regulator LM2596 $0,30
Switch DIP Switch 1 way $0,16
PINS Header pin male $0,20
MCU Socket 14-PIN PDIP Socket $0,50
10k Resistors 10k Resistors $0,12
4.7k Resistor 4.7k Resistors $0,05
Battery Panasonic NCR18650B $4,75
Battery Holder BK-18650-PC2 $0,49
Light Sensor MAX44009 $1,55
Air Temperature/Humidity Sensor Sensirion SHT30 $1,90
Soil Moisture Sensor Capacitive soil moisture sensor v1.2 $0,76
Soil Temperature DS18B20 $1,00
Total - $18,36



Assembled Board With Components

System Running

Data collected


I would like to thank all the professors I've had since elementary school, this project is the result of a combination of everything you taught me.

The SX1276 LoRa transmitter driver was adapted from