-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDataXmitter.ino
64 lines (51 loc) · 1.42 KB
/
DataXmitter.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ArduinoMqttClient.h>
#include "PhlashCredentials.h" // Custom Credentials Header
ESP8266WiFiMulti WiFiMulti;
WiFiClient wifiClient;
MqttClient mqttClient(wifiClient);
char macAddr[18];
const char broker[] = M_SERVER_URL;
int port = M_SERVER_PORT;
char topic[100];
void connectToWifi() {
WiFi.mode(WIFI_STA);
WiFiMulti.addAP(M_SSID, M_PASS);
Serial.print("MAC Address: ");
Serial.println(WiFi.macAddress());
strcpy(macAddr, WiFi.macAddress().c_str());
while (WiFiMulti.run() != WL_CONNECTED) {
Serial.println("WiFi not connected...");
delay(500);
}
}
void initMqttClient() {
mqttClient.setKeepAliveInterval(MINUTES(5));
if (!mqttClient.connect(broker, port)) {
Serial.print("MQTT connection failed! Error code = ");
Serial.println(mqttClient.connectError());
}
Serial.println("Connected to the MQTT broker");
}
void reconnectMqttClient() {
mqttClient.stop();
initMqttClient();
}
void mqttPoll() {
mqttClient.poll();
}
bool mqttIsConnected() {
return mqttClient.connected();
}
void mqttSendMsg(float data) {
mqttClient.beginMessage(topic);
mqttClient.print(data);
mqttClient.endMessage();
}
void mqttSetTopic(char* newTopic) {
Serial.print("Setting topic to: ");
Serial.println(topic);
strcpy(topic, newTopic);
}