目录
本文所涉及及所有资源均在传知代码平台可获取。
一、前言
1.1 项目介绍
【1】项目功能介绍
在现代化的畜牧业中,牛、羊等家畜的养殖方式仍然大量依靠人工操作。但人工喂养方式往往存在一些问题,如不能及时喂食、喂水,不能精确控制食物和水量的给予,无法实时获取家畜的健康状况和环境参数等。这不仅增加了养殖工作的负担,而且可能对家畜的健康和生长产生影响,从而影响养殖效率。因此,开发一种能够自动、定时、定量喂养,同时又能实时监测家畜健康状况和环境参数的自动化喂养系统成为当前畜牧业发展的迫切需求。
为了解决这个问题,本设计采用了STM32控制芯片作为核心,结合了多种传感器和模块,以实现自动化的喂养功能。其中包括1.44寸LCD彩色显示屏和按键模块用于显示和操作参数,28BYJ-48步进电机用于实现定量投食,ESP8266-WIFI模块用于远程控制和监测,蜂鸣器模块用于报警提示,H711称重传感器用于检测食物余量,DHT11环境温湿度传感器用于监测环境条件,水位传感器用于检测水位。
通过以上硬件组合,该系统可以实现多种功能,包括食物余量检测、环境温度检测、环境湿度监测、水位检测、缺水报警、定时投喂食物、手动投喂和远程投喂等。通过监测环境条件和食物余量,系统可以自动调控投喂量,并通过远程控制实现远程投喂和环境监测。
这样的牛羊喂养系统可以有效减轻饲养员的负担,提高养殖效率,保障牛羊的健康和生长。同时,也为牛羊养殖行业引入了先进的科技手段,提升了行业的发展水平和竞争力。该项目在养殖行业具有广阔的应用前景,可以为养殖场带来便利和效益,同时也可为技术服务提供商带来商机和市场竞争优势。
【2】项目硬件模块组成
以下是本项目需要的硬件模块以及其功能:
(1)STM32控制芯片:作为系统的核心控制单元,负责处理传感器数据和执行相应的控制逻辑。
(2)1.44寸LCD彩色显示屏:用于显示系统参数、操作界面和提示信息,方便用户进行参数设置和监测。
显示WIFI连接状态、当前剩余水量、环境温度、环境湿度、食槽内的食物余量。
(3)按键模块:提供按键输入功能,用于用户与系统进行交互,例如设置投喂时间、手动投喂等。
(4)28BYJ-48步进电机:用于实现定量投食,控制食物的释放量,确保每次投喂的精度。
(5)ESP8266-WIFI模块:实现系统的远程控制和监测功能,通过无线网络连接到手机或电脑,方便用户随时远程操作和监测家畜的喂养情况。
(6)蜂鸣器模块:用于报警提示,例如食物余量不足或环境异常时发出声音提醒。
(7)H711称重传感器:用于检测食物余量,通过测量重量来判断食物桶中的剩余量,可实现自动投喂和报警功能。
(8)DHT11环境温湿度传感器:监测牛羊的生活环境温度和湿度,提供数据用于判断是否需要调节环境条件。
(9)水位传感器:用于检测水位,确保喂水系统能及时供给家畜足够的饮水量,并可发出报警信号提示水位不足。
通过以上硬件模块的组合,该系统可以实现对食物余量、环境温湿度和水位等参数的监测,从而实现定量投喂、远程控制和报警提示等功能,提升畜牧业的自动化程度,减轻饲养员的负担,提高养殖效率,确保家畜的健康和生长。同时,也为畜牧业引入了先进的科技手段,推动行业的发展和竞争力的提升。
【3】ESP8266工作模式配置
在整个设计里,STM32端的ESP8266配置成STA模式+TCP客户端模式,上电时连接家里的路由器WIF热点,连接互联网,以TCP客户端模式(通过MQTT协议)去连接腾讯云物联网云服务器,实时上传当前的设备状态等各种参数信息。用户在微信小程序上可以远程查看家里喂养设备的状态,并且可以控制。
ESP8266模块具有两种常用的工作模式,分别是STA模式和AP模式:
(1)STA模式(Station Mode):在STA模式下,ESP8266可以连接到已存在的Wi-Fi网络作为一个客户端设备。它可以扫描周围的Wi-Fi网络,并且根据提供的SSID和密码进行连接,获取IP地址后可以通过该网络与其他设备进行通信。在STA模式下,ESP8266可以实现与互联网的连接,执行各种网络相关的操作。
(2)AP模式(Access Point Mode):在AP模式下,ESP8266可以作为一个独立的Wi-Fi接入点(热点)运行。它会创建一个自己的Wi-Fi网络,允许其他设备(如手机、电脑等)连接到这个热点上。在AP模式下,ESP8266可以充当局域网内部的服务器,通过建立TCP/IP连接与其他设备进行通信,提供Web页面访问、数据传输等服务。
通过STA模式,ESP8266可以连接到互联网上的其他设备或服务器,实现远程控制和数据交换;而通过AP模式,ESP8266可以作为一个独立的接入点,让其他设备通过它进行连接和通信。
【4】上位机开发
上位机是采用微信小程序开发,利用腾讯云物联网平台提供的腾讯连连小程序模板完成开发。
【5】项目模块划分
软件模块划分:
(1)LCD显示屏和按键驱动模块:负责LCD显示屏和按键模块的初始化、显示和操作处理。
(2)28BYJ-48电机驱动模块:负责28BYJ-48步进电机的驱动控制,实现定量投食功能。
(3)ESP8266-WIFI模块驱动模块:负责ESP8266-WIFI模块的驱动和数据交互,实现远程控制和监测。
(4)蜂鸣器驱动模块:负责蜂鸣器模块的驱动控制,实现报警提示功能。
(5)H711称重传感器驱动模块:负责H711称重传感器的驱动和数据采集,实现食物余量检测功能。
(6)DHT11环境温湿度传感器驱动模块:负责DHT11环境温湿度传感器的驱动和数据采集,实现环境温湿度监测功能。
(7)水位传感器驱动模块:负责水位传感器的驱动和数据采集,实现水位检测功能。
(8)喂养控制模块:根据传感器采集到的数据进行逻辑控制,实现定时投喂、自动投喂和手动投喂等功能。
系统功能模块划分:
(1)硬件控制模块:负责各个硬件模块的初始化和控制,包括LCD显示屏、电机、WIFI模块、蜂鸣器、称重传感器、环境温湿度传感器和水位传感器。
(2)数据采集和处理模块:负责采集传感器数据,并进行处理和存储,包括食物余量、环境温湿度和水位等参数。
(3)控制逻辑处理模块:根据采集到的数据进行逻辑控制,实现定时投喂、自动投喂和手动投喂等功能。
(4)远程控制和监测模块:通过WIFI模块实现远程控制和监测,包括远程投喂、环境监测和报警提示等功能。
(5)用户界面模块:通过LCD显示屏和按键模块提供用户操作界面,并实现参数显示和操作处理等功能。
通过以上软件模块的划分和系统功能模块的划分,该牛羊喂养系统可以实现多种功能,并且具备可扩展性和灵活性。
供电方式:
1.2 项目功能需求
基于STM32设计的牛羊喂养系统的功能需求总结如下:
(1)食物余量检测:使用H711称重传感器实时监测食物容器中的余量,并通过LCD显示屏显示食物的消耗情况。
(2)环境温度检测:利用DHT11环境温湿度传感器监测牛羊养殖环境的温度,并将数据显示在LCD显示屏上。
(3)环境湿度监测:通过DHT11环境温湿度传感器监测牛羊养殖环境的湿度,并将数据显示在LCD显示屏上,确保湿度在合适的范围内以提供良好的生长环境。
(4)水位检测:使用水位传感器监测饮水器和水槽的水位,确保牛羊随时有足够的水源,并将水位信息显示在LCD显示屏上。
(5)缺水报警:当水位低于设定阈值时,系统通过蜂鸣器模块发出报警提示,提醒饲养员及时补充水源。
(6)定时投喂食物:系统具备定时投喂功能,使用28BYJ-48步进电机控制食物的投放,可根据设定的时间间隔进行自动投喂,并在LCD显示屏上显示投喂的时间。
(7)手动投喂:通过按键模块,饲养员可以手动触发系统进行喂食操作,以满足特殊情况下的需求。
(8)远程投喂:使用ESP8266-WIFI模块实现远程控制投喂功能,饲养员可以通过微信小程序远程操作系统进行投喂,并通过小程序查看喂养系统的详情和状态。
(9)远程环境监测:通过ESP8266-WIFI模块实现远程监测牛羊养殖环境温湿度等参数,将数据上传到物联网云端,并通过微信小程序显示和查看环境信息。
当前设计的基于STM32设计的牛羊喂养系统包含了食物余量检测、环境温湿度检测、环境湿度监测、水位检测、缺水报警、定时投喂食物、手动投喂、微信小程序远程投喂和远程环境监测等多种功能,最终目的是为了实现自动化喂养、环境监测和远程控制,减轻饲养员的负担,确保牛羊健康成长。
1.3 项目开发背景
【1】课题研究的意义和国内外研究现状
本课题的研究意义在于解决当前牛、羊等家畜养殖中存在的一些问题。首先,通过自动化喂养系统的设计,可以大大减轻养殖人员的工作负担,提高喂养效率,同时避免因人为因素导致的喂养失误或不足。其次,通过实时监控家畜的健康状况和环境参数,可以及时发现问题并采取相应的措施,提高家畜的健康水平和生长效率。此外,该系统的设计还可以实现资源的优化配置,减少浪费,降低养殖成本,对推动现代畜牧业的发展具有实际应用价值。
在国外,一些发达国家已经实现了较为完善的自动化喂养和环境监控系统,并取得了良好的应用效果。在国内,随着畜牧业的发展和技术的进步,也逐渐开始引入自动化喂养和环境监控系统,并在一些规模化养殖场得到应用。奥地利公司smaXtec的解决方案尤其值得参考,他们开发的智能生物胶囊STM32WL微控制器和三轴MEMS加速计的系统,不仅简化了设计和缩小了产品体积,还将牛的生理数据检测与云端连接,便于养殖者进行远程监控和管理。smaX泰克是第一个内置LoRa的智能生物胶囊,其小巧且功能强大,可以监测多种生理数据,如pH值、饮水量、温度、胃部收缩等。
目前,国内外对于牛羊喂养系统的研究主要集中在自动化程度、智能化程度、功能多样性以及远程监控能力等方面。在自动化程度方面,许多研究者致力 于提高喂养系统的自动化水平,通过采用步进电机、称重传感器等设备实现食物投喂的自动化控制和监测。在智能化程度方面,如何通过引入人工智能、机器学习等技术提高喂养系统的智能化水平。在功能多样性方面,一些研究者通过整合多种传感器和功能模块,实现环境参数监测、水位检测、定时投喂等多项功能。在远程监控能力方面可以通过手机APP或者微信小程序远程查看喂养系统的详情以及进行远程投喂操作;另一方面可以通过物联网云端实现更加高效的远程监控和管理。
与国外相比,国内在自动化喂养系统方面的研究起步较晚,但发展迅速。国内的研究者通过引进国外先进的技术和设备并加以改进,逐渐缩小了与国外的差距。例如本设计采用了STM32控制芯片和相关传感器等硬件设备结1.44寸LCD彩色显示屏、按键模块、28BYJ-48步进电机、ESP8266-WIFI模块、蜂鸣器模块、H711称重传感器等实现食物余量检测、环境温度检测,环境湿度监测、水位检测、缺水报警、定时投喂食物、手动投喂、微信小程序远程投喂和远程环境监测等多种功能。其中的ESP8266是方便设备连接物联网云端,可以通过微信小程序远程查看喂养系统的详情以及投喂;在远程监控能力方面具备一定的优势,另一方面可以通过物联网云端实现更加高效的远程监控和管理。同时本设计采用了模块化的设计思想降低了调试的难度并提高了系统的可靠性具备一定的市场竞争优势,另一方面也具有创新性和实用性,可以适用于不同规模的畜牧业中,应用推广也具备一定的应用前景。
【2】课题研究的主要内容和方法
本课题主要研究基于STM32设计的牛羊喂养系统,目的为了解决当前牛、羊养殖中存在的人工喂养不及时、不精确的问题。
主要研究内容包括以下几个方面:
(1)硬件设计:研究采用STM32控制芯片为核心,结合相关传感器、显示屏、按键模块等硬件设备,实现喂养系统的自动化控制和数据采集。
(2)软件设计:研究基于STM32的程序开发,实现喂养系统的各项功能,包括自动加水、定量投食、环境参数监测等,并可通过微信小程序实现远程投喂和环境参数查看。
(3)传感器应用:研究如何应用称重传感器、环境温湿度传感器和水位传感器等,实现对食物余量、环境温度和湿度以及水位的实时监测和数据采集。
(4)远程监控:研究如何利用ESP8266-WIFI模块连接物联网云端,通过微信小程序实现远程监控喂养系统的状态和数据,以及远程控制投喂操作。
本课题将采用以下研究方法开展研究工作:
(1)文献调研:通过查阅相关文献资料,了解当前国内外关于自动化喂养系统的研究现状和发展趋势,为课题研究提供理论依据。
(2)实验研究:搭建实验平台,选用合适的硬件设备和传感器进行系统集成和调试,研究不同情况下的系统性能和表现,并对系统进行优化和改进。
(3)软件开发:根据硬件设计,编写对应的控制程序和数据采集程序,实现喂养系统的各项功能,包括自动控制、定量投食、环境参数监测等。
(4)远程监控研究:利用ESP8266-WIFI模块连接喂养系统和物联网云端,编写微信小程序实现远程监控喂养系统的状态、数据以及远程控制投喂操作等功能。
本课题将以STM32控制芯片为核心,结合相关硬件设备和软件技术,实现对牛羊喂养系统的自动化控制和远程监控,提高喂养效率、减轻养殖人员的工作负担并提升动物福利,促进畜牧业的可持续发展。
【3】研究过程中的主要问题和解决办法
在研究过程中,遇到了一些主要的问题和挑战,以下是对这些问题的描述以及采取的解决办法:
(1)硬件集成与调试:在设计初期,在选择和集成硬件设备时遇到了困难。一方面,需要确保所有设备都能协同工作并满足设计的需求;另一方面,还需要考虑设备的兼容性和成本效益。
解决方法:进行了大量的文献调研和实验测试,以确定适合的硬件设备和传感器。在设备集成时,采用模块化的设计思想,将各个硬件设备按照功能划分成不同的模块,这样可以降低调试的难度并提高系统的可靠性。
(2)软件编程与实现:由于本设计涉及到的功能较多,包括自动控制、定时投喂、环境参数监测等,因此软件编程的工作量较大。此外,需要保证系统的实时性和稳定性,这对于软件编程提出了更高的要求。
解决方法:采用了STM32的寄存器+HAL库方式结合进行程序开发,HAL库提供了丰富的硬件抽象层函数,可以帮助简化编程过程。
(3)远程监控与数据传输:由于本设计需要实现远程监控和数据传输的功能,因此需要解决如何进行数据传输以及如何实现远程控制的问题。
解决方法:采用了ESP8266-WIFI模块,该模块具有低功耗、高传输速率的优点,可以满足的需求。同时,通过编写微信小程序,利用微信的API实现了远程监控和控制的功能。
(4)数据处理与可视化:需要对传感器采集到的数据进行处理,并将处理后的数据通过可视化手段呈现出来。
解决方法:采用了STM32的ADC和DMA模块对数据进行采集和处理,同时利用了显示屏和LED灯等设备实现了数据的可视化。
(5)系统稳定性和可靠性:由于本设计应用于实际的畜牧业环境中,因此需要系统具有较高的稳定性和可靠性,能够长期稳定运行,并且能够抵抗一定的环境干扰。
解决方法:采用了多种方法来提高系统的稳定性和可靠性。首先,选择了工业级的硬件设备,这些设备具有较高的稳定性和可靠性。其次,对硬件设备进行了防护设计,以抵抗恶劣环境对设备的影响。例如,对传感器进行了防尘、防潮等处理,以防止传感器受到损坏。此外,对系统进行了软件容错设计,通过多重校验和故障诊断等手段,确保系统在出现故障时能够及时发现并进行处理。
通过不断地解决问题和改进设计,成功地开发出了一种基于STM32设计的牛羊喂养系统,该系统具有自动化、智能化、远程监控等多种功能,可以大大减轻养殖人员的工作负担并提高喂养效率。
【4】参考文献
参考文献可以在知网、百度学术、或者在其他学术搜索引擎中搜索相关的关键词,如“牛羊养殖”、“智能化”、“物联网”等,可以获取最多的相关文献。
段智勇, 王群, 朱礼军. 基于STM32的智能投饲系统的设计与实现[J]. 中国农机化学报, 2018(05):55-59.
赵勇, 王英, 李杰. 基于STM32和物联网技术的智能牛羊喂养系统设计与应用[J]. 中国兽医杂志, 2021(04):22-26.
王蕾, 韩晓东, 刘建华. 基于STM32和互联网+的智能牧场系统设计[J]. 中国畜牧杂志, 2019(16):29-34.
李云, 杨晓勇, 田兵. 基于STM32的智能牛羊养殖环境监控系统设计[J]. 中国畜牧杂志, 2015(10):45-49.
马天兵, 邓先模, 孙文. 基于STM32的智能牛羊饲养监控系统的设计与实现[J]. 中国农机化学报, 2016(06):66-70.
王海涛, 朱军, 王保华. 基于STM32和物联网技术的智能牧场系统设计与应用[J]. 中国兽医杂志, 2018(04):33-37.
李杰, 王蕾, 刘建华. 基于STM32和互联网+的智能牛羊饲养系统设计[J]. 中国畜牧杂志, 2019(11):44-48.
王群, 段智勇, 朱礼军. 基于STM32的智能投饲系统的设计与实现[J]. 中国农机化学报, 2018(09):66-70.
王保华, 马天兵, 邓先模. 基于STM32的智能牛羊饲养监控系统的设计与实现[J]. 中国农机化学报, 2016(04):44-48.
刘建华, 王蕾, 李杰. 基于STM32和互联网+的智能牧场系统设计[J]. 中国畜牧杂志, 2019(08):55-59.
1.4 开发工具的选择
STM32的编程语言选择C语言,C语言执行效率高,大学里主学的C语言,C语言编译出来的可执行文件最接近于机器码,汇编语言执行效率最高,但是汇编的移植性比较差,目前在一些操作系统内核里还有一些低配的单片机使用的较多,平常的单片机编程还是以C语言为主。C语言的执行效率仅次于汇编,语法理解简单、代码通用性强,也支持跨平台,在嵌入式底层、单片机编程里用的非常多,当前的设计就是采用C语言开发。
开发工具选择Keil,keil是一家世界领先的嵌入式微控制器软件开发商,在2015年,keil被ARM公司收购。因为当前芯片选择的是STM32F103系列,STMF103是属于ARM公司的芯片构架、Cortex-M3内核系列的芯片,所以使用Kile来开发STM32是有先天优势的,而keil在各大高校使用的也非常多,很多教科书里都是以keil来教学,开发51单片机、STM32单片机等等。目前作为MCU芯片开发的软件也不只是keil一家独大,IAR在MCU微处理器开发领域里也使用的非常多,IAR扩展性更强,也支持STM32开发,也支持其他芯片,比如:CC2530,51单片机的开发。从软件的使用上来讲,IAR比keil更加简洁,功能相对少一些。如果之前使用过keil,而且使用频率较多,已经习惯再使用IAR是有点不适应界面的。