BH1750
/
main.py
40 строк · 1.9 Кб
1# micropython
2# mail: goctaprog@gmail.com
3# MIT license
4
5
6# Please read this before use!: https://www.mouser.com/datasheet/2/348/bh1750fvi-e-186247.pdf
7from machine import I2C
8import bh1750
9from sensor_pack.bus_service import I2cAdapter
10import time
11
12if __name__ == '__main__':
13# пожалуйста установите выводы scl и sda в конструкторе для вашей платы, иначе ничего не заработает!
14# please set scl and sda pins for your board, otherwise nothing will work!
15# https://docs.micropython.org/en/latest/library/machine.I2C.html#machine-i2c
16# i2c = I2C(0, scl=Pin(13), sda=Pin(12), freq=400_000) # для примера
17# bus = I2C(scl=Pin(4), sda=Pin(5), freq=100000) # на esp8266 !
18# Внимание!!!
19# Замените id=1 на id=0, если пользуетесь первым портом I2C !!!
20# Warning!!!
21# Replace id=1 with id=0 if you are using the first I2C port !!!
22i2c = I2C(id=1, freq=400_000) # on Arduino Nano RP2040 Connect tested
23adaptor = I2cAdapter(i2c)
24sol = bh1750.Bh1750(adaptor)
25
26# если у вас посыпались исключения EIO, то проверьте все соединения.
27# if you get EIO exceptions, then check all connections.
28# Радиотехника - наука о контактах! РТФ-Чемпион!
29sol.power(on=True) # Sensor Of Lux
30sol.set_mode(continuously=True, high_resolution=True)
31sol.measurement_accuracy = 1.0 # default value
32old_lux = curr_max = 1.0
33
34for lux in sol:
35if lux != old_lux:
36curr_max = max(lux, curr_max)
37lt = time.localtime()
38print(f"{lt[3:6]}\tIllumination [lux]: {lux}.; max: {curr_max}.; Normalized [%]: {100*lux/curr_max}.")
39old_lux = lux
40time.sleep_ms(sol.get_conversion_cycle_time())
41