Merge remote-tracking branch 'origin/main'

# Conflicts:
#	docs/documentation/diagrams/infrastructure.md
This commit is contained in:
Luca Warmenhoven
2024-06-04 14:43:06 +02:00
29 changed files with 1002 additions and 204 deletions

View File

@@ -0,0 +1,34 @@
# Dataprotocols
# different types
### Hypertext Transfer Protocol (HTTP)
HTTP is the foundation of web communication, permitting the transport of data across the internet using a request-response architecture. It uses TCP/IP and stands out by its statelessness, with each request being independent, increasing the web's scalability and flexibility. While it does not encrypt data which makes it usable with sensible data it still makes an nice easy to use option.
We decided to use this for our project because for communicating with the database it is easy to use and we are not usiong sensible data. If we were to use sensible data that we want to encrypt we can use HTTPS. We are only sending small amounts of data to our app and we are not transfering files to our app. This made HTTP it way more attractive option.
### File Transfer Protocol (FTP)
FTP is the classic protocol for transferring files between computers. It establishes a connection between two computers and it has 2 modes. Passive mode for recieving files. This leaves a port open on the computer. You also have an active mode. This is were the client opens a port towards an other computer. If you want to encrypt your data you can use FTPS.
When we started the project is thought of this as a option however since we are not only transfering videos but also stuff like titles and dicriptions i thought we were not going to enable it to its fullest potattional. On top of that we are also transfering only small amounts of videos and we switched the way we used videos on our project by hosting the videos on a service like youtube. This made FTP not usefull for our project.
### User Datagram Protocol (UDP)
UDP is s connectionless protocol that prioritizes speed over reliability. It sends datagrams to a computer without establishing a connection with the reciever. It is not stable so you need to keep in mind that it will not be 100% accurate. However it is really fast so this makes it a suitible option for applications where a tiny amount of dataloss is not an issue.
(to be added)
### Message Queue Telemetry Transport (MQTT)
MQTT is s lightweight messaging protocol designed for machine-to-machine communication in Internet of Things applications. It uses a publish subscribe model. This is were one device publishes data on a server and the other devices need to subscribe to that publisher to recieve the data. It is commonly used to transmot sensor data to a server.
(to be added)
### Real-time Streaming Protocols (RTSP)
RTSP is collection of protocols used for streaming media such as videos over networks. However it requires additional software for it to work properly. RTSP shines in controlling live streams allowing features like pause. It's often used in IPTV's and video conferencing applications.
Due to its limited support we are not uising it in our project. We were already having issues with other things that are not supported on android or mobile apps and we did not want to risk getting more issues while working on our project since we were already using up our limited time. It is a very interesting option though since it will enable more advanced videos. It also is realy complex which makes it a less atractive option since we are already learning a lot of new things and if we were to want to learn more things we would rather learn something with a low learning curve.
# Conclusion

View File

@@ -0,0 +1,49 @@
# Ideas for hardware
# making a balance bord
Since We are not able to connect the wii fit bord we have to come up with a solution. We thought of it for some time and what we want to do with it. Origanlly we wanted to use the balance bord for excersises such as standing on one leg. This is a simple leg excersise we wanted to have. We thaugt of multiple solutions to still have this excersise. However we still needed to think of a design for the frame.
# the frame
We wanted it to have a similar style to the balance bord. howevere since we can make or own we wanted to make it a bit taller. This makes it easier to implement some other excersise such as the step up. This is na excersise that benefits from a taller box than the wii fit box.
## LDR
We can use a LDR to determine if someone is standing on the bord. We will have a small window where light can pass trought to let de LDR read out the light. We need to make clear that the user needs to stand on these points by providing an easy to udnerstand design.
## Knock sensor
A knock sensor is a sensor that detects impact. This could come in handy for us since it could detect impact on our fitbord. If we were to make a fitbord we would love to implement this sensor. We could use it to detect if someone is standing on the fitbord. This will not make the LDR useless since it only will detect one impact. This will be when someone will be standing on the fitbord it will not activate when someone is standing on the fitbord without moving.
We could is it for excersises where u want someone to jog or walk in place. The knock sensor will detect the small impacts from walking. This will greatly expend our excersise pool since walking and running is really important for cardio excersises. We could also make people stamp on the ground. This is a fun and good excersise for your legs.
```C++
const int knockSensor = A0;
const int threshold = 200;
int sensorReading = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
sensorReading = analogRead(knockSensor);
if (sensorReading >= threshold) {
Serial.println(sensorReading);
}
if (sensorReading >= 500) {
Serial.println(stamp detected)
}
}
delay(10);
```
![alt text](../assets/knocksensor.png)

View File

@@ -20,5 +20,9 @@ We chose this pcb because its really small and it has a socket for a sensor and
We are going to rotational data from the sensor and use that to give feedback to the user based on how well they did the exercise.
![alt text](../assets/pcbImage.png)
## How can i program this ESP?
To program this you need to use the Arduino IDE. You need to install the ESP8266 board in the board manager. You need to go to File -> prefrences -> additional board manager url's. Then you need to add this link `https://arduino.esp8266.com/stable/package_esp8266com_index.json`. Then you can find the LOLIN(WEMOS) D1 mini lite. Thats the board you need to select. When compiling you will see a lot of warnings but you can ignore them.
### Sources
* https://github.com/Sorakage033/SlimeVR-CheeseCake