# fruitsale_system_backend **Repository Path**: fruitsale-system/fruitsale_system ## Basic Information - **Project Name**: fruitsale_system_backend - **Description**: 物联网大作业自助水果售卖机系统的后端开发,使用SpringBoot和Mybatis。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-06-21 - **Last Updated**: 2025-06-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: 后端开发, SpringBoot ## README ## FruitSaleSystem ### 一、项目介绍 - `系统简介`:FruitSaleSystem是一个自助化选购水果、自助称重计费并允许扫码或刷卡支付,且提供实时查看购买 消费记录的物联网自助水果售卖系统。 - 本系统主要包含以下`两大核心功能模块`: 1. 用户自助水 果购买:用户操作显示屏选购水果,系统称重计费,用户选择扫码或者刷卡支付,完成自助水 果购买; 2. 用户卡片操作:对于每个用户而言,他们都可以拥有一个小程序账号和多张消费 支付卡, 他们在硬件端能够实现办卡、充值、刷卡支付、查看金额,且能在小程序端实现绑卡、 解绑、查看卡片消费记录等功能。 - 本系统主要包含`三大系统模块`:硬件端、移动端、服务器端。三个系统模块之间都能交互信 息,硬件端和服务器端使用HTTP 协议进行交互,硬件端和小程序端使用MQTT 协议进行交互, 小程序端和服务器端使用HTTP 协议进行交互 ### 二、系统开发 #### (一)硬件端 硬件端是用户直接接触的部分,采用了NodeMCU 作为主开发板,Arduino UNO 作为拓展开 发板,配合SSD1306 显示屏模块和Keypad 模块,为用户提供键盘操作显示屏的功能,用户可通 过Keypad 模块在显示屏上进入相应的服务界面,依照屏幕提示语完成一系列的操作;并协同 HX711 称重模块来完成水果的称重计费功能;而RFID-RC522 读写卡模块是与小程序和服务器 端交互信息的核心模块,它存储着金额和用户信息,与本系统的绑定用户、刷卡支付等有着密 切关联;同时我们使用了Arduino 和NodeMCU 的二维码开源库实现扫码支付、用户绑定、卡片 充值等功能。 #### (二)移动端 移动端我们采用的是基于微信平台的“方便快捷,即用即走”的微信小程序,用户只需要扫 描自助售卖系统上的二维码即可打开我们的小程序,进行后续的一系列操作。用户授权登录小 程序后,可以完成对卡片的绑定、解绑、充值、查看卡片消费记录,同时还能够浏览自己的水 果购买记录。 #### (三)服务器端 服务器端是用户存储数据的中心,本次系统因为交互信息比较多,因此同时使用了HTTP 协议和MQTT 协议。我们在阿里云服务器上部署了基于Spring Boot 开发的后端API 接口,以供小 程序端和NodeMCU 通过HTTP 协议来调用接口,从而实现访问修改用户和卡片以及订单等数据 信息,数据信息同时也存储在基于阿里云服务器部署的MySQL 数据库里,实现数据的持久化。 同时,我们还在阿里云服务器上部署了EMQX 服务器,EMQX 是一款完全开源、高度可伸缩、 高可用的分布式 MQTT 消息服务器,适用于 IOT、M2M 和移动应用程序,可处理千万级别的 并发客户端。在本系统中,MQTT 主要用于小程序和硬件端的交互,因为绑卡、刷卡、充值卡片 都需要同步卡片里的金额数据和数据库里的金额数据。