
采用分层架构(感知层、网络层、边缘计算层、云平台层、应用层),结合LoRaWAN实现百万级设备连接,边缘节点动态聚合数据并本地缓存容灾,云平台进行深度分析,确保实时性、可靠性与安全性。
系统分为五层,各层设计:
边缘计算与云计算的权衡:
| 对比项 | 边缘计算(Edge Computing) | 云计算(Cloud Computing) |
|---|---|---|
| 数据处理位置 | 传感器附近(农场网关) | 远程数据中心 |
| 延迟 | 毫秒级(本地处理) | 秒级(数据上传后处理) |
| 带宽需求 | 低(本地处理,聚合数据上传) | 高(所有数据上传) |
| 适用场景 | 实时控制(如灌溉触发)、异常检测(如温度突变) | 大规模数据存储、复杂分析(如历史模型训练、多传感器融合预测) |
| 注意点 | 部署成本(工业级设备)、维护复杂度(需现场维护) | 需稳定网络,延迟敏感场景需结合边缘(如边缘处理+云分析) |
def process_sensor_data(data):
# 异常值过滤
if data['temperature'] < -10 or data['temperature'] > 50:
return None
# 动态聚合(根据网络带宽调整)
current_bandwidth = get_network_bandwidth()
if current_bandwidth < THRESHOLD_LOW:
interval = 300 # 低带宽时,土壤湿度聚合频率提高
else:
interval = 60 # 正常带宽,温湿度聚合频率
if data['sensor_type'] == 'temperature_humidity':
interval = 60
else:
interval = 300
aggregated_data = {
"sensor_id": data['sensor_id'],
"avg_temp": data['temperature'],
"timestamp": data['timestamp']
}
# 本地缓存(断网时暂存)
if not is_network_available():
save_to_local_cache(aggregated_data)
else:
send_to_cloud(aggregated_data)
各位面试官好,针对百万级农业传感器物联网监控系统,我的设计采用分层架构,结合LoRaWAN实现百万级设备连接,边缘节点动态聚合数据并本地缓存容灾,云平台进行深度分析。感知层部署IP68防护的传感器,网络层通过星型拓扑组网,边缘层在农场部署工业级网关,负责本地预处理(异常值过滤、按传感器类型调整聚合频率,如温湿度每分钟聚合),本地缓存断网数据。云平台用InfluxDB存储原始数据,Spark Streaming实时分析异常,触发报警。应用层通过Web端展示实时监控和报警,确保百万级数据的高并发、低延迟,同时保障恶劣环境下的可靠性。