From 3f40eba93a5fdbfa3563df16451bddf7a7120491 Mon Sep 17 00:00:00 2001 From: TheUnrealDragon Date: Thu, 9 Apr 2026 11:59:34 +0530 Subject: [PATCH 1/3] v0.0.2 --- NodeMCUWiFiModule.ino | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/NodeMCUWiFiModule.ino b/NodeMCUWiFiModule.ino index f6fab71..ea50ad2 100644 --- a/NodeMCUWiFiModule.ino +++ b/NodeMCUWiFiModule.ino @@ -16,9 +16,6 @@ WiFiUDP client; const int triggerPin = D6; const int echoPin = D5; -SPI_DEVICE_TXBIT_LSBFIRST; - - void setup() { delay(5000); WiFi.begin(WIFI_SSID, WIFI_PASS); @@ -46,11 +43,11 @@ void setup() { void loop() { digitalWrite(triggerPin, LOW); - delayMicroseconds(2); + delayMicroseconds(20); digitalWrite(triggerPin, HIGH); - delayMicroseconds(10); - digitalWrite(triggerPin, LOW); - duration = pulseIn(echoPin, HIGH); + delayMicroseconds(200); + digitalWrite(triggerPin, LOW); + duration = pulseIn(echoPin, HIGH, 40000); distance = (duration*.0343)/2; if(WiFi.status() != WL_CONNECTED) { @@ -68,7 +65,7 @@ void loop() { for(int i=0;i<4;i++) { buff[i] = array[3-i]; } - Serial.print("Data flipped is: "); + Serial.print("Data flipped is: 0x"); for(int i=0;i<4;i++) { Serial.print(buff[i], HEX); } From 21b6c3f7602675fbeffd932fdebbc9edfae054a1 Mon Sep 17 00:00:00 2001 From: unrealdragon Date: Thu, 30 Jul 2026 15:13:00 +0530 Subject: [PATCH 2/3] NodeMCUWiFi old code --- NodeMCUWiFiModule.ino | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/NodeMCUWiFiModule.ino b/NodeMCUWiFiModule.ino index ea50ad2..fc5d614 100644 --- a/NodeMCUWiFiModule.ino +++ b/NodeMCUWiFiModule.ino @@ -2,8 +2,8 @@ #include #include -#define WIFI_SSID "" -#define WIFI_PASS "" +#define WIFI_SSID "KAIPPUZHAKKUNNEL" +#define WIFI_PASS "7042754150" #define IP_BROADCAST "192.168.1.255" #define UDP_PORT 8176 @@ -21,7 +21,6 @@ void setup() { WiFi.begin(WIFI_SSID, WIFI_PASS); pinMode(echoPin, INPUT); pinMode(triggerPin, OUTPUT); - status = "Connecting"; while(WiFi.status() != WL_CONNECTED) { delay(500); @@ -29,6 +28,7 @@ void setup() { status = WiFi.localIP().toString(); Serial.begin(9600); Serial.println("Got IP: " + status); + Serial.println("Sending messages to: " + String(IP_BROADCAST)); int err = client.begin(81); if(err == 0) { Serial.println("Failed to create UDP Socket"); @@ -41,7 +41,6 @@ void setup() { } void loop() { - digitalWrite(triggerPin, LOW); delayMicroseconds(20); digitalWrite(triggerPin, HIGH); @@ -74,6 +73,6 @@ void loop() { client.beginPacket(IP_BROADCAST, UDP_PORT); client.write(buff, sizeof(float)); client.endPacket(); - delay(3000); delete[] buff; + delay(3000); } From edf87bee7d67d8f4093458dc25d78dabbe83f660 Mon Sep 17 00:00:00 2001 From: unrealdragon Date: Thu, 30 Jul 2026 17:36:24 +0530 Subject: [PATCH 3/3] NodeMCUWiFi http code --- NodeMCUWiFiModule.ino | 123 ++++++++++++++++++++++++------------------ 1 file changed, 71 insertions(+), 52 deletions(-) diff --git a/NodeMCUWiFiModule.ino b/NodeMCUWiFiModule.ino index fc5d614..11acc7b 100644 --- a/NodeMCUWiFiModule.ino +++ b/NodeMCUWiFiModule.ino @@ -1,78 +1,97 @@ #include -#include #include +#include #define WIFI_SSID "KAIPPUZHAKKUNNEL" #define WIFI_PASS "7042754150" -#define IP_BROADCAST "192.168.1.255" -#define UDP_PORT 8176 +WiFiServer server(80); -String status = ""; -float distance = -1; -float duration; -WiFiUDP client; +SoftwareSerial sensorSerial; +unsigned long int lastPrintTime = 0; +unsigned long int lastWiFiCheck = 0; -const int triggerPin = D6; -const int echoPin = D5; +int distance_d = 0; void setup() { delay(5000); + WiFi.mode(WIFI_STA); + WiFi.setAutoReconnect(true); WiFi.begin(WIFI_SSID, WIFI_PASS); - pinMode(echoPin, INPUT); - pinMode(triggerPin, OUTPUT); - status = "Connecting"; while(WiFi.status() != WL_CONNECTED) { delay(500); } - status = WiFi.localIP().toString(); + String status = WiFi.localIP().toString(); Serial.begin(9600); Serial.println("Got IP: " + status); - Serial.println("Sending messages to: " + String(IP_BROADCAST)); - int err = client.begin(81); - if(err == 0) { - Serial.println("Failed to create UDP Socket"); - } - else { - Serial.println("Created UDP Socket at port 81"); - } - Serial.println(String("IP BROADCAST ID SET TO: ") + String(IP_BROADCAST)); - Serial.println(String("UDP PORT SET TO: ") + String(UDP_PORT)); + sensorSerial.begin(9600, SWSERIAL_8N1, D5, D6, false, 64); + server.begin(); } + void loop() { - digitalWrite(triggerPin, LOW); - delayMicroseconds(20); - digitalWrite(triggerPin, HIGH); - delayMicroseconds(200); - digitalWrite(triggerPin, LOW); - duration = pulseIn(echoPin, HIGH, 40000); - distance = (duration*.0343)/2; - if(WiFi.status() != WL_CONNECTED) { - WiFi.begin(WIFI_SSID, WIFI_PASS); - while(WiFi.status() != WL_CONNECTED) { - delay(500); + uint8_t data_header = 0xFF; + uint8_t data[3]; //comprises of data_high, data_low & checksum. + if(sensorSerial.available() >= 4) { + if(sensorSerial.read() == 0xFF) { + data[0] = sensorSerial.read(); + data[1] = sensorSerial.read(); + data[2] = sensorSerial.read(); + uint8_t checksum = (data_header + data[0] + data[1]) & 0xFF; + bool correct_checksum = false; + if(data[2] == checksum) { + correct_checksum = true; + distance_d = (data[0] << 8) | data[1]; + } + else { + while(sensorSerial.available()) { + sensorSerial.read(); + } + } + if(millis() - lastPrintTime >= 3000) { + Serial.println("Got Header Byte."); + if(correct_checksum) + Serial.println("Checksum is correct."); + else + Serial.println("Checksum is incorrect."); + Serial.printf("Current Distance: %d mm\n", distance_d); + lastPrintTime = millis(); + } } } - String d = String(distance); - String d2 = String(duration); - Serial.println("Distance is: " + d); - Serial.println("Duration is: " + d2); - byte *buff = new byte[4]; - byte *array = (byte *) &distance; - for(int i=0;i<4;i++) { - buff[i] = array[3-i]; + if(WiFi.status() != WL_CONNECTED) { + if(millis() - lastWiFiCheck >= 10000) { + WiFi.reconnect(); + lastWiFiCheck = millis(); + } + return; } - Serial.print("Data flipped is: 0x"); - for(int i=0;i<4;i++) { - Serial.print(buff[i], HEX); - } - Serial.println(""); + WiFiClient client = server.available(); + if (client) { + unsigned long clientTimeout = millis(); + Serial.println("New Client."); + while(client.connected() && !client.available()) { + if (millis() - clientTimeout > 1000) { + Serial.println("Client timeout."); + client.stop(); + return; + } + delay(1); + } - client.beginPacket(IP_BROADCAST, UDP_PORT); - client.write(buff, sizeof(float)); - client.endPacket(); - delete[] buff; - delay(3000); + if (client.available()) { + while (client.available()) { + client.read(); + } + } + + client.println("HTTP/1.1 200 OK"); + client.println("Content-Type: application/json"); + client.println("Connection: close"); + client.println(); + client.printf("{\"distance\": %d, \"unit\": \"mm\"}\n", distance_d); + client.stop(); + Serial.println("Client disconnected."); + } }