1
0
Fork 0
Browse Source

start populating Midpoint doc.

This is a work in progress (end of session) commit.
stable
Craig Oates 2 years ago
parent
commit
a4ecffeec9
  1. 19
      midpoint/attachments/main-proj-architecture.dot
  2. BIN
      midpoint/attachments/main-proj-architecture.png
  3. 76
      midpoint/rtr-midpoint.md

19
midpoint/attachments/main-proj-architecture.dot

@ -0,0 +1,19 @@
digraph overview {
node [fontname = Arial];
l1 -> server;
l2 -> server;
server -> r1;
server -> r2;
r1 -> server;
r2 -> server;
l1 [label = "Light Meter 1", color = lightblue, style = filled];
l2 [label = "Light Meter 2", color = orange, style = filled];
r1 [label = "Relay 1", color = lightblue, style = filled];
r2 [label = "Relay 2", color = orange, style = filled ];
subgraph cluster0 {
style = filled;
color = lightgrey;
server;
}
server [label = "Midpoint (Server)", style = filled, color = white];
}

BIN
midpoint/attachments/main-proj-architecture.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

76
midpoint/rtr-midpoint.md

@ -0,0 +1,76 @@
# Return to Ritherdon: Midpoint
Midpoint is one of three smaller projects which make-up 'Personal
Flash in Real-Time' -- which is one artwork within the main 'Return to
Ritherdon' project. You should view the three smaller projects as one
project. And, for the purpose of this documentation, I will refer to
'Personal Flash in Real-Time' as a system instead of an artwork.
For more information on the 'Return to Ritherdon' project, use the
following link:
- [Return to Ritherdon Overview](https://git.abbether.net/return-to-ritherdon/rtr-docs)
## 'Personal Flash in Real-Time': Project Overview
The overall system ('Personal Flash in Real-Time') consists of three
separate/smaller projects. You should not view them as individual
pieces within the overall project. From an artwork point-of-view,
'Personal Flash in Real-Time' is one piece. The name of the software
projects are 'Light Meter' (which is this one), 'Midpoint' and
'Relay'. All three projects reside in their own git repositories. You
can find the repositories at the following links:
- [Light Meter](https://git.abbether.net/return-to-ritherdon/light-meter)
- [Mid-Point](https://git.abbether.net/return-to-ritherdon/midpoint)
- [Relay](https://git.abbether.net/return-to-ritherdon/relay)
The (technical) aim of the project is to turn a set of lights on at
the gallery when the welding machines are active in the welding booths
at Ritherdon. The solution we arrived at was a three-stage
process. The stages are as follows:
1. Monitor the light levels in the welding booths at Ritherdon and
send that information to a sever (Light Meter).
2. Receive the light readings and store them in a database and make
them available for others to access (Midpoint).
3. Have the lights installed at the gallery connected to wi-fi enabled
relays which request the latest light readings from the server. If
the readings are above a certain threshold, have the light in the
gallery turn on (otherwise, turn off). The relays are responsible
for turning the lights on and off (Relay).
Each step should require no human intervention.
For more information on how each project accomplishes its task, please
use the (repo.) links above. Otherwise, here is an diagram to help
explain the three stages mentioned above.
![Main Project Architecture](attachments/main-proj-architecture.png)
## Hardware Specifications
There are no specific hardware requirements. If you can get an machine
to run a server (E.G. Nginx or Apache), you should be good to
go. Unfortunately, the scope of the project meant the amount of
support for hardware and software is limited to an x86 Linux based
machine running Nginx. I decided to run a virtual machine on Amazon
Web Services.
- [Amazon Web Services](https://aws.amazon.com/)
## Software Requirements
I have set-up the server to run on Linux (I.E. Ubuntu) with an Nginx
server -- on an x86 machine. Any other variation on that
(I.E. Windows), you will be on your own. The reason why is because I
have not tested it. How you acquire the hardware is up to you. For the
intents of the project, I used a virtual machine on Amazon Web
Services. Links for various parts of the set-up are below:
- [https://ubuntu.com/](https://ubuntu.com/)
- [Nginx](https://www.nginx.com/)
- [Python Flask](https://flask.palletsprojects.com/en/2.0.x/)
- [SQLite Database](https://sqlite.org/index.html)
- [Swagger REST API](https://swagger.io/)