jremington:
You can be confident that LoRa modules will work over many km, if you have clear line of sight, but it is easy to do the experiment to check.
The other project parts may be more of a challenge.
Yes I guess that is a pretty loaded question. My skill set this far is connect esp12 to thinker.io and report temp, press and control an LED, kind of looking for something similar with a Lora project
building the nodes: have them record the sensor data properly.
set up the LoRa transmitter on the node.
set up the gateway's LoRa receiver - and make sure that it knows which transmission it's listening to.
come up with a protocol to automatically add new nodes.
set up connectivity of the gateway to the destination server - e.g. WiFi, mobile phone network, ...
set up your server to receive and handle the data.
Each of them are non trivial parts of the process, and all of them have to work in sync. Some of the hardest parts I found is to debug a system where you both design the hardware and the communications protocols: if there's no communication, it can be an issue in the sender, in the receiver, the connection between the two, or maybe even something else entirely. This as you don't have any known good parts in your system yet.
I use one of these as a gateway that receives LoRa messages from my sensors connected to these. I use the gateway to publish the LoRa packet to MQTT running on my RPi server but could just as easily push the results directly to a cloud dashboard like Cayenne, UbiDots, Thingspeak.
The LoRa32u4 is using a BME280 to collect Temperature, Pressure, Humidity & Light Level (using LDR) and formats this into a JSON string along with the battery VCC). It collects values every 5 minutes but only publishes the averaged results every 30 minutes and sleeps as much as possible between. With this I was getting 30 days use on a 700mAh Lipo. I have just started to test using a 18650 Lipo but have not got to the first discharge cycle yet so don't know how long it will last but I'm hoping at least 3 months.
The gateway is powered all the time and is connected to my Wifi. When it receives a LoRa message it checks its from my sensors (I receive other signals that are not mine) and publishes the payload (JSON string) to MQTT along with the RSSI & SNR or the received packet.
I have an RPi Zero Wifi configured with Mosquito and Node-Red that uses a flow to read the MQTT messages and then publish the results to the NR dashboard and also push the results up to Cayenne, UbiDots, Thingspeak & Dweet.io
I also have other BME280's connected to ESP8266 boards (in the house where they get wifi) that also publish the same sort of data to MQTT