updates
This commit is contained in:
Vendored
+1
-2
@@ -1,7 +1,6 @@
|
|||||||
{
|
{
|
||||||
// See http://go.microsoft.com/fwlink/?LinkId=827846
|
|
||||||
// for the documentation about the extensions.json format
|
|
||||||
"recommendations": [
|
"recommendations": [
|
||||||
|
"pioarduino.pioarduino-ide",
|
||||||
"platformio.platformio-ide"
|
"platformio.platformio-ide"
|
||||||
],
|
],
|
||||||
"unwantedRecommendations": [
|
"unwantedRecommendations": [
|
||||||
|
|||||||
+15
-3
@@ -8,7 +8,19 @@
|
|||||||
; Please visit documentation for the other options and examples
|
; Please visit documentation for the other options and examples
|
||||||
; https://docs.platformio.org/page/projectconf.html
|
; https://docs.platformio.org/page/projectconf.html
|
||||||
|
|
||||||
[env:esp32-s3-devkitc-1]
|
[env:jc3248w535]
|
||||||
platform = espressif32
|
platform = https://github.com/pioarduino/platform-espressif32/releases/download/55.03.35/platform-espressif32.zip
|
||||||
board = esp32-s3-devkitc-1
|
board = esp32-s3-devkitc1-n16r8
|
||||||
framework = arduino
|
framework = arduino
|
||||||
|
|
||||||
|
monitor_speed = 115200
|
||||||
|
monitor_port = /dev/ttyACM0
|
||||||
|
|
||||||
|
build_flags =
|
||||||
|
-DBOARD_HAS_PSRAM
|
||||||
|
-DARDUINO_USB_CDC_ON_BOOT=1
|
||||||
|
-DARDUINO_USB_MODE=1
|
||||||
|
|
||||||
|
lib_deps =
|
||||||
|
moononournation/GFX Library for Arduino
|
||||||
|
knolleary/PubSubClient
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
#include <Arduino.h>
|
||||||
|
#include "Application.h"
|
||||||
|
#include "Config.h"
|
||||||
|
|
||||||
|
void Application::begin()
|
||||||
|
{
|
||||||
|
Serial.println("-------------------------");
|
||||||
|
Serial.println(" MQTTPanel32");
|
||||||
|
Serial.print(" Version: ");
|
||||||
|
Serial.println(Config::VERSION);
|
||||||
|
Serial.println("-------------------------");
|
||||||
|
|
||||||
|
wifi.begin();
|
||||||
|
|
||||||
|
mqtt.begin();
|
||||||
|
|
||||||
|
display.begin();
|
||||||
|
|
||||||
|
|
||||||
|
display.showStatus(
|
||||||
|
wifi.ip(),
|
||||||
|
mqtt.connected() ? "verbunden" : "offline"
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void Application::loop()
|
||||||
|
{
|
||||||
|
wifi.loop();
|
||||||
|
|
||||||
|
mqtt.loop();
|
||||||
|
|
||||||
|
display.loop();
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "WifiManager.h"
|
||||||
|
#include "MqttManager.h"
|
||||||
|
#include "Display/DisplayManager.h"
|
||||||
|
|
||||||
|
|
||||||
|
class Application
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
void begin();
|
||||||
|
void loop();
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
WifiManager wifi;
|
||||||
|
MqttManager mqtt;
|
||||||
|
DisplayManager display;
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
namespace Config
|
||||||
|
{
|
||||||
|
// WLAN
|
||||||
|
constexpr const char* WIFI_SSID = "RS20W";
|
||||||
|
constexpr const char* WIFI_PASSWORD = "***";
|
||||||
|
|
||||||
|
// MQTT
|
||||||
|
constexpr const char* MQTT_HOST = "mqtt.diereuthers.home";
|
||||||
|
constexpr uint16_t MQTT_PORT = 1883;
|
||||||
|
constexpr const char* MQTT_CLIENT = "MQTTPanel32";
|
||||||
|
|
||||||
|
constexpr const char* MQTT_STATUS_TOPIC =
|
||||||
|
"mqttpanel32/status";
|
||||||
|
|
||||||
|
constexpr const char* MQTT_COMMAND_TOPIC =
|
||||||
|
"mqttpanel32/command";
|
||||||
|
|
||||||
|
|
||||||
|
// Firmware
|
||||||
|
constexpr const char* VERSION = "0.1.0";
|
||||||
|
constexpr const char* HOSTNAME = "mqttpanel32";
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
#include <Arduino.h>
|
||||||
|
|
||||||
|
#include "DisplayManager.h"
|
||||||
|
|
||||||
|
|
||||||
|
void DisplayManager::begin()
|
||||||
|
{
|
||||||
|
Serial.println("DisplayManager gestartet");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DisplayManager::showStatus(
|
||||||
|
const String& wifi,
|
||||||
|
const String& mqtt
|
||||||
|
)
|
||||||
|
{
|
||||||
|
Serial.println("----------------");
|
||||||
|
Serial.println("DISPLAY");
|
||||||
|
Serial.print("WLAN: ");
|
||||||
|
Serial.println(wifi);
|
||||||
|
|
||||||
|
Serial.print("MQTT: ");
|
||||||
|
Serial.println(mqtt);
|
||||||
|
|
||||||
|
Serial.println("----------------");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DisplayManager::loop()
|
||||||
|
{
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <Arduino.h>
|
||||||
|
|
||||||
|
|
||||||
|
class DisplayManager
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
void begin();
|
||||||
|
|
||||||
|
void showStatus(
|
||||||
|
const String& wifi,
|
||||||
|
const String& mqtt
|
||||||
|
);
|
||||||
|
|
||||||
|
void loop();
|
||||||
|
};
|
||||||
@@ -0,0 +1,104 @@
|
|||||||
|
#include <Arduino.h>
|
||||||
|
#include <WiFi.h>
|
||||||
|
#include <PubSubClient.h>
|
||||||
|
|
||||||
|
#include "MqttManager.h"
|
||||||
|
#include "Config.h"
|
||||||
|
|
||||||
|
|
||||||
|
WiFiClient wifiClient;
|
||||||
|
|
||||||
|
PubSubClient mqttClient(wifiClient);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void MqttManager::begin()
|
||||||
|
{
|
||||||
|
mqttClient.setServer(
|
||||||
|
Config::MQTT_HOST,
|
||||||
|
Config::MQTT_PORT
|
||||||
|
);
|
||||||
|
|
||||||
|
mqttClient.setCallback(
|
||||||
|
[this](char* topic, byte* payload, unsigned int length)
|
||||||
|
{
|
||||||
|
callback(topic, payload, length);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
reconnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void MqttManager::loop()
|
||||||
|
{
|
||||||
|
if (!mqttClient.connected())
|
||||||
|
{
|
||||||
|
reconnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
mqttClient.loop();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void MqttManager::reconnect()
|
||||||
|
{
|
||||||
|
Serial.println("MQTT verbinden...");
|
||||||
|
|
||||||
|
while (!mqttClient.connected())
|
||||||
|
{
|
||||||
|
if (mqttClient.connect(Config::MQTT_CLIENT))
|
||||||
|
{
|
||||||
|
Serial.println("MQTT verbunden");
|
||||||
|
|
||||||
|
mqttClient.publish(
|
||||||
|
Config::MQTT_STATUS_TOPIC,
|
||||||
|
"online"
|
||||||
|
);
|
||||||
|
|
||||||
|
mqttClient.subscribe(
|
||||||
|
Config::MQTT_COMMAND_TOPIC
|
||||||
|
);
|
||||||
|
|
||||||
|
_connected = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Serial.print(".");
|
||||||
|
|
||||||
|
delay(3000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void MqttManager::callback(
|
||||||
|
char* topic,
|
||||||
|
byte* payload,
|
||||||
|
unsigned int length
|
||||||
|
)
|
||||||
|
{
|
||||||
|
Serial.print("MQTT Nachricht: ");
|
||||||
|
Serial.println(topic);
|
||||||
|
|
||||||
|
Serial.print("Payload: ");
|
||||||
|
|
||||||
|
for (unsigned int i = 0; i < length; i++)
|
||||||
|
{
|
||||||
|
Serial.print(
|
||||||
|
(char)payload[i]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Serial.println();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
bool MqttManager::connected()
|
||||||
|
{
|
||||||
|
return mqttClient.connected();
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <PubSubClient.h>
|
||||||
|
|
||||||
|
|
||||||
|
class MqttManager
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
void begin();
|
||||||
|
void loop();
|
||||||
|
|
||||||
|
bool connected();
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
void reconnect();
|
||||||
|
void callback(
|
||||||
|
char* topic,
|
||||||
|
byte* payload,
|
||||||
|
unsigned int length
|
||||||
|
);
|
||||||
|
|
||||||
|
bool _connected = false;
|
||||||
|
};
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|
#include <Arduino.h>
|
||||||
|
#include <WiFi.h>
|
||||||
|
|
||||||
|
#include "WifiManager.h"
|
||||||
|
#include "Config.h"
|
||||||
|
|
||||||
|
void WifiManager::begin()
|
||||||
|
{
|
||||||
|
Serial.println("WLAN verbinden...");
|
||||||
|
|
||||||
|
WiFi.setHostname(Config::HOSTNAME);
|
||||||
|
|
||||||
|
WiFi.begin(
|
||||||
|
Config::WIFI_SSID,
|
||||||
|
Config::WIFI_PASSWORD
|
||||||
|
);
|
||||||
|
|
||||||
|
uint8_t counter = 0;
|
||||||
|
|
||||||
|
while (WiFi.status() != WL_CONNECTED)
|
||||||
|
{
|
||||||
|
delay(500);
|
||||||
|
Serial.print(".");
|
||||||
|
|
||||||
|
counter++;
|
||||||
|
|
||||||
|
if (counter > 40)
|
||||||
|
{
|
||||||
|
Serial.println();
|
||||||
|
Serial.println("WLAN Timeout");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_connected = true;
|
||||||
|
|
||||||
|
Serial.println();
|
||||||
|
Serial.println("WLAN verbunden");
|
||||||
|
|
||||||
|
Serial.print("IP: ");
|
||||||
|
Serial.println(WiFi.localIP());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void WifiManager::loop()
|
||||||
|
{
|
||||||
|
bool state = (WiFi.status() == WL_CONNECTED);
|
||||||
|
|
||||||
|
if (state != _connected)
|
||||||
|
{
|
||||||
|
_connected = state;
|
||||||
|
|
||||||
|
if (_connected)
|
||||||
|
{
|
||||||
|
Serial.println("WLAN wieder verbunden");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Serial.println("WLAN getrennt");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool WifiManager::connected()
|
||||||
|
{
|
||||||
|
return _connected;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
String WifiManager::ip()
|
||||||
|
{
|
||||||
|
if (_connected)
|
||||||
|
return WiFi.localIP().toString();
|
||||||
|
|
||||||
|
return "0.0.0.0";
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
class WifiManager
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
void begin();
|
||||||
|
void loop();
|
||||||
|
|
||||||
|
bool connected();
|
||||||
|
String ip();
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool _connected = false;
|
||||||
|
};
|
||||||
+5
-5
@@ -1,17 +1,17 @@
|
|||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
|
#include "Application.h"
|
||||||
|
|
||||||
|
Application app;
|
||||||
|
|
||||||
void setup()
|
void setup()
|
||||||
{
|
{
|
||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
|
|
||||||
delay(1000);
|
delay(1000);
|
||||||
|
|
||||||
Serial.println();
|
app.begin();
|
||||||
Serial.println("=====================");
|
|
||||||
Serial.println(" MQTTPanel32");
|
|
||||||
Serial.println("=====================");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop()
|
void loop()
|
||||||
{
|
{
|
||||||
|
app.loop();
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user