|
@@ -7,48 +7,51 @@
|
|
|
-- MIT license, http://opensource.org/licenses/MIT
|
|
|
-- ***************************************************************************
|
|
|
local moduleName = ...
|
|
|
- local M = {}
|
|
|
- _G[moduleName] = M
|
|
|
- --I2C slave address of GY-30
|
|
|
- local GY_30_address = 0X23
|
|
|
- -- i2c interface ID
|
|
|
- local id = 0
|
|
|
- --LUX
|
|
|
- local l
|
|
|
- --CMD
|
|
|
- local CMD = 0x10
|
|
|
- local init = false
|
|
|
- function M.init(sda, scl)
|
|
|
- i2c.setup(id, sda, scl, i2c.SLOW)
|
|
|
- --print("i2c ok..")
|
|
|
- init = true
|
|
|
- end
|
|
|
- local function read_data(ADDR, commands, length)
|
|
|
- i2c.start(id)
|
|
|
- i2c.address(id, ADDR, i2c.TRANSMITTER)
|
|
|
- i2c.write(id, commands)
|
|
|
- i2c.stop(id)
|
|
|
- i2c.start(id)
|
|
|
- i2c.address(id, ADDR,i2c.RECEIVER)
|
|
|
- tmr.delay(200000)
|
|
|
- c = i2c.read(id, length)
|
|
|
- i2c.stop(id)
|
|
|
- return c
|
|
|
- end
|
|
|
- local function read_lux()
|
|
|
- dataT = read_data(GY_30_address, CMD, 2)
|
|
|
- UT = string.byte(dataT, 1) * 256 + string.byte(dataT, 2)
|
|
|
- l = (UT*1000/12)
|
|
|
- return(l)
|
|
|
- end
|
|
|
- function M.read()
|
|
|
- if (not init) then
|
|
|
- print("init() must be called before read.")
|
|
|
- else
|
|
|
- read_lux()
|
|
|
- end
|
|
|
- end
|
|
|
- function M.getlux()
|
|
|
- return l
|
|
|
- end
|
|
|
- return M
|
|
|
+local M = {}
|
|
|
+_G[moduleName] = M
|
|
|
+ --I2C slave address of GY-30
|
|
|
+ local GY_30_address = 0x23
|
|
|
+ -- i2c interface ID
|
|
|
+ local id = 0
|
|
|
+ --LUX
|
|
|
+ local l
|
|
|
+ --CMD
|
|
|
+ local CMD = 0x10
|
|
|
+ local init = false
|
|
|
+ --Make it more faster
|
|
|
+ local i2c = i2c
|
|
|
+ function M.init(sda, scl)
|
|
|
+ i2c.setup(id, sda, scl, i2c.SLOW)
|
|
|
+ --print("i2c ok..")
|
|
|
+ init = true
|
|
|
+end
|
|
|
+local function read_data(ADDR, commands, length)
|
|
|
+ i2c.start(id)
|
|
|
+ i2c.address(id, ADDR, i2c.TRANSMITTER)
|
|
|
+ i2c.write(id, commands)
|
|
|
+ i2c.stop(id)
|
|
|
+ i2c.start(id)
|
|
|
+ i2c.address(id, ADDR,i2c.RECEIVER)
|
|
|
+ tmr.delay(200000)
|
|
|
+ c = i2c.read(id, length)
|
|
|
+ i2c.stop(id)
|
|
|
+ return c
|
|
|
+end
|
|
|
+local function read_lux()
|
|
|
+ dataT = read_data(GY_30_address, CMD, 2)
|
|
|
+ --Make it more faster
|
|
|
+ UT = dataT:byte(1) * 256 + dataT:byte(2)
|
|
|
+ l = (UT*1000/12)
|
|
|
+ return(l)
|
|
|
+end
|
|
|
+function M.read()
|
|
|
+ if (not init) then
|
|
|
+ print("init() must be called before read.")
|
|
|
+ else
|
|
|
+ read_lux()
|
|
|
+ end
|
|
|
+end
|
|
|
+function M.getlux()
|
|
|
+ return l
|
|
|
+end
|
|
|
+return M
|