MongooseOS + mjs로 I2C 온도 센서 읽기

9802 단어 MongooseOSmjsI2C
Mongoose js의 I2C 라이브러리를 사용하는 방법으로 힘들었으므로 메모를 남겨 둡니다.
SHT31이라는 센서를 사용하여 기온과 습도를 취합니다.

Mongoose OS + mjs git 관리 개발 환경 구축 - Qiita 로 만든 환경을 사용합니다.

fs/init.js

load("api_config.js");
load("api_mqtt.js");
load("api_net.js");
load("api_sys.js");
load("api_timer.js");
load("api_i2c.js");

let address = 0x44;
let bus = I2C.get_default();

let get_temps = function() {
    let d = "\x2C\x06";
    I2C.write(bus, address, d, d.length, true);
    Sys.usleep(1000);

    let data = I2C.read(bus, address, 6, true);

    print(data);

    let temp = data.at(0) * 256 + data.at(1);
    let cTemp = -45 + 175 * temp / 65535.0;
    let fTemp = -49 + 315 * temp / 65535.0;
    let humidity = 100 * (data.at(3) * 256 + data.at(4)) / 65535.0;

    return [temp, cTemp, fTemp, humidity];
};

Timer.set(
    1000 * 5,
    true /* repeat */,
    function() {
        let res = get_temps();
        print("t:");
        print(res[1]);
        print("h:");
        print(res[3]);
        // MQTT.pub('home/livingroom/brightness', JSON.stringify(lux), 0);
    },
    null
);

SHT31 데이터 시트는 이것입니다. htp // 아키즈키덴시. 이 m/도 w응아 d/ds/센시리온/센시리온_후미아 ty_전자 rs_SHT3x_ぢS_ pdf

집어넣은 곳



공식 라이브러리 api_i2c.js 문서
코드 : htps : // 기주 b. 이 m / 몽고 오세오 s-bs / 2c / bb / ms r / mjs_fs / appi_i 2c. js
  • I2C.write 사용
  • sleep 필요
  • I2C.read 사용법
  • I2C.write(bus, address, "\x2C\x06", 2, true);
    Sys.usleep(1000);
    let data = I2C.read(bus, address, 6, true);
    

    파이썬과 비교
    bus.write_i2c_block_data(address, 0x2C, [0x06])
    time.sleep(0.5)
    data = bus.read_i2c_block_data(address, 0x00, 6)
    

    address는 0x44입니다.
    buf는 데이터 시트에 있음을 지정합니다.
    6byte 읽을 수 있습니다.



    참고



    ControlEverythingCommunity/SHT31: Humidity and Temperature Sensor
    Python, Arduino의 구현 샘플 등 ↑

    좋은 웹페이지 즐겨찾기