加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

【RT-Thread作品秀】基于stm32F407与RT-thread的问了智能水培系统

2021/03/04
2079
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
方块图(2)
  • 方案介绍
  • 相关文件
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

【RT-Thread作品秀】基于stm32F407与RT-thread的问了智能水培系统

作者:liyutan0831

 

 

概述

本产品着眼于城市家用的智能水培领域,是现代家庭园艺的一部分,随着人 们生活水平质量的提高,对绿色健康生活方式的重视,原来越多的人开始关 注家庭园艺,愿意通过在家种植花卉,多肉等观赏植物或蔬菜类作物,特别 是今年疫情期间造成的出行不便问题,让更多人倾向于尝试在家中种植,方 便收获纯绿色无污染的蔬菜。我们设计的这一款智能水培机是一个物联网 能终端,通过云平台的辅助降低家用水培的门槛,兼顾灵活性和自动化,方 便省时的让用户收获到家庭水培的乐趣。

以在 APP 端一键自动进行植物的种植并全程监测,也支持用户通过硬件按钮 或 APP 端手动对设备进行控制,探索属于自己的种植习惯,方式并可以通过 云平台,存储自己的种植规程并分享,也可以直接应用别人的规程数据完成 数据的快速共享。

开发环境

硬件:STM32F407ZGT6

RT-Thread版本:RTT Nano

开发工具及版本:KEIL 5

RT-Thread使用情况概述

本项目采用RTT nano版本组件,对各任务(传感器数据获取,LORA收发,WIFI模块收发即与云平台的通信,各控制功能任务)封装成独立的线程,所用的RTT 内核主要为控制线程间同步的信号量与事件集,以控制部分的打氧功能为例,该功能需要输入参数为云平台通过WIFI通信部分线程传来的打氧时间与打氧间隔2个参数。因此采用一个多个事件的唤醒事件集来实现该线程所对应的的控制功能的触发。该方法同样适合需要参数输入的营养液控制,光照控制,加湿等。同时项目也采取信号量协助线程间同步。主要用于WIFI通信收发(tx,rx)间的同步。此外,还采用的中断的方式相应开发板的按键触发,用于通过按键切换主机与从机模式。

 

硬件框架

 

 主控芯片 RT-thread

本项目采用的芯片为 stm32F407ZGT6,使用 HAL 库编写,搭载 RT-thread nano 嵌 入式实时操作系统。有效而可靠的保证了系统运行并行性和效率,采用事件集 event,信号量 semaphore 等实现线程之间的同步协调以及通信,充分发挥实时操 作系统与 stm32F407 的优势。在芯片的资源利用上,采用了 IO 高低电平输出控 制继电器PWM 输出控制电机驱动 L298N 模块,串口 2 通过 AT 指令控制 WIFI 模块通信.

传感层搭建

作为一个有关植物种植的智慧物联网终端,基于环境监测,报警系统的需要,整 个项目配备丰富完善的传感层,具体使用到的传感器如下。 1. 水温监测:采用 ds18b20 模块,单总线输出,由 IO 口按照工作时序读取数据。 2. 空气(环境)温度,湿度监测:采用 DHT11 模块,单总线输出,采用 stm32 单片机 IO 口按照规定时序读出数据。 3. EC 值检测,采用模拟量输出的 EC 值变送器,经过 stm32 ADC 模块转换后变 为具体数值。 4. PH 值检测,同样采用模拟量输出的,经过 stm32 ADC 模块转化为具体数值。 5. 光敏模块,水位模块与浊度模块。三者均采用数字开关量输出,其中光敏, 浊度模块默认输出高电平,测量量到达阈值后输出低电平。水位模块反之。 2.2控制部分搭建

为了按照规程要求,实现远程水培的自动与手动控制,具体使用的执行器如下。 1,光照部分。采用 12V LED 三色灯带,有红,蓝,白三色 ,由 stm32 GPIO 输 出高低电平进行控制。 2,加湿和打氧部分。出于对湿度控制和保证植物水面以上湿润的要求,采用 24 伏供电,塑料加湿片的浸入式加湿器来控制。同样为了保证营养液含氧量。打氧 氧泵采用 12V 供电。 3,电机控制,营养液控制。营养液控制采用 12V 蠕动泵和小型水泵。分别对 EC 值,PH 值两大溶液参数进行控制。对于 EC 值,通过蠕动泵泵入调制好的营养 液的方式来增加溶液 EC 只,通过两只中等功率,12V 供电水泵来同步换水,抽 出营养液,并注入等量清水。PH 值则直接采用两只蠕动泵加入酸液碱液控制。 两个营养液参数均采取位式调发,小步长,长滞回来应对营养液参数变化的较长 滞回时间。其中 PH 由与调节中涉及化学变化调解初期会有较大浮动,整体调解 时间在 30—40 分钟左右,由于水培的种植周期长达几个月且自动模式下只需要 两次营养液调整,其他均为范围维持,因此该调节时间可以接受。

通信部分 通信部分采用 ESP8266-01 模块和 MQTT 指令,MQTT 是一种轻量级高效的,适 用于物联网通信协议,设备侧向平台侧上传传感器数据,报警值,设备状态等, 同时从云平台获取来自 APP 客户端的指令。同时为了减小下发指令数目减少遗 漏,在指令端自拟协议打包下发,确保设备高效稳定的通信。

软件框架说明

整体代码分为三大部分,控制,传感与通信。将WIFI通信,LORA串口三通信,控制部分(光照,打氧,营养液控制等,用到的嵌入式技术为PWM波的输出和IO口继电器控制),传感器获取部分(ADC模拟量输出获取,单总线获取等)的任务各自包装成线程处理。各线程独立运行,并合理调用保持正确的线程间同步与通信。

具体而言,代码功能的执行顺序如下

 

对于主机模式,从云端即APP处通过WIFI 8266模块来获取控制指令指导控制,其中加湿打氧通过设计的外部参数控制(加湿时间,加湿间隔,打氧时间,打氧间隔)。营养液通过设定的目标EC,PH值以及PH,EC传感器检测到的实时数据来控制,光照部分控制的主要依据是DS1302实时时钟模块提供的年月日参数,已实现不同生长周期的判断。主机模式在接收指令并进行控制外,同时通过LORA多点通信模块转发指令数据,以广播的形式向各个从机发送。在按下开发板上按键后。切换为从机模式,此时关闭WIFI发送以及WIFI接收,改为通过LORA串口3接收主机发来的信号。因此可实现一主多从,动一发牵全身的效果。因此扩大了种植量。

软件模块说明

通信部分:通过ESP8266 AT指令连接云平台,进行数据的收发。

各传感器部分,其中EC,PH采用ADC进行模拟量的转换,温度和温湿度采取单总线的方式,统一传到结构体中上传。

结合DS1302的 时间判断部分,包括昼夜判断,生长周期判断等。

基于事件集的光照控制。

 

演示效果

 

 

代码地址在附件

比赛感悟

通过此次竞赛,我们体会到了 stm32F407 系列单片机作为主控的强大处理能 力,与之前项目经验中使用的 F1 系列相比,内部资源更多,接口更丰富,运算 速度更快,更适合操作系统 RTOS 或其他大体量的工程。此次采用的 HAL 库相 比标准库具有更好的可移植性。同时,我们通过这个机会,第一次在嵌入式项目 中应用 RTT 的操作系统,系统的了解了多线程运行的启动过程,优先级管理, 线程间同步,通信等多种有关嵌入式操作系统的相关知识。尽管在项目构思设计, 功能实现与调试时出现过很多问题与挑战,但是总体上,我们在此次备战过程中 收获颇丰。

  • 代码地址.rar
    描述:代码地址
  • 全连接.docx

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
MCF52259CAG80 1 Freescale Semiconductor 32-BIT, FLASH, 80MHz, RISC MICROCONTROLLER, PQFP144, 20 X 20 MM, ROHS COMPLIANT, LQFP-144

ECAD模型

下载ECAD模型
$17.28 查看
ATXMEGA64A1-AU 1 Microchip Technology Inc IC MCU 8BIT 64KB FLASH 100TQFP

ECAD模型

下载ECAD模型
$7.58 查看
STM32F207ZGT6 1 STMicroelectronics High-performance Arm Cortex-M3 MCU with 1 Mbyte of Flash memory, 120 MHz CPU, ART Accelerator, Ethernet

ECAD模型

下载ECAD模型
$13.88 查看

相关推荐

电子产业图谱