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; +} +