差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
pir [2023/07/21 13:51] gaohancheng |
pir [2023/07/24 09:47] (当前版本) gaohancheng |
||
---|---|---|---|
行 53: | 行 53: | ||
目前PIR传感器有以下的用处: | 目前PIR传感器有以下的用处: | ||
* 安防系统:PIR传感器常用于安防系统,例如家庭安全系统或办公室安全系统。当有人进入被监控的区域时,PIR传感器会检测到其体温所产生的红外辐射变化,并触发警报或其他相应的安全措施。 | * 安防系统:PIR传感器常用于安防系统,例如家庭安全系统或办公室安全系统。当有人进入被监控的区域时,PIR传感器会检测到其体温所产生的红外辐射变化,并触发警报或其他相应的安全措施。 | ||
- | {{ :rc2.jpg?500 |}} | + | {{ :rc2.jpg?300 |}} |
* 照明控制:PIR传感器可用于自动控制照明系统。通过检测房间内是否有人活动,PIR传感器可以向控制器发送信号,从而控制灯光的开关和亮度,实现智能节能的照明系统。 | * 照明控制:PIR传感器可用于自动控制照明系统。通过检测房间内是否有人活动,PIR传感器可以向控制器发送信号,从而控制灯光的开关和亮度,实现智能节能的照明系统。 | ||
- | {{ :rc3.jpg?500 |}} | + | {{ :rc3.jpg?300 |}} |
* 自动化系统:PIR传感器也广泛应用于建筑自动化系统,如自动门、自动电梯和自动洗手间等。当有人接近时,PIR传感器可以检测到并触发相应的自动化操作,提供方便性和舒适性。 | * 自动化系统:PIR传感器也广泛应用于建筑自动化系统,如自动门、自动电梯和自动洗手间等。当有人接近时,PIR传感器可以检测到并触发相应的自动化操作,提供方便性和舒适性。 | ||
- | {{ :rc5.jpg?500 |}} | + | {{ :rc5.jpg?300 |}} |
* 能源管理:PIR传感器可用于能源管理系统,例如管理办公室或商店中的空调和供暖系统。当检测到没有人活动时,传感器可以自动降低或关闭能源消耗较高的设备,以节省能源。 | * 能源管理:PIR传感器可用于能源管理系统,例如管理办公室或商店中的空调和供暖系统。当检测到没有人活动时,传感器可以自动降低或关闭能源消耗较高的设备,以节省能源。 | ||
- | {{ :rc7.jpg?500 |}} | + | {{ :rc7.jpg?300 |}} |
* 应用于健康监测:在医疗领域,PIR传感器可用于监测人体的运动和活动,例如睡眠监测、老年人护理等。通过检测身体的微小运动,传感器可以提供有关人体活动模式和健康状况的信息。 | * 应用于健康监测:在医疗领域,PIR传感器可用于监测人体的运动和活动,例如睡眠监测、老年人护理等。通过检测身体的微小运动,传感器可以提供有关人体活动模式和健康状况的信息。 | ||
- | {{ :rc8.jpg?500 |}} | + | {{ :rc8.jpg?300 |}} |
### 4. 主要的无源红外传感器供应商 | ### 4. 主要的无源红外传感器供应商 | ||
* **[[https://www.st.com/content/st_com/en.html|意法半导体(STMicroelectronics)]]**:作为全球领先的半导体公司之一,意法半导体提供了多种无源红外传感器产品,包括接近传感器、手势识别传感器和红外遥控解码器。 | * **[[https://www.st.com/content/st_com/en.html|意法半导体(STMicroelectronics)]]**:作为全球领先的半导体公司之一,意法半导体提供了多种无源红外传感器产品,包括接近传感器、手势识别传感器和红外遥控解码器。 | ||
行 69: | 行 69: | ||
### 5. 参考案列 | ### 5. 参考案列 | ||
- | | + | 针对与本次无源红外传感器,我们采用了GY——906无源红外温度传感器(基本原理与PIR传感器没有太大差别)与基于RP2040的逻辑/协议/信号调试助手——十二指神探进行联接,通过micropython语言来编译相关代码,实现其功能: |
+ | {{ :rp2040_datasheet.png?500 |}} | ||
+ | 代码如下: | ||
+ | from machine import Pin, I2C | ||
+ | import time | ||
+ | |||
+ | i2c = I2C(1, scl=Pin(23), sda=Pin(22)) | ||
+ | address = 0x5A | ||
+ | |||
+ | while True: | ||
+ | i2c.writeto(address, bytearray([0x07]) | ||
+ | time.sleep_ms(500) | ||
+ | |||
+ | # 读取温度数据 | ||
+ | data = i2c.readfrom(address, 3) | ||
+ | temp_raw = (data[0] << 8) + data[1] | ||
+ | temp_celsius = (temp_raw * 0.02) - 273.15 | ||
+ | temp_fahrenheit = (temp_celsius * 9 / 5) + 32 | ||
+ | | ||
+ | print("Temperature: {:.2f}°C / {:.2f}°F".format(temp_celsius, temp_fahrenheit)) | ||
+ | | ||
+ | time.sleep(1) |