# fsc-system **Repository Path**: yinyhy/fsc-system ## Basic Information - **Project Name**: fsc-system - **Description**: 辐射场控制前端网页系统和后端数据库系统 - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2026-02-28 - **Last Updated**: 2026-02-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # fsc-system #### 介绍 辐射场控制系统是基于物联网系统mqtt协议的局域网的数据通信控制系统。使用了vue前端框架、node后端、mqtt通信、WiFi模块组成的局域物联网控制。 #### 软件架构 1. element-admin的vue前端框架. 2. golang后端, 基于gin架构编写. 3. emqx的mqtt通信. 4. 基于esp8266-WiFi模块组成的局域物联网控制, 包含红外、门禁、源控开关. **网站运行流程图:** ![site-system](https://gitee.com/fsc-x/fsc-system/raw/xinjiang/img/site-system.png) ```sequence Note left of web: 用户访问地址: 192.168.1.150 nginx-->web: 代理80端口 Note right of server: api接口地址: http://192.168.1.150:8080/api/ Note right of server: 日志地址: http://192.168.1.150:8080/log/ Note right of server: 上传的二进制升级文件地址: http://192.168.1.150:8080/upload/bin/ server-->nginx: 代理8080端口 /api server-->nginx: 代理8080端口 /log server-->nginx: 代理8080端口 /upload mysql-->server: 端口3306, 地址:192.168.1.150:3306 mqtt-->server: 端口1883, 地址:tcp://192.168.1.150:1883 mqtt-->web: 端口8083, 地址:ws://192.168.1.150:8083/mqtt ``` **整体目录结构** ``` |—— docker # 升级文件包 |—— docs # 说明书相关文档 |—— emqx # emqx容器相关配置 |—— esp-mqtt-door # arduino+esp32编写的门禁检测模块 |—— esp-mqtt-infrared # arduino+esp32编写的红外检测模块 |—— esp-mqtt-switch # arduino+esp32编写的开关控制器 |—— raspberry # 树莓派相关脚本 |—— server # golang编写的后端服务器 |—— web # 前端页面,采用element-admin框架搭建, 官方使用网站:https://panjiachen.github.io/vue-element-admin-site/zh/ ``` **server目录-后端api接口** ``` |—— server # golang编写的后端服务器 | |—— config # 配置文件对应的写入方法 | |—— docs # swagger说明文档 | |—— global # 全局变量 | | |—— e # 全局错误标识 | | |—— form # 全局表单参绑定 | | |—— mqtt # mqtt后台监控 | | | |—— auto_mqtt # 自动化连锁控制 | | | |—— fsc # mqtt交互相关code码 | | | |—— log_mqtt # mqtt设备等变化日志 | | | |—— online_mqtt # mqtt设备在线状态实时监控 | |—— response # api应答模板 | |—— global.go # 全局变量, 包含日志、配置文件、数据库 | |—— initialize # 初始化相关 | | |—— gorm.go # 数据库mysql的orm初始化 | | |—— server.go # 服务器初始化,如初始化ip地址、端口 | | |—— viper.go # viper初始化,加载配置文件 | | |—— zap.go # zap日志初始化, 日志的管理模块 | |—— log # 运行日志存放路径 | |—— middleware # 服务器中间件 | | |—— jwt.go # jwt鉴权 | |—— model # 数据库表对应model | | |—— auto.go # auto表 | | |—— device.go # device表 | | |—— device_log.go # device_log表 | | |—— user.go # user表 | |—— router # 路由 | | |—— api # api接口 | | | |—— auto.go # 智能场景 | | | |—— device_log.go # 设备日志 | | | |—— device.go # 设备 | | | |—— emqx.go # emqx服务查询 | | | |—— upload.go # 文件上传 | | | |—— user.go # 用户 | | |—— router.go # 路由入口 | |—— service # api对应数据处理相关服务 | | |—— auto.go # 智能场景 | | |—— device_log.go # 设备日志 | | |—— device.go # 设备 | | |—— emqx.go # emqx | | |—— upload_bin.go # 上传二进制文件 | | |—— user.go # 用户 | |—— upload # 上传文件存放的目录 | |—— utils # 全局公用方法 | |—— vendor # 项目依赖的第三方包 | |—— build.Dockerfile # docker构建文件 | |—— config.yaml # 调试环境配置文件 | |—— Dockerfile # 树莓派上docker构建文件 | |—— go.mod # golang module包管理 | |—— go.sum # golang 包管理 | |—— production.yaml # 生产环境配置文件 | |—— wait-for-it.sh # docker容器用于启动顺序控制脚本 ``` - server后端运行命令: `go run main.go` **upgrade目录-升级软件** ``` |—— upgrade # 基于pyqt5编写的辐射场升级软件 | |—— conf # 配置文件 | |—— dist # 发布文件夹 | |—— build # 构建文件夹 | |—— log # 日志文件夹 | |—— ui # ui界面 | |—— fabric2.py # 自动化运维fabric调用 | |—— main.py # main函数入口 | |—— requirement.txt # 第三方包列表 | |—— pyinstaller_main.spec # pyinstaller 打包脚本 | |—— install_main.iss # Inno Setup制作成应用程序安装包脚本 >>>>>>> xinjiang ``` - 运行命令:`python main.py` - 打包命令:`pyinstaller pyinstaller_main.spec` **web目录-前端界面** ``` |—— web # 前端页面,采用element-admin框架搭建, 官方使用网站:https://panjiachen.github.io/vue-element-admin-site/zh/ | ├── build # 构建相关 | ├── mock # 项目mock 模拟数据 | ├── plop-templates # 基本模板 | ├── public # 静态资源 | │ │── favicon.ico # favicon图标 | │ └── index.html # html模板 | |—— src # 主要页面 | | |—— api # 与服务端api接口 | | | |—— device.js # 设备接口 | | | |—— user.js # 用户接口 | | | └── emqx.js # 服务器emqx接口 | | |—— assert # 主题 字体等静态资源, 登录背景图片等待 | │ ├── components # 全局公用组件 | │ ├── directive # 全局指令 | │ ├── filters # 全局 filter | │ ├── icons # 项目所有 svg icons | │ ├── lang # 国际化 language | │ ├── layout # 全局 layout | │ ├── router # 路由 | │ ├── store # 全局 store管理 | │ ├── styles # 全局样式 | │ ├── utils # 全局公用方法 | │ ├── vendor # 公用vendor | │ ├── views # 所有页面 | | | |—— doshboard # 主页面 | | | | |——admin # admin用户页面 | | | | |——editor # editor用户页面 | | | | |——pad # pad用户页面 | | | | └──index.vue # 根据用户角色跳转不同页面 | | | |—— device # 设备页面 | | | |—— login # 注册页面 | | | |—— mqtt # mqtt调试页面 | | | └── user # 用户管理页面 | | |── App.vue # 入口页面 | | |── main.js # 入口文件 加载组件 初始化等 | | |── permission.js # 权限管理 | | └── settings.js # 设置网站标题 | ├── .env.development # 调试环境变量配置 | ├── .env.production # 生产环境变量配置 | ├── .eslintrc.js # eslint 配置项 | ├── .babelrc # babel-loader 配置 | ├── .travis.yml # 自动化CI配置 | ├── vue.config.js # vue-cli 配置 | ├── postcss.config.js # postcss 配置 | └── package.json # package.json ``` 进入web文件夹: - 前端运行命令: `npm run dev` - 前端打包命令: `npm run build:prod` #### 树莓派系统烧写镜像步骤 1. 镜像文件`fsc_raspberry_pi4_v1.0.0.img` 2. 安装并使用工具`SD Card Formatter 5.0.1 Setup.exe`格式化SD卡 3. 安装并使用工具`Win32DiskImager.exe`烧写镜像 4. 烧写镜像后U盘的`boot`下放入`SSH`文件 和 `wpa_supplicant.conf` 文件 5. 连接辐射场路由器WiFi, 配置恢复镜像烧写后sd卡大小, 进入目录 `cd /home/pi/rpi-backup`, 执行命令`sudo ./resize.sh`, 等待重启 6. 树莓派关闭WiFi功能: 编辑`sudo vi /boot/config.txt` 在最后一行添加 `dtoverlay=pi3-disable-wifi` 7. mysql加载数据库: 使用navicat软件, 创建名称为`fsc`的数据库,字符集使用`utf8mb4 -- UTF-8 Unicode`,排序规则采用`utf8mb4_general_ci` #### 安装教程 参考docs目录下的软件安装说明书 #### 使用说明 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request