周瑞婷,周麟翔,吕坤山,石胜相,牛笑楠

(西北民族大学电气工程学院,甘肃兰州,730030)

0 前言

本项目是针对外卖行业存在的社会问题进行研究和解决。共享外卖自提箱可实现恒温、半导体制冷、支付存餐、指纹开锁、物联网远程复位、榛子云发短信、摄像头监控、GPS物联网远程监控、太阳能储能作为备用电源等基本功能,极大程度的方便外卖员和用户。既可以节省外卖员的送餐时间,提高效率。又受到用户的欢迎。随着嵌入式电子技术的飞速发展、电子技术相关的产品日益增加。近年来已经出现了外卖自提柜,这种外卖自提柜成本比较高,功能相对比较单一。基于传统的存储箱,本文设计的共享外卖自提箱可以实现指纹开锁、物联网远程复位、榛子云发短信、摄像头监控等特色功能。

1 系统总设计

在系统的控制上,本项目使用的是处理速度更强、硬件资源也比较丰富的STM32系列芯片两个。其中一个芯片用于对箱子的控制,另外一个STM32芯片用于对系统以及箱子的监控。该芯片有5V电压即可进行驱动,使用十分方便。在软件编程上,使用C语言进行STM32单片机代码的编写,在项目中,使用到STM32单片机的基本外设有定时器、串口通信、I2C通信、IO口的复用等,实现这些功能的前提是熟练掌握STM32系列的微控制器。

本项目设计的主要目的是要解决外卖行业在当前社会中的一些问题。例如:外卖丢失,外卖错拿的问题、用户无法及时取餐,导致外卖员长时间等待、食物质量问题等。而共享外卖自提箱可以结合各类传感器模块,解决外卖配送中存在的各种问题。

2 硬件设计

2.1 硬件布局

本系统以共享外卖自提箱为研究对象,该共享外卖自提箱使用两块以STM32 Cortex-M4为内核的主控芯片,其中包括加热片、制冷片、指纹识别模块、GPS模块、ESP8266模块、电磁锁、继电器、显示屏模块、温湿度传感器等模块构成一个完整的共享外卖自提箱系统,具体硬件系统设计如图1所示。

本系统由于要实现共享就需采用 GPS 实现项目的可被定位,安装摄像头监控,以防丢失及方便管理。同时安装扫码支付模块实现箱子的商业价值。此外采用 ESP8266 模块连接阿里云平台实现微信小程序和阿里云之间的通信以及阿里云和单片机之间的通信。为了给客户提供不同存储环境的选择,采用加热片和隔热膜实现加热功能。采用制冷片和小风扇以及水泵实现制冷功能,水泵为了给制冷片散热,小风扇为了将冷气扩散。由于系统需要较大的功率,本项目采用家用交流电作为电源,太阳能进行储能作为备用电源,通过逆变电器将储能 12V 转换为 220V 交流电,使用变电器将 220V 交流电转 12V 直流电对系统进行供电,以保证系统的基本工作(不进行加热功能)。此外采用榛子云平台为外卖员存储好食物后发短信给客户通知其取餐;此外具有矩阵按键开锁功能、物联网远程复位为防止卡死以及为外卖员提高开锁条件;在使用的过程中,同时自提箱内安装 DHT11 温湿度传感器做到自动控制温度,自提柜上 OLED 屏幕会实时显示温湿度情况;采用定位系统为自提柜提供了安全保障。采用 ESP8266 模块与阿里云平台搭建远程控制箱内温度情况;通过继电器对其电磁锁进行有效的控制,可实现酒精消毒。

2.2 主要模块的选择

2.2.1 电路硬件组成

电路硬件部分由电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成。电路整体原理图如图2所示。

2.2.2 主控芯片

本设计采用的主控芯片型号为STM32F103C8T6,芯片自带三个串口通信的功能可以满足本设计的需求,使用串口1对指纹识别的信息进行采集处理,使用串口2连接ESP8266连接阿里云物联网平台并上传数据,使用串口3进行GPS定位模块的数据采集。

2.2.3 GPS模块

本设计采用的GPS模块型号为 ATK1218-BD+IPX线+双模有源天线,定位芯片为S1216。串口波特率为4800-230400bps,本设计中采用9600波特率。通信协议为NMEA-0183,定位精度为2.5m,更新速率为20Hz。原理图如图3所示。

2.2.4 指纹识别模块

本设计采用的指纹识别模块型号为AS608光学指纹识别模块。芯片内置DSP运算单元,使用了指纹识别算法,能够高效地采集指纹图像信息并识别指纹特征。该模块采用串口通信,可直接通过串口通信协议即可控制指纹识别模块的指纹识别、录入和删除等操作。该模块供电电压为3.3V,工作电流为60mA以下。

2.2.5 ESP8266WiFi模块

本设计采用的ESP8266 WiFi模块型号为NodeMcu Lua WIFI V3。该模块的工作电压为3.3V。模块内部集成MCU能够通过串口和单片机进行通信。在本设计中,ESP8266通过AT指令连接阿里云,STM32单片机通过串口和ESP8266连接,通过程序编写将ESP连接阿里云所需要的AT资料发送到ESP。从而使得ESP连接到阿里云物联网平台并与STM32单片机通信进行数据的传输。原理图如图4所示。

2.2.6 蓝牙模块

本设计采用的蓝牙模块型号为HC-08的低功率蓝牙。该模块的工作电压为5V。HC-08蓝牙采用的通信协议是Bluetooth SpecificationV4.0 BLE蓝牙协议。设计中STM32单片机通过串口对HC-08进行控制。无线工作的频段为2.4GHz,使用的通信调制为GFSK。模块可以实现70~90 m的远距离传输数据。

2.3 系统电路稳定性以及合理性

本项目设计过程中使用到很多传感器模块,对于不同的模块有不同的通信协议,所以在IO复用时需要对各个模块的IO口在STM32上进行合理分配。

由于不同的传感器的工作电压不相同,制冷片、加热片等需要12V电压。指纹识别、温湿度传感器等需要5V电压。显示屏等需要3.3V电压。本项目系统供电采用220V的家用交流电作为电源,使用太阳能采集、电池储能、逆变器转换等过程产生220V交流电作为备用电源。之所以选择家用交流电作为电源,是因为一般的锂电池没法满足系统功率的需要。通过变压器将220V交流电转换为12V直流电。经过稳压模块引出3路电压,分别为12V、5V和3.3V的电压供系统模块使用。电路设计如图5所示。

3 软件设计

3.1 STM32的程序设计

STM32单片机使用的编程语言是C语言,使用的编译器是Keil。程序在编写过程中使用模块化编程,把不同模块的初始化及驱动过程函数封装在不同的.c文件中,在main.c文件中的主函数只实现调用的过程,不同文件中函数的调用通过对相应.h文件的引用来实现。

STM32程序设计相当的简单,等待外卖员扫码支付然后进行通电。等待微信小程序密码、环境选择命令。若没有接收到正确的命令,则继续等待;若接收到密码、环境选择等命令,则开锁并打开加热片或者制冷片执行工作。随后关门。等待用户取餐,当有按键输入,触发密码确认,判断密码是否正确,如正确,开锁取餐。关闭系统工作状态。程序流程图如图6所示。

3.2 微信小程序设计

微信小程序是外卖员存餐的直接显示窗口,由HTML5+ CSS+Javascript开发,外卖员可以在微信小程序中输入用户姓名电话等信息,可自动发送密码短信。

微信小程序中共有三个页面,第一个页面为微信小程序连接榛子云平台,通过输入手机号可自动生成密码并发送短信。第二个页面是连接阿里云平台,通过阿里云中的数据云流转和STM32组成的下位机相连接,主要显示STM32采集到的温度值。第三个页面为蓝牙界面开发,具有下发数据给共享外卖自提箱系统的功能。并带有数据发送格式提示。微信小程序界面如图7所示。

3.3 物联网连接

本项目采用的是阿里云平台进行开发。创建阿里云账号,进入物联网平台创建产品、设备等信息得到ProductKey、DeviceName、DeviceSecret。并利用MQTT编程工具产生单片机连接阿里云所需的基本信息。STM32通过AT指令把基本信息上传,将ESP8266连接至阿里云并上传温度数据至阿里云服务器。阿里云服务器接收到数据之后通过云流转将数据发送到微信小程序。同时,项目中涉及的物联网远程复位技术是通过阿里云自带APP开发设置一个按钮并关联设备服务数据下发到STM32单片机,阿里云服务器接收到APP的数据后,把接收到的数据转发到ESP8266模块ESP8266对接收到的数据进行处理,转换为相对应的控制信号,控制芯片的复位。物联网连接架构图如图8所示。

其中,M2M是机器对机器(Machine-To-Machine)通信简称。目前,M2M重点在于机器对机器的无线通信,存在以下三种方式:机器对机器,机器对移动电话(如用户远程监视),移动电话对机器(如用户远程控制)。

4 结语

文中设计通过将嵌入式技术、太阳能储能技术、物联网技术、半导体制冷技术、榛子云发短信技术、指纹识别技术等相结合,使用STM32单片机作为主控板,制作一套兼具智能性和实用性的共享外卖自提箱。解决了目前外卖行业存在的外卖错拿等问题。从而为外卖员和用户带来新的使用体验。