My LoRaWAN Signal Mapping MSc summer project.
This is a copy of the actual repository with personal information removed.
client_src | ||
common | ||
iot | ||
lantern-build-engine@617fcdb5b9 | ||
server | ||
.gitignore | ||
.gitmodules | ||
.tern-project | ||
build | ||
compile_flags.txt | ||
Initial Report Spec.pdf | ||
LICENSE | ||
package-lock.json | ||
package.json | ||
README.md | ||
rollup.config.js | ||
server.sh | ||
Signal Mapping Architecture.drawio | ||
ttn-listener.conf | ||
ttn-listener.service |
Msc-Summer-Project
My Msc Summer Project
Hardware Used
- RFM95 w/ breakout (alternatively this)
- GPS (or this)
- microSD breakout
- DC in + USB-a power regulator (or maybe this)
- microSD Card - any card that's 1GiB+ will do.
- Arduino Uno
- Breadboard
- Jumper cables (e.g. a, b, and c)
- Battery - Size currently unknown - I'll need to run some tests to see how much power it uses to figure out the right battery size.
- Project box - if we can't 3D print one
- TPL-5111 - also available from Pimoroni
Getting Started
Run bash ./build setup
from the command line at the root of this repository.
IoT Device
- Copy
settings.custom.cpp.example
tosettings.custom.cpp
and fill in the fields there- This Bash one-liner can be used to generate a new encryption key in the right formats:
head -c16 /dev/urandom | od -tx1 | awk '{ gsub(/^0+\s+/, "", $0); toml=$0; gsub(/\s+/, "", toml); print("settings.toml format: " toml); arduino=toupper($0); gsub(/\s+/, ", 0x", arduino); print("settings.custom.cpp format: 0x" arduino); exit }'
- This Bash one-liner can be used to generate a new encryption key in the right formats:
- Review
settings.h
to make sure it matches your setup - Copy the folders in
iot/libraries
to your Arduino IDE libraries folder
Server
- The
bash ./build setup
should have already installed the necessary dependencies. - Create
settings.toml
in the root of the repository if it doesn't exist already. - Review
server/settings.default.toml
and adjustsettings.toml
to fill in the values for the required fields, not forgetting the encryption key generated when setting up the IoT device.
Useful Links
- Entropy extraction from the watchdog timer vs the internal clock: https://github.com/taoyuan/Entropy