智慧路灯解决方案
方案概述
智慧路灯是智慧城市最典型的 NB-IoT 应用场景,通过为路灯加装智能控制器,实现远程监控、按需调光、故障预警,可节省电费 30-50%。
系统组成
智慧路灯系统:
┌─────────────────────────────────────────────────────┐
│ 路灯控制器(单灯控制器) │
│ NB-IoT 模组(BC660K)+ MCU + 电量计 + 调光模块 │
└─────────────────────────────────────────────────────┘
↓ NB-IoT 网络
┌─────────────────────────────────────────────────────┐
│ 集中器(可选) │
│ 多个单灯控制器 → 集中器 → 4G 上传 │
└─────────────────────────────────────────────────────┘
↓ 4G/NB-IoT 网络
┌─────────────────────────────────────────────────────┐
│ 路灯管理平台 │
│ GIS 地图 / 单灯控制 / 能耗统计 / 故障管理 / 报表 │
└─────────────────────────────────────────────────────┘单灯控制器设计
硬件设计
单灯控制器组成:
供电:220V AC → 开关电源 → 12V DC → LDO → 3.3V
主控:STM32L4(低功耗 MCU)
通信:BC660K-GL(NB-IoT)
- 天线:内置 FPC 天线(安装在灯杆内)
- SIM:运营商物联网 SIM 卡
调光:TRIAC 调光电路(0-100% 调光)
- 适用:LED 驱动器(支持 0-10V 或 PWM 调光)
计量:CS5460A 电量计芯片
- 测量:电压、电流、功率、电量
- 接口:SPI
传感器:
- 光照传感器(BH1750):检测环境光,自动开关灯
- 温度传感器(DS18B20):监控灯具温度
存储:W25Q32(4MB Flash):本地数据缓存调光控制
c
// TRIAC 调光控制(过零检测 + 相位控制)
#include "stm32l4xx_hal.h"
#define ZERO_CROSS_PIN GPIO_PIN_0
#define TRIAC_GATE_PIN GPIO_PIN_1
volatile uint8_t brightness = 100; // 0-100%
volatile uint8_t zero_cross_flag = 0;
// 过零检测中断
void EXTI0_IRQHandler(void) {
if (__HAL_GPIO_EXTI_GET_IT(ZERO_CROSS_PIN)) {
zero_cross_flag = 1;
__HAL_GPIO_EXTI_CLEAR_IT(ZERO_CROSS_PIN);
}
}
// 调光任务
void dimming_task(void) {
while (1) {
if (zero_cross_flag) {
zero_cross_flag = 0;
if (brightness == 0) {
// 关灯
HAL_GPIO_WritePin(GPIOA, TRIAC_GATE_PIN, GPIO_PIN_RESET);
} else if (brightness == 100) {
// 全亮
HAL_GPIO_WritePin(GPIOA, TRIAC_GATE_PIN, GPIO_PIN_SET);
} else {
// 相位控制:延迟时间越长,亮度越低
// 50Hz 交流电,半周期 10ms
uint32_t delay_us = (100 - brightness) * 100; // 0-10000μs
HAL_Delay_us(delay_us);
// 触发 TRIAC
HAL_GPIO_WritePin(GPIOA, TRIAC_GATE_PIN, GPIO_PIN_SET);
HAL_Delay_us(100); // 触发脉冲宽度
HAL_GPIO_WritePin(GPIOA, TRIAC_GATE_PIN, GPIO_PIN_RESET);
}
}
}
}时控策略
时间表配置
json
// 路灯时控策略(下发到控制器)
{
"schedule_id": "SCH_001",
"name": "标准时控策略",
"rules": [
{
"time": "18:00",
"action": "on",
"brightness": 100,
"description": "日落开灯,全亮"
},
{
"time": "22:00",
"action": "dim",
"brightness": 70,
"description": "22点后降低亮度"
},
{
"time": "00:00",
"action": "dim",
"brightness": 50,
"description": "深夜进一步降低"
},
{
"time": "05:00",
"action": "dim",
"brightness": 100,
"description": "早高峰前恢复全亮"
},
{
"time": "07:00",
"action": "off",
"brightness": 0,
"description": "日出关灯"
}
],
"light_sensor": {
"enabled": true,
"on_threshold": 50, // 光照 < 50 lux 开灯
"off_threshold": 200 // 光照 > 200 lux 关灯
}
}故障检测与告警
故障类型
故障类型:
1. 灯具故障(灯不亮)
检测:发送开灯命令后,电流为0
2. 驱动器故障
检测:电压正常但电流异常
3. 通信故障
检测:超过设定时间无心跳
4. 过温告警
检测:灯具温度 > 85°C
5. 漏电告警
检测:漏电电流 > 30mA故障处理流程
故障检测 → 本地记录 → NB-IoT 上报 → 平台告警
↓
平台接收告警
↓
自动派单(工单系统)
↓
维修人员接单(手机 App)
↓
现场维修
↓
维修完成确认
↓
工单关闭能耗分析
节能效果计算
python
def calculate_energy_saving(lamps_count, hours_per_day,
original_power, smart_power,
electricity_price):
"""
计算智慧路灯节能效果
参数:
lamps_count: 路灯数量
hours_per_day: 每天开灯时间(小时)
original_power: 原始功率(W)
smart_power: 智慧路灯平均功率(W,考虑调光)
electricity_price: 电价(元/kWh)
"""
# 年用电量(kWh)
original_energy = lamps_count * hours_per_day * 365 * original_power / 1000
smart_energy = lamps_count * hours_per_day * 365 * smart_power / 1000
# 节省电量
saved_energy = original_energy - smart_energy
# 节省费用
saved_cost = saved_energy * electricity_price
# 节能率
saving_rate = (saved_energy / original_energy) * 100
return {
"original_energy_kwh": round(original_energy, 0),
"smart_energy_kwh": round(smart_energy, 0),
"saved_energy_kwh": round(saved_energy, 0),
"saved_cost_yuan": round(saved_cost, 0),
"saving_rate_percent": round(saving_rate, 1)
}
# 示例:1000盏路灯,每天12小时,原功率250W,智慧后平均150W
result = calculate_energy_saving(
lamps_count=1000,
hours_per_day=12,
original_power=250,
smart_power=150,
electricity_price=0.8
)
print(f"年节省电量:{result['saved_energy_kwh']:,} kWh")
print(f"年节省费用:{result['saved_cost_yuan']:,} 元")
print(f"节能率:{result['saving_rate_percent']}%")
# 输出:
# 年节省电量:438,000 kWh
# 年节省费用:350,400 元
# 节能率:40.0%