From 0b15719ce565cf0c4fd2a446b402693e0d13dbfd Mon Sep 17 00:00:00 2001 From: Lemonochrome Date: Thu, 23 Nov 2023 22:14:13 +0100 Subject: [PATCH] Boilerplate server handling --- .vscode/settings.json | 5 ++++ lib/ServerHandler/ServerHandler.cpp | 37 +++++++++++++++++++++++++++++ lib/ServerHandler/ServerHandler.hpp | 20 ++++++++++++++++ platformio.ini | 2 ++ src/main.cpp | 13 ++++++---- 5 files changed, 73 insertions(+), 4 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 lib/ServerHandler/ServerHandler.cpp create mode 100644 lib/ServerHandler/ServerHandler.hpp diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..d8cb326 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "string": "cpp" + } +} \ No newline at end of file diff --git a/lib/ServerHandler/ServerHandler.cpp b/lib/ServerHandler/ServerHandler.cpp new file mode 100644 index 0000000..43e19da --- /dev/null +++ b/lib/ServerHandler/ServerHandler.cpp @@ -0,0 +1,37 @@ +#include "ServerHandler.hpp" + +ServerHandler::ServerHandler() : server(80) { +} + +void ServerHandler::setup(const char* ssid, const char* password) { // On utilise les scope resolution operator pour définir les méthodes la classe ServerHandle qui elle est dans hpp + Serial.begin(9600); + WiFi.begin(ssid, password); + + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + + Serial.println(""); + Serial.println("Connected to Wi-Fi. IP address: "); + Serial.println(WiFi.localIP()); + + server.begin(); + server.on("/", [this]() { this->sendDataToServer("Hello World!"); }); // fonction lamda pour gérer les requettes get +} + +void ServerHandler::loop() { + server.handleClient(); +} + +int ServerHandler::readSensorData() { + return 123; +} + +void ServerHandler::sendDataToServer(char * data) { + server.send(200, "text/plain", data); +} + +void ServerHandler::handleRoot() { + server.send(200, "text/plain", "Sensor Data: " + String(readSensorData())); +} diff --git a/lib/ServerHandler/ServerHandler.hpp b/lib/ServerHandler/ServerHandler.hpp new file mode 100644 index 0000000..8851633 --- /dev/null +++ b/lib/ServerHandler/ServerHandler.hpp @@ -0,0 +1,20 @@ +#ifndef SERVERHANDLER_HPP +#define SERVERHANDLER_HPP + +#include +#include + +class ServerHandler { +public: + ServerHandler(); + void setup(const char* ssid, const char* password); + void loop(); + +private: + ESP8266WebServer server; + int readSensorData(); + void sendDataToServer(char * data); + void handleRoot(); +}; + +#endif diff --git a/platformio.ini b/platformio.ini index 6bb127a..cdf99da 100644 --- a/platformio.ini +++ b/platformio.ini @@ -12,3 +12,5 @@ platform = espressif8266 board = nodemcuv2 framework = arduino +lib_deps = tzapu/WiFiManager@^0.16.0 + bbx10/DNSServer@^1.1.0 diff --git a/src/main.cpp b/src/main.cpp index cd80d0d..b17cfbc 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,10 +1,15 @@ #include +#include +#include + +#include "ServerHandler.hpp" + +ServerHandler serverHandler; void setup() { - Serial.begin(9600); + serverHandler.setup("Redmi Note 10", "bbooksdd"); } void loop() { - delay(1000); - Serial.println("Hello World!"); -} \ No newline at end of file + serverHandler.loop(); +}