From ff3e6cd882e977807dafb5a75745610b92b28fc2 Mon Sep 17 00:00:00 2001 From: Ibrahim Date: Fri, 1 Sep 2023 12:10:17 +0500 Subject: [PATCH] data sent over wifi #27 --- .vscode/c_cpp_properties.json | 8 +++- .../wifi_data_processing.cpp | 44 +++++++++++++++---- .../wifi_data_processing.h | 2 + platformio.ini | 1 + src/main.cpp | 14 +++--- 5 files changed, 52 insertions(+), 17 deletions(-) diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index d2b3f1a..0bc9bc1 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -14,7 +14,10 @@ "/home/ibrahim/mobile_robotics_basics/lib/Encoder Control", "/home/ibrahim/mobile_robotics_basics/lib/Motor Control", "/home/ibrahim/mobile_robotics_basics/lib/Wifi_data_processing", + "/home/ibrahim/mobile_robotics_basics/.pio/libdeps/esp32doit-devkit-v1/ESPAsyncWebServer-esphome/src", "/home/ibrahim/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src", + "/home/ibrahim/.platformio/packages/framework-arduinoespressif32/libraries/FS/src", + "/home/ibrahim/mobile_robotics_basics/.pio/libdeps/esp32doit-devkit-v1/AsyncTCP-esphome/src", "/home/ibrahim/mobile_robotics_basics/.pio/libdeps/esp32doit-devkit-v1/AS5600", "/home/ibrahim/mobile_robotics_basics/.pio/libdeps/esp32doit-devkit-v1/SoftWire/src", "/home/ibrahim/mobile_robotics_basics/.pio/libdeps/esp32doit-devkit-v1/AsyncDelay/src", @@ -223,7 +226,6 @@ "/home/ibrahim/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src", "/home/ibrahim/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src", "/home/ibrahim/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src", - "/home/ibrahim/.platformio/packages/framework-arduinoespressif32/libraries/FS/src", "/home/ibrahim/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src", "/home/ibrahim/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src", "/home/ibrahim/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdateServer/src", @@ -254,7 +256,10 @@ "/home/ibrahim/mobile_robotics_basics/lib/Encoder Control", "/home/ibrahim/mobile_robotics_basics/lib/Motor Control", "/home/ibrahim/mobile_robotics_basics/lib/Wifi_data_processing", + "/home/ibrahim/mobile_robotics_basics/.pio/libdeps/esp32doit-devkit-v1/ESPAsyncWebServer-esphome/src", "/home/ibrahim/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src", + "/home/ibrahim/.platformio/packages/framework-arduinoespressif32/libraries/FS/src", + "/home/ibrahim/mobile_robotics_basics/.pio/libdeps/esp32doit-devkit-v1/AsyncTCP-esphome/src", "/home/ibrahim/mobile_robotics_basics/.pio/libdeps/esp32doit-devkit-v1/AS5600", "/home/ibrahim/mobile_robotics_basics/.pio/libdeps/esp32doit-devkit-v1/SoftWire/src", "/home/ibrahim/mobile_robotics_basics/.pio/libdeps/esp32doit-devkit-v1/AsyncDelay/src", @@ -463,7 +468,6 @@ "/home/ibrahim/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src", "/home/ibrahim/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src", "/home/ibrahim/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src", - "/home/ibrahim/.platformio/packages/framework-arduinoespressif32/libraries/FS/src", "/home/ibrahim/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src", "/home/ibrahim/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src", "/home/ibrahim/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdateServer/src", diff --git a/lib/Wifi_data_processing/wifi_data_processing.cpp b/lib/Wifi_data_processing/wifi_data_processing.cpp index d8cd8ae..78d4dca 100644 --- a/lib/Wifi_data_processing/wifi_data_processing.cpp +++ b/lib/Wifi_data_processing/wifi_data_processing.cpp @@ -1,4 +1,5 @@ #include "wifi_data_processing.h" +#include WiFiClient client; WiFiServer server(80); const char *ssid = "Jhelum.net [Luqman House]"; @@ -34,15 +35,40 @@ String processClientRequest(void) void processCoordinates(float x, float y) { - // Process the received x and y coordinates - // Replace this with the actual code to handle the coordinates + // Process the received x and y coordinates + // Replace this with the actual code to handle the coordinates - // For example, you can print the coordinates to the Serial Monitor - Serial.print("Received Coordinates - X: "); - Serial.print(x); - Serial.print(" | Y: "); - Serial.println(y); + // For example, you can print the coordinates to the Serial Monitor + Serial.print("Received Coordinates - X: "); + Serial.print(x); + Serial.print(" | Y: "); + Serial.println(y); - // You can also perform any other actions or calculations based on the coordinates - // For instance, controlling motors, performing calculations, etc. + // You can also perform any other actions or calculations based on the coordinates + // For instance, controlling motors, performing calculations, etc. } + +void sendPositionOverWiFi(float x, float y) +{ + if (client.connect(WiFi.localIP(), 80)) + { + Serial.println("Connected to server"); + + // Create a JSON string to send + String dataToSend = String(x) + ","+ String(y); + + // Send a POST request to the server + client.println("POST /data HTTP/1.1"); + client.println("Host: " + String(WiFi.localIP())); + client.println("Content-Type: application/json"); + client.print("Content-Length: "); + client.println(dataToSend.length()); + client.println(); + client.println(dataToSend); + + Serial.println("Data sent to server" + dataToSend); + client.stop(); + } else { + Serial.println("Connection to server failed"); + } +} \ No newline at end of file diff --git a/lib/Wifi_data_processing/wifi_data_processing.h b/lib/Wifi_data_processing/wifi_data_processing.h index 48aabb8..9b2763a 100644 --- a/lib/Wifi_data_processing/wifi_data_processing.h +++ b/lib/Wifi_data_processing/wifi_data_processing.h @@ -2,6 +2,7 @@ #define WIFI_DATA_H #include +#include // Global Variables extern WiFiClient client; @@ -13,5 +14,6 @@ extern String data; void setupWiFi(); String processClientRequest(); void processCoordinates(float x, float y); +void sendPositionOverWiFi(float x, float y); #endif \ No newline at end of file diff --git a/platformio.ini b/platformio.ini index 58104ae..ad8695a 100644 --- a/platformio.ini +++ b/platformio.ini @@ -21,3 +21,4 @@ lib_deps = stevemarple/SoftWire@^2.0.9 stevemarple/AsyncDelay@^1.1.2 robtillaart/AS5600@^0.4.0 + ottowinter/ESPAsyncWebServer-esphome@^3.0.0 diff --git a/src/main.cpp b/src/main.cpp index 6e4000c..a7afdff 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -20,15 +20,17 @@ void setup() void loop() { - // calculate_traveling(); - // Serial.print("X: " ); - // Serial.print(x); - // Serial.print(" | Y: "); - // Serial.print (y); + calculate_traveling(); + Serial.print("X: " ); + Serial.print(x); + Serial.print(" | Y: "); + Serial.print (y); client = server.available(); if (!client) return; - + +// Send the current x and y positions over WiFi + sendPositionOverWiFi(x, y); data = processClientRequest(); Serial.println(data); processData(data);