33 lines
2.8 KiB
Markdown
33 lines
2.8 KiB
Markdown
# Msc-Summer-Project
|
|
|
|
> My Msc Summer Project
|
|
|
|
## Hardware Used
|
|
- [RFM95 w/ breakout](https://onecall.farnell.com/seeed-studio/114990615/868mhz-dragino-lora-shield-for/dp/SC14518) (alternatively [this](https://shop.pimoroni.com/products/adafruit-rfm95w-lora-radio-transceiver-breakout?variant=19595325639))
|
|
- [GPS](https://www.hobbytronics.co.uk/ublox-gps-neo6m) (or [this](https://thepihut.com/products/gps-module-with-enclosure?variant=27741075537))
|
|
- [microSD breakout](https://www.hobbytronics.co.uk/microsd-card-regulated-v2)
|
|
- DC in + USB-a power regulator (or maybe [this](https://www.adafruit.com/product/1833))
|
|
- [microSD Card](https://smile.amazon.co.uk/SanDisk-microSDHC-Memory-Adapter-Performance/dp/B073K14CVB/) - any card that's 1GiB+ will do.
|
|
- [Arduino Uno](https://smile.amazon.co.uk/Elegoo-Board-ATmega328P-ATMEGA16U2-Arduino/dp/B01EWOE0UU/)
|
|
- [Breadboard](https://shop.pimoroni.com/products/solderless-breadboard-400-point)
|
|
- Jumper cables (e.g. [a](https://thepihut.com/products/adafruit-premium-female-male-extension-jumper-wires-20-x-3), [b](https://thepihut.com/products/adafruit-premium-male-male-jumper-wires-20-x-6-150mm), and [c](https://thepihut.com/products/adafruit-premium-female-female-jumper-wires-20-x-6-150mm))
|
|
- [Battery](https://smile.amazon.co.uk/Anker-PowerCore-Aluminum-Portable-Lipstick-Sized-Black/dp/B005QI1A8C/) - 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](https://smile.amazon.co.uk/waterproof-plastic-Enclosure-Power-junction-Grey/dp/B01JHBHNMA/) - if we can't 3D print one
|
|
- [TPL-5111](https://www.adafruit.com/product/3573) - 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` to `settings.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 }'`
|
|
- 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 adjust `settings.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
|