Skip to content

Industrial-grade Soil Remote Monitor(Humidity/ Temperature/ PH/ Nitrogen/ Phosphorus/ Potassium)


With the development of agricultural modernization and the popularization of precision agriculture, the measurement of soil parameters such as temperature, moisture, PH and so on, becomes more and more important. How to measure or obtain this data has become a focus.

RS485-LoRa Wireless station is developed by Makerfabs, and intends for these applications of agriculture,it is mainly composed of 2 parts:

1.Remote monitor station with RS485: developed by Makerfabs, it converts the RS485 signal, which is usually used in agricultural field applications, to wireless connections WIFI (if there is) or Lora, or Bluetooth.

2.Industrial-grade Soil Sensor: unlike some other maker-level soil sensors that only output analog voltage that reflects the soil status/changes but not the absolute value, this sensor measures the soil parameters such Temperature/Moisture/PH/Nitrogen/ Phosphorus/Potassium.., with calculated true output, so users can get to know the real soil parameters.

This soil remote monitor(RS485-LoRa wireless station) has stable performance and high sensitivity, also is used to be a tool for observing and studying the occurrence, evolution, and improvement of saline soil and the dynamics of water and salt. The station is suitable for soil moisture monitoring, scientific experiments, water-saving irrigation, greenhouse, flowers and vegetables, grassland and pasture, plant cultivation, sewage treatment, fine agriculture, and other occasions.




  • ESP32 WROOM module onboard with the WiFi and Bluetooth
  • Arduino Compatible: You can play it with Arduino IDE
  • Onboard LoRa module (433Mhz or 868Mhz or 915Mhz)
  • 0.91inch I2C OLED display
  • Sensor part is waterproof, completely sealed.
  • Measuring range: -40℃~80℃,0~100% moisture
  • Measuring accuracy: ±0.5℃,±3% moisture
  • Communication distance: 2km or more
  • Power by Micro USB, battery or DC 5V
  • 1000mAh battery, charger IC onboard
  • PH2.0-2P Battery Connector

Hardware Overview


  • RS485 Interface


Three pins

Sensor RS485
Brown VCC
Black GND
Yellow RS485_A
Blue RS485_B

Five pins

Sensor RS485
Gray VCC
Black GND
Yellow RS485_A
Brown RS485_B


Note: This soil Sensor has two versions for choice, three pins or five pins. The demo code is universal, users can modify the Macro definition to use the sensor. Use a slash to comment out unwanted versions as follow.

//#define SENSOR_5_PIN
#define SENSOR_3_PIN

Display value on screen

Let's start to get the temperature and moisture of the soil by using the RS485-LoRa wireless station and show them on the onboard screen.

1.Refer to the wiring details, connect the sensor to the board.

2.Connect the board to PC via Micro-USB cable, and open the code by Arduino IDE, the demo code (RS485_LoRa_default.ino) is available from GitHub.

3.Add "" to Additional Boards Manager URLs first, then install ESP32 boards library in Boards Manager.ESP32 V2.0.9 is recommended and tested.


4.Install the Adafruit GFX library (V1.10.11) ,Adafruit SSD1306 library (V2.4.6) and RadioLib library 4.0.6.




5.Select the "ESP32 Dev Module" development board and the port.


6.Verify the code and upload it to the board.

7.Reset it, and put the sensor probe into the measured soil, you will see the temperature and moisture on the screen.



Display value on webpage.

According to the previous demo, this demo would show the value on the webpage by WiFi.

1.The same as the previous demo to connect, the demo code (RS485-display-webpage.ino) also is available on GitHub.

2.Open the code by Arduino IDE, it is required to modify the WiFi information for connecting to your WiFi.


3.Verify the code and upload it to the board.

4.Reset the board and the screen would show the IP address. If no IP address shown on the screen, may the WiFi connection be failed, please reset the board.


5.Type the IP address to the browser on PC or phone, the measuring value would be shown on the webpage.


Transmission by LoRa

LoRa (long range) is a physical proprietary radio communication technique. It is based on spread spectrum modulation techniques derived from chirp spread spectrum (CSS) technology. With Lora, we can communicate wirelessly over long distances.

1.As the same previous demo install libraries on Arduino IDE if you have not yet, besides, it is required to install the LoRa library (RadioLib 4.0.6) to drive the LoRa module.

RS485LoRa_Wireless_station_013 1.jpg

Note: Using version 5.0 or higher may cause compilation errors. Version 4.0 is recommended

2.Upload the code to the board that the code (RS485-LoRa-Transmit.ino) is available on GitHub, and it would and transmit the values by LoRa. by the way, Besides, it is required to prepare another LoRa device to receive the data. If you want any LoRa device, please check here for one. Users can refer to the Maduino Lora Radio to receive the Lora data.

3.Open the Lora_TX_test in GitHub, upload the LoRa test code to it.

4.Wait a moment, it will transmit the measuring data through LoRa.


Get Nitrogen/Phosphorus/Potassium value

For getting nitrogen, phosphorus, and potassium value in the soil, it needs to connect the NPK sensor to the station, that we have provided an option for ordering the NPK sensor.


  • As the previous demo show, refer to the wiring to connect the NPK sensor to the station.
  • For getting the sensor data and showing it on the screen, it needs to upload the sketch to ESP32. The sketch (RS485-disp- lay-all.ino) is available from GitHub.
  • Open the sketch by Arduino IDE.
  • Install the library that the previous demo mentioned.
  • Modify the macro definition.
#define SENSOR_5_PIN
//#define SENSOR_3_PIN

  • Select the development board "ESP32 Dev Module" and the port.
  • Upload the sketch to ESP32.
  • Plug the sensor into the soil, and power the station, it will show the temperature, moisture, PH, nitrogen, phosphorus and potassium.



You can list your question here or contact for technology support. Detailed descriptions of your question will be helped to solve your question.