diff --git a/midpoint/attachments/main-proj-architecture.dot b/midpoint/attachments/main-proj-architecture.dot new file mode 100644 index 0000000..5518528 --- /dev/null +++ b/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]; +} diff --git a/midpoint/attachments/main-proj-architecture.png b/midpoint/attachments/main-proj-architecture.png new file mode 100644 index 0000000..d8366e4 Binary files /dev/null and b/midpoint/attachments/main-proj-architecture.png differ diff --git a/midpoint/rtr-midpoint.md b/midpoint/rtr-midpoint.md index e69de29..355d31f 100644 --- a/midpoint/rtr-midpoint.md +++ b/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/) +