一、目的

        这一节我们学习如何使用我们的ESP32开发板来学习控制GY-30(BH1750芯片)光强度光照度模块和0.91寸I2C oled显示屏(SSD1306驱动)。

二、环境

        ESP32 + Thonny + GY-30模块 + 0.91寸oled屏幕 + 几根杜邦线 + Win10

接线方法:

 

三、示例代码

oled驱动,请查看上一篇文章(物联网开发笔记(85))获取,谢谢!

示例代码如下:

from machine import Pin,I2C
from ssd1306 import SSD1306_I2C
import time

gy30_addr = 0x23  # 光线传感器I2C地址
oled_addr = 0x3c  # oled屏幕I2C地址

i2c = I2C(0,scl = Pin(15),sda = Pin(4),freq = 1_000_000)
i2c1 = I2C(1,scl = Pin(12),sda = Pin(13),freq = 1_000_000)
oled = SSD1306_I2C(128,32,i2c1,oled_addr)  # 0.91寸分辨率128*32

#print(hex(i2c.scan()[0]),hex(i2c.scan()[1]))  # 打印器件I2C地址

def Gy_30_Init():
    # 第1张写法
    # i2c.writeto(gy30_addr,b'\x01') # 通电运行
    # i2c.writeto(gy30_addr,b'\x07') # 复位
    # i2c.writeto(gy30_addr,b'\x10') # 横向分辨率连续读取 1 Lx 120ms
    
    # 第2张写法
    i2c.writeto(gy30_addr,chr(0x01)) # 通电运行 
    i2c.writeto(gy30_addr,chr(0x07)) # 复位
    i2c.writeto(gy30_addr,chr(0x10)) # 横向分辨率连续读取 1 Lx 120ms
    
def Gy_30():
    gy = i2c.readfrom(gy30_addr,2) #0-65535 1 8bit 2  int 16 char 8
    gy30 = float(gy[0] << 8 | gy[1])/1.2 #左移动,可以理解为乘法 gy[0]*0xff 
    time.sleep_ms(200)
    return gy30

def main():
    Gy_30_Init()
    oled.contrast(255) #0-255
    while True:
        #print("光照值 = %.2f Lx"%Gy_30())
        oled.fill(0)
        #oled.text("gy-30 = %.2f Lx"%Gy_30(),10,8)  # 显示gy-30 = 259.33 Lx
        oled.text("gy-30 lighting  \n",10,8)  # 第一行显示gy-30 lighting
        oled.text("* %.2f Lx *"%Gy_30(),14,18)  # 第二行显示* 259.33 Lx *
        oled.show()


if __name__ == "__main__":
    main()

四、演示效果

五、器件购买

      1,GY-302 BH1750 光强度光照度模块购买地址:

        

https://item.taobao.com/item.htm?spm=a1z09.2.0.0.51922e8d2uqrYB&id=522576060214&_u=1p01rch4d98icon-default.png?t=N176https://item.taobao.com/item.htm?spm=a1z09.2.0.0.51922e8d2uqrYB&id=522576060214&_u=1p01rch4d98        资料下载链接:

https://pan.baidu.com/s/1ObAPmdUwdrsRL8M4qZ9xfQ                    提取码:1riu

数字光强度检测

型号:GY-302

尺寸:13.9mm X 18.5mm

采用ROHM原装BH1750FVI芯片

供电电源  :3-5v

数据范围:0-65535

传感器内置16bitAD转换器

直接数字输出,省略复杂的计算,省略标定

不区分环境光源

接近于视觉灵敏度的分光特性

可对广泛的亮度进行1勒克斯的高精度测定

        2,0.91寸 oled屏幕购买地址:

https://item.taobao.com/item.htm?spm=a1z09.2.0.0.51922e8d2uqrYB&id=562145367495&_u=1p01rch224dicon-default.png?t=N176https://item.taobao.com/item.htm?spm=a1z09.2.0.0.51922e8d2uqrYB&id=562145367495&_u=1p01rch224d        0.91寸(4管脚)oled屏幕资料下载链接:

https://pan.baidu.com/s/1jZKWGmQdRcsto-OdbnPmbg                       提取码:386h

更多推荐