i2c-sensors-ex3
の編集
http://www.yama-lab.org/fwb4pi/index.php?i2c-sensors-ex3
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
01
20240312-01
Basic-ex1
Basic-ex2
Basic-ex3
BracketName
ForTest1
FormattingRules
FrontPage
GetTweTerminalID
Help
I2C-Lx-Ex1
I2CDetect
I2c-Lx-Ex2
I2c-Srb-Ex1
InterWiki
InterWikiName
InterWikiSandBox
LED_and_Button_ex01
LightSensor1
Menu
MenuBar
NetDraw
PHP
PukiWiki
PukiWiki/1.4
PukiWiki/1.4/Manual
PukiWiki/1.4/Manual/Plugin
PukiWiki/1.4/Manual/Plugin/A-D
PukiWiki/1.4/Manual/Plugin/E-G
PukiWiki/1.4/Manual/Plugin/H-K
PukiWiki/1.4/Manual/Plugin/L-N
PukiWiki/1.4/Manual/Plugin/O-R
PukiWiki/1.4/Manual/Plugin/S-U
PukiWiki/1.4/Manual/Plugin/V-Z
RecentDeleted
SandBox
Sensors2
Sensors3
SerialEx1
SerialEx2
ServerMonitorEx1
Servo1
Servo2
Value_insertion_01_20241007
WikiEngines
WikiName
WikiWikiWeb
YukiWiki
basic
capture_20250101
capture_20250115
capture_20250125
capture_20250202
ex0
ex1
ex2
ex3
ex4
getTweChanged
i2c-ADS1115-ex1
i2c-hdc1080-1
i2c-hdc1080-2
i2c-mpl3115a2-ex1
i2c-opt3001-1
i2c-opt3001-ex1
i2c-sensors-ex2
i2c-sensors-ex3
i2c-sensors-ex3-w1
i2c-sensors-ex4
i2c-sensors-ex5
i2c-veml6075
ladyMadonna
map01
map02
map02_bak2
map_02_bak
music
musicTest
musicTest0
pen
pen-ex1
sensor_01_20241007
sensor_02_20241007
sensor_03_20241031
sensor_03_h00
sensor_03_h01
sensor_03_h02
sensor_03_h03
sensor_03_h04
sensor_03_h05
sensor_03_h06
sensor_03_h07
sensor_03_h08
sensor_03_h09
sensor_03_h10
sensor_03_h11
sensor_03_h12
sensor_03_h13
sensor_03_h14
sensor_03_h15
sensor_03_h16
sensor_03_h17
sensor_03_h18
sensor_03_h19
sensor_03_h20
sensor_03_h21
sensor_03_h22
sensor_03_h23
sensor_03_h_class
sensor_04_20241120
sensor_05_202412130001
sensor_06_20241229
sensors-1-class-2
sensors-1-d-16.html
sensors-1-d-class
sensors-1-h-0
sensors-1-h-1
sensors-1-h-10
sensors-1-h-11
sensors-1-h-12
sensors-1-h-13
sensors-1-h-14
sensors-1-h-15
sensors-1-h-16
sensors-1-h-17
sensors-1-h-18
sensors-1-h-19
sensors-1-h-2
sensors-1-h-20
sensors-1-h-21
sensors-1-h-22
sensors-1-h-23
sensors-1-h-3
sensors-1-h-4
sensors-1-h-5
sensors-1-h-6
sensors-1-h-7
sensors-1-h-8
sensors-1-h-9
sensors-class-1
sensors-h-2
simple example
tDressBot_ex1
tDressBot_ex2
tDressBot_ex3
tDressBot_ex4
test02
value_insertion_02
wearable_sign_01
work202401
work20240131
work20240201-01
work20240326-01
work20240330-01
work20240902-01
work20240930
work20241006
[[FrontPage]] objectPage http://www.yama-lab.org/fwb4pi/index.php?i2c-sensors-ex3 or http://www.yama-lab.org/fwb4pi/index.php?i2c-sensors-ex3 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: ' - enable Event Flags program: ' -- i2cwrite(PT_DATA_CFG, 0x07) program: '' ex("pi4j", "i2c write1 0x60, 0x13, 0x07") program: ' program: delay(1) program: ' program: ' - set Mode Active program: ' -- setRegisterBit(CTRL_REG1, 0x01) program: ' --- temp = i2cRead(CTRL_REG1) program: '' temps=ex("pi4j", "i2c read1 0x60, 0x26") program: ' --- temp |= (0x01) program: ''temp=s2i(temps) | 0x01 program: ' --- i2cwrite(CTRL_REG1, 0x01) program: '' ex("pi4j", "i2c write1 0x60,0x26,"+temp) program: ' program: delay(1) program: ' program: ' set Mode Standby 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: ' set ModeBarometer program: ' - clear Register Bit (CTRL_REG1, 0x80) program: ' --- temp = i2cRead(CTRL_REG1) program: '' temps=ex("pi4j", "i2c read1 0x60,0x26") program: ' --- temp &= ~(0x80) program: '' temp=s2i(temps) program: '' temp=temp & 0x7f program: ' --- i2cwrite(CTRL_REG1, 0x01) program: '' ex("pi4j", "i2c write1 0x60,0x26,"+temp) program: ' program: ' set Mode Active program: ' -- setRegisterBit(CTRL_REG1, 0x01) program: ' --- temp = i2cRead(CTRL_REG1) program: '' temps=ex("pi4j", "i2c read1 0x60, 0x26") program: ' --- temp |= (0x01) program: '' temp=s2i(temps) | 0x01 program: ' --- i2cwrite(CTRL_REG1, 0x01) program: '' ex("pi4j", "i2c write1 0x60,0x26,"+temp) program: ' program: ' readPressure program: ' - toggleOneshot() program: ' -- clearRegisterBit(CTRL_REG1, 0x02) // clear OST bit program: ' --- temp = i2cRead(CTRL_REG1) program: '' temps=ex("pi4j", "i2c read1 0x60,0x26") program: ' --- temp &= ~(0x02) program: '' temp=s2i(temps) program: '' temp=temp & 0xfd program: '' ex("pi4j", "i2c write1 0x60,0x26,"+temp) program: ' program: ' -- setRegisterBit(CTRL_REG1, 0x02) // set the OST bit program: ' --- temp = i2cRead(CTRL_REG1) program: ''temps=ex("pi4j", "i2c read1 0x60, 0x26") program: ' --- temp |= (0x02) program: '' temp=s2i(temps) | 0x02 program: '' ex("pi4j", "i2c write1 0x60,0x26,"+temp) program: ' program: ' - if (!pressureDataReady()) ... dataReady(0x04) program: ' -- dataReady(0x04) program: '--- int attempts=0 program: ' --- while((i2cRead(STATUS) & mask) == 0){ program: ' ---- attempts++ program: ' ---- if(attempts > MAX_DATA_READY_ATTEMPTS) return 0 program: ' ---- wait_ms(1) program: ' ---- write fail program: '' for i= 0 to 512 program: '' temps=ex("pi4j", "i2c read1 0x60,0x00") program: '' f=s2i(temps)& 0x04 program: '' if f <> 0 then i=512 program: '' delay(1) program: '' next i program: ' _i2c->start() program: ' if( _i2c->write(MPL3115A2_address!=1) write fail program: ' if( _i2c->write(OUT_P_MSB)!=1) write fail program: ' _i2c->read(MPL3115A2_address, (*p), pressure::size) program: ' p->setPressure() program: ' program: 'readPressure program: ''v1=ex("pi4j", "i2c read1 0x60,0x01") program: ''v2=ex("pi4j", "i2c read1 0x60,0x02") program: ''v3=ex("pi4j", "i2c read1 0x60,0x03") program: ''v=s2i(v1)*1.0 program: ''v=v*256.0+s2i(v2)*1.0 program: ''v=v*4.0+(s2i(v3) /64)*1.0 program: ''v=v/100 program: ''ex("service","putSendBuffer device=pressure, Date="+ex("service","getCurrentDate.")+", v="+v) program: ' program: ex("pi4j", "i2c close.") program: ex("service","sendResults.") command: end sensors command: run sensors result: device=temp, Date=2019/2/24/ 21:2:53, v=-40.00251770019531 device=humid, Date=2019/2/24/ 21:2:53,v=-0.00152587890625 device=lux, Date=2019/2/24/ 21:2:53, v=10 device=temp, Date=2019/2/24/ 21:3:22, v=-40.00251770019531 device=humid, Date=2019/2/24/ 21:3:22,v=-0.00152587890625 device=lux, Date=2019/2/24/ 21:3:22, v=10 currentDevice="yamaRasPiDp1_1",Date=2019/2/24/ 21:3:22
タイムスタンプを変更しない
[[FrontPage]] objectPage http://www.yama-lab.org/fwb4pi/index.php?i2c-sensors-ex3 or http://www.yama-lab.org/fwb4pi/index.php?i2c-sensors-ex3 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: ' - enable Event Flags program: ' -- i2cwrite(PT_DATA_CFG, 0x07) program: '' ex("pi4j", "i2c write1 0x60, 0x13, 0x07") program: ' program: delay(1) program: ' program: ' - set Mode Active program: ' -- setRegisterBit(CTRL_REG1, 0x01) program: ' --- temp = i2cRead(CTRL_REG1) program: '' temps=ex("pi4j", "i2c read1 0x60, 0x26") program: ' --- temp |= (0x01) program: ''temp=s2i(temps) | 0x01 program: ' --- i2cwrite(CTRL_REG1, 0x01) program: '' ex("pi4j", "i2c write1 0x60,0x26,"+temp) program: ' program: delay(1) program: ' program: ' set Mode Standby 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: ' set ModeBarometer program: ' - clear Register Bit (CTRL_REG1, 0x80) program: ' --- temp = i2cRead(CTRL_REG1) program: '' temps=ex("pi4j", "i2c read1 0x60,0x26") program: ' --- temp &= ~(0x80) program: '' temp=s2i(temps) program: '' temp=temp & 0x7f program: ' --- i2cwrite(CTRL_REG1, 0x01) program: '' ex("pi4j", "i2c write1 0x60,0x26,"+temp) program: ' program: ' set Mode Active program: ' -- setRegisterBit(CTRL_REG1, 0x01) program: ' --- temp = i2cRead(CTRL_REG1) program: '' temps=ex("pi4j", "i2c read1 0x60, 0x26") program: ' --- temp |= (0x01) program: '' temp=s2i(temps) | 0x01 program: ' --- i2cwrite(CTRL_REG1, 0x01) program: '' ex("pi4j", "i2c write1 0x60,0x26,"+temp) program: ' program: ' readPressure program: ' - toggleOneshot() program: ' -- clearRegisterBit(CTRL_REG1, 0x02) // clear OST bit program: ' --- temp = i2cRead(CTRL_REG1) program: '' temps=ex("pi4j", "i2c read1 0x60,0x26") program: ' --- temp &= ~(0x02) program: '' temp=s2i(temps) program: '' temp=temp & 0xfd program: '' ex("pi4j", "i2c write1 0x60,0x26,"+temp) program: ' program: ' -- setRegisterBit(CTRL_REG1, 0x02) // set the OST bit program: ' --- temp = i2cRead(CTRL_REG1) program: ''temps=ex("pi4j", "i2c read1 0x60, 0x26") program: ' --- temp |= (0x02) program: '' temp=s2i(temps) | 0x02 program: '' ex("pi4j", "i2c write1 0x60,0x26,"+temp) program: ' program: ' - if (!pressureDataReady()) ... dataReady(0x04) program: ' -- dataReady(0x04) program: '--- int attempts=0 program: ' --- while((i2cRead(STATUS) & mask) == 0){ program: ' ---- attempts++ program: ' ---- if(attempts > MAX_DATA_READY_ATTEMPTS) return 0 program: ' ---- wait_ms(1) program: ' ---- write fail program: '' for i= 0 to 512 program: '' temps=ex("pi4j", "i2c read1 0x60,0x00") program: '' f=s2i(temps)& 0x04 program: '' if f <> 0 then i=512 program: '' delay(1) program: '' next i program: ' _i2c->start() program: ' if( _i2c->write(MPL3115A2_address!=1) write fail program: ' if( _i2c->write(OUT_P_MSB)!=1) write fail program: ' _i2c->read(MPL3115A2_address, (*p), pressure::size) program: ' p->setPressure() program: ' program: 'readPressure program: ''v1=ex("pi4j", "i2c read1 0x60,0x01") program: ''v2=ex("pi4j", "i2c read1 0x60,0x02") program: ''v3=ex("pi4j", "i2c read1 0x60,0x03") program: ''v=s2i(v1)*1.0 program: ''v=v*256.0+s2i(v2)*1.0 program: ''v=v*4.0+(s2i(v3) /64)*1.0 program: ''v=v/100 program: ''ex("service","putSendBuffer device=pressure, Date="+ex("service","getCurrentDate.")+", v="+v) program: ' program: ex("pi4j", "i2c close.") program: ex("service","sendResults.") command: end sensors command: run sensors result: device=temp, Date=2019/2/24/ 21:2:53, v=-40.00251770019531 device=humid, Date=2019/2/24/ 21:2:53,v=-0.00152587890625 device=lux, Date=2019/2/24/ 21:2:53, v=10 device=temp, Date=2019/2/24/ 21:3:22, v=-40.00251770019531 device=humid, Date=2019/2/24/ 21:3:22,v=-0.00152587890625 device=lux, Date=2019/2/24/ 21:3:22, v=10 currentDevice="yamaRasPiDp1_1",Date=2019/2/24/ 21:3:22
テキスト整形のルールを表示する