使用SagooIoT开源物联网平台搭建边缘网关ZL400的采集上传方案

项目选型

观察了全网的开源物联网平台项目,最简单,最容易二次开发的就属以下项目,本文将演示从0搭建一套平台,并结合展联科技的ZL400,ZL500系列网关实现数据采集上报。

这是IOT平台项目地址: sagooiot

先分析项目特点:

优点

  • 代码清晰,结构简单,完胜各种java开发的平台
  • 组件都是各种简单的常用组件,便于二次开发
  • 缺点

  • 功能不完善,部分功能实现简单,不过本文只需要实现传感器采集上传入库
  • 部分功能性能有待优化,比如数据点入库需要查询的sql次数过多
  • 环境搭建

    环境: centos7 虚拟机,开发机 win10 x64

    手动安装环境可以参考原项目链接: link

    这里我直接采用docker compose安装了,直接上:

    version: '3'
    
    services:
      redis:
        image: redis:7.2.5
        container_name: redis
        restart: always
        privileged: true
        logging:  
          driver: "json-file"  
          options:  
            max-size: "500m"  
            max-file: "3"
        ports:
          - "6379:6379"
        command: redis-server --requirepass SuperBird 
        volumes:
          - ./redis/data:/data
        environment:
          - TZ=Asia/Shanghai
      emqx:
        image: emqx/emqx:5.6.1
        container_name: emqx
        restart: always
        user: root
        networks:
          emqx-bridge:
            aliases:
              - node1.superbird.cloud
        #    chown -R 1000:1000 ./emqx
        #    chmod -R 755 ./emqx
        privileged: true
        logging:  
          driver: "json-file"  
          options:  
            max-size: "500m"  
            max-file: "3"
        environment:
          - TZ=Asia/Shanghai
          - "EMQX_NODE_NAME=emqx@node1.superbird.cloud"
        volumes:
          # - $PWD/emqx/etc:/opt/emqx/etc
          # - $PWD/emqx/data:/opt/emqx/data
          - $PWD/emqx/log:/opt/emqx/log
        ports:
          - 1883:1883
          - 1884:1884
          - 8083:8083
          - 8084:8084
          - 8883:8883
          - 18083:18083
      mysql:
        image: mysql:latest
        restart: always
        container_name: mysql
        command: --default-authentication-plugin=mysql_native_password
        volumes:
          - ./mysql:/var/lib/mysql
          - ./conf:/etc/mysql
          - /etc/localtime:/etc/localtime
        environment:
          TZ: Asia/Shanghai
          MYSQL_ROOT_PASSWORD: 123456
        ports:
          - "3306:3306"
      tde:
        image: tdengine/tdengine:3.3.0.3
        container_name: tde
        restart: always
        privileged: true
        logging:  
          driver: "json-file"  
          options:  
            max-size: "500m"  
            max-file: "3"
        ports:
          - 6030:6030
          - 6041:6041
          - 6043-6060:6043-6060
          - 6043-6060:6043-6060/udp
        environment:
          TAOS_FQDN: "td-1"
          TAOS_FIRST_EP: "td-1"
        volumes:
          - ./taos/v3/data:/var/lib/taos/
          - ./taos/v3/log:/var/log/taos/
    volumes:
      mysql:
      redis:
      activemq:
    
    

    安装依赖:

    docker-compose up -d  redis 
    docker-compose up -d  mysql
    docker-compose up -d  emqx
    docker-compose up -d  tde
    

    安装后 docker ps查一下镜像状态是否运行, docker logs xx查看对应服务日志,确保三个服务都起来了

    配置依赖

  • redis我们在内网运行,一般启用防火墙,可以没有密码
  • mysql 看起来设置你的密码,以上是在创建docker镜像的设置了密码,可以按需改
  • emqx使用 ip:18083端口登录web后台,修改密码。需要注意,设备认证也是通过emq实现,这一块需要用户自己根据emq文档实现
  • 下载代码

    后端 git clone https://gitee.com/sagoo-cloud/sagooiot.git
    前端 git clone https://gitee.com/sagoo-cloud/sagooiot-ui.git

    启动后端

    先用goland打开代码工程

  • 设置包管理代理 GOPROXY=https://goproxy.cn
  • 同步依赖go mod tidy
  • 修改配置,将mainfest/config下面的配置copy一份为config.yaml

    修改config.yaml 里面的数据库配置成你自己的

  • 导入mysql数据,直接在goland里面运行,把sql运行到对应的库里面导入数据

  • 启动项目,正常输出以下内容,卡主或者报错多半都是数据库设置不对没连上
  • 启动前端

    进入前端工程, 安装依赖

    yarn  
    yarn run dev
    

    没有yarn用npm

    npm install
    npm run dev
    


    启动后的前端:

    设备接入

    添加产品

    添加物模型

    添加设备

    数据上传

    配置ZL400网关

    MQTT链接

    配置Modbus采集

    数据上传

    总结

    此平台的搭建较为简单,但是平台功能有部分欠缺,需要有心人自己开发,部分逻辑较为简单,比如的设备的在线状态,通过上传数据来实现的,不是实时的。
    验证了ZL400系列边缘网关能非常简单的接入此平台,以及各种mqtt json上报的平台,非常适合二次开发。

    作者:DevelopLink

    物联沃分享整理
    物联沃-IOTWORD物联网 » 使用SagooIoT开源物联网平台搭建边缘网关ZL400的采集上传方案

    发表回复