物联网数据采集网关开发历程(三)

五、Linux部署说明

网关内运行的是Linux系统(本文涉及的是Ubuntu系统,下文中所说的也都是基于Ubuntu系统)。由于AMD64和ARM两种架构在部署的过程中差异较大,需要分开说明。

5.1 AMD64架构部署

.NET安装

在AMD64架构下,.NET的安装使用官方说明即可。

先运行:

wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

再运行:

apt-get update
apt-get install -y apt-transport-https
apt-get update
apt-get install -y aspnetcore-runtime-6.0

复制系统编译文件

可以使用WinSCP工具,把系统编译文件复制到网关中。我们这里复制到/root/DataAcquisition目录下。

cd ~
mkdir DataAcquisition

编译SerialPortStream

数据采集网关,使用串口通信是很普遍的需求。但是.NET原生代码里没有可在Linux系统上运行的串口通信库。我们这里使用SerialPortStream进行替换。因为Linux系统各异,需要把SerialPortStream的C语言写的源代码编译一次,生成几个so文件,才能被C#代码调用。

安装编译环境:

apt-get install -y git
apt-get install -y build-essential
apt-get install -y cmake

下载和编译:

cd ~
git clone https://github.com/jcurl/serialportstream.git
cd serialportstream/dll/serialunix
./build.sh

最后,是复制生成的so文件到采集程序的根目录。

开机启动

对于一个网关程序来说,很重要的一点是开机启动。我们这里采用添加service,在service里调用sh脚本的方法。

编写如下所示的service文件:

[Unit]
Description=Start Program
After=syslog.target
​
[Service]
ExecStart=/root/DataAcquisition/start_program.sh
​
[Install]
WantedBy=multi-user.target

然后复制到/etc/systemd/system目录下。

我们还需要编写service里调用的start_program.sh文件。可以如下所示:

cd /root/DataAcquisition/MyProgram
dotnet MyProgram.dll

代码很简单,就是用dotnet启动我们写的程序。

注意在复制完文件之后,修改文件的权限。

5.2 ARM架构部署

在ARM架构下部署,相对来说是复杂一些的,因为软件厂商支持更多的是AMD64架构的。

调整镜像源

对于一般的下载源,在ARM架构下的源一般是不一样的,看官方的说明。例如对于清华Ubuntu源,要使用最下面提示的ubuntu-ports镜像。

 

.NET安装

在ARM架构下,一般只能使用比较原始的方法去安装.NET。

1、下载.NET-Linux-Arm的安装包。

2、复制到网关的某个位置。

3、解压。

4、设置dotnet环境变量。

复制系统编译文件

这一步跟在AMD64架构下的方法是一样的。

编译SerialPortStream

SerialPortStream的官方编译方法并不支持ARM架构,需要使用以下方法:

1、安装编译环境:

apt-get install make
apt-get install cmake
apt-get install gcc
apt-get install g++

2、复制源代码到网关中,进入serialunix目录。

3、执行以下代码:

cmake ./
make
make install

这样就能生成三个so文件,把它们复制到使用串口的程序根目录。

开机启动

这一步跟在AMD64架构下的方法也是一致的。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以工业能源、资源计量和监测为背景,设计了一种基于和的工业 物联网网关设备。实现了多种协议的工业计量仪表的数据采集、本地存储和远传。本文 利用工业级微控制器芯片,通过引脚复用,实现了七路数据采集端口。 采用芯片加以有效的信号隔离、电源隔离措施,实现了串行端口到总 线的自动双工转换。 在网络传输方面,本文充分利用微控制器的以太网介质接入层控制器,通过 接口连接芯片,实现了的双工以太网通信。 本文对网关设备设计的讨论主要分方面,分别是硬件电路的设计与实现、系统软 件的设计和应用层软件的设计。 网关设备的硬件部分主要包括微控制器、电源、日历、存储器、声卡、网卡、 接门、接门以及卡扩展槽等的原理分析和电路设计、板图的设计、制板及 硬件电路的调试。 系统软件方面采用作为引导加载程序,设了一个基于内核的嵌入式 操作系统并根据需要修改了部分驱动程序。操作系统采用制作了常用的系统工 具,并使用创建了根文件系统。 在系统的基础上,本文采用语言幵发了种工业远传仪表规约的应用层 实现,利用和两种方式实现与服务器的通信并根裾国家的相关标准实现 了数据采集和远传。 最后,本文针对网关设备的功能,进行了部分测试,并对功能的扩展和进步测试 做出了展望。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值