bh1750fvi ใช้กับblynk ได้ไหมครับ แล้วพอจะมีโค้ดตัวอย่างที่ใช้กับBlynkไหมครับ
bh1750fvi เซ็นเซอร์วัดความเข้มแสงสามารถใช้ร่วมกับ Blynk ได้ครับ
ขั้นตอนหลักๆ ในการใช้งานร่วมกันจะมีดังนี้:
- ต่อ bh1750fvi เข้ากับบอร์ดไมโครคอนโทรลเลอร์ (เช่น ESP8266, ESP32)
- ติดตั้งไลบรารีที่จำเป็น เช่น BH1750 library สำหรับอ่านค่าจากเซ็นเซอร์
- เขียนโค้ดเพื่ออ่านค่าจากเซ็นเซอร์และส่งไปยัง Blynk
- สร้างโปรเจค Blynk และกำหนด widget เพื่อแสดงค่าความเข้มแสง
#define BLYNK_TEMPLATE_ID "YOUR_TEMPLATE_ID"
#define BLYNK_TEMPLATE_NAME "YOUR_TEMPLATE_NAME"
#define BLYNK_AUTH_TOKEN "YOUR_AUTH_TOKEN"
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <Wire.h>
#include <BH1750.h>
char ssid[] = "YOUR_WIFI_SSID";
char pass[] = "YOUR_WIFI_PASSWORD";
BH1750 lightMeter;
BlynkTimer timer;
void sendSensor()
{
float lux = lightMeter.readLightLevel();
Serial.print("Light: ");
Serial.print(lux);
Serial.println(" lx");
Blynk.virtualWrite(V0, lux);
}
void setup()
{
Serial.begin(115200);
Wire.begin();
lightMeter.begin();
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
timer.setInterval(1000L, sendSensor);
}
void loop()
{
Blynk.run();
timer.run();
}
คำอธิบายโค้ด:
- กำหนดค่า BLYNK_TEMPLATE_ID, BLYNK_TEMPLATE_NAME, และ BLYNK_AUTH_TOKEN ตามที่ได้รับจาก Blynk
- เพิ่มไลบรารีที่จำเป็น: ESP8266WiFi, BlynkSimpleEsp8266, Wire, และ BH1750
- กำหนด SSID และรหัสผ่าน WiFi
- สร้างอ็อบเจกต์ BH1750 ชื่อ lightMeter
- ฟังก์ชัน sendSensor() อ่านค่าความเข้มแสงและส่งไปยัง Blynk ผ่าน Virtual Pin V0
- ในฟังก์ชัน setup():
- เริ่มต้นการสื่อสาร Serial
- เริ่มต้น I2C (Wire)
- เริ่มต้นเซ็นเซอร์ BH1750
- เชื่อมต่อกับ Blynk
- ตั้งค่าให้เรียกใช้ sendSensor() ทุก 1 วินาที
- ในฟังก์ชัน loop():
- รัน Blynk และ timer
หลังจากอัปโหลด ต้องสร้างโปรเจคใน Blynk app และเพิ่ม widget (เช่น Gauge หรือ Value Display) ที่เชื่อมต่อกับ Virtual Pin V0 เพื่อแสดงค่าความเข้มแสง