一. 系统概述
智能图书馆系统旨在提升图书管理的效率与准确性,涵盖图书信息录入、数据传输、管理、权限控制及统计等多项功能。主要特点如下:
-
条形码扫描功能:
- 该系统利用条形码扫描模块,快速扫描书籍上的条形码,并将新到图书的基本信息存入数据库。同时,上位机将显示图书的相关信息。
-
数据传输功能:
- 通过无线传输模块,单片机与上位机建立连接,实现图书信息的实时传输,确保扫描到的信息能够及时反映在上位机上。
-
图书数据管理模块:
- 上位机展示书籍的详细信息,包括书名、描述、价格及库存量,并标注相应的条形码编号,方便用户查阅。
-
人员权限管理:
- 图书馆管理员拥有对图书的入库和出库的修改权限,而普通用户仅限于查看图书的基本信息,无法进行出入库操作。
-
图书数据统计:
- 系统根据每本书的条形码统计库存情况,并通过图表形式直观展示图书数量的变动,便于管理人员掌握库存动态。
二. 电路设计
电路设计采用Altium Designer软件进行优化:
- 系统的核心控制单元为STM32F103C8T6单片机,构成其最小系统。
- 通过GM865条形码扫描模块进行条形码的识别,并通过UART串口与单片机进行数据连接。
- 利用ESP8266-01S模块,将获取的条形码信息上传至服务器,同时实现与单片机的UART串口通信。
三.程序设计
#include "sys.h"
#include "delay.h"
#include "adc2.h"
#include "math.h"
#include "adc.h"
#include "key.h"
#include "OLED_I2C.h"
#include "Control_Report_To_Police.h"
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
delay_init(); //延时函数初始化
Usart1_Init(9600);
KEY1_Init();
TIM4_Init(300,7200);
ALi_ESP8266_GPIO_Init();
MQTT_Buff_Init();
AliIoT_Parameter_Init();
while(1)
{
OLED_Display_Cotrol(); //显示控制函数
}
}
/*-------------------------------------------------*/
/* */
/* WIFI(ESP8266)源文件 */
/* */
/*-------------------------------------------------*/
// 硬件连接:
// PA2 RX
// PA3 TX
// PA4 复位
#include "wifi.h" //包含需要的头文件
************************************************/
char wifi_mode = 0; //联网模式 0:SSID和密码写在程序里 1:Smartconfig方式用APP发送
/*-------------------------------------------------*/
/*函数名:初始化WiFi的复位IO */
/*参 数:无 */
/*返回值:无 */
/*-------------------------------------------------*/
void WiFi_ResetIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //定义一个设置IO端口参数的结构体
RCC_APB2PeriphClockCmd( RCC_APB2Periph_ALi_GPIO_Port , ENABLE); //使能PA端口时钟
GPIO_InitStructure.GPIO_Pin = ALi_GPIO_Pin_Num_Rst; //准备设置端口号
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //速率50Mhz
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推免输出方式
GPIO_Init(ALi_GPIO_Port, &GPIO_InitStructure); //设置输出模式
RESET_IO(1); //复位IO拉高电平
}
/*************************************************
阿里云 ESP8266 GPIO以及通信接口的初始化
*************************************************/
void ALi_ESP8266_GPIO_Init()
{
Usart2_Init(115200);
WiFi_ResetIO_Init();
}
四.资料内容
24-32-05