Micropython学习交流群 学习QQ群:786510434 提供多种固件下载和学习交流。
Micropython-扇贝物联 QQ群:31324057 扇贝物联是一个让你与智能设备沟通更方便的物联网云平台
Micropython学习交流群 学习QQ群:468985481 学习交流ESP8266、ESP32、ESP8285、wifi模块开发交流、物联网。
Micropython老哥俩的IT农场分享QQ群:929132891 为喜欢科创制作的小白们分享一些自制的计算机软硬件免费公益课程,由两位多年从事IT研发的中年大叔发起。
Micropython开发ESP32开发板之控制GY-30(BH1750芯片)光强度光照度模块和0.91寸I2C oled显示屏(SSD1306驱动)
一、目的
这一节我们学习如何使用我们的ESP32开发板来学习控制GY-30(BH1750芯片)光强度光照度模块和0.91寸I2C oled显示屏(SSD1306驱动)。
二、环境
ESP32 + Thonny + GY-30模块 + 0.91寸oled屏幕 + 几根杜邦线 + Win10
GY-302 BH1750 光强度光照度模块
数字光强度检测
型号:GY-302
尺寸:13.9mm X 18.5mm
采用ROHM原装BH1750FVI芯片
供电电源 :3-5v
数据范围:0-65535
传感器内置16bitAD转换器
直接数字输出,省略复杂的计算,省略标定
不区分环境光源
接近于视觉灵敏度的分光特性
可对广泛的亮度进行1勒克斯的高精度测定
接线方法:
————————————————
三、示例代码
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()
四、演示效果
来源:https://blog.csdn.net/zhusongziye/article/details/129293358
Copyright © 2014 ESP56.com All Rights Reserved
执行时间: 0.007253885269165 seconds