ใส่หัวข้อ ไฟ LED ติด เมื่อ เข้า ไวไฟได้แล้วส่วนไหนหรอครับ

   
#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h>      
  
#define TRIGGER_PIN  D7
#define ECHO_PIN     D6
 int LED = D8;
 
char auth[] = "thjwqKR1HpeIhjHKOf84jOeEmIugUo0F";
long duration, distance;

BLYNK_WRITE(V1)
{
  if(param.asInt())
  {
    digitalWrite(TRIGGER_PIN, LOW); 
    delayMicroseconds(2); 
    digitalWrite(TRIGGER_PIN, HIGH);
    delayMicroseconds(10);
    digitalWrite(TRIGGER_PIN, LOW);
    duration = pulseIn(ECHO_PIN, HIGH);
    distance = (duration/2) / 29.1;
    
    Serial.print(distance);
    Serial.println(" cm");
    Blynk.virtualWrite(V6,distance);   
  }
}

void setup() {
Serial.begin(115200);
pinMode(TRIGGER_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT); 
pinMode(LED,OUTPUT);
WiFiManager wifiManager;
Blynk.config(auth);
Serial.println("connected...yeey :)");
}
void loop() {
    Blynk.run();
}


long rssi;
int rssiled;


void setup() {

  
}




void loop() {

  rssi = WiFi.RSSI();

  rssiled = ((((rssi * 100) / -127) - 100) * -1);// ทำให้เป็น % ความแรงของ WiFi จะดูง่ายกว่า

  if (rssi < 0  ) {
    //เชคระดับสัญญาณ WiFi >= 60%
    if (rssiled >= 60  ) {
      lcd.setCursor(2, 3);
      lcd.write(3);
      pcf8574_1.digitalWrite(P0, 0);
      delay(100);

    } else  {
      lcd.setCursor(2, 3);
      lcd.print((char)0x20);
      pcf8574_1.digitalWrite(P0, 1);
      delay(100);

    }
    //เชคระดับสัญญาณ WiFi >= 50%
    if (rssiled >= 50  ) {

      lcd.setCursor(1, 3);
      lcd.write(2);
      pcf8574_1.digitalWrite(P1, 0);
      delay(100);

    } else  {
      lcd.setCursor(1, 3);
      lcd.print((char)0x20);
      pcf8574_1.digitalWrite(P1, 1);
      delay(100);

    }
    //เชคระดับสัญญาณ WiFi 0-30%
    if (rssiled >= 30  ) {
      lcd.setCursor(0, 3);
      lcd.write(1);
      pcf8574_1.digitalWrite(P2, 0);
      delay(100);


    } else  {
      lcd.setCursor(0, 3);
      lcd.print((char)0x20);
      pcf8574_1.digitalWrite(P2, 1);
      delay(100);
    }
  }

  //Serial.println(rssi);
  if (rssi >= -5  ) {
    pcf8574_1.digitalWrite(P0, 1);
    pcf8574_1.digitalWrite(P1, 1);
    pcf8574_1.digitalWrite(P2, 1);
    lcd.setCursor(2, 3);
    lcd.print((char)0x20);
    lcd.setCursor(1, 3);
    lcd.print((char)0x20);
    lcd.setCursor(0, 3);
    lcd.print((char)0x20);
    delay(100);

  }


  delay(1000);
  yield();
  
}

ลองดูเป็นแนวทางนะครับ โค้ดชุดนี้จะเป็นการวัดระดับสัญญาณ WiFi 3 ระดับโดยใช้แอลอีดี 3 ดวงซึ่งแสดงค่าเป็น 0 ถึง 30 เปอร์เซ็นต์ 30 ถึง 50 เปอร์เซ็นต์และ 50 เปอร์เซ็นต์ถึง 60 เปอร์เซ็นต์ ซึ่งอ้างอิงจากค่า rssi แปลงมาเป็นเปอร์เซ็นส่วนคำสั่งที่อยู่ใน If และ else ก็สามารถเปลี่ยนคำสั่งอื่นๆ เข้ามาได้ครับ (โค้ดชุดนี้ผมตัดออกมาจากชุดโค้ดหลัก) ถ้ามีการเชื่อมต่อ WiFi สำเร็จหลอดแอลอีดีก็จะติดและขึ้นเป็นระดับตามความแรงของสัญญาณ WiFi แต่ถ้าเชื่อมต่อไม่ติดหลอดแอลอีดีก็จะดับครับ