After looking for a already implemented solution for getting data from remote sensors, I decided to build my own solution, using existing components like Arduino, Raspberry Pi and especially I was interested on using the low cost RFM69W LoRa module.
My other target was to send the data to my own MySQL server instead of using third-party parterns like TTN.
And how it works? Basically it consist of two parts: sensors and gateway.
It uses an Arduino Mini Pro 3.3V – 8MHz version as a processing core. It remains on deep-sleep mode, consuming less than 5 micro amperes and it wakes up every 10 minutes, sends data during few seconds, and sleep again. This strategy allows the sensor to be powered from 2 standard AA batteries and having an autonomy longer than a year.
The RFM69W module is connected to the Arduino using SPI and few control signals:
|Arduino Mini PRO||LoRa RFM69W module|
|10 – SLAVE SELECT||NNS|
|11 – MOSI||MOSI|
|12 – MISO||MISO|
|13 – SCK||SCK|
|A0 – RESET||RESET|
|2 – DIO0||DIO0|
|7 – DIO1 (not used)||DIO1|
|8 – DIO2 (not used)||DIO2|
It also contains a Adafruit Si7020 temerature & humidity sensor, connected via I2C to the Arduino (I removes and bridged transistors of this module to work at 3.3V)
The gateway is mostly a Rasperry Pi connected to a RFM69 module using SPI and control signals This is the pinout:
|Raspberry Pi (BCM numeration)||LoRa RFM69 module|
|9 – MISO||MISO|
|10 – MOSI||MOSI|
|11 – SCK||SCK|
|23||EXTERNAL LED (not in module)|
TODO: Write about software and firmware