编写程序实现智能路灯,根据车流量自动调节亮度,有车亮无车暗,节能降耗。

张开发
2026/5/9 15:07:59 15 分钟阅读
编写程序实现智能路灯,根据车流量自动调节亮度,有车亮无车暗,节能降耗。
项目名称Smart Street Light Adaptive Dimming System (智能路灯车流感应调光系统)一、 实际应用场景描述在城市主干道或高速公路上路灯通常彻夜长明100%亮度即使在深夜车流稀少时段也如此造成巨大电能浪费。智能仪器视角路灯杆底部安装 车辆检测器如地感线圈、微波雷达或红外对管作为开关量/模拟量输入。路灯 LED 驱动电源支持 0‑10V 或 PWM 调光作为执行器输出。系统需在毫秒级响应车辆出现动态调整亮度。二、 引入痛点1. 能源浪费传统路灯无论有无车辆均全功率运行深夜能耗极高。2. 光污染全夜长明对周边居民造成光侵扰。3. 维护成本高灯具长期满负荷工作光衰快寿命缩短。4. 缺乏弹性无法应对突发车流如急救车经过或特殊天气雾天需增亮。三、 核心逻辑讲解本程序的核心逻辑基于智能仪器的“事件触发”与“非接触式测量”思想1. 车辆检测 (Detection)模拟地感线圈或雷达检测是否有车辆通过。2. 状态机管理 (State Machine)*IDLE (空闲)无车路灯维持 30% 亮度基础照明。*VEHICLE_DETECTED (检测到车辆)瞬间提升至 100% 亮度。*COOLDOWN (冷却期)车辆离开后延时数秒再恢复低亮。3. PWM 调光 (Dimming Control)将亮度百分比转换为 PWM 占空比0‑100%模拟控制 LED 恒流驱动源。四、 代码模块化与实现我们将代码分为三个模块traffic_sensor.py模拟车流检测、light_driver.py模拟PWM调光、main.py主控制逻辑。1. traffic_sensor.py - 模拟车流量传感器traffic_sensor.py模拟智能仪器的车辆检测模块 (地感线圈/雷达)import randomfrom datetime import datetimefrom enum import Enum, autoclass VehicleStatus(Enum):PRESENT auto() # 有车ABSENT auto() # 无车class TrafficSensor:模拟交通流量传感器在真实场景中这会是 GPIO 输入或串口数据def __init__(self, detection_probability: float 0.3):self.detection_probability detection_probabilityself.last_status VehicleStatus.ABSENTprint(f[{datetime.now()}] 车流传感器初始化完成。)def scan_road(self) - VehicleStatus:模拟扫描路面状况使用随机数模拟车辆出现的概率# 模拟随机事件if random.random() self.detection_probability:status VehicleStatus.PRESENTelse:status VehicleStatus.ABSENT# 仅当状态改变时打印信息if status ! self.last_status:if status VehicleStatus.PRESENT:print(\n [传感器触发] 检测到车辆接近)else:print(\n️ [传感器恢复] 车辆已驶离。)self.last_status statusreturn status2. light_driver.py - 模拟路灯调光驱动light_driver.py模拟智能路灯的LED驱动与PWM调光模块from dataclasses import dataclassdataclassclass LightDriver:LED 路灯驱动类接收亮度百分比并转换为 PWM 输出current_brightness: float 0.0def set_brightness(self, percentage: float):设置路灯亮度参数:percentage (float): 亮度百分比 (0.0 - 100.0)# 限制输入范围clamped_percentage max(0.0, min(100.0, percentage))if abs(self.current_brightness - clamped_percentage) 0.1:self.current_brightness clamped_percentage# 模拟 PWM 输出信号pwm_value int((clamped_percentage / 100.0) * 255)print(f [调光指令] 亮度: {clamped_percentage:6.1f}% | PWM占空比: {pwm_value}/255)3. main.py - 程序入口与状态机控制main.py智能路灯主控制程序import timefrom datetime import datetimefrom traffic_sensor import TrafficSensor, VehicleStatusfrom light_driver import LightDriver# --- 系统配置 ---IDLE_BRIGHTNESS 30.0 # 无车时的基础亮度 (%)ACTIVE_BRIGHTNESS 100.0 # 有车时的全亮亮度 (%)COOLDOWN_SECONDS 5 # 车辆离开后的延时恢复时间 (秒)def main():print( * 60)print( 智能路灯车流感应节能系统启动)print( * 60)# --- 初始化 ---sensor TrafficSensor(detection_probability0.2) # 20%概率检测到车driver LightDriver()# 初始状态低亮driver.set_brightness(IDLE_BRIGHTNESS)last_vehicle_time Nonesystem_state IDLEprint(\n开始监控路面...\n)# --- 主控制循环 (事件驱动) ---try:while True:vehicle_status sensor.scan_road()timestamp datetime.now().strftime(%H:%M:%S)# --- 状态机逻辑 ---if vehicle_status VehicleStatus.PRESENT:if system_state ! ACTIVE:print(f\n[{timestamp}] 状态变更: IDLE - ACTIVE)driver.set_brightness(ACTIVE_BRIGHTNESS)system_state ACTIVElast_vehicle_time time.time()elif vehicle_status VehicleStatus.ABSENT and system_state ACTIVE:# 车辆刚离开进入冷却计时elapsed_time time.time() - last_vehicle_timeif elapsed_time COOLDOWN_SECONDS:print(f\n[{timestamp}] 状态变更: ACTIVE - IDLE)driver.set_brightness(IDLE_BRIGHTNESS)system_state IDLEtime.sleep(1)except KeyboardInterrupt:print(\n\n系统已手动停止。)print(\n程序结束。)if __name__ __main__:main()五、 README.md 文件# Smart Street Light Adaptive Dimming System这是一个基于 Python 实现的智能路灯车流感应调光系统模拟程序。本项目结合了《智能仪器》课程中的非接触式检测与 PWM 控制技术旨在实现城市照明的节能减排。## 项目结构smart_street_light/├── traffic_sensor.py # 模拟车流量检测传感器├── light_driver.py # 模拟LED调光驱动├── main.py # 主控制逻辑与状态机└── README.md # 项目说明文档## 使用说明### 1. 环境准备确保你已安装 Python 3.8。无需额外依赖库。bash克隆或下载本项目cd smart_street_light### 2. 运行程序bashpython main.py### 3. 预期输出程序将模拟深夜路段1. **默认状态**路灯维持 30% 亮度节能模式。2. **车辆通过**随机检测到车辆路灯瞬间提升至 100% 亮度。3. **车辆离开**5 秒冷却期后路灯自动回落至 30% 亮度。### 4. 参数调整你可以在 main.py 顶部修改以下常量- IDLE_BRIGHTNESS: 无车时的亮度建议 20‑40%。- ACTIVE_BRIGHTNESS: 有车时的亮度通常 100%。- COOLDOWN_SECONDS: 车辆离开后的保持时间。## 硬件部署思路- **传感器**: 使用地埋式地感线圈、微波雷达 (Doppler Radar) 或视频分析摄像头。- **控制器**: ARM Cortex-M 系列 MCU 或 ESP32。- **执行器**: 恒流 LED 驱动电源支持 0‑10V 或 PWM 调光接口。- **联网**: 增加 LoRaWAN/NB‑IoT 模块将数据上传至智慧城市管理平台。六、 核心知识点卡片 (Knowledge Cards)知识点 对应课程内容 说明非接触式测量 传感器技术 雷达/红外检测无需物理接触即可感知物体存在。PWM 调光 电力电子/嵌入式 通过调节脉冲宽度控制 LED 平均电流实现无级调光。状态机 (FSM) 数字逻辑设计IDLE ↔ACTIVE ↔COOLDOWN 的状态流转逻辑。事件驱动 实时系统 系统不盲目轮询而是对“车辆出现”这一事件做出反应。节能控制策略 智能仪器设计 “按需照明”是工业节能的典型范式。七、 总结通过这个“智能路灯”项目我们构建了一个典型的事件驱动型节能控制系统。1. 从粗放管理到精细化管理我们摒弃了“一刀切”的全夜灯模式引入状态机和延时恢复机制在保证行车安全的前提下最大化节能。2. 软硬件解耦traffic_sensor 与light_driver 的分离设计使得未来更换传感器如从雷达换成摄像头或升级灯具如更换调光协议时核心逻辑无需改动。3. 社会价值代码虽小背后却是巨大的环保与经济价值。通过模拟这一逻辑我们理解了智慧城市如何利用 IoT 技术降低碳排放。如果你想进一步深入可以尝试加入 光敏电阻检测环境光 实现“黄昏自动开灯”或加入 NB‑IoT 通信模块 模拟数据上报云端平台利用AI解决实际问题如果你觉得这个工具好用欢迎关注长安牧笛

更多文章