缩略图
Mobile Internet

基于arduino 设计智能泳池监测设计

作者

张凯熙

身份证号:370112200502210237

由此,设计一款能够实时检测水质水温以及光照等泳池的关键参数,能够实时监测在必要时报警,能够很好的解决这些问题。本文利用 adruino 设计智能泳池监测系统,实现传统泳池和现代技术的融合,主控arduino 配合光敏传感器模块、dht11 温湿度传感器模块、超声波测距模块、asrPro 语音模块等,分别实现对各参数的采集,通过连接上位机实时上报数据,以便实时监测,在水深过深,水温过高等情况出现时,能够用警示音提示。

1 系统方案的设计

1.1 智能泳池功能简介

本课题设计的智能泳池系统,利用 adruino 产生电路信号,在经过单片机处理后,通过集成多传感器与执行设备实现泳池水质的自动化管理。系统硬件包含 dht11 温湿度传感器,光敏电阻传感器,asrpro 语音模块、超声波模块,oled 显示模块。能够实现集采集数据实时显示并上传上位机电脑的功能,语音模块可以实时呼救,呼救后报警并通知工作人员。

1.2 硬件方案选择

1.2.1 主控芯片的选择

方案一:选用 Arduino 开发

Arduino 开发板可看作是一个带有简易 I/O 连接面板的小型化的单片机控制台,具备了单片微型机的核心可编程、数据处理、信息储存、定 / 计时器、串行与总线通讯、脉宽调制功能、模拟多路转换器、 A/D 转换器等特性。因此,可以利用编程工具直接对 I/O 设备进行视觉信号控制、测量与电子通讯。Arduino 的具体特性包括:能够实现迅速、有效的产品开发;拥有丰富的开发资源;当开发板接入上位机时,能够进行各种编程、通讯以及交互;开发板小巧,且容易移植。

方案二:选用51 单片机

STC 单片机的型号命名规则清晰反映了其核心架构、存储特性及性能参数。以”STC”前缀标识芯片由 STC 公司生产,紧随的” 8′′ 代表采用 8051 内核架构,兼容 Intel MCS-51指令集。型号中的”9”表明内部集成 Flash 存储器(可重复擦写),区别于”0”(无 ROM)或”7”(紫外线擦除 EPROM)等传统存储类型;后缀字母”C”标识器件为 CMOS 工艺,具有低功耗特性,若为”LV”或”LE”则代表低电压版本(如 3.3V 供电)。数字”5”固定不变,后续数字表示容量大小(如”52”对应 8KB),实际容量为该数字乘以特定系数(例如”1”为 4KB、”2”为 8KB、”3”为 12KB、”4”为 16KB)。例如 STC89C51 标配 4KB 闪存(命名中隐含”1”的容量标识)。后缀” RD+Ω′′ 表示内部 RAM 为 1280 字节,”RC”则对应 512 字节,直接影响变量存储与实时数据处理能力。该命名体系为开发者提供了关键硬件参数:内核兼容性​(8051)、存储类型(Flash)、工艺特性(CMOS 低功耗)及容量配置(程序 /RAM 空间),需结合具体应用场景(如代码复杂度、功耗要求)选择适配型号。例如 STC89C51 实际配置为 4KB Flash ROM 和 128 字节 RAM,而 STC89C52 则扩展至 8KB Flash ROM,RAM 仍为 128 字节。

1.2.2 测距模块选择

首先,水对 40 kHz ~1 MHz 频段超声波的衰减系数仅为空气的 1/30,且声速在 20° 纯水中稳定在1 482 m⋅s-1 左右,使时差法测距的理论分辨率可达毫米级;其次,超声换能器经聚苯硫醚(PPS)封装后达到IP68 防护等级,可在2 bar 静压下长期工作,耐氯腐蚀性能符合《GB/T 5750.6-2022》要求,实验表明连续运行1000 h 后灵敏度衰减小于2 % ;再次,模块功耗低于 25 mA@5 V,供电可与泳池循环泵共用 12 V 总线,无需额外布线,较投入式压力传感器减少约 40 % 的安装费用。综上所述,超声模块兼具高精度、强环境适应性和低工程成本,是泳池水深实时监测的理想方案。

1.2.3 显示模块的选择

显示模块选用 1.8 英寸 TFT-LCD(ST7735S 驱动),分辨率 128×160 ,RGB 18-bit,接口为4-Wire SPI。其优势体现在:1) 低功耗:全屏点亮典型值仅18 mA@3.3V ,适合电池或太阳能供电的泳池侧终端;2) 宽温工作:-30 ℃~+85 ℃满足户外昼夜温差,且IPS 面板在正午直射下仍可保持 >500 ∶ 1 对比度;3) 高集成:驱动 IC 集成 GRAM 与伽玛校正,MCU 仅需<8 kB RAM 即可驱动,降低主控资源占用;4) 易布线与防护:FPC 软排线通过单面出线即可隐藏在防水盒侧面,配合环氧灌封达到IP65,较并口屏减少约60 % 的走线与密封点。因此,ST7735S TFT 模块在功耗、可视性、防护及系统集成度上均优于同级OLED 或段式LCD,是泳池监测终端的理想显示方案。

2 系统详细实现

2.1 硬件模块搭建

选择合适的微控制器,Arduino Uno 是不错的选择,它有丰富的接口和简单的编程环境。传感器模块用于收集泳池的各项数据,水温传感器可以实时监测泳池水的温度,常用的有DS18B20,它能精确测量水温,并且防水性能较好,适合在泳池环境使用;水质传感器用于检测水的酸碱度(pH 值)和溶解氧等指标,pH 传感器能将水中的酸碱度转化为电信号,通过Arduino 处理后得到具体的pH 数值;水位传感器可采用超声波传感器,如HC - SR04,它通过发射超声波并接收反射波来计算泳池的水位高度。数据传输模块负责将传感器收集到的数据发送出去,无线传输模块是常用的选择,如ESP8266 Wi - Fi 模块,它可以将Arduino采集的数据通过 Wi - Fi 网络发送到远程服务器或移动设备。也可以使用蓝牙模块,如 HC- 05,实现与手机等设备的近距离无线通信。显示模块用于直观展示泳池的各项数据,可选用LCD 显示屏,如1602 LCD,它能清晰显示水温、pH 值、水位等信息,方便用户实时查看。

电源模块为整个系统提供稳定的电力支持,对于小型的智能泳池监测系统,可以使用电池供电,如锂电池,方便安装和移动。如果系统需要长时间稳定运行,也可以采用外接电源供电,通过电源适配器将市电转换为合适的电压为 Arduino 和各个模块供电。将各个硬件模块连接到 Arduino 上,按照传感器、数据传输模块、显示模块和电源模块的顺序依次连接。水温传感器的数据线连接到 Arduino 的数字引脚,VCC 和 GND 分别连接到电源的正负极;水质传感器和水位传感器的连接方式类似,根据其数据输出接口连接到 Arduino 相应的模拟或数字引脚。数据传输模块通过串口通信与 Arduino 连接,ch340 模块的 TX 和 RX 引脚分别连接到 Arduino 的 RX 和 TX 引脚。显示模块的数据线和控制线连接到 Arduino 的数字引脚,以实现数据的显示。

在连接过程中,要注意引脚的对应关系和电源的稳定性,避免出现短路或连接错误的情况。连接完成后,对整个硬件系统进行测试,检查各个模块是否正常工作,传感器能否准确采集数据,数据传输模块能否正常发送数据,显示模块能否正确显示信息。在测试过程中,如果发现某个模块工作异常,需要检查连接是否松动、引脚是否接错、电源是否正常等,及时排除故障,确保整个硬件系统稳定可靠地运行。

2.2 软件代码编写

选用合适的传感器模块用于泳池监测,如温度传感器可选用 DS18B20,用于精确测量泳池水温;水质传感器可选用 pH 传感器来检测泳池水酸碱度,还可使用浊度传感器检测水的浑浊度。将这些传感器按照其引脚定义连接到 Arduino 开发板上,温度传感器的数据线连接到开发板数字引脚,pH 传感器和浊度传感器的模拟输出引脚连接到开发板模拟引脚。编写代码时首先要包含必要的库文件,对于 DHT11 温湿度传感器需包含 OneWire 和DallasTemperature 库,用于与传感器通信和读取温度数据。在代码的 setup 函数中进行初始化操作,设置串口通信波特率方便后续数据输出显示,同时初始化传感器,让传感器进入可工作状态。

在 loop 函数中循环读取传感器数据,对于温度传感器,使用 DallasTemperature 库提供的函数读取温度值;对于 pH 传感器和浊度传感器,使用 Arduino 的 analogRead 函数读取模拟值,再根据传感器的特性曲线将模拟值转换为实际的 pH 值和浊度值。为确保数据准确性,可对读取的数据进行滤波处理,例如采用移动平均滤波算法,将多次读取的数据进行平均,减少数据的波动和噪声干扰。

将处理后的数据通过串口输出显示,可使用串口监视器查看实时的水温、pH 值和浊度值。若要实现远程监测功能,可添加无线通信模块如 ESP8266,将数据通过 Wi-Fi 发送到云端服务器或手机端。在代码中添加与无线通信模块通信的相关代码,将传感器数据打包发送。为实现智能控制,可设置数据阈值。当水温、pH 值或浊度超出设定范围时,通过 Arduino 控制继电器等执行器,开启加热设备调节水温、添加化学药剂调节水质或启动过滤设备净化水质。在代码中编写判断逻辑,当数据超出阈值时,输出控制信号到相应的执行器引脚。

对代码进行调试和优化,检查传感器数据读取是否准确,控制逻辑是否正常工作。根据实际情况调整滤波算法参数、阈值范围等,确保系统稳定可靠运行。

2.3 系统联调测试

进行系统硬件连接检查,确保 Arduino 板与各类传感器以及执行器之间的线路连接牢固且正确,避免因松动或接错线导致系统故障。对各传感器进行校准,使用标准物质或已知参数的环境对温度、水位、水质等传感器进行校准操作,以保证测量数据的准确性。将校准后的传感器安装到泳池合适位置,温度传感器需放置在能准确反映泳池水温的区域,水位传感器要安装在能有效监测水位变化的地方,水质传感器要置于能充分接触泳池水的位置。将编写好的Arduino 代码上传到开发板,检查代码上传过程是否顺利,有无报错信息。若上传失败,排查代码语法错误、串口通信问题或开发板选择错误等情况。代码上传成功后,开启系统电源,观察系统是否正常启动,各传感器是否开始工作,数据是否能正常传输到Arduino 板。

在系统运行过程中,实时读取各传感器的数据,通过串口监视器或连接的显示设备查看温度、水位、水质等参数的数值,检查数据是否合理,有无异常波动或错误数值。若发现数据异常,检查传感器是否损坏、线路连接是否正常或代码逻辑是否有误。根据泳池的正常参数范围,设置系统的报警阈值。模拟不同的泳池环境变化,如改变水温、水位或水质参数,观察系统的响应情况。测试系统的稳定性和可靠性,确保在长时间运行过程中,系统能持续准确地监测泳池参数,并及时做出正确的响应。在系统联调测试过程中,详细记录各项测试数据和出现的问题,包括传感器测量值、报警触发情况、执行器动作等。对测试数据进行分析,评估系统性能是否满足设计要求。若发现问题,及时进行排查和修复,对代码进行优化或调整硬件连接,直至系统稳定可靠地运行。

结论

智能泳池监测系统依托 Arduino 开发板达成了对泳池多参数的实时监测与自动化控制功能。水质传感器能精准采集酸碱度、余氯、浊度等关键指标数据,温度传感器可实时获取泳池水温。这些数据经 Arduino 处理后,能直观地显示在显示屏上,方便用户及时了解泳池水质和水温状况。远程监控功能是系统的一大亮点,用户通过手机或电脑等终端设备,可随时随地查看泳池的各项参数和设备运行状态。即使不在泳池现场,也能及时掌握泳池情况,并进行远程控制,增强了系统的便捷性和实用性。系统采用模块化设计,便于硬件的安装、调试和维护。各个传感器和设备之间相互独立,出现故障时可快速定位并更换,降低了维护成本和难度。系统的软件代码具有良好的可读性和可扩展性,方便后续功能的升级和优化。智能泳池监测系统为泳池管理提供了全面、高效、便捷的解决方案。它不仅能保障泳池水质和水温的稳定,为用户提供舒适、安全的游泳环境,还能降低泳池运营成本,提高管理效率。随着物联网和传感器技术的不断发展,该系统有望在更多场景得到应用和推广。

参考文献:

[1] 彭伟 . 物联网技术与 Arduino 实践教程 [M]. 北京:电子工业出版社 , 2021.

[2] 李正周, 张毅, 郑睿. 传感器与检测技术[M]. 重庆:重庆大学出版社, 2022.

[3] 刘洪涛, 刘鸿鹏, 王洪波. 基于物联网的水产养殖水质监测系统设计[J]. 自动化与仪表 , 2019, 34(3): 46 - 49.