FruitsaleSystem的小程序,小程序的六大核心功能。因为本系统的核心是卡片,所以小程序端实现了卡片与微信用户的绑定、解绑、充值、查看卡片充值和消费记录等功能;而支付功能也是小程序很重要的一部分,查看订单可以查看刷卡支付的订单和扫码支付的订单,让用户了解到自己的每一笔钱都花去哪了。
硬件端,我们使用了 NodeMCU 、Arduino UNO 和SSD1306 来模拟水果的屏幕购买操作,使用HX711 称重模块对水果进行称重,使用RFID-RC522 模块实现刷卡支付以及qrcode 库实现扫码支付;在oled 屏幕上设计了很多界面,并配合Keypad 模块供用户操控屏幕界面。
物联网大作业自助水果售卖机系统的后端开发,使用SpringBoot和Mybatis。
此组织为大三下学期物联网开发项目时所建,用于托管课程大作业项目,以及平时的实验代码。成员有两名:huang同学和lt同学。
开发时间:2021年3月~2021年6月。
系统简介:FruitSaleSystem是一个自助化选购水果、自助称重计费并允许扫码或刷卡支付,且提供实时查看购买 消费记录的物联网自助水果售卖系统。
本系统主要包含以下两大核心功能模块:
三大系统模块:硬件端、移动端、服务器端。三个系统模块之间都能交互信 息,硬件端和服务器端使用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 主要用于小程序和硬件端的交互,因为绑卡、刷卡、充值卡片 都需要同步卡片里的金额数据和数据库里的金额数据。
(一)实验一
复习NodeMCU开发板接口功能及ESP8266 Arduino core相关类库的使用,使用NodeMCU作为主控MCU连接温湿度传感器,将采集到的两种数据实时显示到OLED液晶屏上(每5秒钟刷新一次数据),要求用户界面友好。
(二)实验二
用NodeMCU设计一款家用天气预报告知系统,能通过网络实时获取当前3天内杭州的天气预报信息,并显示到液晶屏上,要求用户界面友好。
(三)实验三
使用Arduino和Ethernet扩展板作为Web服务器,通过浏览器在局域网内访问该服务器,获取Arduino端的温湿度数据,显示到浏览器上。
(四)实验四
1、复习MQTT协议和pubsubclient类库的使用;
2、学习通过MQTT 客户端软件调试代码;
3、使用一块NodeMCU作为远端节点N1,每5秒钟发布一次该节点的温湿度数据;另外一块NodeMCU作为用户操作节点N2,该节点订阅N1的温湿度信息,获得数据在OLED屏上实时显示。另外N2节点上的按键可以实时控制N1节点的LED灯亮灭。
(五)实验五
1、复习RFID ISO/IEC 14443A相关标准;复习MFRC522、Mifare S50等相关模块和MFRC522类库的使用;
2、设计一个刷卡门禁系统,要求:
(1)在S50白卡的第15扇区第2块写入系统特征码,前三字节AAH BBH CCH + 其他(任意,各组不同);异形卡不做任何设置。
(2)当刷本组的白卡时,液晶屏显示欢迎词,否则(异形卡或者他组白卡)液晶屏显示拒绝信息,并闪烁LED灯3次以示报警。
(3)在液晶屏上显示当日(开机或重启后)刷卡总次数。
(4)拓展1:把正常用户(白卡)和非法用户(异形卡或者他组白卡)的UID信息通过MQTT都上传至服务器,可以在远程MQTT客户端即时查看,或存入数据库。
(5)拓展2:用户刷卡成功后蜂鸣器短时鸣叫1次,刷卡失败鸣叫3次以示报警。