syhthems IoT Platform

syhthems 是一个开源的物联网平台项目,它可以实现物联网产品的管理,数据流的管理,设备的管理,设备数据的可视化查看等等这些基础的物联网平台功能,以及多用户和角色的权限管理,OAuth2 登录等功能。该项目目前用于本人学习 Spring Boot, Spring Security, Vue 以及 IoT,希望能和社区开发者共同学习和进步。

文档:http://syhthems.ehaut.cn/

微服务架构改造 目前正在进行 syhthems 微服务架构改造,详细进度可查看 project:syhthems Platform 2.0 , 分支为 cloud

平台架构

syhthems IoT Platform 采用分模块开发,首先分为前端和后端两个大部分,前端比较简单,就只有一个 syhthems-web 模块,后端是主要的部分,分为 syhthems-common 平台基础模块,syhthems-db 数据访问模块,syhthems-sso 单点登录模块,syhthems-web-api Web 后台 API 模块,syhthems-device终端设备接入模块。

syhthems系统架构

技术栈

后端

前端

终端设备

平台功能

平台预览

首页

黑色主题

产品列表

添加产品

产品删除

产品详情

数据流模板管理

添加数据流

修改数据流

设备管理

添加设备

设备详情

设备数据流对应的数据点展示

数据点折线图

快速使用

开发及运行环境

后台

  1. 从 github 上克隆最新的代码

    git clone https://github.com/ehaut/syhthems-platform.git
    # 在国内可以使用阿里云的代码托管服务来下载:
    git clone https://code.aliyun.com/syhthems/syhthems-platform.git
  2. 创建平台所使用的数据库

    create schema if not exists syhthems default character set utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci;
    
    create user [email protected]'localhost' identified by 'syhthems';
    create user [email protected]'%' identified by 'syhthems';
    
    GRANT ALL PRIVILEGES ON syhthems.* TO [email protected]'localhost';
    GRANT ALL PRIVILEGES ON syhthems.* TO [email protected]'%';
    
    flush privileges;
    
    use syhthems
  3. 导入数据库表结构

    数据库所有的表结构都导出到平台代码下的"syhthems-db/src/main/resources/script/表结构.sql"中,该导出数据只有表结构,并没有任何数据。在该目录下还有一个"毕设系统数据.sql",该导出数据包含表结构和示例数据,其中有两个用户以及一个完整的系统Demo数据。以上这两个导出数据可以选择一个使用 MySQL 的 GUI 工具或者 mysql 命令导入。作为快速开始,这里推荐导入"毕设系统数据.sql"

  4. 运行平台后台

    syhthems 平台采用分模块设计,其中 sso 模块,web-api 模块以及 device 模块是以 web 的形式运行,需要单独运行这三个模块,可以使用 IDE 打开该项目后手动运行这三个模块的 Main 方法,也可以使用 jar 包的方式运行。下面的命令是以 jar 包的形式运行这三个模块。

    cd syhthems-platform
    mvn clean install -Dmaven.test.skip=true -T 4
    # 运行 sso 模块
    java -jar syhthems-sso/target/syhthems-sso-0.0.1-SNAPSHOT.jar
    # 如果是 Java 11 需要加上额外的参数来允许非法的反射访问(下同)
    java -jar syhthems-sso/target/syhthems-sso-0.0.1-SNAPSHOT.jar --illegal-access=permit
    # 运行 web-api 模块
    java -jar syhthems-web-api/target/syhthems-web-api-0.0.1-SNAPSHOT.jar
    # 运行 device 模块
    java -jar syhthems-device/target/syhthems-device-0.0.1-SNAPSHOT.jar

前台

前台的运行需要先使用 npm 安装依赖后再运行,命令如下。前台运行后默认的端口为 9090, 直接进入首页即可。若使用"毕设系统数据.sql"数据,则有两个用户,syhthems 用户和 sunriseydy 用户,密码都为 syhthems ,该密码也是系统所有用户的默认密码。

cd syhthems-web
npm install
npm run serve

TODO

LICENSE

MIT License

Copyright (c) 2019 SunriseYDY