OrangePi AIpro从上手到网站部署使用

 

OrangePi AIpro从上手到网站部署使用

 

1、引言

1.初识OrangePi AIpro

最先接触到类似的开发板是从树莓派3B开始,两百多块钱就可以买到,可以运行linux操作系统,具有丰富的硬件接口,如网口、串口、HDMI、蓝牙等类似电脑的体验,也提供了嵌入式使用的IO口、支持I2C、SPI、UART、PWM等功能,方便初学者熟悉嵌入式底层应用及更上层的linux应用开发。OrangePi AIpro同样支持这些功能,并且搭载着当前正飞速发展的AI处理单元(昇腾 AI 处理器Ascend310B可以应用于人脸识别、图像识别、语音识别、语言处理等领域。

OrangePi AIpro(8T)采用昇腾AI技术路线,具体为4核64位处理器+AI处理器,集成图形处理器,支持8TOPS AI算力,拥有8GB/16GB LPDDR4X,可以外接32GB/64GB/128GB/256GB eMMC模块,支持双4K高清输出。OrangePi AIpro兼容昇腾AI全栈、CANN、Ascend c、工具和资产,具有超高性价比。详细介绍参考官网:昇腾学习链接:

开发版实物图片

开发版接口详情图

 

 2.使用简介

本文主要介绍OrangePi AIpro从单板到手后基础使用体验,安装常用的vnc远程远程登录,通过frp实现外网连接开发使用,部署网站。其中网站为常用的前后端分离结构,前端使用react开发,后端使用Java开发,使用MySQL数据库保存,支持redis数据缓存,前后端分离使用nginx部署。

2、开机使用

支持Ubuntu和openEuler操作系统,我的OrangePi AIpro安装ubuntu操作系统,供电后自动开机运行,如果需要关机可以在界面中配置或者点击上面图片描述的关机键。登录后默认用户名可以是“root”或“HwHiAiUser”,密码为“Mind@123”,如果没有显示屏和键盘,可以接网线后使用ssh脚本控制。

1.以太网ssh连接

  1. 将网线连接开发版的以太网接口,另一端连接交换机、路由器或电脑网口。
  2. 网口连接后会自动分配IP地址,或者将电脑设定固定IP地址,电脑查看本机IP地址使用命令:ipconfig
     

     

  3. 搜索同一网段内所有IP地址,以便确定单板IP地址,Windows中使用命令:arp -a
     

     查询结果中第一部分为本地连接的192.168.1.*网段内所有IP,对动态IP逐个测试连接

  4. 使用Termius或Putty等ssh连接工具连接测试以上IP地址,ssh默认占用22端口

2.安装VNC进行内网远程连接

  1. 在Windows中访问VNC官网下载,官网地址:https://downloads.realvnc.com,我的下载地址:https://downloads.realvnc.com/download/file/vnc.files/VNC-Connect-Installer-2.2.2-Windows.exe
  2. 在OrangePi中安装vnc
    sudo apt-get update
    sudo apt-get install tightvncserver
    sudo tightvncserver    //IP地址连接后加(:窗口号)
    vncpasswd        //忘记vnc密码无法登陆,通过这个修改密码
    
    // 查看vnc有哪些命令在运行
    ps aux | grep vnc
    // 查看端口号
    netstat -apnt | grep vnc

    安装后运行有与使用端口号为5901非默认端口,需要在连接中在IP后加上端口,我的为:192.168.1.101:5901,初次使用输入用户名root和密码Mind@123。

3.FRP内网穿透

frp是一款高性能的反向代理应用,借助它实现内网穿透,在GitHub上很火的一个穿透开源代码,借助frp部署,可以实现的ssh命令远程控制、文件传输、本地定义的web网站可以在公网中访问使用。

以下主要介绍通过frp实现ssh的对外外部连接和部署frp工具,frp主要区分服务端和客户端,服务端需要在有公网IP的环境进行配置,访问时会先访问服务端,再跳转到我们的开发板中。

开源地址:https://github.com/fatedier/frp

安装包下载地址:https://github.com/fatedier/frp/releases

下载命令后进行解压安装

# 下载编译好的文件
wget https://github.com/fatedier/frp/releases/download/v0.56.0/frp_0.56.0_linux_arm.tar.gz
# 解压文件
tar -zxvf frp_0.56.0_linux_amd64.tar.gz 
// cd到解压目录中运行,启动服务端
./frps
// 或根据配置启动服务端
frps -c frps.toml

// 客户端启用
./frpc -c ./frpc.toml

服务端配置

# 打开frps.toml进行配置
bindPort = 7000
vhostHTTPPort = 7070

客户端配置

7000对应服务端配置端口,8088对应外网访问端口

serverAddr = "服务端IP地址"
serverPort = 7000

[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 8088

配置启动后远程登录使用

选择ssh配置,地址输入服务端服务器的公网IP地址,端口号为上面配置的8088,用户名和密码对应本地登录的用户名和密码。如下配置后就可以正常在外面连接使用

  1. 网站部署

整体结构界面有简单介绍,主要有前后端独立开发打包,通过NGINX进行反向代理(由于端口不一致,直接运行会有越界问题)

1.后端部署

(1)Java安装配置

本地环境已经安装可以正常使用,自己安装教程如下

# 将上面解压后的文件夹拷贝到bin文件下
tar -zxvf jdk-8u333-linux-x64.tar.gz
mv -f jdk-8 /usr/lib/jdk-8

# 配置java环境变量
nano /etc/profile
# 在该文件中添加配置
# set java environment

export JAVA_HOME=/usr/lib/jdk1.8
#export JAVA_HOME=/usr/lib/jdk-17
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=.:${JAVA_HOME}/bin:$JAVA_HOME/lib:$PATH

 # 配置添加完保存后执行,使配置生效
source /etc/profile

(2)Redis消息缓存安装配置

#!/bin/bash
# 下载当前最新稳定版
wget http://download.redis.io/releases/redis-6.0.6.tar.gz
# 解压
# tar -zvxf redis-6.0.6.tar.gz
# 不过我解压到指定目录
mkdir /usr/local/redis
tar -zvxf redis-6.0.6.tar.gz -C /usr/local/redis
cd /usr/local/redis
mv -f redis-6.0.6/* ./
rm -rf redis-6.0.6
# 编译运行
make
make install

# 运行编译好的
# ./src/redis-server
nohup /usr/local/redis/src/redis-server &

(3)MySQL安装

apt install mysql

或者指定版本下载安装

# 下载mysql-connector-java(需要ubuntu18以后的版本才能安装mysql8)
wget https://repo.mysql.com/apt/ubuntu/pool/mysql-tools/m/mysql-connector-java/mysql-connector-java_8.0.30-1ubuntu20.04_all.deb
# 安装
sudo dpkg -i mysql-connector-java_8.0.30-1ubuntu20.04_all.deb
sudo apt update

2.前端部署

(1)npm部署

# 安装npm
sudo apt-get update && sudo apt-get install yarn
sudo apt install npm nodejs
npm -g install npm # 升级npm,在我的环境下这里执行会重启失败

# 安装n,n是一个npm的node包,专门用来管理node的版本
npm -g install n

# n来管理node的版本
n stable //安装最新的稳定版

(2)npm安装serve运行vue、react等

npm install -g serve                // 安装服务器环境
serve -s dist                        // 数据命令启动,后面为文件夹路径,如果没有则是当前文件夹
serve -s run -l 80                  // 指定运行为80端口,如果是直接拷贝到服务器需要这样才是80端口,如果拷贝到springboot中,则根据springboot中的配置启动

(3)npm安装http-server运行html文件

# 需要同上先安装好npm和node,在Windows中如果安装后还是无法正常运行,执行命令得到路径:npm list --depth=0 -global,点击Windows图标搜索》环境变量》Path》添加得到的路径
npm install http-server -g
# 安装成功后拷贝本地html文件夹所有内容到服务器,比如我的文件夹名为visual已全部拷贝
cd visual
http-server -p 8888
# 或者直接访问不用切换到该目录,第一个参数为加载显示路径、p(port)端口号、d(directory)显示目录并且可以下载里面的内容、g(gzip)压缩
http-server 显示路径 -p 8888 -d -g true
# 同上后台运行,不加sudo的后台运行在关闭ssh后无法访问(用ps可以看到),加sudo后ps -A才能看到关闭ssh不影响
sudo nohup http-server visual -p 8888 -d -g true &

3.NGINX安装配置

NGINX的主要作用是作为一个高性能的开源Web服务器,同时也可以用作反向代理服务器、负载均衡器、HTTP缓存以及邮件代理服务器。以下主要代码介绍前后端分离后,将不同端口代理映射到一起使用。整体配置好后还可以通过之前介绍的frp内网穿透,使用外网访问本地部署的网站服务,介绍了服务端性能要求可以购买相对更便宜的网站服务器使用。

(1)反向代理服务器

代理功能:NGINX可以作为反向代理服务器,将客户端请求转发到后端服务器,并将响应返回给客户端。这种模式常用于隐藏后端服务器的实际IP地址,增强安全性和隐私保护。

负载分发:在多服务器环境中,NGINX可以根据配置规则将流量分配到不同的后端服务器,实现负载均衡,优化资源利用率和响应时间。

SSL/TLS术语:NGINX支持SSL/TLS加密,可以作为前端加密代理,确保数据传输的安全性,同时减轻后端服务器的处理负担。

(2)安装依赖

// 下载安装pcre
apt-get install gcc
apt-get install build-essential
apt-get install make

wget https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.40/pcre2-10.40.tar.gz
tar -zvxf pcre2-10.40.tar.gz
cd pcre2-10.40
chmod -Rf 755 *
./configure
make
make install

// 安装,编译报错可以直接安装
sudo apt install openssl gcc zlib1g libpcre3 libpcre3-dev libssl-dev zlib1g-dev

(3)下载安装使用nginx

wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar -zvxf nginx-1.18.0.tar.gz
cd nginx-1.18.0
mkdir build
./configure
make && make install

# 配置nginx可以直接输入命令使用,不用加路径
nano /etc/profile
# 在文件中添加这部分配置
export NGINX_HOME=/usr/local/nginx
export PATH=.:${NGINX_HOME}/sbin:/usr/bin:/bin:$PATH

# 更新配置,使配置文件生效。我的ubuntu系统有时候无法正常使用java和nginx,需要执行这个刷新命令
source /etc/profile

# 启动Nginx(不是系统安装的话要到对应目录下启动):/usr/local/nginx/sbin/nginx
nginx
# 重新加载
nginx -s reload
# 重启
nginx -s reopen
# 强制停止
nginx -s stop
# 处理完请求后停止
nginx -s quit

(4)NGINX配置

# 或者:nano /usr/local/nginx/conf/nginx.conf
cd /usr/local/nginx/conf        # 默认安装的目录是(更新到ubuntu20后使用这个命令)cd /etc/nginx
nano nginx.conf

# 在该文件的server中添加前后端的端口配置
    server {
        listen       80;
        server_name  xxx.com;
        #index index.html index.htm index.php default.html default.htm;
        #root /root/web/front;
        access_log /root/web/logs/xx_access.log;
        error_log /root/web/logs/xx_error.log;
        #set $frp http://localhost:8090;
        location / {
             index index.html index.htm;
             root html;
             proxy_pass http://localhost:8080;
        }
        location ~ /api/{
             proxy_pass http://localhost:8090;
        }
    }

4、总结

OrangePi AIpro整体性格不错,使用流程,并且支持常用的Linux操作系统,开发使用过程中和普通Linux服务器没什么差异,可以很快上手体验。借助内网穿透,可以在本地部署后外网访问控制、远程监控使用;同时拥有AI芯片,可以在图像识别、语音识别、智能家居上有更好的应用体验。使用过程中也会有些小问题,但我相信随着AI和生态的发展会变得更加好用稳定。

 

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值