[[FrontPage]] objectPage http://www.yama-lab.org/fwb4pi/index.php?i2c-sensors-ex3-w1 or http://www.yama-lab.org/fwb4pi/index.php?i2c-sensors-ex3-w1 device yamaRasPiDp9_1 or yamaRasPiDp9_2 start after no write for 10 min. command: set readInterval=30000 command: set execInterval=0 command: set reportLength=120 command: program sensors program: 'ex("service","clear sendBuffer") program: ' program: ' init i2c program: ex("pi4j", "i2c use 1") program: ' program: ' init hdc1080 program: ex("pi4j", "i2c write2 0x40,0x02,0x10,0x00") ' config program: ' program: 'get temp program: ex("pi4j", "i2c write-b 0x40,0x00") ' temp program: delay(15) program: v1s=ex("pi4j", "i2c read-A-2 0x40") ' get temp program: temp=s2i(v1s)/65536.0*165-40 program: ' program: 'get humidity program: ex("pi4j", "i2c write-b 0x40,0x01") ' get humidity program: delay(15) program: v2s=ex("pi4j", "i2c read-A-2 0x40") 'humid program: humid=s2i(v2s)/65536.0*100 program: ex("service","putSendBuffer device=temp, Date="+ex("service","getCurrentDate.")+", v="+temp) program: ex("service","putSendBuffer device=humid, Date="+ex("service","getCurrentDate.")+",v="+humid) program: ' program: ' init lux sensor program: ex("pi4j", "i2c write1 0x29,0x80,0x03") 'power up the tsl2561 lux sensor program: ex("pi4j", "i2c write1 0x29,0x81,0x00") program: ex("pi4j", "i2c write1 0x29,0x86,0x00") 'scale program: ex("pi4j", "i2c write1 0x29,0x80,0x00") 'power down program: ex("pi4j", "i2c write1 0x29,0x80,0x03") ' power up again program: delay(50) program: ' program: 'get the lux value program: v1=ex("pi4j", "i2c read1 0x29,0x8c") program: v2=ex("pi4j", "i2c read1 0x29,0x8d") program: v=s2i(v2)*256+s2i(v1) program: ex("service","putSendBuffer device=lux, Date="+ex("service","getCurrentDate.")+", v="+v) program: ' program: ' init barometer , MPL3115A2 program: 'ex("pi4j", "i2c write1 0x60,0x26,0xbb") 'set to altmeter with an OSR=128 program: 'ex("pi4j", "i2c write1 0x60,0x13,0x07") 'enable data flags in PT_DATA_CFG program: 'ex("pi4j", "i2c write1 0x60,0x28,0x11") 'set int to acive low open drain program: 'ex("pi4j", "i2c write1 0x60,0x29,0x80") 'enabledrdy interrupt program: 'ex("pi4j", "i2c write1 0x60,0x26,0x39") 'Active mode, OSR=128, barometer mode(0x39) program: 'delay(10) program: ' program: '#define CTRL_REG1 0x26 program: ' program: ' init program: ' - set Mode Stanby program: ' -- clear Register Bit CTRL_REG1 0x01 program: ' --- temp = i2cRead(CTRL_REG1) program: temps=ex("pi4j", "i2c read1 0x60,0x26") program: ' --- temp &= ~(0x01) program: temp=s2i(temps) program: temp=temp & 0xfe program: ' --- i2cwrite(CTRL_REG1, 0x01) program: ex("pi4j", "i2c write1 0x60,0x26,"+temp) program: ' program: delay(1) program: ' program: ' - set Mode Altimeter program: ' -- set Register Bit CTR_REG1 0x80 program: ' --- temp = i2cread(CTR_REG1) program: temps=ex("pi4j","i2c read1 0x60,0x26") program: ' --- temp |= 0x80 program: temp=s2i(temps) program: temp=temp | 0x80 program: ' --- i2cwrite(CTR_REG1, temp) program: ex("pi4j", "i2c write1 0x60, 0x26, "+temp) program: ' program: delay(1) program: ' program: ' - set Over Sample Rate r(=7) program: ' -- if r >7 then r=7; program: ' -- r<<=3 program: r=7*8 '8=2^3 program: ' -- temp = i2cRead(CTRL_REG1) program: temps=ex("pi4j", "i2c read1 0x60,0x26") program: ' -- temp &= 0xc7 program: temp=s2i(temps) program: temp=temp & 0xc7 program: ' -- temp |= r program: temp= temp | r program: ' -- i2cwrite(CTRL_REG1, temp) program: ex("pi4j", "i2c write1 0x60, 0x26, "+temp) program: ' program: delay(1) program: ' program: ex("pi4j", "i2c close.") program: ex("service","sendResults.") command: end sensors command: run sensors result: device=temp, Date=2019/2/23/ 17:39:4, v=19.40765380859375 device=humid, Date=2019/2/23/ 17:39:4,v=48.291015625 device=lux, Date=2019/2/23/ 17:39:4, v=13 currentDevice="yamaRasPiDp1_1",Date=2019/2/23/ 17:39:4 device=temp, Date=2019/2/23/ 17:39:33, v=19.48822021484375 device=humid, Date=2019/2/23/ 17:39:33,v=48.291015625 device=lux, Date=2019/2/23/ 17:39:33, v=13 currentDevice="yamaRasPiDp1_1",Date=2019/2/23/ 17:39:33