Skip to content
This repository has been archived by the owner on Jul 29, 2019. It is now read-only.

decantr/rgu-honours

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 

Repository files navigation

rgu-honours
===========

Distributed Mesh Sensor Network using Raspberry Pi's
----------------------------------------------------


This acts as a sister repository for the code for my honours project which
 can be found at [rgu-honours-docs](github.com/decantr/rgu-honours-docs).

Motivation
----------
The goal for this project evolved over time, my initial idea was to implement
 a mesh network of sensors for monitoring various aspects a body of water and
 building a front end that could display this information.
when I began doing my initial research into the area for my literature review,
I discovered that there was a distinct lack of tooling for deploying Pi's and
 other SBC's as IoT devices.
I began to create a tool that could facilitate this, as it would save
 time deploying devices for my original idea anyway.
It quickly became clear that this tool was of far greater value as a number
 of colleagues asked for the tool, and flagged issues with it.

From all of this the project pivoted to the title I have now.

Breakdown
---------
This repository contains the all of the code for the project.
The `lib` folder contains the files to be deployed to the Nodes once they
 have been flashed.

Structure
---------
The `prepare-sd.sh` is the primary file and handles the user interaction.
The Raspbian Lite image is obtained and cached locally by this upon runtime,
 meaning no additional work is required.
By default Pi's are named according to whether they are a **Bridge** or
 a **Node**.
A Bridge is the bridge to the main network and allows the data collected from
 the nodes to be accessed, ideally this device would have two network
 adapters be a bridge.
A Node is a device that reports back on the network.

Usage
-----
To use this in your project, you need only edit the `lib/setup.sh` to add your
 own changes and optionally the `server` folder to add your own frontend.
The actual reporter program used in this project requires that you build it
 before using it.
Take note what architecture you are deploying to as the Pi 3 etc. is an ARMv7
 device, while the Pi Zero, Pi 1 etc. is an ARMv6 device.

```
  $ env GOOS=linux GOARCH=arm GOARM=7 go build # Pi 3
  $ env GOOS=linux GOARCH=arm GOARM=6 go build # Pi Zero
```


From there simply run the script and answer questiosn related to your setup.
```
	$ prepare-sd.sh
```