简单实现基于 STM32F407+ESP8266+RFID 的物联网小项目
BusChargeSystem-IOT
项目介绍
基于 STM32F407+ESP8266+RFID 的模拟公交车刷卡收费系统(物联网)
STM32 通过 RFID 识别获取卡片数据并通过串口发送到 ESP8266,ESP8266 通过网络与服务端进行交互,服务端使用 Java 语言读取网络传输的数据包进行处理后,并使用 JDBC 将数据写入到 MySQL 数据库中。
软件技术栈:Java语言+JDBC+MySQL
硬件技术栈:C/C++语言+STM32F407+ESP8266+RFID
做这个小小的项目过程中参考了很多正点原子的资料,很多东西都是刚开始学习,所以只会简单的实现一个物联网项目。
项目示意图:
开源仓库地址:
github:https://github.com/DaXiongRen/BusChargeSystem-IOT
gitee:https://gitee.com/DxrHelloWorld/BusChargeSystem-IOT
百度网盘地址:
下载链接: https://pan.baidu.com/s/1aGTOq4gMEuc3InHixJp6nw 提取码: 6tut
1. 功能列表
功能 | 介绍 |
---|---|
添加用户 | 刷卡识别需要添加的用户 |
删除用户 | 刷卡识别需要删除的用户 |
刷卡消费 | 每次刷卡消费金额为 1 元,同一用户可连续刷卡消费 |
余额充值 | 通过按键选择充值金额并刷卡识别完成充值 |
2. 技术栈
2.1 环境
环境 | 版本 |
---|---|
操作系统 | Windows/Linux |
KeilMDK-ARM | 5.35 |
Arduino | 1.8.15 |
Jdk | 1.8 |
Mysql | 8.0 |
2.2 硬件端
- STM32F407
- ESP8266
- RFID 模块
- TFT LCD 液晶屏模块
2.3 服务端
- Java
- Mysql
- JDBC
3. 项目开发
3.1 项目代码文件结构简介
- BusChargeSystem-IOT- BusChargeSystem STM32F407代码- BusChargeSystemService 服务端代码- esp8266 ESP8266代码- sql mysql数据库脚本
3.2 硬件端开发
3.2.1 开发说明
- .\BusChargeSystem\为 STM32F407 开发板的代码,请使用 Keil uVision5 集成开发工具打开\USER\BusChargeSystem.uvprojx 文件
- .\esp8266\为 esp8266 开发板的代码,请使用 Arduino 开发工具打开,修改服务器 IP 地址和端口
// 服务器IP地址 和 端口
const char *host = "192.168.137.1"; // 本地测试的IP 后期改成云服务器的IP
const uint16_t port = 8888;
注:如果本地测试接收不数据,关闭防火墙后再进行测试
3.2.2 硬件接线方式
STM32F407 | RFID 模块 |
---|---|
PA4 | SDA |
PC10 | SCK |
PC12 | MOSI |
PC11 | MISO |
GND | GND |
PA6 | RST |
3.3V | VCC |
STM32F407 | ESP8266 |
---|---|
3.3V | VCC |
GND | GND |
PA9(TX) | RX |
PA10(RX) | TX |
TFT LCD 液晶屏模块 — STM32F407 开发板上固定位置插入
3.3 服务端开发
3.3.1 开发说明
- .\sql\为数据库脚本,安装 mysql,导入 bus_charge_system.sql 脚本
- 数据库名称为:bus_charge_system
- 默认账号:BCSAdmin 密码:123456
- .\BusChargeSystem\为服务端代码,请使用 IntelliJ IDEA 打开此文件夹
- 启动服务端程序,默认监听端口为 8888
3.3.2 数据库表
表名:user_tb
字段名 | 类型 | 注释 |
---|---|---|
id | int | RFID 模块读卡的卡号 |
name | varchar | 用户名 |
sex | char | |
age | int | |
balance | double | 用户余额 |
signup_time | datetime | 注册时间 |
4. 项目部署
4.1 硬件端部署
STM32F407:
- 使用 Keil uVision5 集成开发工具打开.\BusChargeSystem\USER\目录下的 BusChargeSystem.uvprojx 文件并编译
- 编译后会在.\BusChargeSystem\OBJ\目录下生成 BusChargeSystem.hex 文件,通过 FlyMcu 工具将此文件下载到开发板上 或 使用 DAP 仿真器
ESP8266:
- 用 Arduino 开发工具打开.\esp8266\目录下的 esp8266.ino 文件并将程序下载到开发板上
4.2 服务端部署
在数据库管理软件中导入./sql/目录下的 bus_charge_system.sql 脚本
将.\BusChargeSystemService 目录下的 Java 程序打包成 Jar 包并上传到云服务器
在云服务器上将 8888 端口加入安全组
在终端执行 Jar 包,命令如下:
java -jar BusChargeSystemService.jar
5. 参考资料
硬件资料
正点原子@ALIENTEK
简单实现基于 STM32F407+ESP8266+RFID 的物联网小项目相关推荐
- 制作一个有趣的涂鸦物联网小项目(涂鸦模组SDK开发 CBU BK7231N WiFi+蓝牙模组 HSV彩色控制)
实现的功能: l APP控制月球灯 l 本地月球灯控制 l APP控制"大白"颜色,实现各种颜色变身 l 门状态传感器状态APP显示 l 网络状态指示灯,连接服务器长亮, ...
- 矩阵键盘基于51(UcosII)计算器小项目
矩阵键盘 最近要给学弟学妹(应该没有)培训矩阵键盘,正好写一写我写矩阵键盘的思路,顺便分享一个之前做的基于ucosii的计算器小项目 原理 原理就不介绍了,CSDN有很多分享的,推荐两篇参考一下: 参 ...
- 物联网小项目智能家居(QT、MQTT、嵌入式开发板、Ubuntu)
项目框架: 概述:搭建一个物联网的实战小项目,为本阶段的学习做了一次总结及记录.把构建的整个过程分享出来给大家,项目难点在于各种环境的搭建,而代码逻辑并不难. 说明: (1)本项目总共涉及到了4个MQ ...
- 处女作,,QT+arduino的物联网小项目
这是大三所做的项目,距离完成项目的时间已经过去快十个月之久了,至于为什么今天想发出来是因为马上面临找工作了,想把所做的项目再复习复习,,希望能温故而知新吧O(∩_∩)O. 项目名称叫"智慧停 ...
- 基于stm32f407的无线视屏传输项目
材料:STM32F407两块 NRF24L01两个,OV2640摄像头一个,TFTLCD4.3寸显示屏一个,IS62WV51216(sram)一个. 注:一开始在无线传输模块的选材上有串口wifi ...
- C/C++基于easyX库实现三星环绕小项目(C/C++)
1,项目描述 功能1:使用图形化的方式描述地球围绕着太阳转动,月球围绕着地球转动 功能2:在转动的过程中当用户按下1,2,3,4,5,6,7时它可以变换出7种不同的颜色,当用户按下8时它可以变换从1- ...
- 【简单又有趣】Python五个迷你小项目,即学即用,还不赶紧码住(附源码)
目录 前言 一.猜数字游戏 二.骰子模拟器 三.故事生成器 四.自动发送邮件 五.Hangman 总结 前言 Python编程语言中,我最喜欢的就是Python的各种第三方库,能够完成很多操作. 下面 ...
- 简单易上手的vue3.0+ts实战小项目!!附带后台接口
vue3+Ts项目实战 1.前言 2.项目演示 3.项目介绍 4.配套的node服务 5.vue3+ts的使用心得 1.vue3的使用体会
- 最简单DIY基于STM32单片机的WIFI智能小车设计方案
STM32库函数开发系列文章目录 第一篇:STM32F103ZET6单片机双串口互发程序设计与实现 第二篇:最简单DIY基于STM32单片机的蓝牙智能小车设计方案 第三篇:最简单DIY基于STM32F ...
最新文章
- Java内部类手机专卖店_JAVA——内部类的那些事儿
- linux开发神器--Tmux
- 【专栏】好Leader和差Leader的8个区别
- 服务器虚拟交换机到网卡不通,浅析虚拟化环境网卡绑定模式
- 阿里资深技术专家的10年感悟
- ORACLE 全文搜索(精度高排前)
- 一生要做的九十九件事
- python有什么用-Python为什么这么火?学习python有什么用?
- Java的String/byte[]/16进制相互转换
- 围棋,与生活,与编程
- 常见的系统间接口方式(02)-中间件的数据接口模式
- 约瑟夫出圈问题之幼儿园做游戏
- 信息与计算机科学丛书,信息与计算科学丛书: 典藏版
- 手机里竟然有这么多传感器!终于都搞懂了
- SQL Server中的日期和时间:DATEADD()
- matlab怎么处理声音,用matlab处理音频文件
- python入门之字符串_03
- 【结构思考力】02——明确理念打基础
- 为何使用人工智能软件?
- 用C# OpenGL渲染魔兽世界地图系列(一) 魔兽世界地图介绍与OpenGL环境