基于BL604的共享智能饮水机
2022-06-26姚蔚奇裴利凯
姚蔚奇,裴利凯
(南京信息工程大学 电子与信息工程学院,江苏 南京 210044)
随着智能化设备与共享文化的不断发展,我们身边出现了许多如共享单车等智能化共享设备,这些物联网设备便利了我们的生活。而在饮水机市场中也出现了共享饮水机。针对传统桶装水人工成本高、需要存储等问题,出于环保与快捷方面的考虑,共享饮水机在共享文化快速发展的物联网时代具有越来越大市场。目前,市场上的一些共享饮水机存在功能单一、能耗大、使用不方便等问题[1-2],投放在公共场所的饮水机大都没有连接互联网,管理员难以及时获取设备工作情况,设备故障时需要依靠用户进行报修。同时大多数物联网智能设备微处理器的设计公司和生产商是来自国外。因此本文基于国产单片机BL604嵌入式系统设计了一款共享智能饮水机设备。该智能设备是以BL604为微处理器,通过连接DS18B20等传感器实现相应功能,具有温度自动调节、气压测量、自动补水等功能,通过单片机的内置WIFI模块连接至云平台,实现了设备的远程监控与管理。该智能设备实用性强,功能得到了拓展,适合在公共场所推广使用。
1 整体系统设计
本文设计的共享智能饮水机由净水箱、储水箱和控制电路3个部分组成。净水箱由滤芯、活性炭、海绵等水质过滤物组成,可以将自来水过滤为饮用水;储水箱用来存储过滤后的饮用水,分为热水箱和冷水箱;控制电路用来实现饮水机的控制功能,通过对外界参数的测量调整系统工作状态,使饮水机更加智能化。该系统通过云平台拟构建的管理者、用户和设备间的关系如图1所示。饮水机设备可以通过云平台上报日志供管理员查看,以便管理员对设备进行及时维护。管理员也可以在云平台上查看设备的使用频率,收集用户意见,通过收集数据并分析来选择饮水机合适的投放地点。用户通过手机APP连接至云平台,通过云平台获取取水码,激活饮水机后进行取水。
图1 云平台关系图
2 硬件电路设计
智能饮水机硬件电路的系统结构如图2所示,它是以BL604作为微处理器,通过一些外设实现相应的功能。其主要的传感器有温度传感器、压力传感器和气压传感器。
图2 硬件电路系统结构
2.1 微处理器
该饮水机采用博流公司开发的BL604作为微处理器,该芯片内处理器采用RISC-V 32bit带浮点,是国内首款基于RISC-V内核的Wi-Fi+BLE Combo芯片,它搭配高速处理内存系统,达到优质的运算效率。而RISC-V开源指令集的出现使得IP设计得到了彻底的解放,在产品定制需求多样化等应用的需求上有着绝对的优势[3]。
处理器外部为多层32-bit AHB架构,具有低功耗、低延迟、高弹性的特性,适用于低功耗、高性能的物联网的应用与开发。微控制器子系统包含一个低功耗的32位RISC-V CPU、高速缓存和存储器。电源管理单元控制低功耗模式,此外还支持各种安全性能。该微处理器的外设丰富,主要有1路SPI主/从机(最高速度可达40 Mbps)、2路UART(最高波特率可达10 Mbps,支持RTS/CTS流控)、12路12-bit通用ADC(最高转换速度可达2 Msps)、2个32位通用定时器、4个DMA通道、23个GPIO等。其芯片的引脚图如图3所示。目前市场上微处理器大多以意法半导体公司生产的STM32为主,而本文的智能饮水机设备将国产的单片机作为主控芯片,有利于国产芯片的推广和发展,丰富我国国产单片机的产业生态。
图3 微处理器引脚图
2.2 温度传感器
温度传感器用来测量热水的温度,配合加热器实现恒温效果,本文温度传感器使用的是DS18B20,它可以将温度模拟信号转换为数字信号,具有成本低、引脚资源占用少、精度高、噪声容限大等特点。DS18B20的分辨率可调,最高分辨率为0.062 5℃。其与单片机通过单总线协议进行通信,仅有一条数据线,因此其对时序要求非常严格以确保数据的完整性。DS18B20的原理图如图4所示,数据线DQ连接至单片机的GPIO5引脚,单片机通过程序模拟单总线协议与传感器进行通讯,从而通过DS18B20读取水温,并显示在LCD屏幕上,当温度低于阈值时继电器打开,加热器开始工作。
图4 DS18B20原理图
2.3 压力传感器
压力传感器用来测量储水箱的重量,通过测量水箱对传感器的压力就可以检测水箱水量的剩余情况。当水箱水量不足时,净水箱将对储水箱进行补水。由于对于压力的测量精度要求并不高,可以采用压敏电阻测量压力。压力传感器模块由压敏电阻和电压转换模块组成。压敏电阻施加作用力越大,传感器阻值越小,不施加作用力时,电阻趋于无限大。电压转换模块将电阻阻值转换为电信号,利用单片机的片内ADC测量电压可以测得压力的变化。
压力传感器的原理图如图5所示。运放U2A采用的芯片是OP07,其构成一个电压跟随器,起到隔离与缓冲的作用。R1、R2、R4构成分压电路,R3、C6构成低通滤波,可以减小噪声对直流电压测量的影响,输出的直流电压连接至单片机的一个ADC引脚GPIO10。
图5 压力传感器原理图
2.4 气压传感器
气压传感器用来测量设备工作环境的大气压,由于水的沸点随气压的降低而减小,对于热水如果设置统一的加热停止阈值,在低气压环境下容易出现干烧、千滚水的不利影响,既不利于饮水健康又增加了能耗,因此通过测量设备工作的大气压,对于不同的气压环境,该设备可以自动调整加热停止的阈值,更加科学有效地进行加热[4]。气压传感器采用MS5611传感器,本文选用SPI协议进行MS5611和单片机的通讯,通过外设SPI接口对传感器发送指令并接受返回的数值,获取气压情况。MS5611的原理图如图6所示,BARO_CS为传感器的使能信号,由主设备(单片机)控制,连接至单片机SPI接口的CS端口;SPI_INT_MOSI是传感器输出数据给单片机接收,连接至单片机SPI接口的MOSI端口;SPI_INT_MOSO是单片机发送数据控制传感器,连接至单片机SPI接口的MOSO端口;SPI_INT_MOSI为传感器的工作时钟,由单片机提供,连接至单片机SPI接口的SCK端口。
图6 MS5611原理图
2.5 LCD屏
LCD屏使用的是TFT液晶屏,单片机通过UART串口和LCD屏进行通讯,通过发送指令控制屏幕进行相应的界面切换和数据显示。该显示屏为触摸式液晶屏,用户可以直接点击屏幕进行界面切换,完成取水所需的操作。LCD屏幕也可以根据商家的需求修改显示界面,实现广告的投放功能。
2.6 WIFI模块
一般的物联网开发需要用到ESP32提供WIFI模块,而BL604单片机内置了WIFI模块,有利于物联网的应用与开发。单片机通过WIFI模块接入腾讯云平台,在手机上通过APP小程序实现向单片机发送指令和接收单片机数据并不断更新显示。物联网控制系统的架构采用腾讯云平台环境,其能够提供各种云API函数和后台管理服务[5]。饮水机的管理者可以通过腾讯云平台的控制台查看设备上报的日志,便于进行设备的管理和维护。用户可以通过手机APP连接至云平台完成取水所需的操作。对于APP的开发,可使用腾讯云平台进行部署搭建所需的构件库[6],APP界面如图7所示,主要有冷热水开关、账户余额显示、取水码的设置等功能。
图7 APP界面
2.7 进水阀门
净水箱和储水箱之间通过一个进水阀门连接,单片机通过PWM波控制舵机改变阀门的开关状态,通过压力传感器检测水箱重量,获取储水箱剩余水量情况,当储水箱水量不足时,阀门打开。同时使用舵机控制阀门可以合理控制阀门打开的大小,而阀门打开的大小可以控制水流的速度,过快的流速不利于净水箱净水。
3 系统软件设计
BL604的程序设计是基于博流公司提供的库函数,在Linux环境下进行编译并生成下载文件,通过博流公司提供的工具链进行程序下载。系统软件部分主要分为三部分:参数测量、管理员模式和用户取水。参数测量每隔1秒测量1次,根据测量的参数调整设备的工作状态,其流程图如图8所示。当单片机复位后,首先进行一次气压测量以调整加热停止的阈值。之后每过1秒分别测量1次水温和水量情况,并根据测量情况改变加热器和阀门的工作状态。
图8 参数测量流程图
管理员模式需要密码进入,设置的密码存放在单片机的ROM里,同时会发送至云平台存储以防管理员遗忘密码。管理员模式下可将设备设置为免费模式和收费模式、可以通过云平台在LCD屏上投放广告。用户取水流程如图9所示,取水时首先要登录APP并连接网络,设置取水码,该取水码会通过云平台同步发送到饮水机以供校验。用户在LCD屏幕上输入取水码以激活饮水机,点击冷水或热水的开关按钮即可开始取水。在取水过程中,若用户20 s没有操作将自动结束本次取水。取水完毕后设备将向云平台上报日志,如果是收费模式将根据取水量扣除用户的账户余额。
图9 取水流程图
4 结束语
本文设计了一款基于国产单片机BL604的共享智能饮水机,图10为控制电路部分实物图,经过测试该系统实现了预期设计目标,具有温度测量、气压测量、自动补水等功能,通过单片机内置的WIFI模块将设备连接至云平台,云平台使得设备更加智能化,用户可以通过手机APP很方便地进行取水,管理者也可以在云控制台查看用户使用情况,加强了管理者与用户之间的及时联系,适合在公共场所进行推广使用。
图10 实物图