Getting Started - JosephThomasGit/Arduino-SDI-12-sensor-reading-with-LoRa-transmission GitHub Wiki
Combining SDI 12 and LoRa to transmit data from a soil moisture sensor.
The topic:
For a project I recently worked on I was asked to connect several Decagon (now METER) 5TM soil moisture sensors to cloud to replace the original EM50 data loggers. The original loggers required that a technician visit the field site bi-annually to retrieve data from the onboard SD card, something that the client hoped would be streamlined with a new internet connected data logger.
Supplies:
One of the key requirements was that this new system send data from the sensors to a processing computer, where the data could be compiled together and sent to the cloud via MQTT protocol. Additionally, as this system was to be placed in a sensitive environmental area, the smallest amount of physical equipment possible was desired.
These requirements encouraged me to use an Arduino to collect the data from the sensors (SDI-12) and transmit it via basic raw LoRa to the processing computer, as this had an extremely small footprint both physically and power wise.
Arduino Uno
I decided to use an Arduino Uno for this project because it is small and easily fit the LoRa shield I was planning on using (more on that next).
Dragino LoRa v1.4 shield
I also found this great LoRa shield on Amazon (at a pretty low price) that fit smoothly on top of the Uno and was simple to integrate into the system. The Dragino shield operates on a 915 mhz (required for LoRa in the United States - see more here).
SDI-12
Reading data from the 5TM sensors didn't require any specific equipment, but instead a specific Arduino library (more on that later). But to make my life easier, I decided to use a simple screw shield for the Uno. This isn't necessary, but allows the wires from the sensor to be connected easier and is better for an actual device deployment in the field.