物联网大作业项目,自助水果售卖机。硬件端由NodeMCU及各种传感器模块联合实现,移动端使用的是小程序开发,后端使用SpringBoot实现。
组织介绍

一、组织介绍

此组织为大三下学期物联网开发项目时所建,用于托管课程大作业项目,以及平时的实验代码。成员有两名:huang同学和lt同学。
开发时间:2021年3月~2021年6月。

二、课程大作业项目FruitSaleSystem

(一)、项目介绍

  • 系统简介:FruitSaleSystem是一个自助化选购水果、自助称重计费并允许扫码或刷卡支付,且提供实时查看购买 消费记录的物联网自助水果售卖系统。

  • 本系统主要包含以下两大核心功能模块

  1. 用户自助水 果购买:用户操作显示屏选购水果,系统称重计费,用户选择扫码或者刷卡支付,完成自助水 果购买;
  2. 用户卡片操作:对于每个用户而言,他们都可以拥有一个小程序账号和多张消费 支付卡, 他们在硬件端能够实现办卡、充值、刷卡支付、查看金额,且能在小程序端实现绑卡、 解绑、查看卡片消费记录等功能。
  • 本系统主要包含三大系统模块:硬件端、移动端、服务器端。三个系统模块之间都能交互信 息,硬件端和服务器端使用HTTP 协议进行交互,硬件端和小程序端使用MQTT 协议进行交互, 小程序端和服务器端使用HTTP 协议进行交互

(二)、系统开发

1、硬件端

硬件端是用户直接接触的部分,采用了NodeMCU 作为主开发板,Arduino UNO 作为拓展开 发板,配合SSD1306 显示屏模块和Keypad 模块,为用户提供键盘操作显示屏的功能,用户可通 过Keypad 模块在显示屏上进入相应的服务界面,依照屏幕提示语完成一系列的操作;并协同 HX711 称重模块来完成水果的称重计费功能;而RFID-RC522 读写卡模块是与小程序和服务器 端交互信息的核心模块,它存储着金额和用户信息,与本系统的绑定用户、刷卡支付等有着密 切关联;同时我们使用了Arduino 和NodeMCU 的二维码开源库实现扫码支付、用户绑定、卡片 充值等功能。

2、移动端

移动端我们采用的是基于微信平台的“方便快捷,即用即走”的微信小程序,用户只需要扫 描自助售卖系统上的二维码即可打开我们的小程序,进行后续的一系列操作。用户授权登录小 程序后,可以完成对卡片的绑定、解绑、充值、查看卡片消费记录,同时还能够浏览自己的水 果购买记录。

3、服务器端

服务器端是用户存储数据的中心,本次系统因为交互信息比较多,因此同时使用了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次以示报警。

成就
5
Star
0
Fork
成员(1)
8214118 huang maoxiang 1605791610
huang

搜索帮助