Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jackgruber/arduino-pro-mini-lora-sensor-node
Arduino Pro Mini TTN LoRaWAN Node with RFM95 module battery-powered
https://github.com/jackgruber/arduino-pro-mini-lora-sensor-node
arduino arduino-pro-mini battery dht22 lora lorawan platfomio rfm95
Last synced: 20 days ago
JSON representation
Arduino Pro Mini TTN LoRaWAN Node with RFM95 module battery-powered
- Host: GitHub
- URL: https://github.com/jackgruber/arduino-pro-mini-lora-sensor-node
- Owner: JackGruber
- Created: 2020-01-05T19:45:33.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2021-06-27T09:08:32.000Z (over 3 years ago)
- Last Synced: 2024-10-11T02:51:02.256Z (about 1 month ago)
- Topics: arduino, arduino-pro-mini, battery, dht22, lora, lorawan, platfomio, rfm95
- Language: C++
- Homepage:
- Size: 1.35 MB
- Stars: 28
- Watchers: 5
- Forks: 11
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Arduino Pro Mini TTN LoRaWAN sensor node
`Arduino Pro Mini` TTN LoRaWAN Node with `DHT22` and `RFM95` module powered by an 18650 protected battery.
The Arduino was converted to [LowPower](https://jackgruber.github.io/2019-12-27-Low-power-Arduino-Pro-Mini/) by desoldering the power LED and the voltage converter.## Circuit
## Case
## Diagrams
### Battery voltage curve over 12 months with measure and send data all 5 minutes
## TTN payload decoder (v2)
```javascript
function Decoder(bytes, port) {
var decoded = {};
decoded.vcc = (bytes[0] + 200)/100;
if(bytes[1] != 255){
decoded.humidity = bytes[1];
decoded.humidity &= ~(1 << 7);
if(bytes[1] >> 7 == 1) { decoded.humidity +=0.5 }
}
if(bytes[2] != 255 || bytes[3] != 255) decoded.temperature = ((bytes[2]<<24>>16 | bytes[3]) / 10);
return decoded;
}
```## TTN payload decoder (v3)
```javascript
function decodeUplink(input) {
var decoded = {};
decoded.vcc = (input.bytes[0] + 200)/100;
if(input.bytes[1] != 255){
decoded.humidity = input.bytes[1];
decoded.humidity &= ~(1 << 7);
if(input.bytes[1] >> 7 == 1) { decoded.humidity +=0.5 }
}
if(input.bytes[2] != 255 || input.bytes[3] != 255) decoded.temperature = ((input.bytes[2]<<24>>16 | input.bytes[3]) / 10);
return {
data: decoded,
warnings: [],
errors: []
};
}
```