#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 แต่ถ้าเชื่อมต่อไม่ติดหลอดแอลอีดีก็จะดับครับ