-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBlank.ino
More file actions
86 lines (66 loc) · 1.59 KB
/
Blank.ino
File metadata and controls
86 lines (66 loc) · 1.59 KB
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <SPI.h>
#include <Ethernet.h>
#include <PubSubClient.h>
#define OTETHERNET
#include <ArduinoOTA.h>
#include "BoardReboot.h"
${include-component}
#define NAME_ARDUINO "${board-name}"
#define MQTT_USERNAME "${mqtt-user}"
#define MQTT_PASSWORD "${mqtt-password}"
#define VERSION "${version}"
#define OTA_PASSWORD "${ota-password}"
#define DIGITALBOUNCE ${digital-bounce}
byte mac[] = {${mac-address}};
long lastReconnectAttempt = 0;
IPAddress server(${mqtt-server});
EthernetClient ethClient;
PubSubClient client(ethClient);
BoardReboot boardReboot= BoardReboot(&client, NAME_ARDUINO);
${declaration-component}
void setup()
{
${init}
Ethernet.begin(mac);
delay(3000);
client.setServer(server, 1883);
client.setCallback(callback);
ArduinoOTA.begin(Ethernet.localIP(), NAME_ARDUINO, OTA_PASSWORD, InternalStorage);
}
boolean reconnect()
{
if (client.connect(NAME_ARDUINO, MQTT_USERNAME, MQTT_PASSWORD))
{
client.publish("${board-name}/board/current-version",VERSION, true);
boardReboot.reconnected();
${reconnected}
}
return client.connected();
}
void callback(char *topic, byte *payload, unsigned int length)
{
boardReboot.mqttCallback(topic, payload, length);
${callback}
}
void loop()
{
if (Ethernet.linkStatus() == LinkON) // ethernet connected
{
if (!client.connected())
{
long now = millis();
if (now - lastReconnectAttempt > 5000)
{
lastReconnectAttempt = now;
if (reconnect())
lastReconnectAttempt = 0;
}
}
else
client.loop();
ArduinoOTA.poll();
}
${input}
${run}
${output}
}