实验指导书:实验1 传感器数据模拟

实验组件

  1. 计算机
  2. Python 3.x 编程环境
  3. 必要的Python库:NumPy, Matplotlib, Time
  4. IDE或代码编辑器(如PyCharm、VS Code等)

实验目的

  1. 掌握Python编程语言基础知识和随机数据生成方法
  2. 学习使用Matplotlib等可视化库进行数据图表实时展示
  3. 理解传感器数据的特性和变化模式,为后续实际传感器操作做准备
  4. 培养团队协作能力和代码文档编写能力

实验内容

  1. 编写Python程序,模拟生成温度、湿度和光照强度三类传感器数据
  2. 为模拟数据添加真实特性,如昼夜温度变化规律、光照强度与时间的关系等
  3. 使用Matplotlib库实现数据的实时可视化展示
  4. 编写程序说明文档,并提交相关材料

实验原理

传感器数据模拟是在没有实际硬件条件下,通过软件方法生成符合传感器特性的数据。本实验利用Python的随机数生成函数,结合数学模型和约束条件,模拟生成具有真实传感器特性的数据。

主要模拟原理:

  1. 温度数据模拟

:融合基础温度值、昼夜周期变化和随机波动

    1. 昼夜周期:使用正弦函数模拟一天内温度变化规律,下午2点左右达到最高温度
    2. 随机波动:添加正态分布的随机数,模拟环境干扰
  1. 湿度数据模拟

:结合基础湿度值、温度关联性和随机波动

    1. 温度关联:实现与温度的反相关性(温度高时湿度低,反之亦然)
    2. 边界限制:确保湿度值在0-100%的合理范围内
  1. 光照强度模拟

:模拟太阳光照周期和随机波动

    1. 昼夜周期:白天(6:00-18:00)光照强度遵循正弦曲线变化,夜间维持低光照水平
    2. 环境因素:添加随机波动模拟云层、阴影等影响

通过Matplotlib库,可以将生成的数据以折线图、仪表盘等形式实时可视化展示,模拟真实传感器数据监控系统。

实验步骤

1. 环境准备

  1. 安装所需的Python库:

pip install numpy matplotlib

  1. 准备开发环境和代码编辑器(如PyCharm、VS Code等)

2. 数据模拟函数设计

设计模拟函数,考虑以下因素:

  1. 温度数据:基础温度值+昼夜周期变化+随机波动
  2. 湿度数据:基础湿度值+与温度的反相关性+随机波动
  3. 光照强度:模拟太阳光照周期+随机波动

实现方法示例:

# 温度模拟函数示例

def simulate_temperature():

    time_factor = get_time_factor()  # 获取当前时间在一天中的位置(0-1)

    day_cycle = np.sin(2 * np.pi * (time_factor - 0.25)) * 5  # 昼夜周期变化

    random_fluctuation = np.random.normal(0, 0.5)  # 随机波动

    return temp_base + day_cycle + random_fluctuation

3. 可视化界面设计

设计实时可视化界面,包括:

  1. 三类传感器数据的折线图,展示历史变化趋势
  2. 当前数值的仪表盘显示

实现方法示例:

# 创建图表

fig = plt.figure(figsize=(12, 8))

fig.suptitle('智能会议室环境参数模拟', fontsize=16)

# 温度子图

ax1 = fig.add_subplot(3, 1, 1)

ax1.set_title('温度变化')

ax1.set_ylabel('温度 (°C)')

# ...其他图表设置

4. 程序实现

  1. 实现数据生成和可视化的主循环,使用Matplotlib的动画功能定时更新数据和图表
  2. 确保数据更新和图表刷新的同步性

实现方法示例:

# 更新函数示例

def update(frame):

    # 生成新数据

    temp = simulate_temperature()

    humidity = simulate_humidity(temp)

    light = simulate_light()

   

    # 更新数据数组和图表

    # ...

   

    return temp_line, humidity_line, light_line, temp_gauge, humidity_gauge, light_gauge

# 创建动画

ani = animation.FuncAnimation(fig, update, frames=None, interval=1000, blit=True)

代码成功运行后,参考效果图如下:

5. 测试与优化

  1. 运行程序,验证数据生成的合理性和可视化效果
  2. 检查数据范围是否合理(温度、湿度、光照强度)
  3. 优化刷新频率和显示效果
  4. 确保程序稳定运行,无明显卡顿或崩溃

6. 文档编写

  1. 为代码添加详细注释,说明关键函数和参数的作用
  2. 编写程序说明文档,包括使用方法、功能描述等

实验报告

  1. 说明实验过程。
  2. 进行结果分析。
  3. 按组提交报告(电子档和纸质档各一份),由组长对组员的贡献进行打分(百分制)并附于报告末尾。
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐