大疆上云API基于源码部署

大疆上云API基于源码部署

本篇文章,主要用于记录本人部署的过程,仅供学习使用,如果不妥之处,还望告知。其实部署过程官网也有,其实看官网(上云API (dji.com))也是能看得懂的,也挺详细的,我感觉大家看官网也没问题,能部署起来。相对与官网。我这里多了安装EMQX,Redis,MySQL的安装过程,只是我这个稍微详细了一点点而已,我把EMQX、Redis、MySQL的环境准备了一下,方便后面我直接使用而已。

1、学习官网

上云API (dji.com),大家可以直接看这里。

2、环境准备

需要的环境,根据官方文档的说明,上云API (dji.com),这个是官方要求的环境,不一定非要跟官方要求的环境一模一样。

本人电脑的环境如下所示:

  1. Windows 10 专业版
  2. Java版本:openJDK17,我这里为jdk-17.0.7版本
  3. MySQL版本:mysql-8.0.30-winx64绿色免安装版
  4. Redis版本:windows系统下的Redis-x64-3.2.100版本
  5. EMQX版本:windows系统下的emqx-5.3.2-windows-amd64版本
  6. Node.js版本:v18.16.0,使用Node这个版本内置的npm版本v9.5.1
  7. Intellij IDEA 2024.1.1版本,不一定非要用这个版本的IDEA,没有环境的可以直接去官网下载一个社区版免费版的都行,就使用社区免费版内置的Maven版本都可以。我试过了。
  8. Maven版本:使用的是IDEA内置的Maven版本,这里为Maven3.9.6版本,不一定非的是这个版本,只要能下载依赖,其他版本都可以,建议不要使用太老的版本,例如3.5版本的Maven建议不要用了。

注意事项

注意了,本文章中,说的ip是您自己电脑的ip地址。而不是就是192.168.1.1,我这里的ip地址刚好跟官网的192.168.1.1一样而已。windows系统下,自己电脑的ip地址,可以通过Win + R ,输入cmd。回车,然后输入ipconfig查看。

3、注册成为DJI开发者

上云API (dji.com),这里有说明,如何注册成为DJI开发者的过程,这里我们需要的是注册成为开发者的相关生成的license,就可以了。因为这个后续需要用到它的,不可或缺的。

4、下载前后端运行所需要的包/依赖

从这里https://developer.dji.com/doc/cloud-api-tutorial/cn/quick-start/environment-prepare-list.html下载克隆好对应的前后端代码之后,需要下载前后端运行所需要的包/依赖。

前端依赖

假设我的源码地址从git仓库中克隆下载在这里
在这里插入图片描述
在这里插入图片描述
然后输入

npm install

这里我的npm使用的是官方的镜像地址,并没有配置类似淘宝的镜像加速地址。

在这里插入图片描述
如果发现下载的时候在这个界面卡很久,要么是网络不够快。要么是下载过程中有一些问题,然后直接按两次CTRL + C或者按一次CTRL + C然后选择Y取消下载,重新npm install一下。等待依赖下载完成。然后发现报如下错误


npm WARN cleanup Failed to remove some directories [
npm WARN cleanup   [
npm WARN cleanup     'D:\\projects\\dajiangshangyunapixuexi\\Cloud-API-Demo-Web\\node_modules\\has-ansi',
npm WARN cleanup     [Error: EPERM: operation not permitted, rmdir 'D:\projects\dajiangshangyunapixuexi\Cloud-API-Demo-Web\node_modules\has-ansi'] {
npm WARN cleanup       errno: -4048,
npm WARN cleanup       code: 'EPERM',
npm WARN cleanup       syscall: 'rmdir',
npm WARN cleanup       path: 'D:\\projects\\dajiangshangyunapixuexi\\Cloud-API-Demo-Web\\node_modules\\has-ansi'
npm WARN cleanup     }
npm WARN cleanup   ],
npm WARN cleanup   [
npm WARN cleanup     'D:\\projects\\dajiangshangyunapixuexi\\Cloud-API-Demo-Web\\node_modules\\eslint',
npm WARN cleanup     [Error: EPERM: operation not permitted, rmdir 'D:\projects\dajiangshangyunapixuexi\Cloud-API-Demo-Web\node_modules\eslint\lib\rules\utils'] {
npm WARN cleanup       errno: -4048,
npm WARN cleanup       code: 'EPERM',
npm WARN cleanup       syscall: 'rmdir',
npm WARN cleanup       path: 'D:\\projects\\dajiangshangyunapixuexi\\Cloud-API-Demo-Web\\node_modules\\eslint\\lib\\rules\\utils'
npm WARN cleanup     }
npm WARN cleanup   ]
npm WARN cleanup ]
npm ERR! code ENOTFOUND
npm ERR! syscall getaddrinfo
npm ERR! errno ENOTFOUND
npm ERR! network request to https://registry.nlark.com/has-flag/download/has-flag-3.0.0.tgz failed, reason: getaddrinfo ENOTFOUND registry.nlark.com
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help config'

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\W541\AppData\Local\npm-cache\_logs\2024-09-03T04_44_36_086Z-debug-0.log

出现这个报错,大概率是版本问题,导致依赖下载无法完成,那就删除node_modules、package-lock.json、yarn.lock这三个文件,然后再npm install一下下载依赖。

在这里插入图片描述

npm install

如果发现还是卡在进度条那里,就取消本次下载,重新npm install,依赖下载完成了。

在这里插入图片描述

下载后端所需要的Maven依赖包

使用IDEA打开项目,也就是你的源码克隆下载的地方。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

当右下角下载依赖的进度条小时时,说明依赖下载成功了。

在这里插入图片描述

用到的软件可以在这里下载

通过百度网盘分享的文件:文章需要用到的软件-可分享给他人.zip
链接:https://pan.baidu.com/s/1AFex3UjuX3e02m4ZDq0R2Q
提取码:8778
–来自百度网盘超级会员V5的分享

5、MySQL数据库安装

安装MySQL

如下图所示:直接复制解压这个绿色安装版的MySQL,在解压的时候不要有中文目录。

在这里插入图片描述

如这里,我把它解压到了

在这里插入图片描述

启动MySQL服务

进入bin目录

在这里插入图片描述

在这里插入图片描述

输入

mysqld --console

启动,MySQL服务。启动成功的界面如下图所示,这里注意了,这个窗口不要关闭。要保留着。

在这里插入图片描述
验证是否启动成功,登录MySQL。通过下图的方式打开一个新的窗口。

在这里插入图片描述

在窗口中输入

mysql -uroot -proot

回车登录MySQL,就可以看到大概如下图所示的MySQL了。

在这里插入图片描述

这个窗口可以关闭,现在可以使用MySQL的连接工具进行连接了。端口号是3306,用户名是:root,密码是:root。如我这里使用Navicat连接,这个Navicat现在已经有社区版了,直接去官网下载一个社区版就行了,这里只是导入数据而已。社区版能够支持这个功能。当然,这里您也可以使用MySQL相关的语句导入,我这里使用工具方便,还能直观看到数据表的信息。这个Navicat连接数据库这个过程就省略了,这个应该都会吧!

那么,这个数据在哪里呢?找到下载的后端代码,可以直接在IDEA中看。

在这里插入图片描述

创建MySQL连接

在这里插入图片描述

在这里插入图片描述

创建数据库完成之后,导入数据库表。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

导入成功之后,就可以关闭了,然后在Navicat中F5刷新一下就可以了。

在这里插入图片描述

在IDEA中配置MySQL的连接信息

在IDEA中修改数据库的连接信息。

在这里插入图片描述

6、Redis的安装

安装Redis

在这里插入图片描述

启动Redis

在这里插入图片描述

出现如下窗口,说明启动成功了。注意这个窗口不能关闭,要保留着。

在这里插入图片描述

在IDEA中配置自己的Redis连接信息

注意上面的窗口不能关闭,在IDEA中配置自己的Redis连接信息。

在这里插入图片描述

7、安装emqx

安装emqx

在这里插入图片描述

启动emqx

在这里插入图片描述

在这里插入图片描述

打开命令窗口,然后输入

emqx start

在这里插入图片描述
这个窗口关闭它都可以,因为emqx start这个命令,运行之后,会以程序的方式运行,可以在任务管理器中找到它。
在这里插入图片描述
启动成功之后浏览器访问:http://localhost:18083/,会出现一个登录页面,用于登录emqx的。用户名是:admin,密码是:public。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

配置emqx允许匿名访问

这里为什么要配置这个,是因为尽量较少改动源代码,能够让上云API成功运行起来。在emqx4.4+的版本中,是不需要这一步配置的,因为在这个emqx4.4.0+这个大版本中,默认就设置了允许匿名访问了。但是在emqx5.1+以后的版本中,这个可以通过界面设置,将emqx改成允许匿名访问。一般默认就是允许匿名访问的。所以也不用改啥,看这里只是为了保证是否已经是匿名访问了而已。

在这里插入图片描述

在IDEA中配置emqx的连接信息

在这里插入图片描述

8、后端配置大疆上云API开发相关证书

根据官方文档,这里配不配置,都是可以的。建议还是配置一下吧。这里只是我这里示例的ID,具体的要换成你们自己申请的ID。

在这里插入图片描述

9、启动后端

在这里插入图片描述
启动之后发现报如下所示的错误

***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to bind properties under 'livestream.url.gb28181.local-port' to java.lang.Integer:

    Property: livestream.url.gb28181.local-port
    Value: "Please enter the local port."
    Origin: class path resource [application.yml] - 166:18
    Reason: failed to convert java.lang.String to @javax.validation.constraints.NotNull java.lang.Integer (caused by java.lang.NumberFormatException: For input string: "Pleaseenterthelocalport.")

Action:

Update your application's configuration

从,报错信息可以看出,某个字段不是整数的形式,所以才导致报错的。解决办法如下所示,要么改成整数的形式,要么直接注释掉它们。

在这里插入图片描述
在这里插入图片描述
如我这里改成了整数之后,这个整数不能跟上面MySQL、Redis、mqtt这里端口号冲突,要保证唯一性。
在这里插入图片描述
运行,发现还是报通用样的错误,只不过这是报另一个字段的错误了。

***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to bind properties under 'livestream.url.gb28181.server-port' to java.lang.Integer:

    Property: livestream.url.gb28181.server-port
    Value: "Please enter the server port."
    Origin: class path resource [application.yml] - 162:19
    Reason: failed to convert java.lang.String to @javax.validation.constraints.NotNull java.lang.Integer (caused by java.lang.NumberFormatException: For input string: "Pleaseentertheserverport.")

Action:

Update your application's configuration

在这里插入图片描述
如我这里改成了整数之后,这个整数不能跟上面MySQL、Redis、mqtt这里端口号冲突,要保证唯一性。运行就成功了,啥报错都没有。

在这里插入图片描述

然后访问emqx的页面:http://localhost:18083/,可以发现。有两个主题了。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

10、修改启动前端配置

我这里使用了Vscode打开它
在这里插入图片描述
修改保存好之后,运行

npm run serve

在这里插入图片描述

运行成功之后,访问:http://localhost:8080/project。
在这里插入图片描述
点击登录,成功进入界面之后,说明登录成功了。

在这里插入图片描述
到此,基于源码的本地部署已经完成了,接下来就是连接遥控器了。

11、连接遥控器

从这官方文档https://developer.dji.com/doc/cloud-api-tutorial/cn/quick-start/source-code-deployment-steps.html 的Pilot 2登录程序这个标题开始看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值