回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

基于行空板K10 的智能奶牛产奶监测系统 简单

头像 火星涛 2025.01.18 8 0

依据《义务教育信息科技教学指南-物联网实践与探索》“第五单元”24课,设计此项目。

image.png


一、项目概述

本项目旨在开发一个基于行空板K10 的智能奶牛产奶监测系统,结合物联网技术实现对奶牛产奶量、环境参数(如温湿度)以及身份信息的实时监控。通过实践探索,学生可以掌握物联网在农业生产中的应用,并迁移到其他领域的问题解决,推动科技与农业融合。

 

学习目标:

⭐ 了解物联网在农业生产中的应用。

⭐ 通过奶牛产奶监测系统的实践探索,掌握利用物联网解决问题的方法,并能迁移应用于解决其他问题。

image.png
image.png

 

项目需求:

⭐ 按照采集数据、传输与存储数据、分析处理数据、反馈与控制四个环节分析奶牛产奶监测系统的功能需求。

⭐ 利用电子标签和读卡器采集奶牛编号,利用超声波传感器检测奶牛的产奶量;通过按键传感器手动控制数据是否发送到物联网服务平台;通过网络远程呈现奶牛产奶数据。

 

二、项目功能设计

 

依据功能需求分析和物联网系统架构,将奶牛产奶监测系统设计为以下三个功能模块:

image.png

 

三、详细功能实现流程


1. 系统功能流程图

image.png

子系统系统流程分解:

image.png

 

2.  系统硬件连接示意图

以下为硬件搭建图,展示各模块之间的连接关系:

image.png

3. 传感器数据采集与处理逻辑

(1) 奶牛产奶量计算逻辑(超声波传感器)

  • 🌟 输入:超声波传感器测量的容器液面高度。
  • 🌟 原理:根据液体高度差计算容器内的奶量。
    • 🌟 公式:产奶量 = 容器总高度 - 液面高度 × 容器底面积。

 

(2) 温湿度数据采集(DHT11)

🌟 使用 DHT11传感器读取牛舍温湿度数据。

 

4. 数据上传与显示

(2)主题:

🌟 温度:siot/tmp

🌟 湿度:siot/hum
🌟 产奶量:siot/cow<cow_id>

 

(3)数据格式(字典):

image.png

  • 显示屏显示内容:
    • 🌟 牛舍环境:温度: 25.3°C,湿度: 60.5%
    • 🌟 奶牛编号:编号: 101
    • 🌟 实时产奶量:产量: 5.6L
    • 🌟 运行状态:收集数据 / 发送数据 / 发送成功
    • 🌟 当前时间:年月日 时分秒

 

四、项目展示与课堂总结
 

1.  成果展示

  • 🌟 硬件成果:搭建好的奶牛产奶监测系统。
image.png

 

  • 🌟 数据展示1: OLED 显示屏实时显示数据。
image.png
  • 🌟 数据展示2: Mind+可视化面板,查看奶牛产奶量与环境参数。

image.png

 

五、关键代码示例

1.  超声波传感器读取与产奶量计算

代码
# .........略...........   

while True:
    # 读取温湿度
    temp, hum = dhtsensor.read()
     
    # 读取 RFID
    rf = scan_rfid.scanning(wait=True)
    cow_id = rf.serial_number() if rf else "未识别"
  
    # 读取超声波传感器数据
    liquid_height = sonic.distance()  # 获取液面高度(单位:厘米)
    print(liquid_height)
    
    # 计算产奶量
    milk_amount = round((container_height - liquid_height) * container_area ,2) # 产奶量(单位:立方厘米)

    # 创建数据字典
    data = {
        "temperature": temp,
        "humidity": hum,
        "cow_id": cow_id,
        "milk_amount": milk_amount  # 计算后的产奶量
    }

    # .........略...........   

2. 数据上传到 MQTT

代码
# .........略...........

def send_msg(topic, msg):
    mqttclient.connect(server="192.168.1.22", port=1883, user="siot", psd="dfrobot")
    mqttclient.publish(topic=topic, content='->' + msg)

while True:
    # 读取温湿度
    # .........略...........
    
    # 发送数据
    if bt_a.status() == 0 or p8.read_digital():  # 按键 A 被按下
        led.write_digital(1)
        send_status = '开始发送...'
        ed.text(f"运行状态: {send_status}           ", 0, 190, color=0x0000FF, size=16)
        send_msg('siot/temp', str(data["temperature"]))
        send_msg('siot/hum', str(data["humidity"]))
        send_msg(f'siot/cow{data["cow_id"]}', str(data["milk_amount"]))
        
        send_status = '发送完成'
        time.sleep(1)
        send_status = '收集数据'
        led.write_digital(0)

        # .........略...........

六、总结
 

本项目结合行空版K10 和物联网技术,实现了奶牛产奶量和环境参数的实时监测与远程管理。系统结构清晰,功能模块化,具有良好的扩展性和可复用性,可推广到其他农业场景中,如土壤监测、自动灌溉等。

 

附录
 

1.  项目源码

https://gitee.com/supu/k10.git
 

2. 软件

🌟 编辑器:Thonny

🌟 educore 固件地址: https://www.unihiker.com.cn/wiki/k10/micropython_educore

🌟 easydisplay驱动地址: https://github.com/funnygeeker/micropython-easydisplay
🌟 MQTT服务器: Mind+数据可视化面板-SIoT V2下载使用-教程
 

材料清单

  • 行空板 K10 X1 链接
  • RFID识别模块+识别卡片 X1 链接
  • URM09- Trig超声波测距传感器 X1 链接
  • DHT11温湿度传感器 X1 链接
  • 数字大按钮模块 X1 链接
  • 数字蓝色LED发光模块 X1 链接

评论

user-avatar