ขอแนวทางการต่อ Soil sensor และ BH1750 sensor วัดความเข้มแสง

Soil sensor และ BH1750 ต่อเข้าบอร์ด ESP8266 NodeMCU 1.0

ขาที่ใช้ไปแล้ว ได้แก่ D0 D1 D2 D3 D4 D5 D6 D7 D8 ซึ่งเป็นขา Relay ซะส่วนใหญ่

อยากทราบว่า สามารถต่อเข้าขา ไหนได้บ้างครับ

ถ่าย ตัวที่ใช้มาดูหน่อยเป็น i2c รึป่าว

มี 2 ตัวนี้ครับ

node mcu

ขากรอบสีแดงผมได้ใช้หมดแล้ว ยังเหลือ เซนเซอร์อีก 2 ตัว ที่ยังไม่ได้ต่อ

Soil sensor และ BH1750 ครับ

ต้องย้ายพิน D1 และ D2 ออกมาต่อ I2C ครับ ทั้ง 2 เซ็นเซอร์ ต่อจุดเดียวกันได้เลย

D1 = SDL
D2 = SDA

ส่วนพินเดิม ย้าย

GPIO5 ==> GPIO10
GPIO4 ==> GPIO9

BH1750 pin2

GPIO9
GPIO10

ประกาศตัวแปร ยังไงหรอครับ

สมมติ

int Relay1 ??? >>> ขา GPIO9
int Relay2 ??? >>> ขา GPIO10

ส่วน Soil sensor ต่อเข้าขาอะไรหรอครับ

digitalWrite(9, HIGH);
digitalWrite(10, HIGH);

ลืมดูว่าตัวนี้ไม่ใช่ I2C เอาเส้นสีเหลือต่อเข้า A0 ก็ได้แล้วสั่ง Read ค่าออกมา

Soil sensor ต่อได้แล้วครับ เหลือ แค่ BH1750 ผมใช้โค้ดตัวอย่าง ค่ามันก็ไม่เปลี่ยนแปลงถ้าในดู Serial monitor

/*
  This is a simple example to test the BH1750 Light sensor
  
  Connect the sensor to a NodeMCU ESP8266:
  VCC  <-> 3V3 [grey]
  GND  <-> Gnd [purple]
  SDA  <-> D2  [green]
  SCL  <-> D1  [blue]
  ADDR <-> RX  [yellow]
 */

#include <Wire.h>
#include <BH1750FVI.h>

// Settings
uint8_t ADDRESSPIN = 13;
BH1750FVI::eDeviceAddress_t DEVICEADDRESS = BH1750FVI::k_DevAddress_H;
BH1750FVI::eDeviceMode_t DEVICEMODE = BH1750FVI::k_DevModeContHighRes;

// Create the Lightsensor instance
BH1750FVI LightSensor(ADDRESSPIN, DEVICEADDRESS, DEVICEMODE);

void setup() 
{
  Serial.begin(115200);
  LightSensor.begin();  
  Serial.println("Running...");
}

void loop()
{
  uint16_t lux = LightSensor.GetLightIntensity();
  Serial.print("Light: ");
  Serial.println(lux);
  delay(250);
}

ลองอันนี้

#include <BH1750FVI.h>

BH1750FVI LightSensor(BH1750FVI::k_DevModeContLowRes);

void setup()

{

Serial.begin(9600);

LightSensor.begin();

}

void loop()

{

uint16_t lux = LightSensor.GetLightIntensity();

Serial.print("Light: ");

Serial.print(lux);

Serial.println(" lux");

delay(250);

}

หรือว่า เซ็นเซอร์ ผม บินแล้วครับ ค่าไม่เปลี่ยนเลย

SCL > D1
SDA > D2
VCC > 3V
GND > GND

ปรับ delay จาก 250 เป็น 1000 หรือ 2000

ไม่ได้ผลครับ ผมคงทำเซ็นเซอร์มัน ช็อตอะครับ

มีตัวสำรองไหมลองเอามาเทสหน่อย