发作品签到
标准版

【物联网课设】基于ESP32的盆栽托管终端

工程标签

9.6k
0
0
19

简介

能够实现离线和在线监控盆栽环境。主控使用ESP32-WROOM-32E模块,UI基于LVGL8.2,软件开发环境为esp-idf-v4.4。

简介:能够实现离线和在线监控盆栽环境。主控使用ESP32-WROOM-32E模块,UI基于LVGL8.2,软件开发环境为esp-idf-v4.4。

开源协议

GPL 3.0

创建时间:2022-05-22 12:15:32更新时间:2023-04-10 01:06:59

描述

演示视频高清链接:https://www.bilibili.com/video/BV17Y4y1x7cN

代码:https://github.com/breakfast759/ESP32_iot_plants.git

(本人不太会用github)

硬件部分

1 电源模块

1.1 要求简述

首先,在项目设想中,工程中的盆栽被置于阳台等半露天的环境,这要求电源模块能够在变化的外部环境中稳定为系统供电;其次,项目成员在实验室环境中测试时发现,5V供电的情况下,打开系统中所有的设备,即水泵(约400mA)、补光灯(约800mA)、电机(约300mA)全开的情况下,系统的工作电流约为1.6A,外部设备全部关闭的情况下工作电流约130mA,这要求电源模块在负载发生巨大变化时为系统稳定供电;最后,项目计划使用WiFi进行通讯,这种通讯方式易受到干扰,为了提高信号传输质量,应尽可能多地避免电源引入的干扰,这要求电源的纹波尽可能小,输出尽可能稳定。

综上所述,设计电源模块时将以稳定性为第一要素。

1.2 方案比较

方案一 18650电池组供电

        使用18650锂电池供电是一种电子设备常见的供电方案。常见的18650电池容量有2200mAh,2600mAh,3400mAh,5500mAh,7400mAh,9250mAh和12580mAh。1节18650电池的放电能力一般为3C(约10A),正常工作状态下,其输出电压随着电量在3.7V~4.2V之间变化。图1所示为松下NCR18650B锂电池。

18650

图1 松下NCR18650B锂电池

优点:经济实惠,采购方便

缺点:面对变化的外部环境有较大的安全隐患;长时间稳定为系统供电成本高

方案二 开关电源供电

        开关电源是一种高效率,小体积,精度较高的供电方式,广泛应用于工业领域和各种电子设备当中。根据项目需要,可以灵活选择输出电压和输出功率不同的开关电源。图2所示为台湾明纬RS-15-5开关电源。

台湾明纬5V3A开关电源

图2 台湾明纬RS-15-5开关电源

优点:高效率,空载消耗<0.5W;长寿命;高可靠性,有过压/短路/过功率保护;接市电可长时间稳定为系统供电

缺点:价格较高

        系统正常工作的状态下,需要多节18650电池才能确保其能够长时间工作。然而多节18650电池充放电需要复杂的外围电路进行保护和协调,且项目产品将长时间在半露天环境下工作,这对18650电池组的寿命和稳定性都提出了较高的考验。

出于安全与经济性考虑,项目组选用台湾明纬的5V3A RS系列开关电源为系统供电。以大功率设备为主体的强电电路直接由开关电源供电。弱电部分与强电部分使用继电器进行隔离,防止干扰。5V开关电源通过AMS1117-3.3稳压电路后为以MCU为主体的弱电电路供电。

1.3 最终设计

        最终电源模块设计框图如图3所示。

电源模块框图

图3 电源模块设计框图

2 测量模块

2.1 要求简述

        测量模块主要包括4个部分:光照度测量部分,环境温湿度测量部分,土壤湿度测量部分和水箱水位测量部分。

        采集到的光照度信息决定补光灯的开启与否。补光灯不能够替代太阳光,仅能起到“锦上添花”的作用,故对光照度信息无精度,量程和灵敏度的特殊要求。

        采集到的环境温度信息决定电机的开启与否。植物的生长对温度比较敏感,故需要一定的精度和灵敏度;考虑到项目产品主要工作在一般环境中,故对温度量程要求为-20℃~+50℃。

       采集到的土壤湿度信息决定水泵的开启与否。植物的生长对土壤湿度比较敏感,故需要一定的精度和灵敏度;量程无特别要求。

       采集到的水位信息用于触发水箱缺水告警。只要在水位低于一定程度时点亮指示灯即可,故对水位信息无精度,量程和灵敏度的特殊要求。

2.2 方案比较

2.2.1光照度测量部分

方案一 GY302模块

       GY302模块由BH1750FVI芯片和外围电路组成。主体的BH1750FVI芯片内部集成了光电二极管、运算放大器、ADC采集、晶振等。光电二极管通过光生伏特效应将输入光信号转换成电信号,经运算放大电路放大后,由ADC采集电压,电压经逻辑电路处理并转换成16位二进制数存储于寄存器中。GY302模块引出了BH1750FVI的时钟线和数据线,MCU可以通过IIC协议与GY302模块通讯,配置BH1750FVI的工作方式或读出光照度数据。

GY302模块

图4 GY302模块

优点:直接数字输出,省略复杂的计算,省略标定,使用方便;不区分环境光源,接近于视觉灵敏度的分光特性,可对广泛的两队进行1lux的高精度测量

缺点:价格较高

方案二 OPT101模块

       OPT101模块由OPT101芯片和外围电路组成。OPT101是TI公司生产的一款单片光电二极管和单电源跨阻放大器,芯片内部集成了一个光电二极管和一个专门优化了的运算放大器。

OPT101模块

图5 OPT101模块

优点:光谱响应范围宽(300nm~1000nm);灵敏度高(650nm情况下0.45A/W);低功耗(静态电流120uA)

缺点:使用不方便,模拟量输出,还需要外围电路处理和ADC采样;体积较大;价格较高

方案三 光敏电阻

通过光敏电阻和简单外围电路将光信号转换为电信号,通过MCU的ADC对其进行采集,并通过算法进行数据处理。图6所示为光敏电阻。

光敏电阻

图6 光敏电阻

优点:成本低廉;可靠性高

缺点:精度,灵敏度较差;需要自行设计算法进行数据处理并标定,定量处理难

        由于光照度测量部分没有对精度、灵敏度和量程提出特别要求,故采用最经济实惠的方案三。

2.2.2 环境温湿度测量部分

方案一 三极管测温

        三极管测温主要利用了晶体管PN结结电压随温度变化而变化的特性,利用三极管发射极-基极的PN结将温度信号转化为电信号,经电桥转换电路和差动放大电路后由MCU的ADC进行采集,并通过算法进行数据处理。如图7所示为常见三极管测温电路结构。

常见三极管测温电路结构框图

图7 常见三极管测温电路结构框图

优点:成本低廉

缺点:使用复杂,需要设计复杂的外围电路和算法

方案二 DHT11模块

        DHT11 是广州奥松有限公司生产的一款湿温度一体化的数字传感器。该传感器包括一个电阻式测湿元件和一个 NTC 测温元件。MCU通过1根数据线就能够实时采集环境湿度和温度。如图8所示为DHT11温湿度测量模块。

DHT11

图8 DHT11温湿度测量模块

优点:实用方便;成本低廉

缺点:采样周期较长,灵敏度较低

       由于环境温湿度测量部分对精度要求较高,对灵敏度要求较低,故选用方案三。

2.2.3 土壤湿度测量部分

方案一 电阻式土壤湿度传感器模块

电阻式土壤湿度传感器模块由电阻式土壤湿度传感器和电压比较电路组成。电阻式土壤湿度传感器模块外观如图10所示。

电阻式土壤湿度传感器

图9 电阻式土壤湿度传感器模块

优点:价格低廉;精度较低

缺点:传感器电极直接与土壤接触,易被腐蚀

方案二 电容式土壤湿度传感器模块

       电容式土壤湿度传感器模块由电容式土壤湿度传感器和电压放大电路组成。电容式土壤湿度传感器模块外观如图10所示。

电容式土壤湿度传感器

图10 电容式土壤湿度传感器模块

优点:传感器电路部分不与土壤接触,寿命较长;可靠性高;精度较高

缺点:价格较高

       由于土壤湿度测量部分对精度和灵敏度要求高,故选用方案二。

2.2.4 水箱水位测量部分

方案一 电阻式液位传感器

       电阻式土壤湿度传感器模块由电阻式土壤湿度传感器和电压放大电路组成。通过一系列暴露的平行导线线迹测量液位。电阻式液位传感器模块外观如图11所示。

电阻式液位传感器

图11 电阻式液位传感器

优点:价格低廉

缺点:易受温度影响,可靠性差;灵敏度由暴露平行导线线迹的密度决定,灵敏度较差;直接与液体接触,寿命较短;体积较大

方案二 HY-SRF05超声波测距模块

       HC-SRF05超声波测距模块可实现2cm~400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。通过读取距离液面的距离信息即可推算出液位高度。HC-SRF05超声波测距模块外观如图12所示。

HY-SRF05超声波测距模块

图12 HY-SRF05超声波测距模块

优点:不直接接触液体,寿命长

缺点:精度较差;需要MCU进行较多的数据处理,使用复杂

方案三 电容式柔性非接触式液位传感器

       电容式柔性非接触式液位传感器是一种可以直接粘贴在容器表面进行非接触测量的新型液位传感器。电容式柔性非接触式液位传感器外观如图13所示。

无接触柔性液位传感器

图13 电容式柔性非接触式液位传感器

优点:使用场景广泛;使用方便;功耗极低(5V供电情况下典型工作电流291μA);精度较高(±1.5mm);不直接接触液体,寿命长

缺点:价格较贵

       水位测量部分没有对精度、灵敏度和量程提出特别要求,但最经济实惠的电阻式液位传感器体积过大,装入容器中会影响整体观感,且其寿命较短,故综合考虑后选择方案三。

2.3 最终设计

2.3.1 光照度测量部分设计

        如图14所示,光敏电阻Rp与R2并联,经R1分压后送入MCU进行ADC采集,即可获取光照度信息。送入MCU的电压可计算。

光照度传感器电路

图14 光照度测量电路原理图

2.3.2 环境温湿度测量部分设计

       如图15所示,数据线经R1上拉输入至MCU进行通讯,即可获得环境温湿度信息。

环境温湿度传感器电路

图15 环境温湿度传感器电路原理图

2.3.3 土壤湿度测量部分设计

       采购了电容式土壤湿度传感器,并通过MCU的ADC外设进行信号采集。

2.3.4 水箱水位测量部分设计

       采购了电容式柔性非接触式液位传感器。如图16所示,传感器输出信号通过上拉电阻可直接驱动继电器或点亮报警灯。

水位测量电路原理图

图16 水箱水位测量电路原理图

3 控制与通讯模块

3.1 要求简述

       项目定位是一个物联网嵌入式终端,具有测量、控制和通讯的功能。具体要求如下:

       ①能够获取传感器采集的信息

       ②能够将获取的信息上传至云平台在线展现给使用者

       ③能够将获取到的信息离线直观地展现给使用者

       ④能够根据获取的信息配合算法进行自动控制

       ⑤能够手动离线控制或通过云平台在线控制

3.2 方案比较

3.2.1 主控部分

方案一 STM32F103VET6+ESP8266-12F模块

       STM32F103VET6是由ST公司生产的一款32位高密度高性能线路MCU,具有丰富的外设资源。主频72MHz,具有5组共80个GPIO引脚,512kB Flash。STM32F103VET6外观如图17所示。

STM32F103VET6

图17 STM32F103VET6

优点:引脚资源丰富,具有极强的拓展性,方便进行二次开发

缺点:价格昂贵;主频较低,在复杂的ui图形化界面处理中乏力

方案二 ESP32-WROOM-32E模块

       ESP32-WROOM-32E模块是由乐鑫公司生产的一款双核WiFi+BT+BLE+MCU模组,主频240MHz,功能强大,用途广泛,可以用于低功耗传感器网络和例如语音编码、音频流和MP3解码要求极高的任务。ESP32-WROOM-32E模块如图18所示。

ESP32-WROOM-32E

图18 ESP32-WROOM-32E模块

优点:集成了MCU和通讯模组,实用方便;主频高,在ui图形化界面处理等高要求任务中表现突出;经济实惠

缺点:相关资料少,开发困难;引脚较少,二次开发困难

       由于硬件开发成本远高于软件开发成本,故在确保引脚和外设满足使用要求后,选择方案二。

3.2.2 通讯部分

方案一 蓝牙通讯

       蓝牙(Bluetooth)属于WPAN(无线个域网),即点对点、多点对多点。主要用于无线连接外部设备或在近距离进行数据传输。蓝牙传输的带宽为1Mbps,通信距离一般为 10米左右,使用FHSS(跳频扩谱)方式,一般每秒钟跳变1600次,将83.5MHz的频带划分为79个频带信道,每个时刻只占1MHz的带宽,使用GFSK(高斯频移键控)进行调制。常见的蓝牙模块有HC-05,BT08B,CH9141等。HC-05蓝牙模块外观如图19所示。

HC05蓝牙模块

图19 HC-05蓝牙模块

优点:连接稳定;数据安全性高;功耗低

缺点:传输距离短;数据传输速度较慢

方案二 WiFi通讯

       WiFi(Wireless Fidelity),又称802.11b标准,属于WLAN无线局域网。支持多个终端设备同时传输的网路模式,即一对多的模式。传输范围100米,速度最大可以达到11Mbps,使用DSSS(直序列扩频)和QPSK或BPSK(相移键控)技术,上下带宽为22MHz。常见的WiFi模块有ESP88266-12F,ESP32等。ESP8266-12F模块外观如图20所示。

ESP8266-12F

图20 ESP8266-12F WiFi模块

优点:传输距离较长;数据传输速度快,可在应用层拓展更多功能

缺点:连接不稳定;数据安全性较低;功耗较大

       由于项目产品面向的是日常生活,大部分家庭并没有配备蓝牙网关,但一般都配备有WiFi网关,为了更方便用户使用,也为了能在应用层开发更多功能,故选择方案二。

3.3 最终设计

       采购了ESP32-WROOM-32E(16MB)模块,并为其设计了相应的外围电路。

4 总体设计

       硬件设计以主板硬件设计为主,主板主要特征如下:

       ·可通过DC-005插座或TypeC接口供电

       ·板载CH340C,设计有自动下载电路,可以通过TypeC接口串口通讯和 程 序烧录

       ·板载3.2inch SPI Module ILI9341 SKU:MSP3218屏幕接口(可拓展触屏和 SD卡)

       ·引出1路IIC通讯引脚,可拓展外部模块

       主板原理图如图21所示,PCB设计图如图22所示,实物图如图23所示。

整体电路原理图

图21 主板电路原理图

主板PCB设计图

图22 主板PCB设计图

材料采购链接,仅供参考:

5V3A开关电源:LRS开关电源220转24V明纬12V直流5V 50/100/150/200S变压器350NES-tmall.com天猫,RS-15-5|5V3A

ESP32-WROOM-32E模块:ESP32-WROOM-32D-32U-32E 原装模组WiFi+蓝牙双核 ESP32-WROVER-B-淘宝网 (taobao.com),ESP32-WROOM-32E|16MB

电容式土壤湿度传感器:电容式土壤湿度传感器模块 不易腐蚀土壤水分含量检测 宽电压配线-tmall.com天猫

电容式柔性非接触式液位传感器:液位传感器非接触式水位水量无水感应非浮球接近传感器柔性-淘宝网 (taobao.com),根据水箱厚度挑选型号

DHT11环境温湿度传感器:DHT11 DHT22温湿度传感器SHT30/31数字开关 AM2302电子积木模块-tmall.com天猫,DHT11温湿度模块,送杜邦线

4路继电器模块:1/2/3/4路继电器模块 带光耦隔离 兼容3.3V/5V或12V TTL控制信号-tmall.com天猫,4路5V版本兼容3.3V

3.2寸电阻触摸屏:彩色液晶屏模块 1.44/1.8/2.0/2.2/2.4/2.8/3.2/3.5/4.0寸TFT彩屏-淘宝网 (taobao.com),3.2寸/带触摸

其他常见材料不一一列出。

软件部分

1 前言

1.1 目的

       本文档主要介绍物联网课程设计项目中软件部分各个功能、系统组成,以及如何实现。指导开发人员做后续的编码、测试、维护及使用。

1.2 项目背景

       软件名称:云上花园

       软件英文名称:GardenOnTheCloud

       软件版本号:11_Version1.0.1.20220531_RC

1.3 参考资料

《esp-idf-zh_CN-v5.0-dev-2938-gad747b237a-esp32》

《FreeRTOS_Reference_Manual_V10.0.0》

《LVGL Documentation 8.3》

2 版本变更说明

版本号

变更原因/目的

受影响的功能模块

备注

       
       
       

3 任务概述

3.1 目标

       节点部分:

       · MCU能够采集传感器获得的数据并实时更新ui界面

       · MCU能够接受触摸屏传递的人工控制命令并依照命令对外部设备进行控制

       · MCU能够通过WiFi连接至AP并将传感器获得的数据和设备状态上传至云平台

       · MCU能够接收并响应来自云平台的在线控制命令并依照命令对外部设备进行控制

       上位机部分:

       · 能够通过物联网平台下发命令在线控制外部设备

       · 能够实时展示获取到的传感器数据并能够查询一定时间内的历史记录

3.2 嵌入式软件运行环境

       软件部分基于esp-idf-v4.4环境,利用Visual Studio Code工具进行开发。ui基于移植的LVGL8.2设计。

4 总体设计

4.1 工程目录结构

-..devcontainer

-.vscode // Visual Studio Code配置文件

-build // 编译相关

-components

---dht11 // 环境温湿度传感器驱动组件

---illuminance_adc // 光照度传感器ADC采样组件

---LED // 程控LED组件

---light // 补光灯驱动组件

---lvgl // LVGL8.2组件

---lvgl_esp32_drivers // ESP32与LVGL8.2相关的驱动组件

---motor // 电机驱动组件

---mqtt_ssl // mqtt通讯组件

---pump // 水泵驱动组件

---sd_fatfs_br759 // SD卡驱动组件

---soil_humi_adc // 土壤湿度传感器ADC采样组件

---ui_display // ui组件

---wifi_connection // WiFi连接组件

-main // 主函数,特殊组件

-CmakeLists.txt // Cmake编译文件

-Makefile

-partitions.csv // 修改后的ESP32 Flash分区表

-README.md // 工程相关说明

-sdkconfig // ESP32初始化配置文件

-sdkconfig.old // ESP32上一次初始化配置文件

4.2 程序流程总览

       程序基本流程如图23所示。

程序流程图

图23 程序启动流程和工作状态图

 

注意!!!软件部分的说明仅供参考,尤其是程序启动流程和工作状态图!!!实际代码是单任务的!!!实际代码是单任务的!!!实际代码是单任务的!!!鄙人最近忙于考研复习,后续代码还在完善中,但是基本功能是没问题的!!!

 

最后,感谢各位看到这里!!!可以的话,关注一下我最喜欢的bilibili VTB如何(冥冥meichan)~

 

 

2023年4月9日 补充与修订

说明:

托各位的福,鄙人已成功上岸北交大信息与通信工程专业!往后将继续深造,在电子领域继续耕耘!

补充:

1 关于液位传感器:因花盆为懒人式的,不需要额外浇水,故不具体监测水位,仅监测水箱内是否还有水,节约硬件成本;软件方面确实留了水位监测的接口,之后可以自行补充硬件以达到水位监测效果。

2 关于灯条:5VLED硬灯条带罩低压节能环保usb供电5V灯条带LED超高亮升级款-淘宝网 (taobao.com)

3 关于电源红黑线:我使用的是0.5平方毫米,考虑到可靠性可以采买更粗的。

4 关于视频中两块板子:因为使用的嘉立创打样,一次给了5块板子,焊接一块就能达到完整效果,另一块不焊接任何元器件,出于美观考虑用铜柱连接到第一块板子,当然,不连接也行。

 

设计图

原理图
PCB

BOM

IDNameDesignatorFootprintQuantity
1104C1,C3,C5,C6,C7,C8C06036
210uC2,C4C06032
3100UF/16V-6.3X5.4C9,C10CAP-SMD_BD6.3-L6.6-W6.6-LS7.2-FD2
4DC+02IDC1DC-IN-TH_DC-02I1
5HDR-F-2.54_1x2H1HDR-F-2.54_1X21

附件

序号文件名称下载次数
暂无数据
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航