【IoT毕业设计】STM32开发板+机智云IoT+实现智能鸽笼控制-Arduino中文社区 - Powered by Discuz! Archiver

机智小子 发表于 2022-4-20 16:17

【IoT毕业设计】STM32开发板+机智云IoT+实现智能鸽笼控制

摘要:在赛鸽养殖中,饲养者因为工作生活繁忙等原因将无法按时喂养鸽子,同时赛鸽的养殖往往需要直接接触鸽子羽毛排泄物等,卫生问题尤为突出,选育优秀乳鸽的赛鸽计时设备价格高昂。为了解决上述问题,让人员可以及时了解鸽舍的情况,提出了一种利用物联网技术饲养选育赛鸽的方法。
基于机智云物联网平台的互联鸽笼控制系统,采用STM32L476RG为主控芯片,esp8266WiFi模块与云端的通信,将采集到的温湿度、归巢时间、告警信号等发送到手机App端,同时在鸽子归巢时通过拨打人员电话,在断网的情况下可以进行按键操作。实验表明,通过物联网控制的方式能够对赛鸽进行有效的饲养选育。
引言
随着赛鸽竞技运动的不断发展,越来越多的普通家庭开始饲养赛鸽,由于很多业余赛鸽爱好者平常无法及时饲养赛鸽导致赛鸽大量死亡,在喂养赛鸽时需要进入鸽笼中与鸽子的粪便和羽毛等直接接触,卫生问题令人堪忧。在优秀乳鸽的选择上,通常采用给鸽子佩戴高昂的赛鸽计时装置。此外,鸽舍内的温湿度直接影响着赛鸽的健康,需要及时对鸽舍内的温湿度进行调节。
研究可知,采用互联网技术和STM32实现设备的智能化管理成为目前学界的一个热点方向。基于此,本文提出了一种利用物联网技术对鸽舍内的装置进行控制的方法,该系统以STM32L476RG为主控芯片,利用机智云物联网平台进行数据的传输交换,设计了专为赛鸽进笼检测的装置,将WiFi模块与SIM800C通信模块相结合达到赛鸽归巢时间的计时与通知,采用DHT11模块和风扇模块组成温湿度的调节系统,在手机App端可以实时查看温湿度变动和控制设备状态,同时还能在按键模块上对设备进行操作,在电脑端可以登录机智云官网查看数据点历史记录。
1总体方案设计本文设计了一种基于机智云Aiot开发平台的多功能鸽笼控制系统,系统主要由温湿度传感器、步进电机、光电传感器模块、WiFi模块、控制器、继电器模块、风扇构成。用户通过手机App软件控制鸽笼门的开关,手动和自动地喂食、喂水,同时通过温湿度传感器模块监控鸽舍内的温湿度的情况,将鸽笼内的环境数据上传至机智云平台。当温湿度超过设定值时,App页面端会产生告警标志。
如果用户需要对鸽子进行训飞计时,文中为此专门研发了一种可安放的进笼检测装置,当进行单鸽训飞时,只要将鸽笼门打开将装置摆放在鸽笼门口就可以进行归巢时间的检测,将鸽子归巢的时间传至手机App端,并且通过GSM模块给训飞人员拨打电话。为了防止断网导致鸽笼设备无法正常工作,训飞人员可以通过机智云网站方便地查看鸽舍内部的历史数据。此外,本文中还设计了按键模块,可以对开关鸽笼门和喂水、喂食进行按键操作。综上可得互联鸽笼的系统结构如图1所示。
https://club.gizwits.com/data/attachment/forum/202204/20/153034vytzezwo00tt9eew.jpg.thumb.jpg图1互联鸽笼系统结构图
2系统的硬件设计2.1喂食喂水系统喂食喂水系统采用手动和定时自动、远程和近程的方式相结合,可以通过手机App远程控制定时喂食和手动喂食的方式。为了防止断网而使喂食喂水系统受到波及,在μC/OS-ΙΙ操作系统按键模块中分为开关粮食、开关水阀、开关鸽笼门五个,可以在无网的情况下有效保证近距离饲养鸽子的基本条件。对此可做研究分述如下。
2.1.1喂食系统喂食系统的食物出口采用了蝴蝶阀状开关加上5V步进电机的控制方式。由步进电机驱动蝴蝶阀门转动一定的角度使得粮食从储粮盒中落入食槽,存储盒采用漏斗形状,方便与粮食出口控制装置相结合。喂食系统的结构示意图如图2所示。
https://club.gizwits.com/data/attachment/forum/202204/20/153102wxfwxfwnoett62td.jpg.thumb.jpg图2喂食系统结构图
该装置采用型号为24BYJ485V驱动的步进电机,单组脉冲产生的步进角ω有如下的关系:https://club.gizwits.com/data/attachment/forum/202204/20/153117voly7y5tk27biykh.jpg.thumb.jpg
控制粮食蝴蝶阀需要转动的角度为90°,故而需要的脉冲个数N为:https://club.gizwits.com/data/attachment/forum/202204/20/153134yf9gr590mvfitv0m.jpg.thumb.jpg
自动喂食则是通过STM32RTC实时时钟中断完成,根据实际情况每天喂两次,将实时时钟中断设定为12h中断一次,进行一次蝴蝶阀的开关动作。
2.1.2喂水系统喂水系统由5V继电器和12V的电磁阀构成。电磁阀连接塑料水管上端续接到一个小型水箱,下端放置喝水水槽,继电器的控制端口连接至控制器的PA2口。电磁阀的供电电源采用220VAC转12VDC的电源电路,由微控制器控制电源电路输出线路的通断来调控整个喂水系统。
2.2温湿度检测调节系统高温高湿影响鸽子的热调节,加剧了高温的不良反应,破坏鸽子的热平衡。高温的时候,鸽子体内靠蒸发散热,而蒸发散热正比于鸽子体内蒸发面皮肤和呼吸道水汽压与空气水汽压之差,舍内空气湿度大,空气水汽压升高,鸽子蒸发面水汽压与空气水汽压之差变小,不利于鸽子的蒸发散热,加重集体热调节负担,热反应更加严重;高温高湿,鸽子体内的抵抗力下降,有利于传染病的发生。良好的鸽舍温湿度应该为温度≤40℃,湿度≤70%。
本此研究中采用了DHT11温湿度检测模块,DHT11模块包含一个电阻式感湿元件和一个NTC测温元件,可同时对温度和湿度进行测量,温度测量范围为0℃~50℃,湿度测量范围为20%RH~90%RH,采用IIC通信方式能很好地与微控制器进行通信,满足系统对温湿度检测的设计要求。温湿度的调节采用排风风扇的方式,排风扇运用5V电压驱动控制端接入PA2,当温湿度超过设定的值时,PA2口输出高电平,排风扇开启;当温湿度小于设定值时,输出低电平,排风扇关闭。同时在手机App端就可以实时查看当前的温湿度的情况。
2.3通信模块通信模块的设计主要采用ATK-ESP8266WiFi模块和SIM800CGSM模块,初始化STM32L476的2个串口UART1和UART2,分别连接2个模块。ATK-ESP8266WiFi模块是一款高性能的UART-WiFi模块,串口兼容3.3V和5V单片机,串口通过简单的配置就可以进行WiFi数据的传输,采用WiFi模块将数据传送到云端的同时,并与WiFi模块中下载的机智云GAgent通信协议发生交互,可进行云端的数据交换和设备的控制。
SIM800CGSM模块是一款高性能的工业级GSM/GPRS模块,可以低功耗实现语音、短信、彩信、蓝牙传输等功能,支持5~24V的超宽工作范围,可以很方便地与单片机相连接。在进行单鸽的训飞计时的过程中,鸽子通过时间检测装置时,微控制器将通过AT指令与模块通过拨打人员的电话,及时告知鸽子已经飞回鸽舍。
2.4进笼检测装置进笼检测装置主要用于检测单鸽归巢时间。装置是前后相通、上方插入活络门的盒型装置,旁边安放有光电传感模块,当要对鸽子进行归巢时间计时的时候,通过手机App或者按键将由步进电机控制的鸽笼小门开启,同时将检测装置放置在鸽子的进出门口,由于进笼检测装置采用活络门的方式,光电感应模块放置在活络门的前方,有效防止鸽舍内的鸽子对进笼检测装置的干扰。
当鸽子进入检测装置时,光电传感模块将向微控制器发送一个低电平,微控制器就将此时的RTC实时时钟数据发送到手机App端,同时通过AT指令拨打人员电话。如图3所示,光电感应模块放置在活络门挡杆的前面,系统设计的活络门结构使得鸽子进去之后就无法再出来,防止其它鸽子对检测装置产生干扰。这里,即给出了光电感应模块电路设计如图4所示。

https://club.gizwits.com/data/attachment/forum/202204/20/153235j4i4773qzo2o7xle.jpg.thumb.jpg图3进笼检测装置
https://club.gizwits.com/data/attachment/forum/202204/20/153301k4do1m4x4424q979.jpg.thumb.jpg图4光电感应模块电路
3系统软件设计3.1软件设计方法本文设计的基于云平台的互联鸽笼控制系统要完成的远程控制和数据的传输的功能,选用了机智云AIoT开发平台。首先需要在机智云平台的开发中心建立项目,同时在项目中心添加数据点,数据点的作用是对系统的某种功能进行抽象化,采用不同的数据类型表示,例如简单的设备的“开关”,其功能为开启和关闭,将这个功能抽象为布尔类型性的数据点,0表示关闭,1表示开启。
数据点是机智云中重要的属性,通过机智云与设备相联系的第一步就是需要将整个系统的功能进行完整的罗列,并通过机智云平台将所描述的功能通过数据点的方式进行表示。后续通过机智云平台会根据创建好的数据点生成用于开发的MCU协议,在生成的协议的基础上进行μC/OS-ΙΙ操作系统下的程序设计开发。
3.2数据点的建立根据系统的设计要求,在机智云端建立好数据点,在手机App端可供操作的功能具体为:开关笼门、开关水阀、开关粮食、自动喂食、开关灯、温湿度的显示与告警和飞回时间的显示。因此按照上述的功能进行云端的数据点的设置,详见表1。
表1数据点设置https://club.gizwits.com/data/attachment/forum/202204/20/153235rpv2mv8f88m2z1jx.jpg.thumb.jpg
由表1可知,对于笼门开关、粮食开关、水阀开关、灯开关类型的数据点为布尔类型,对于温湿度、飞回时间的显示采用数值类型数据点,温湿度告警采用告警类型数据点。
在机智云平台对相应的数据点做出设置,就可在机智云端生成相应的数据点的端口定义文件,将生成的端口定义文件添加到所创建的程序中,即可完成云端数据点与手机App端的联系。在机智云端下载完毕的文件中有与App端相联系的数据点信息,当与机智云端有数据交换时,机智云协议文件中的相应的标志变量随即将发生改变,如通过自动喂食开关量由0x00到0x01的变化,并利用判定语句完成对RTC实时时钟中断标志位的设置。
3.3μC/OS-Ⅱ操作系统的移植本系统的程序包括多项任务操作,诸如:温湿度检测与上传、按键模块的扫描、手机App端的控制、光电模块信号的检测,AT指令的传输等。嵌入式操作系统具有高实时性,并且支持多任务的管理,对程序的开发也更加便捷,提高系统的稳定性与可靠性。UC/OS操作系统免费,且可以很方便地移植到STM32。移植过的要点是需要将UC/OS操作系统的所有文件添加到Keil5工程中,同时修改os_cpu.h、os_cpu_a.asm、os_cpu_c.c三个程序文件。
其中,os_cpu.h文件包括了数据类型的定义以及与处理器相关的代码和函数原型的**,需要修改数据代码的类型,使得编译器和处理器以及编译器数据类型做到了相互通用;os_cpu_a.asm需要使用汇编语言将文件中的部分函数进行编写,主要是进行任务间的切换;os_cpu_c.c定义了用户的钩子函数,同时需要把文件中的相关系统时钟中断函数的部分注释掉,因为系统时钟在主程序中已经给出了定义。
3.4μC/OS-Ⅱ操作系统下的任务建立本系统分为6个任务,分别是:温湿度检测上传任务、按键扫描任务、光电信号检测任务、App开关判定任务、归巢时间上传任务、拨打电话任务,任务的设计功能可表述如下:
(1)温湿度检测任务:将读取到的DHT11模块的温湿度数值上传到机智云端,当温湿度超过设定值时在手机App端将会呈现告警标志,同时通过消息邮箱的方式将温湿度数据传送给风扇控制程序,优先级定义为5。
(2)按键扫描任务:系统将笼门、粮食和水阀这6个开关接入到微控制器的6个I/O口,从而保证在断网的情况下也能提供鸽舍内的正常控制,优先级定义为4。
(3)光电信号检测任务:进行单鸽训飞计时时,鸽子进入检测装置后,光电信号模块向微控制器发送一个低电平,任务会通过信号量的方式将低电平消息传回、再拨打电话给任务巢,因此任务优先级定义为3。
(4)App开关执行任务:手机App端有多个开关,此任务将通过判定机智云通信协议中的标志变量是0或者1,执行相应的动作,优先级定义为6。
(5)拨打电话任务:等待光电信号检测任务传递的低电平消息后,通过AT指令与SIM800C通信拨打人员电话,优先级定义为7。
(6)风扇控制任务:接收温湿度检测单元传来的温湿度数据,判定温湿度是否超过设定值,用于控制风扇的关停,优先级定义为9。系统的软件整体流程如图5所示。
https://club.gizwits.com/data/attachment/forum/202204/20/153351d2rpouttvtsa77al.jpg.thumb.jpg图5软件整体工作模式
4系统测试
由于本文所讨论的是对鸽舍内各个设备进行控制,故而鸽笼的大小对于系统的控制并没有影响,为了模拟鸽舍控制系统的运行效果,对实际鸽舍进行缩微化设计,具体如图6所示。
对缩小型的鸽舍进行控制,图6中鸽笼大门可从右边全部打开从事清扫等工作,平常对鸽子的放飞只采用鸽笼小门,利用步进电机控制笼门的上扬下降,并且小门可放置进笼检测装置,温湿度采用模拟加湿加热的方式。
第一次上电连接时,选用机智云协议中的airlink连接方式,同时手机App端启动WiFi搜索,将会搜到最近的可连接的设备。机智云协议自带有WiFi通信方式和GPRS通信方式,手机端可以选择连接WiFi和GPRS,方便人员进行远程操控,通过微控制器的复位键可以将App数据清零。图7显示了鸽笼飞到时间的显示为6月5日12时。图8又展现了手机App发送的温湿度的告警情况。
https://club.gizwits.com/data/attachment/forum/202204/20/153412o8vk480m7nk7yciv.jpg.thumb.jpg    图6 鸽舍模拟实物图https://club.gizwits.com/data/attachment/forum/202204/20/153436qlb99jjd9xddjt5e.jpg.thumb.jpg图7 手机APP的鸽子归巢时间显示https://club.gizwits.com/data/attachment/forum/202204/20/153514z0rye703r0snsjy3.jpg.thumb.jpg    图8手机APP端温湿度告警
同时,用户还可以通过电脑登录机智云官网的设备日志中查看各个数据点的历史值。5 结束语本文研究和设计了一种基于物联网云平台的互联鸽笼控制系统,可以通过手机App与近距离的按键方式对鸽笼内的设备进行控制,同时采用SIM800C模块与WiFi模块相结合的方式,对单鸽的归巢时间进行计时和通知,手机App端可以实时地看到鸽舍内的温湿度情况与发出警报,本系统解决了长期以来喂养赛鸽需要频繁与鸽子直接接触所带来的卫生问题,同时采用物联网的方式饲养赛鸽实现远程饲养,减少了人力,避免了更多爱好者无暇饲养鸽子所面对的困扰。
虽然市场上有专门的赛鸽计时器,但是其功能单一且市值不菲,互联鸽笼控制系统采用光电模块代替了专用赛鸽计时器,价格低廉、且效果较好。在物联网平台的选择上采用了机智云平台,机智云平台对数据点历史记录进行了云端的存储,用户只要登录电脑就可查看。
经过实验测试,该系统性能稳定可靠。然而,本系统的实验环境只是采用模型化模拟的方式,虽然运用于实际环境中具有相同功能,但是与实际的鸽舍运用还是存在一定的差别,亟需后续的改进与进一步完善。例如,在实际的规模化的赛鸽养殖中,单鸽的计时上传远不能满足要求,需要采用模式识别等的方式对多只赛鸽归巢的时间进行上传,所以本系统只是适用于在小型家庭化的赛鸽养殖中使用。
页: [1]
查看完整版本: 【IoT毕业设计】STM32开发板+机智云IoT+实现智能鸽笼控制