Skip to content

智慧路灯解决方案

方案概述

智慧路灯是智慧城市最典型的 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%

褚成志的笔记