51mee - AI智能招聘平台Logo
模拟面试题目大全招聘中心会员专区

设计一个用于上海市青浦区农田的农业物联网监控系统,需要支持实时采集土壤湿度、温度、病虫害等数据,并确保数据在收割季等高峰期的实时性和一致性。请描述系统架构,包括硬件、网络、数据处理层、存储层,以及如何处理数据峰值问题。

上海市青浦区综合管理类岗位难度:中等

答案

1) 【一句话结论】
系统采用感知-网络-边缘-云四层架构,结合动态传感器部署、双网络覆盖(LoRa+5G)、边缘动态数据聚合与云端分片存储,通过针对性优化确保农田数据实时采集及收割季数据一致性。

2) 【原理/概念讲解】
系统分为四层,各层功能及关键设计:

  • 感知层:根据农田实际条件(如地形起伏、作物类型、土壤类型)调整传感器密度,例如平坦农田每10亩部署1个传感器,坡地或作物密集区增加至5亩1个;传感器选型考虑精度(湿度传感器精度±2%),病虫害图像传感器分辨率≥2MP,确保数据全面准确。
  • 网络层:LoRa用于广域覆盖(传输距离5-15km,功耗极低,电池寿命≥5年),5G用于数据密集场景(靠近基站,速率Mbps级,支持图像实时传输);基站位置通过现场勘测(GPS定位+信号强度测试),确保覆盖半径≥1.5km,信号强度≥-90dBm,偏远区域加中继站。
  • 边缘计算层:部署边缘网关(支持LoRa/5G),做数据预处理:过滤异常值(如湿度超出合理范围10%-80%则标记并报警),动态聚合(根据实时流量调整聚合周期,非收割季每分钟聚合一次,收割季缩短至30秒),减少云端压力。
  • 云平台层:数据处理用流处理(Kafka+Flink)实时分析,存储分时序数据库(InfluxDB存实时数据,按时间/区域分片,弹性扩展)和对象存储(MinIO存历史图像),应用层提供Web/APP界面,报警系统(阈值触发,如病虫害图像识别异常)。
  • 数据一致性:边缘与云端通过消息队列(Kafka)同步聚合数据,每分钟同步一次,确保云端数据与边缘一致;时序数据库分片策略(按时间窗口,如每5分钟一个分片),高峰期自动扩容。

3) 【对比与适用场景】

对比项LoRa5G适用场景
传输距离5-15km(农田广域覆盖)1-2km(基站覆盖)偏远、大面积农田(传感器数量多)
速率低(几十kbps)高(Mbps级)数据密集场景(如病虫害图像传输)
功耗极低(电池供电,寿命≥5年)较高(需电源)长期部署,偏远区域
注意点需中继站解决信号盲区,覆盖有限基站部署成本高,信号受地形影响需结合两种网络,互补覆盖

4) 【示例】
伪代码展示动态聚合逻辑:

# 传感器数据采集(感知层)
def collect_data():
    while True:
        moisture = read_moisture_sensor()  # 读取湿度
        temp = read_temp_sensor()         # 读取温度
        image = capture_pest_image()      # 捕获病虫害图像
        data = {
            "ts": datetime.now(),
            "moisture": moisture,
            "temp": temp,
            "image": image
        }
        send_to_edge(data)  # 发送至边缘网关
        time.sleep(5)       # 非收割季每5秒采集一次

# 边缘网关动态处理(边缘层)
def edge_process(data, flow_rate):
    # 检测异常值
    if moisture < 10 or moisture > 80:  # 湿度异常
        alert("湿度异常")
    # 动态聚合(收割季调整周期)
    if is_harvest_season():  # 判断是否收割季
        aggregated = aggregate(data, 30)  # 30秒聚合一次
    else:
        aggregated = aggregate(data, 60)  # 非收割季60秒
    upload_to_cloud(aggregated)  # 上传聚合数据

# 云端数据同步(云平台层)
def cloud_sync():
    aggregated_data = fetch_from_edge()  # 每分钟拉取聚合数据
    store_in_influxdb(aggregated_data)  # 存储到时序数据库
    sync_edge_cloud()  # 同步边缘与云端数据

5) 【面试口播版答案】
各位面试官好,我设计的农业物联网监控系统主要围绕分层架构和针对性优化来确保数据实时性和一致性。首先,感知层根据农田实际条件(比如地形、作物类型)动态调整传感器部署密度,比如平坦农田每10亩1个,坡地或作物密集区增加至5亩1个,确保数据采集全面。网络层采用LoRa(广域覆盖,适合偏远区域)和5G(高速传输,用于数据密集场景),通过现场勘测规划基站位置,确保信号覆盖。边缘计算层部署边缘网关,做数据预处理,比如过滤异常值,并根据收割季调整数据聚合周期(非收割季每分钟聚合一次,收割季缩短至30秒),减少云端压力。云平台层用流处理技术实时分析数据,存储时序数据库按时间/区域分片,弹性扩展应对高峰。这样既能保证数据实时传输,又能应对收割季数据峰值,满足青浦区农田监控需求。

6) 【追问清单】

  • 问题1:如何保障数据安全?
    回答要点:传输采用MQTT over TLS 1.2加密,设备通过唯一标识(EUI)与密钥分发中心(KDC)认证,数据存储时序数据库字段加密。
  • 问题2:传感器故障时如何处理?
    回答要点:边缘网关检测连续3次数据丢失,上报云端,触发报警,启用备用传感器或人工检查。
  • 问题3:系统成本如何控制?
    回答要点:选择低功耗LoRa传感器(电池寿命≥5年),边缘设备集中部署减少维护成本,云服务按需付费避免资源浪费。
  • 问题4:如何处理不同农田的差异化需求?
    回答要点:系统支持配置传感器参数(如不同土壤类型调整湿度阈值),应用层提供个性化监控界面(如不同作物类型的数据展示)。

7) 【常见坑/雷区】

  • 坑1:传感器部署仅按固定公式(每10亩1个),忽略地形、作物类型等实际因素,导致数据采集不全面,影响系统准确性。
  • 坑2:未具体说明动态聚合的算法细节(如滑动窗口大小、异常值处理逻辑),导致可落地性验证不足。
  • 坑3:使用“确保”等绝对化表述,缺乏对系统容错或失败场景的考虑,可信度降低。
  • 坑4:网络覆盖仅考虑5G,忽略偏远区域信号盲区,导致数据传输中断。
  • 坑5:存储方案选择不当(如用关系型数据库存时序数据),导致查询效率低,无法实时分析。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1