ESP32笔记

ESP32笔记, 利用BH1745测量色温与亮度, 及用U8G2库显示。

#include <Arduino.h>

#include <BH1745NUC.h>

#include <U8g2lib.h>

#define SDA 23

#define SCL 18

float h,s,v;

BH1745NUC bh1745nuc = BH1745NUC(SDA,SCL);

U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE, /* clock=*/ SCL, /* data=*/ SDA);

void setup()

{//bh1745

  Serial.begin(115200);

  Wire.begin();

  //U8g2

  u8g2.begin();

  u8g2.enableUTF8Print();

  if (!bh1745nuc.begin())

  {

    Serial.println("BH1745NUC not detected or failed to initialize!");

    while (1) { ;; }

  }

  // optional: configure non-default I2C address:

  //   bh1745nuc.begin(0x39)

  // optional: set measurement time

  //   bh1745nuc.setMeasurementTime(bh1745nuc.Time160ms);

  // optional: set gain

  //   bh1745nuc.setGain(bh1745nuc.Gain1X);

  // optional: start or stop measurement (power down mode)

  //   bh1745nuc.startMeasurement();

  //   bh1745nuc.stopMeasurement();

}

void loop()

{

  if (!bh1745nuc.read())

  {

    Serial.println("BH1745NUC: failed to read measurement values!");

    delay(500);

    return;

  }

  // Serial.printf("Red: %hu, Green: %hu, Blue: %hu, Clear: %hu\n", bh1745nuc.red, bh1745nuc.green, bh1745nuc.blue, bh1745nuc.clear);

  double cct=bh1745nuc.Calculate_Color_Temperature(bh1745nuc.red, bh1745nuc.green, bh1745nuc.blue);

  // Serial.printf("色温是:%f\n",cct);

  double brightNess=bh1745nuc.Calculate_lightness(bh1745nuc.red, bh1745nuc.green, bh1745nuc.blue);

  // Serial.printf("亮度是:%f\n",brightNess);

  bh1745nuc.rgb_to_hsv(&h,&s,&v,bh1745nuc.red,bh1745nuc.green,bh1745nuc.blue);

  u8g2.setFont(u8g2_font_zzy);  // use chinese2 for all the glyphs of "你好世界"

  //u8g2.setFont(u8g2_font_b10_t_japanese1);  // all the glyphs of "こんにちは世界" are already included in japanese1: Lerning Level 1-6

  u8g2.setFontDirection(0);

  u8g2.firstPage();

  do {

    u8g2.setCursor(0, 15);

    u8g2.print("照度测试仪");

    u8g2.setCursor(0, 40);

    u8g2.print("照度(lm):"+String(brightNess));

    //u8g2.print("こんにちは世界");    // Japanese "Hello World"

    // u8g2.print("H:"+String(h)+"S:"+String(s)+"V:"+String(v));  

    u8g2.setCursor(0, 62);

    u8g2.print("色温(K):"+String(cct));

  } while ( u8g2.nextPage() );

  delay(100);

}

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值