#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>
char ssid[] = "nepatronix_2.4";
char pass[] = "CLB269DA03";
const char* serverName = "http://192.168.1.97:8000/basic/recieve-data/"; // Django API endpoint
#define trigPin 26
#define echoPin 27
float duration;
int distance;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println(("Connected to WiFi!!"));
}
void loop() {
// put your main code here, to run repeatedly:
distance = readDistance();
if (WiFi.status() == WL_CONNECTED) {
sendData(distance);
} else {
Serial.println("WiFi Disconnected!");
}
delay(1000); // this speeds up the simulation
}
int readDistance() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
return (duration * 0.034) / 2; // Calculate distance in cm
}
void sendData(int distance) {
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
http.begin(serverName); // Specify the URL
http.addHeader("Content-Type", "application/json"); // Specify content-type
// Create JSON object
StaticJsonDocument<200> jsonDoc;
jsonDoc["distance"] = distance;
String jsonString;
serializeJson(jsonDoc, jsonString);
Serial.println(jsonString);
// Send HTTP POST request
int httpResponseCode = http.POST(jsonString);
// Check the response
if (httpResponseCode > 0) {
String response = http.getString();
Serial.println(httpResponseCode); // Print return code
Serial.println(response); // Print response
} else {
Serial.print("Error on sending POST: ");
Serial.println(httpResponseCode);
}
Serial.print("Error on sending POST: ");
Serial.println(httpResponseCode);
http.end(); // Free resources
}
}