DJI 上云API配置

        本文参考DJI官方提供的上云API实现文档实现,记录在搭建过程中遇到的一些问题及解决方法。

        目前对于DJI 无人机接入第三方云平台,主要是基于 MSDK 开发定制 App,然后自己定义私有上云通信协议连接到云平台中。这样对于核心业务是开发云平台,无人机只是其中一个接入硬件设备的开发者来说,重新基于 MSDK 开发 App 工作量大、成本高,同时还需要花很多精力在无人机功能接口适配上,从而导致整体的方案开发进度较为缓慢。

        上云 API 的推出主要期望解决开发者重新造轮子的苦恼。对于没有 App 深度定制需求的开发者,直接可以采用 DJI Pilot 2 来和云平台通信,使开发商可以更加专注于上云业务接口的开发与实现。

        一、生成license

        在调用Cloud API 接口时,首先需要通过 license 来验证接口,以保证后续接口的可用性。程序中只需要在最开始调用一次,之后就可以使用所有的接口。
要创建一个应用程序 license:
请访问DJI开发者网站的  开发者中心open in new window
  • 选择左侧栏的 "Apps "。
  • 选择右侧的 “CREATE APP” 按钮。
  • 选择App Type 为 Cloud API,输入APP Name、分类和描述信息。
  • 您会收到一封应用程序激活邮件,以完成 license 的生成。
  • 您可以在开发者中心中找到license,将APP ID,App Key 和 App License 复制粘贴到前端配置文件(src/api/http/config.ts)中。

二、前端环境配置

安装Node.js 和 npm

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
source ~/.bashrc
nvm install --lts
node -v

环境配置

        前端示例代码下载:https://github.com/dji-sdk/Cloud-API-Demo-Web

        配置文件修改(src/api/http/config.ts)中的参数,填上申请的appId,appKey 和 appLicense。

        注意:

  • 如果不使用直播功能,只需要先设置baseURL(http://192.168.1.1:6789/) 和 websocketURL(ws://192.168.1.1:6789/api/v1/ws)其中IP替换成后端IP即可。
  • 如果使用地图还需要去高德地图官网申请amapKey(web端)。
  • rtmp 参数为流媒体服务器地址。

        在根目录下打开控制台,运行命令安装依赖。

npm install

        安装完成可以在根目录下看到一个node_modules的目录。

        运行命令启动服务

npm run serve

# 这里之前使用ubuntu默认安装node 10.X版本时,遇到node版本较低问题,后通过npm 安装的方式安装较新版本的node解决
# nvm use --xx  切换node版本

        至此,前端以及配置完成,可通过http://Ip:8080/project打开前端界面查看,目前由于未配置与启动后端,无法登陆。

三、后端配置

        后端依赖JAVA(必须11.0版本以上)、EMQX 、MySQL、Redis 。

Java安装

        使用IntelliJ IDEA 进行后端代码管理,可以直接通过IntelliJ IDEA进行JAVA安装。使用IntelliJ IDEA新建项目时,安装JDK。

EMQX安装

curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash
sudo apt-get install emqx
sudo systemctl start emqx   # 启动
sudo systemctl stop emqx    # 停止
sudo systemctl status emqx  # 状态

        EMQX安装完成后可通过 http://localhost:18083/(localhost 可替换为实际 IP 地址)访问控制台,初始账户名admin密码public

        mysql安装

sudo apt install mysql-server
sudo cat /etc/mysql/debian.cnf  # 查看用户名和密码

# 在使用默认root连接mysql时遇到ERROR 1698 (28000): Access denied for user 'root'@'localhost'表明在使用root登录被mysql拒绝。
# 使用 sudo 权限登录 MySQL
sudo mysql
# 在 MySQL 命令行中执行以下命令,将 root 用户的认证方式修改为 mysql_native_password 并设置新密码
# 请将 'new_password' 替换为你想要设置的新密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';
# 刷新权限使修改生效
FLUSH PRIVILEGES;
# 退出 MySQL 命令行
EXIT;
# 使用以下命令登录mysql,密码为上面设置 
mysql -u root -p
# 启动
sudo systemctl start mysql
# 停止
sudo  systemctl stop mysql
# 重启
sudo systemctl restart mysql
# 查看状态
sudo systemctl status mysql    

Redis安装

sudo apt install lsb-release curl gpg
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
sudo apt-get update
sudo apt-get install redis

# 启动
sudo systemctl start redis-server
# 重启
sudo service redis-server restart
# 关闭
sudo service redis-server stop
查看状态
sudo service redis-server status

环境配置

        后端示例代码下载:https://github.com/dji-sdk/DJI-Cloud-API-Demo

        导入sql文件

mysql -u root -p
source ./DJI-Cloud-API-Demo/sqlcloud_sample.sq

        IntelliJ IDEA安装Lombok插件,安装后重启IDEA即可。如果在软件里未找到Lombok可以通过JetBrains Marketplace找到后离线安装即可 。

        打开配置文件(src/main/resources/application.yml),修改配置文件中的mysql配置、mqtt配置、redis配置以及对象存储服务器配置。

        注意:如果mqtt不使用匿名登录,还需要修改数据库中,manage_user表中的mqtt账户名和密码。

        修改完成后,在工程目录下的pom.xml右键,同步Maven项目,下载依赖。

        运行"sample/src/main/java/com/dji/sample/CloudApiSampleApplication.java"程序,运行后端,这里可能会遇到部分文件缺失的情况,可根据实际情况以及IDEA提示完成即可。

        至此,后端也已经配置完成。

四、Pilot 2登录程序

        打开 pilot 2,进入主页面,点击云服务进入。

        选择右下角的开放平台。

        输入前端访问地址(默认地址:http://ip:8080/pilot-login ,此处“ip”需要替换为用户实际使用的ip地址。),点击右上角的“连接”按钮进入。

        账户名:pilot,密码:pilot123,点击”Login“按钮登录。

        如果主页面显示 Connected,说明已经登录成功,遥控器已经连接上 emqx 服务器,并且开始推送数据。现在demo 就已经跑起来了,你可以点击遥控器上的返回按钮返回主页面了,只要不点击右上角的 Log Out 按钮,你就仍然处于登录状态。

        已经可以在主页面看到工作空间的信息了,只要字体是深黑色,说明你依旧处于登录状态,遥控器以及飞机的数据会持续的推送中。如果想要退出工作空间,只需要再次点击进入,然后点击右上角的退出按钮就可以退出了,遥控器和飞机就不会再推送数据了。

五、Web端登录程序

        登录页面默认地址:http://ip:8080/project ,此处“ip”需要替换为用户实际使用的ip地址。

        账户名:adminPC

        密码:adminPC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花满城南春巳至

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值