From 8c811729b19d234438105eb44731dcb7ffb4f9a9 Mon Sep 17 00:00:00 2001 From: Reimar Date: Tue, 18 Mar 2025 10:43:30 +0100 Subject: [PATCH 1/2] Create IoT project and connect to MQTT server --- iot/.gitignore | 3 +++ iot/Makefile | 3 +++ iot/config.example.h | 5 +++++ iot/main.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 55 insertions(+) create mode 100644 iot/.gitignore create mode 100644 iot/Makefile create mode 100644 iot/config.example.h create mode 100644 iot/main.c diff --git a/iot/.gitignore b/iot/.gitignore new file mode 100644 index 0000000..aadaa90 --- /dev/null +++ b/iot/.gitignore @@ -0,0 +1,3 @@ +a.out +config.h + diff --git a/iot/Makefile b/iot/Makefile new file mode 100644 index 0000000..563e22c --- /dev/null +++ b/iot/Makefile @@ -0,0 +1,3 @@ +all: main.c + $(CC) -lmosquitto main.c + diff --git a/iot/config.example.h b/iot/config.example.h new file mode 100644 index 0000000..20d78c9 --- /dev/null +++ b/iot/config.example.h @@ -0,0 +1,5 @@ +#define MQTT_IP "127.0.0.1" +#define MQTT_PORT 1883 +#define MQTT_USER "user" +#define MQTT_PASSWORD "password" + diff --git a/iot/main.c b/iot/main.c new file mode 100644 index 0000000..3862f39 --- /dev/null +++ b/iot/main.c @@ -0,0 +1,44 @@ +#include +#include +#include + +#include "config.h" + +void on_connect(struct mosquitto *client, void *obj, int rc) +{ + if (rc != 0) { + fprintf(stderr, "%s\n", mosquitto_connack_string(rc)); + return; + } + + puts("Connected to " MQTT_IP); +} + +void on_message(struct mosquitto *mosq, void *obj, const struct mosquitto_message *message) +{ + printf("Received message on topic %s\n", message->topic); +} + +int main(void) +{ + int version[3]; + mosquitto_lib_init(); + mosquitto_lib_version(&version[0], &version[1], &version[2]); + printf("Using mosquitto library version %i.%i.%i\n", version[0], version[1], version[2]); + + struct mosquitto *mosq = mosquitto_new(NULL, true, NULL); + + mosquitto_connect_callback_set(mosq, on_connect); + mosquitto_message_callback_set(mosq, on_message); + + mosquitto_username_pw_set(mosq, MQTT_USER, MQTT_PASSWORD); + mosquitto_connect(mosq, MQTT_IP, MQTT_PORT, 60); + + mosquitto_loop_forever(mosq, -1, 1); + + mosquitto_destroy(mosq); + mosquitto_lib_cleanup(); + + return EXIT_SUCCESS; +} + From 87a0df65f7f33fb5f3bada517fa885a9aaa0c971 Mon Sep 17 00:00:00 2001 From: LilleBRG Date: Tue, 18 Mar 2025 10:53:17 +0100 Subject: [PATCH 2/2] frontend init: made services --- frontend/home/home.css | 0 frontend/home/home.html | 11 +++++ frontend/home/home.js | 0 frontend/services/devices.service.js | 27 +++++++++++++ frontend/services/temperature-logs.service.js | 14 +++++++ frontend/services/users.service.js | 40 +++++++++++++++++++ 6 files changed, 92 insertions(+) create mode 100644 frontend/home/home.css create mode 100644 frontend/home/home.html create mode 100644 frontend/home/home.js create mode 100644 frontend/services/devices.service.js create mode 100644 frontend/services/temperature-logs.service.js create mode 100644 frontend/services/users.service.js diff --git a/frontend/home/home.css b/frontend/home/home.css new file mode 100644 index 0000000..e69de29 diff --git a/frontend/home/home.html b/frontend/home/home.html new file mode 100644 index 0000000..0cec106 --- /dev/null +++ b/frontend/home/home.html @@ -0,0 +1,11 @@ + + + + + + Temperature-Alarm-Web + + +

hello

+ + \ No newline at end of file diff --git a/frontend/home/home.js b/frontend/home/home.js new file mode 100644 index 0000000..e69de29 diff --git a/frontend/services/devices.service.js b/frontend/services/devices.service.js new file mode 100644 index 0000000..299fe1d --- /dev/null +++ b/frontend/services/devices.service.js @@ -0,0 +1,27 @@ +const address = "http://10.135.51.116/temperature-alarm-webapi/devices" + +function getDevicesOnUserId(id) { + fetch(`${address}/get-on-user-id`, { + method: "GET", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({ id: id }) + }) + .then(response => response.json()) + .then(data => console.log("Success:", data)) + .catch(error => console.error("Error:", error)); +} + +function update(ids) { + fetch(`${address}/get-on-user-id`, { + method: "PATCH", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({ ids: ids }) + }) + .then(response => response.json()) + .then(data => console.log("Success:", data)) + .catch(error => console.error("Error:", error)); +} \ No newline at end of file diff --git a/frontend/services/temperature-logs.service.js b/frontend/services/temperature-logs.service.js new file mode 100644 index 0000000..579e852 --- /dev/null +++ b/frontend/services/temperature-logs.service.js @@ -0,0 +1,14 @@ +const address = "http://10.135.51.116/temperature-alarm-webapi/temperature-logs" + +function getOnDeviceIds(ids) { + fetch(`${address}/get-on-device-ids`, { + method: "GET", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({ ids: ids }) + }) + .then(response => response.json()) + .then(data => console.log("Success:", data)) + .catch(error => console.error("Error:", error)); +} \ No newline at end of file diff --git a/frontend/services/users.service.js b/frontend/services/users.service.js new file mode 100644 index 0000000..4b7d530 --- /dev/null +++ b/frontend/services/users.service.js @@ -0,0 +1,40 @@ +const address = "http://10.135.51.116/temperature-alarm-webapi/users" + +function login(username, password) { + fetch(`${address}/login`, { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({username: username, password: password}) + }) + .then(response => response.json()) + .then(data => console.log("Success:", data)) + .catch(error => console.error("Error:", error)); +} + +function create(email, username, password){ + fetch(`${address}/create`, { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({email: email, username: username, password: password}) + }) + .then(response => response.json()) + .then(data => console.log("Success:", data)) + .catch(error => console.error("Error:", error)); +} + +function update(email, username, password){ + fetch(`${address}/update`, { + method: "PATCH", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({email: email, username: username, password: password}) + }) + .then(response => response.json()) + .then(data => console.log("Success:", data)) + .catch(error => console.error("Error:", error)); +} \ No newline at end of file