Skip to content

File network.cpp

Location: src/network.cpp

Includes

graph LR
12["mqtt.h"]
click 12 "mqtt_8h.md#mqtt_8h"
12 --> 3

2["network.h"]
click 2 "network_8h.md#network_8h"
2 --> 3

3["platform.h"]
click 3 "platform_8h.md#platform_8h"
3 --> 4
3 --> 5
3 --> 6
3 --> 7
3 --> 8
3 --> 9
3 --> 10

1["src/network.cpp"]
click 1 "network_8cpp.md#network_8cpp"
1 --> 2
1 --> 11
1 --> 12

8["Adafruit_ADT7410.h"]

4["Arduino.h"]

9["ArduinoJson.h"]

10["ArduinoMqttClient.h"]

7["RTClib.h"]

6["SdFat.h"]

5["Wire.h"]

11["secrets.h"]

Variables

Variable SSID


Definition: src/network.cpp (line 11)

const char SSID[][] = [SECRET\_SSID](secrets__example_8h.md#secrets__example_8h_1af44aa8face3356c1566d19fcad3e5f8b)

Type: const char

Variable PASSWORD


Definition: src/network.cpp (line 12)

const char PASSWORD[][] = [SECRET\_PASS](secrets__example_8h.md#secrets__example_8h_1af9af3945a9a7c95d2d047a2183832d35)

Type: const char

Variable BROKER


Definition: src/network.cpp (line 13)

const char* BROKER = "aicon.dhbw-heidenheim.de"

Type: const char *

Variable port


Definition: src/network.cpp (line 14)

const int port = 1883

Type: const int

Functions

Function ConnectToWiFi

bool ConnectToWiFi(unsigned long timeoutMs)

Establishes a WiFi connection with the configured network.

Attempts to connect to the WiFi network using credentials from the secrets file. Provides visual feedback via serial output and enforces a connection timeout.

Parameters:

  • timeoutMs: Maximum time in milliseconds to wait for connection (default: 10000ms).

Returns:

true if WiFi connection is successful, false if timeout occurs.

Parameters:

  • unsigned long timeoutMs

Return type: bool

Function ConnectToMQTT

bool ConnectToMQTT(MqttClient &mqttClient, unsigned long timeoutMs)

Establishes an authenticated MQTT connection to the broker.

Sets up MQTT client credentials using values from the secrets file and attempts to connect to the configured MQTT broker. Provides visual feedback and enforces a connection timeout.

Parameters:

  • mqttClient: Reference to the MQTT client instance to connect.
  • timeoutMs: Maximum time in milliseconds to wait for connection (default: 10000ms).

Returns:

true if MQTT connection is successful, false if timeout occurs.

Parameters:

  • MqttClient & mqttClient
  • unsigned long timeoutMs

Return type: bool

Source

#include "network.h"

#ifdef UNIT_TEST
#include "secrets_example.h"
#else
#include "secrets.h"
#endif

#include "mqtt.h"

static const char SSID[]     = SECRET_SSID;
static const char PASSWORD[] = SECRET_PASS;
static const char* BROKER    = "aicon.dhbw-heidenheim.de";
static const int port        = 1883;

bool ConnectToWiFi(unsigned long timeoutMs) {
  Serial.print("Connecting to WiFi...");
  WiFi.begin(SSID, PASSWORD);

  unsigned long startAttemptTime = millis();
  while (WiFi.status() != WL_CONNECTED) {
    if (millis() - startAttemptTime >= timeoutMs) {
      Serial.println("WiFi connection timed out.");
      return false;
    }
    delay(500);
    Serial.print(".");
  }

  Serial.println("WiFi is connected.");
  return true;
}

bool ConnectToMQTT(MqttClient& mqttClient, unsigned long timeoutMs) {
  Serial.print("Connecting to MQTT...");

  mqttClient.setUsernamePassword(SECRET_MQTT_USER, SECRET_MQTT_PASS);

  unsigned long startAttemptTime = millis();

  while (!mqttClient.connect(BROKER, port)) {
    if (millis() - startAttemptTime >= timeoutMs) {
      Serial.println("MQTT connection timed out.");
      return false;
    }
    Serial.print(".");
    delay(1000);
  }

  Serial.println(" connected.");
  return true;
}