Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 76 additions & 0 deletions tests/scenarios/board_temperature_comparison.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,82 @@ tests:
expect_true: true
mode: [hardware]

- name: "Offset-align all sensors to WSEN-HIDS reference"
action: hardware_script
script: |
import sys
sys.path.insert(0, '/remote/hts221')
sys.path.insert(0, '/remote/wsen-hids')
sys.path.insert(0, '/remote/wsen-pads')
sys.path.insert(0, '/remote/lis2mdl')

from machine import I2C
from time import sleep_ms

i2c = I2C(1)

# Initialize all sensors
from wsen_hids.device import WSEN_HIDS
ref = WSEN_HIDS(i2c)

from hts221.device import HTS221
hts = HTS221(i2c)
hts.poweroff()
sleep_ms(20)
hts.poweron()
sleep_ms(50)

from wsen_pads.device import WSEN_PADS
pads = WSEN_PADS(i2c)

from lis2mdl.device import LIS2MDL
mag = LIS2MDL(i2c)

# Read reference just before each sensor to minimize drift
ref_t = ref.temperature()
hts_t = hts.temperature()

ref_t2 = ref.temperature()
pads_t = pads.temperature()

ref_t3 = ref.temperature()
mag_t = mag.read_temperature_c()

print('--- Before offset alignment ---')
print(' WSEN-HIDS (ref): ' + str(round(ref_t, 2)) + ' C')
print(' HTS221: ' + str(round(hts_t, 2)) + ' C')
print(' WSEN-PADS: ' + str(round(pads_t, 2)) + ' C')
print(' LIS2MDL: ' + str(round(mag_t, 2)) + ' C')

spread_before = max(hts_t, pads_t, mag_t, ref_t) - min(hts_t, pads_t, mag_t, ref_t)
print(' Spread: ' + str(round(spread_before, 2)) + ' C')

# Apply offset to align each sensor to the reference reading
hts.set_temp_offset(ref_t - hts_t)
pads.set_temp_offset(ref_t2 - pads_t)
mag.set_temp_offset(ref_t3 - mag_t)

# Re-read after offset alignment
sleep_ms(50)
ref_t4 = ref.temperature()
hts_t2 = hts.temperature()
pads_t2 = pads.temperature()
mag_t2 = mag.read_temperature_c()

print('--- After offset alignment ---')
print(' WSEN-HIDS (ref): ' + str(round(ref_t4, 2)) + ' C')
print(' HTS221: ' + str(round(hts_t2, 2)) + ' C')
print(' WSEN-PADS: ' + str(round(pads_t2, 2)) + ' C')
print(' LIS2MDL: ' + str(round(mag_t2, 2)) + ' C')

spread_after = max(hts_t2, pads_t2, mag_t2, ref_t4) - min(hts_t2, pads_t2, mag_t2, ref_t4)
print(' Spread: ' + str(round(spread_after, 2)) + ' C')

# After alignment, spread should be < 2°C
result = spread_after < 2.0
expect_true: true
mode: [hardware]

- name: "Temperature values feel correct"
action: manual
prompt: "Les températures lues sont-elles cohérentes entre elles et avec l'ambiance ?"
Expand Down
Loading