NCIR2 Unit
该库是 Unit NCIR2 的驱动程序。
支持以下产品:
UiFlow2 应用示例
红外温度显示
在 UiFlow2 中打开 m5cores3_ncir2_base_example.m5f2 项目。
该示例使用 M5Stack CoreS3 开发板搭配 NCIR2 红外温度传感器实时测量温度,并在屏幕上显示当前温度值以及低温和高温报警阈值。
UiFlow2 代码块:
示例输出:
None
MicroPython 应用示例
红外温度显示
该示例使用 M5Stack CoreS3 开发板搭配 NCIR2 红外温度传感器实时测量温度,并在屏幕上显示当前温度值以及低温和高温报警阈值。
MicroPython 代码块:
1# SPDX-FileCopyrightText: 2025 M5Stack Technology CO LTD 2# 3# SPDX-License-Identifier: MIT 4 5import os, sys, io 6import M5 7from M5 import * 8from hardware import I2C 9from hardware import Pin 10from unit import NCIR2Unit 11import time 12 13 14title0 = None 15label_temp = None 16label_la = None 17label_ha = None 18label_temp_val = None 19label_la_val = None 20label_ha_val = None 21i2c0 = None 22ncir2_0 = None 23last_time = None 24 25 26def setup(): 27 global \ 28 title0, \ 29 label_temp, \ 30 label_la, \ 31 label_ha, \ 32 label_temp_val, \ 33 label_la_val, \ 34 label_ha_val, \ 35 i2c0, \ 36 ncir2_0, \ 37 last_time 38 M5.begin() 39 Widgets.fillScreen(0x222222) 40 title0 = Widgets.Title("Temperature meassure", 3, 0xFFFFFF, 0x0000FF, Widgets.FONTS.DejaVu24) 41 label_temp = Widgets.Label("Temp: ", 10, 116, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu24) 42 label_la = Widgets.Label( 43 "low temp alarm value: ", 10, 50, 1.0, 0x0000FF, 0x222222, Widgets.FONTS.DejaVu18 44 ) 45 label_ha = Widgets.Label( 46 "high temp alarm value: ", 10, 80, 1.0, 0xFF0000, 0x222222, Widgets.FONTS.DejaVu18 47 ) 48 label_temp_val = Widgets.Label(" ", 95, 116, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu24) 49 label_la_val = Widgets.Label(" ", 232, 50, 1.0, 0x0000FF, 0x222222, Widgets.FONTS.DejaVu18) 50 label_ha_val = Widgets.Label(" ", 239, 80, 1.0, 0xFF0000, 0x222222, Widgets.FONTS.DejaVu18) 51 52 i2c0 = I2C(0, scl=Pin(1), sda=Pin(2), freq=100000) 53 ncir2_0 = NCIR2Unit(i2c0, 0x5A) 54 last_time = time.ticks_ms() 55 label_la_val.setText(str(ncir2_0.get_temperature_threshold(0x20))) 56 label_ha_val.setText(str(ncir2_0.get_temperature_threshold(0x22))) 57 58 59def loop(): 60 global \ 61 title0, \ 62 label_temp, \ 63 label_la, \ 64 label_ha, \ 65 label_temp_val, \ 66 label_la_val, \ 67 label_ha_val, \ 68 i2c0, \ 69 ncir2_0, \ 70 last_time 71 M5.update() 72 if (time.ticks_diff((time.ticks_ms()), last_time)) > 500: 73 last_time = time.ticks_ms() 74 label_temp.setText(str((str((ncir2_0.get_temperature_value)) + str(" C")))) 75 76 77if __name__ == "__main__": 78 try: 79 setup() 80 while True: 81 loop() 82 except (Exception, KeyboardInterrupt) as e: 83 try: 84 from utility import print_error_msg 85 86 print_error_msg(e) 87 except ImportError: 88 print("please update to latest firmware")
示例输出:
None
API参考
NCIR2Unit
- class unit.hbridge.NCIR2Unit
创建一个 NCIR2Unit 对象。
- 参数:
i2c (I2C | PAHUBUnit) – I2C 端口,
address (int) – NCIR2Unit 从机地址,默认为 0x5A。
UiFlow2 代码块:

MicroPython 代码块:
from unit import NCIR2Unit unit_ncir2_0 = NCIR2Unit(i2c0, 0x5A)
- get_temperature_value()
获取对象温度。
- returns:
object 温度(单位:℃)
- rtype:
float
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.get_temperature_value()
- get_emissivity_value()
获取当前发射率。
- 返回:
发射率。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.get_emissivity_value()
- set_emissivity_value(emissive)
设置发射率。
根据被测材料的不同,它会影响温度测量精度。
黑体的发射率为 1.00(理想发射体)。
闪亮的金属通常具有较低的发射率值(低于 0.1)。
像电工胶带或人体皮肤这类深色、粗糙的表面通常具有较高的发射率(高于 0.95)。
- Param:
int emissive:发射率,范围:0 ~ 1。
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.set_emissivity_value(emissive)
- get_temperature_threshold(alarm_reg)
获取温度报警阈值。
- Param:
int alarm_reg:ALARM_LOW_TEMP_REG:低温报警阈值寄存器,ALARM_HIGH_TEMP_REG:高温报警阈值寄存器。
- 返回:
报警阈值。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.get_temperature_threshold(alarm_reg)
- set_temperature_threshold(alarm_reg, temp)
设置温度报警阈值。
- Param:
int alarm_reg:温度报警寄存器,ALARM_LOW_TEMP_REG:低温报警阈值寄存器,ALARM_HIGH_TEMP_REG:高温报警阈值寄存器。
- Param:
float temp:报警阈值。
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.set_temperature_threshold(alarm_reg, temp)
- get_temp_alarm_led(alarm_reg)
获取温度报警 RGB LED 值。
- Param:
int alarm_reg:温度报警 RGB LED 寄存器,RGB_LOW_TEMP_REG:低温报警 RGB LED 值寄存器,RGB_HIGH_TEMP_REG:高温报警 RGB LED 值寄存器。
- 返回:
温度报警 RGB LED 值。
- 返回类型:
list, RGB color list in the format [R, G, B], values from 0 to 255.
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.get_temp_alarm_led(alarm_reg)
- set_temp_alarm_led(alarm_reg, rgb)
设置温度报警 RGB LED 值。
- Param:
int alarm_reg:温度报警 RGB LED 寄存器,RGB_LOW_TEMP_REG:低温报警 RGB LED 值寄存器,RGB_HIGH_TEMP_REG:高温报警 RGB LED 值寄存器。
- 参数:
rgb (int) – RGB 颜色值(24 位,范围:0 ~ 0xFFFFFF)。
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.set_temp_alarm_led(alarm_reg, rgb)
- get_temp_buzzer_freq(alarm_reg)
获取温度报警的蜂鸣器频率。
- Param:
int alarm_reg:温度报警蜂鸣器频率寄存器,LOW_TEMP_FREQ_REG:低温报警蜂鸣器频率寄存器,HIGH_TEMP_FREQ_REG:高温报警蜂鸣器频率寄存器。
- 返回:
蜂鸣器频率。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.get_temp_buzzer_freq(alarm_reg)
- set_temp_buzzer_freq(alarm_reg, freq)
设置温度报警的蜂鸣器频率。
- Param:
int alarm_reg:温度报警蜂鸣器频率寄存器,LOW_TEMP_FREQ_REG:低温报警蜂鸣器频率寄存器,HIGH_TEMP_FREQ_REG:高温报警蜂鸣器频率寄存器。
- Param:
int freq:蜂鸣器频率,范围:20~20000 Hz
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.set_temp_buzzer_freq(alarm_reg, freq)
- get_temp_alarm_interval(alarm_reg)
获取蜂鸣器报警间隔。
- Param:
int alarm_reg:蜂鸣器报警间隔寄存器,LOW_ALARM_INTER_REG:低温报警间隔寄存器,HIGH_ALARM_INTER_REG:高温报警间隔寄存器。
- 返回:
蜂鸣器报警间隔。(单位:ms)
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.get_temp_alarm_interval(alarm_reg)
- set_temp_alarm_interval(alarm_reg, interval)
设置蜂鸣器报警间隔。
- Param:
int alarm_reg:蜂鸣器报警间隔寄存器,LOW_ALARM_INTER_REG:低温报警间隔寄存器,HIGH_ALARM_INTER_REG:高温报警间隔寄存器。
- Param:
int interval:报警间隔,范围:1 ~ 5000(单位:ms)。
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.set_temp_alarm_interval(alarm_reg, interval)
- get_temp_buzzer_duty(duty_reg)
获取温度报警蜂鸣器信号的占空比。
- 参数:
duty_reg (int) – 温度报警蜂鸣器信号的占空比寄存器。LOW_ALARM_DUTY_REG:低温报警占空比寄存器。HIGH_ALARM_DUTY_REG:高温报警占空比寄存器。
- 返回:
占空比。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.get_temp_buzzer_duty(duty_reg)
- set_temp_buzzer_duty(duty_reg, duty)
设置温度报警蜂鸣器信号的占空比。
- 参数:
duty_reg (int) – 温度报警蜂鸣器信号的占空比寄存器。LOW_ALARM_DUTY_REG:低温报警占空比寄存器。HIGH_ALARM_DUTY_REG:高温报警占空比寄存器。
- Param:
温度报警蜂鸣器信号占空比,范围:0 ~ 255。
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.set_temp_buzzer_duty(duty_reg, duty)
- get_buzzer_freq()
获取蜂鸣器信号的频率。
- 返回:
频率 (Hz)
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.get_buzzer_freq()
- set_buzzer_freq(freq)
设置蜂鸣器信号的频率。
- Param:
int freq: 蜂鸣器信号频率,范围:20 ~ 20000 (Hz)。
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.set_buzzer_freq(freq)
- get_buzzer_duty()
获取蜂鸣器信号的占空比。
- 返回:
占空比
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.get_buzzer_duty()
- set_buzzer_duty(duty)
设置蜂鸣器信号的占空比。
- Param:
int duty:占空比,范围:0 ~ 255。
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.set_buzzer_duty(duty)
- get_buzzer_control()
获取蜂鸣器控制状态
- 返回:
返回当前蜂鸣器控制状态
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.get_buzzer_control()
- set_buzzer_control(ctrl)
设置蜂鸣器控制状态
- Param:
int ctrl:控制值,0 表示关闭蜂鸣器,1 表示打开蜂鸣器
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.set_buzzer_control(ctrl)
- get_rgb_led()
获取当前 RGB LED 的值
- 返回:
当前 RGB LED 值,格式为 [r, g, b]
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.get_rgb_led()
- set_rgb_led(rgb)
设置 RGB LED 值
- Param:
int rgb:RGB 值,范围为 0 ~ 0xFFFFFF
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.set_rgb_led(rgb)
- get_button_status()
获取按钮状态
- 返回:
按键状态,为 0(未按下)或 1(按下)
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.get_button_status()
- save_config_setting()
保存配置设置
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.save_config_setting()
- get_chip_temperature()
获取芯片温度
- 返回:
芯片温度(摄氏度(°C))
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.get_chip_temperature()
- get_device_spec(mode)
获取设备规格参数
- 返回:
设备规格
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.get_device_spec()
- set_i2c_address(addr)
设置设备的 I2C 地址
- Param:
int addr:I2C 地址范围:1 ~ 127。
UiFlow2 代码块:

MicroPython 代码块:
unit_ncir2_0.set_i2c_address(addr)

