# Tauschbörse Cyber-physische Systeme
Link zu einem Beispiel Lastenheft: https://1drv.ms/w/s!Alg740XlxuFqiLMjtACDTCI8UurQtA?e=SZqFbi
https://hackmd.io/@Klado/BJwCSH0Fq
## Vorgehen
Am Anfang jeder Stunde treffen sich die jeweiligen Gruppenleiter zu einer Besprechung. Bei dieser Besprechung wird rollierend von jeder Person ein Protokoll geschrieben. Die jeweiligen zu besprechenden Thematiken werden ad-hoc bei der Besprechung entschieden oder unter dem Punkt "Offene Themen" vorgeschlagen.
Jede Gruppe sollte zum Ende jeder Stunde einen Projektstatusbericht dokumentieren.
## Offene Themen (zu besprechen)
-> Datenablage für alle Schüler
-> Standartisierte Dokumente / Vorlagen
## Blackboard
Falls ihr Hilfe, Ideen, oder Vorschläge habt oder ähnliches.
## Gruppen
> Angaben mit **Fett** sind die Ansprechpartner
> Lastenheft(LH) und Pflichtenheft(PH) eintragen
1. **Nils**, Marc und Daniel | [LH](https://hackmd.io/@NilsB/B144i0Jk5) und [PH](https://hackmd.io/@NilsB/SkiK_Sfxc)
2. **Kilian**, Mardon und Simon | [LH](https://hackmd.io/@k1lian/SkLc20kJ9) und [PH](https://docs.google.com/document/d/1biedFdvj4y-WzV8SOCh2FAGnFSXY3Wpqz3fIap3pogk/edit?usp=sharing)
3. **Ben**, Jan L, Keven | [LH](https://seafile.gss-lg.de/f/d5dfc0ebad/?raw=1) und [PH](https://seafile.gss-lg.de/f/5587932f97/?raw=1)
4. **Andreas**, Luka, Jan C. | [LH](https://hackmd.io/@triand/SkYSMMKJc) und [PH](https://hackmd.io/@triand/HJ0DUBMl9)
5. **Tim**, Leon, Lukas H. | [LH](https://seafile.gss-lg.de/f/9d9545df97/) und [PH](https://seafile.gss-lg.de/f/b992da2464/)
6. **Bengt**, Simon, Fabian | [LH](https://seafile.gss-lg.de/f/6c7cd57297/) und [PH](https://seafile.gss-lg.de/f/5470ccf317/?raw=1)
7. **Klaudiusz**, Erik, Christopher, Moritz | [LH]() und [PH]()
8. **Timo**, Fadi, Daniel | [LH]() und [PH]()
9. **Finn**, , Cédric, Gerrit | [LH](https://hackmd.io/@GerritSchwickert1/SkSwswYkq) und [PH](https://hackmd.io/@GerritSchwickert1/HyueGYsl5)
10. **Kim**, Lucy, Lya | [LH](https://hackmd.io/@Lucy14/S1ljJfFJ9), [PH](https://docs.google.com/document/d/1vUy1fMsmTk1ZFujECgp5OhtIFAkGg8vS/edit?usp=sharing&ouid=102815750969637789413&rtpof=true&sd=true) und [PP](https://hackmd.io/agYSSGTXTLiSfHrarPNhlg)
11. **Noah**, Cayne | [LH](https://hackmd.io/@schule-fisi/asksujdygfoasdbfew), [PH](https://hackmd.io/@schule-fisi/lkjsdhflkasjdf) und den Projektplan [PP](https://hackmd.io/@schule-fisi/H1r_kVPMc)
12. **Fabius**, Ramon | [LH](https://seafile.gss-lg.de/f/ee369826b8/) und [PH]()
13. **Hosein**, Mohammad | [LH](https://hackmd.io/@Mjns5/SJGLJSox5)
14. **Wilm**, Henry, Leon | [LH](https://seafile.gss-lg.de/f/e2d2d0eddf/?raw=1)
Koordinatoren Gruppe: **CEO Benjamin (a.k.a. Benny), CTO Daniel**, Nico, Lucas, (Bengt) | [LH](https://1drv.ms/w/s!Alg740XlxuFqiLMjtACDTCI8UurQtA?e=SZqFbi) und [PH](https://1drv.ms/w/s!Alg740XlxuFqiLMm3o4DcAlHqbnOzw?e=C06k4L)
## Datenübertragung
- WLAN (Router stellt DHCP zur Verfügung IP 10.0.10.1)
- Speicherung in einer Datenbank (MariDB, node-mysql?)
- Jede Gruppe hat eigenen DB User
- NTP Server stellt Zeit zur Verfügung (Port 123)
- End to End secured Gateway mit historischer übersicht aller Daten (LCD-Display)
- Internetverbindung für API-Kommunikation
# Sensoren/Akteure
> Bitte einen Link eures Beitrags hier einfügen.
> Unter den Links soll das Lastenheft zu finden sein
## Sensoren
- **[Lichtschranke](https://hackmd.io/Ypq2wV60QUCD-436Lr5oOg)** (Andreas, Luka, Jan C.)
- **Feuchtigkeitssensor** (Nils und Marc EFI2B)
- **[Gassensor](https://1drv.ms/u/s!Ak_pteSedwrRhiaFeI51MWg8Qya?e=OaWc2u)**: Klaudiusz, Erik, Chris
- [Temperatursensor](https://hackmd.io/@GerritSchwickert1/SkSwswYkq)(Finn, Gerrit und Cédric)
- **[Gestenerkennung](https://hackmd.io/@Lucy14/S1ljJfFJ9)** (Kim, Lucy, Lya)
- **[Geräuschsensor](https://www.reichelt.de/arduino-grove-lautstaerkesensor-lm2904-grv-loudness-p191192.html)** (Tim, Leon, Lukas H.)
- *[Bewegungssensor](https://www.amazon.de/dp/B07RJCYV9D/ref=cm_sw_r_wa_api_glt_i_BCSKK0ZX20FMEVRK0TPW?_encoding=UTF8&psc=1) (Ben, Keven, Jan)
## Aktoren
- **[Benachrichtigungssystem](https://hackmd.io/@k1lian/SkLc20kJ9)** (Kilian, Simon, Mardon)
- **[Displayanzeige](https://seafile.gss-lg.de/f/6c7cd57297/)** (Bengt, Simon, Ostrau)
- **[Lichtsignalanlage](https://hackmd.io/@DanielStichternath/HyXVhm5v9)** (Daniel,Timo,Fadi)
- **Tastaturemulator** (Noah, Cayne)
- Lichter (Fabius, Ramon)
## Bestellliste
> Hier bitte euren Sensoren/Akteure auflisten, welchegekauft werden sollen
### Sensoren
- **[Feuchtigkeitssensor](https://www.funduinoshop.com/Feuchtigkeitssensor)**
- **[Gassensor/Luftqualität](https://www.az-delivery.de/products/mq-135-gas-sensor-modul?variant=8216066457696)**, [Zusätzlich!](https://www.reichelt.de/de/de/arduino-grove-luft-qualitaet-sensor-v1-3-mp503-grv-air-quality-p191211.html?r=1)
- **[Temperatursensor](https://www.amazon.de/dp/B07FRW7YTK/ref=cm_sw_r_wa_api_glt_i_8VNM7ZTGHB8Y93TAAWPS)**
- **[Gestensteuerung](https://www.berrybase.de/raspberry-pi/raspberry-pi-computer/kameras/raspberry-pi-noir-camera-module-8mp-v2?c=341)** - Kamera (wird benötigt: Raspberry Pi NoIR Camera Module 8MP v2
- **[Geräuschsensor](https://www.reichelt.de/de/de/arduino-grove-lautstaerkesensor-lm2904-grv-loudness-p191192.html?PROVID=2788&gclid=Cj0KCQiAxoiQBhCRARIsAPsvo-wtXQ7eq4EIv3Lb8N6zqDcQGnD2o4FAfiLYAJ0Jrk50O34boyy0I1kaAosMEALw_wcB&&r=1)**
- **[Bewegungssensor](https://www.amazon.de/dp/B07RJCYV9D/ref=cm_sw_r_wa_api_glt_i_BCSKK0ZX20FMEVRK0TPW?_encoding=UTF8&psc=1)**
- **[Infrarot Sensor](https://www.berrybase.de/sensoren-module/licht/tcrt5000-infrarot-sensor/lichtschranke)**
### Akteure
- **[Tastartur Simulator](https://www.reichelt.de/de/de/arduino-mkr1000-wifi-samd21-cortex-m0-32-bit-arm-ard-mkr1000-wh-p230558.html?r=1)** (Kann Tastartur Eingaben über den USB Output tätigien)
- **[Display](https://www.amazon.de/AZDelivery-Display-Arduino-Raspberry-gratis/dp/B01L9GC470/?pf_rd_r=DXYKCFK8FMCCW9ADXRHQ&pf_rd_p=01e32140-520f-4b58-b160-ae871dfdd2ee&pd_rd_r=63587945-df1f-4a32-9ffa-cbfbf51e48cf&pd_rd_w=en7H9&pd_rd_wg=4AuJx&ref_=pd_gw_ci_mcx_mr_hp_d)** (Bengt)
### Extras
- **[Raspberry Pi 4b, 2GB](https://geizhals.de/raspberry-pi-4-modell-b-v54547.html?xf=&sort=p&aid=2081127)** (Linuxsystem fürs Gateway)
- **[WLAN-Router](https://geizhals.de/tp-link-tl-wr841n-a340658.html?hloc=at&hloc=de&hloc=eu&hloc=pl&hloc=uk)** (oder irgend eine Fritte die für den Projektzeitraum verfügbar wäre)
- **Internetanschluss** (oder wo wir Internet fürs Projekt bekommen können)
- **[Reflektor](https://www.boc24.de/p/cfp-speichenreflektor/111113/#itemId=111113-0)** Gegenstück für Lichtschranke/Infrarot Sensor, nur Beispielreflektor (kann frei gewählt werden)
# ToDos
Am 15.02.22
- Lastenheft muss abgegeben werden
- Ihr müsst bestimmen, welchen Sensor/Aktuer ihr benötigt und Hr. Kallies mitteilen, sodass im Zweifel nachbestellt werden kann
## Lastenheft (Beginn am 08.02.22)
- Lastenheft für den zugeteilten Sensor/Aktuer erstellen
- Unter den Sensoren und Aktoren den Link zum Beitrag setzten, sodass wir etwas auslagern
> Sollte Hilfe benötigt werden, fragt bitte eure Kollegen/Klassenkameraden
## Pflichtenheft (Beginn ab dem 15.02.22)
- Ebenso erarbeiten wie das Lastenheft
## Nächste Schritte (ab dem 22.02.22)
## Aufteilung
| Sensor | Aktor |
| -------- | -------- |
| Gassensor | Display |
| Bewegung | Lichtschalter |
| Licht | Benachtigungen |
| Geste | Tastaturen |
| Geräusch | Ampel |
| Feuchtigkeit | Benachrichtigungen |
| Temperatur | Display |
| Bewegung | |
| Gewicht | |
## Nachbestellungs-Liste
Gruppe Tim, Leon, Lukas: https://www.reichelt.de/de/de/arduino-shield-base-shield-v2-ard-shd-base-v2-p191204.html?PROVID=2788&gclid=EAIaIQobChMImoex8ILI9gIVAs93Ch3uigycEAQYASABEgJUZvD_BwE&&r=1
Gruppe Andreas, Jan C., Luka
https://www.amazon.de/YOUMILE-TCRT5000-reflektierendes-Sensormodul-Photoelektrischer/dp/B07TZ782F4/ref=sr_1_19?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=I87SZ25HV7IR&keywords=lm393&qid=1647346168&sprefix=lm393%2Caps%2C373&sr=8-19
Gruppe Wilm, Henry, Leon: https://www.amazon.de/Kraftempfindlicher-Widerstand-D%C3%BCnnfilm-Drucksensor-Durchmesser/dp/B07PY443HS/ref=sr_1_7?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=1KMOBKF7YLQQ2&keywords=drucksensor&qid=1652179101&s=industrial&sprefix=drucksensor%2Cindustrial%2C181&sr=1-7
Ergänzung:
Neue Abgabe 28.06.2022
```c=
// https://github.com/knolleary/pubsubclient/archive/refs/tags/v2.8.zip
//Bibliothek runterladen und einbinden
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
const char* ssid = "BBS3_GSS";
const char* password = "GSS_1607!";
const char* mqtt_server = "test.mosquitto.org";
WiFiClient espClient;
PubSubClient client(espClient);
unsigned long lastMsg = 0;
int value = 0;
void setup_wifi() {
delay(10);
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
randomSeed(micros());
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void callback(char* topic, byte* payload, unsigned int length) {
Serial.print("Message arrived [");
Serial.print(topic);
Serial.print("] ");
for (int i = 0; i < length; i++) {
Serial.print((char)payload[i]);
}
Serial.println();
}
void reconnect() {
while (!client.connected()) {
Serial.print("Attempting MQTT connection...");
String clientId = "ESP8266Client-";
clientId += String(random(0xffff), HEX);
if (client.connect(clientId.c_str())) {
Serial.println("connected");
client.publish("bbs2/test1", "Test Nachricht");
client.subscribe("bbs2/topic2");
delay(5000);
} else {
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
delay(5000);
}
}
}
void setup() {
Serial.begin(115200);
setup_wifi();
client.setServer(mqtt_server, 1883);
client.setCallback(callback);
}
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
unsigned long now = millis();
if (now - lastMsg > 2000) {
lastMsg = now;
Serial.print("Publish message: ");
char msg[] = "Test Nachricht";
Serial.println(msg);
client.publish("bbs2/topic1", msg);
}
}
```