首页 > 其他分享 >低功耗4G模组:FTP应用示例

低功耗4G模组:FTP应用示例

时间:2024-10-26 10:47:42浏览次数:1  
标签:FTP Luatools string ftp 低功耗 示例 服务器 wait

一、FTP 概述

FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。

FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。

其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于 FTP 服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。

默认情况下FTP协议使用TCP端口中的20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。

二、演示功能概述

本文教你合宙4G模组使用LuatOS开发4G通信中FTP网络协议的应用。

本教程实现的功能定义是:

使用 Air780E核心板下载Air780的LuatOS 示例代码中ftp的例程进行验证,例程流程为:

● 登录FTP服务器

● 用 ftp.command 操作 ftp 服务器目录

● ftp.pull 下载文件

● ftp.push 上传文件

● FTP 客户端关闭

三、硬件环境

 

3.1 Air780E核心板

使用Air780E核心板,如下图所示:

 

图片

此核心板的详细使用说明参考:Air780E 产品手册 中的 << 开发板 Core_Air780E 使用说明 VX.X.X.pdf>>,写这篇文章时最新版本的使用说明为:开发板 Core_Air780E 使用说明 V1.0.5.pdf ;核心板使用过程中遇到任何问题,可以直接参考这份使用说明 pdf 文档。

3.2 SIM卡

中国大陆环境下,可以上网的sim卡,一般来说,使用移动、电信、联通的物联网卡或者手机卡都行;

3.3 PC电脑

WINDOWS 系统,其他暂无特别要求;

3.4 数据通信线

USB 数据线,暂无特别要求;

四、软件环境

4.1 Luatools工具

要想烧录LuatOS固件到4G模组中,需要用到合宙的强大的调试工具:Luatools

详细使用说明参考:
Luatools工具使用说明:
https://docs.openluat.com/Luatools/

Luatools工具集具备以下几大核心功能:

  • 一键获取最新固件:自动连接合宙服务器,轻松下载最新的合宙模组固件。

  • 固件与脚本烧录:便捷地将固件及脚本文件烧录至目标模组中。

  • 串口日志管理:实时查看模组通过串口输出的日志信息,并支持保存功能。

  • 串口调试助手:提供简洁的串口调试界面,满足基本的串口通信测试需求。

Luatools下载之后, 无需安装, 解压到你的硬盘,点击 Luatools_v3.exe 运行,出现如下界面,就代表 Luatools 安装成功了.

4.2 准备需要烧录的代码

首先要说明一点:脚本代码, 要和固件的 soc 文件一起烧录。

4.2.1 烧录的底层固件文件

底层 core 下载地址:LuatOS 固件版本下载地址

 

图片

Air780E的底层固件在Luatools解压后目录的: 
LuatOS-SoC_V1112_EC618_FULL.soc

 

图片

4.2.2 烧录的脚本代码

首先要下载Air780的LuatOS示例代码到一个合适的项目目录。
示例代码网站: 
https://gitee.com/openLuat/LuatOS-Air780E

下载流程参考下图:

 

图片

 

图片

下载的文件解压,找到 LuatOS-Air780E-master\demo\ftp\main.lua,如图:

 

图片

4.3 烧录步骤

4.3.1 正确连接电脑和4G模组电路板

使用带有数据通信功能的数据线,不要使用仅有充电功能的数据线;

4.3.2 识别4G模组的 boot 引脚

在下载之前,要用模组的 boot 引脚触发下载, 也就是说,要把4G模组的 boot 引脚拉到 1.8v,或者直接把 boot 引脚和 VDD_EXT 引脚相连。我们要在按下BOOT 按键时让模块开机,就可以进入下载模式了。

具体到Air780E开发板:

1、当我们模块没开机时,按着 BOOT 键然后长按 PWR 开机。

2、当我们模块开机时,按着 BOOT 键然后点按重启键即可。

 

图片

4.3.3 识别电脑的正确端口

判断是否进入 BOOT 模式:模块上电,此时在电脑的设备管理器中,查看串口设备, 会出现一个端口表示进入了 boot 下载模式,如下图所示:

 

图片

当设备管理器出现了 3 个连续数字的 com 端口,并且每个数字都大于 4,这时候, 硬件连接上就绪状态,恭喜你,可以进行烧录了!

4.3.4 用 Luatools 工具烧录

  • 新建项目

首先,确保你的 Luatools 的版本,大于等于 3.0.6 版本的。

在 Luatools 的左上角上有版本显示的,如图所示:

 

图片

Luatools 版本没问题的话, 就点击 LuaTOols 右上角的“项目管理测试”按钮,如下图所示:

 

图片

这时会弹出项目管理和烧录管理的对话框,可以新建一个项目,如下图:

 

图片

  • 开始烧录

选择 780E 板子对应的底层 core 和刚改的 main.lua 脚本文件。下载到板子中。

 

图片

点击下载后,我们需要进入 boot 模式才能正常下载。

 

图片

如果没进入 boot 模式会出现下图情况:

 

图片

当我们模块没开机时,按着 BOOT 键然后长按 PWR 开机,进入下载。

当我们模块开机时,按着 BOOT 键然后点按重启键即可。可以进入下载,如图:

 

图片

 

图片

五、API 说明

5.1 ftp.login(adapter,ip_addr,port,username,password)

FTP 客户端

参数

传入值类型 解释

int

适配器序号, 只能是:
socket.ETH0, socket.STA, socket.AP
如果不填,
会选择平台自带的方式,
然后是最后一个注册的适配器

string

ip_addr 地址

string

port 端口,默认 21

string

username 用户名

string

password 密码

bool/table

是否为 ssl 加密连接,默认不加密,
true 为无证书最简单的加密,table 为有证书的加密
server_cert 服务器 ca 证书数据
client_cert 客户端 ca 证书数据
client_key 客户端私钥加密数据
client_password 客户端私钥口令数据

返回值

返回值类型 解释

bool/string

成功返回 true 失败返回 string

例子

ftp_login = ftp.login(nil,"xxx")

5.2 ftp.command(cmd)

FTP 命令

参数

传入值类型 解释

string

cmd 命令 目前支持:
NOOP SYST TYPE PWD MKD
CWD CDUP RMD DELE LIST

返回值

返回值类型 解释

string

成功返回 true 失败返回 string

例子

// 空操作,防止连接断掉

print(ftp.command("NOOP").wait())

// 报告远程系统的操作系统类型

print(ftp.command("SYST").wait())

// 指定文件类型

print(ftp.command("TYPE I").wait())

// 显示当前工作目录名

print(ftp.command("PWD").wait())

// 创建目录

print(ftp.command("MKD QWER").wait())

// 改变当前工作目录

print(ftp.command("CWD /QWER").wait())

// 返回上一层目录

print(ftp.command("CDUP").wait())

// 删除目录

print(ftp.command("RMD QWER").wait())

// 获取当前工作目录下的文件名列表

print(ftp.command("LIST").wait())

// 删除文件

print(ftp.command("DELE /1/12222.txt").wait())

5.3 ftp.pull(local_name,remote_name)

FTP 文件下载

参数

传入值类型 解释

string

local_name 本地文件

string

remote_name 服务器文件

返回值

 

返回值类型 解释

bool/string

成功返回 true 失败返回 string

例子

ftp.pull("/1222.txt","/1222.txt").wait()

5.4 ftp.push(local_name,remote_name)

FTP 文件上传

参数

传入值类型 解释

string

local_name 本地文件

string

remote_name 服务器文件

返回值

 

返回值类型 解释

bool/string

成功返回 true 失败返回 string

例子

ftp.push("/1222.txt","/1222.txt").wait()

5.5 ftp.close()

FTP 客户端关闭

参数

返回值

返回值类型 解释

bool/string

成功返回 true 失败返回 string

例子

ftp.close().wait()

5.6 ftp.debug(onoff)

配置是否打开 debug 信息

参数

传入值类型 解释

boolean

是否打开 debug 开关

返回值

返回值类型 解释

nil

无返回值

例子

 

六、实现流程

  • 打开 FTP 服务器。记录地址,端口号,用户名,密码等必要信息。

  • 改 DEMO,将登录中的地址,端口号,用户名,密码等必要信息修改为自己服务器的。

  • 登录 ftp 服务器(ftp 服务器用 vsftpd)

  • 等待登录成功

  • 执行自己的命令

6.1 例程

示例代码如下:

 

图片

七、总结

本文档主要介绍4G通信中FTP通信的应用。结合例程讲解了FTP基本原理,介绍了FTP主要API,旨在最简单的上手Air780的LuatOS的 FTP开发。

八、常见问题

8.1 关于不支持主动模式

模块 ftp 默认是被动模式,不支持主动模式,无法设置主动模式,公网下要想模块正常连接服务器,服务器肯定不能设置为主动模式,否则哪家模块都不能用。

8.2 ftp服务器用vsftpd

ftp的服务器用vsftpd。

标签:FTP,Luatools,string,ftp,低功耗,示例,服务器,wait
From: https://www.cnblogs.com/luatos/p/18503752

相关文章

  • Centos7.x搭建FTP文件服务器
    ##参考网址https://blog.csdn.net/wqh0830/article/details/87743928#1、创建用户名并指定家目录,useradd-d/home/ftpuser-s/sbin/nologinftpuseruseradd-d/home/ftpuser-gumpay-s/sbin/nologinftpuser#-d-->更改用户的家目录为/home/ftpuse;此目录与数据目录保持一致#-......
  • Linux下搭建sftp服务
    1.创建sftp组groupaddsftpcat/etc/group2.创建一个sftp用户zyfdsftp并加入到创建的sftp组中,同时修改zyfdsftp用户的密码useradd-gsftp-s/sbin/nologin-d/home/ftpuserzyfdsftppasswdzyfdsftp3.新建/sftp/zyfdsftp目录(需要在/下单独创建目录),并将它指定为......
  • 将软件集成到 Windows 映像中并进行静默安装,可以使用 DISM 和适当的安装程序命令。下
    将软件集成到Windows映像中并进行静默安装,可以使用DISM和适当的安装程序命令。下面是具体的步骤和示例命令。1.准备工作确保你有一个已挂载的Windows映像。确保你有软件的安装程序,并且支持静默安装。2.挂载映像首先,挂载你的WIM文件(如果还没有挂载的话):bashCopyC......
  • 在Windows 10操作系统中搭建FTP
    在Windows10操作系统中搭建FTP(FileTransferProtocol,文件传输协议)服务器,可以为局域网内的用户提供文件共享和传输服务。以下是详细的搭建步骤,包括准备工作、安装与配置FTP服务、以及测试与访问FTP服务器等环节。一、准备工作在搭建FTP服务器之前,需要做好以下准备工作:确......
  • linux中的ftp服务有什么用
    Linux中的FTP服务是一种重要的网络协议,用于文件传输和共享。本文将深入探讨Linux中的FTP服务的作用,主要包括:1、文件传输功能;2、远程文件访问;3、文件备份和共享。Linux中的FTP服务允许用户在网络上快速、安全地传输文件。无论是将文件上传到服务器还是从服务器下载文件,FTP提供了高......
  • 护照如何查验真伪?C++护照查验接口示例、护照文字识别、身份验证
    在当下全球化加速、出入境需求激增的背景下,护照查验接口作为提升边检效率和保障国民安全的重要技术,正逐渐受到广泛关注。随着全球旅游业的复苏和国际商务交流的频繁,如何更高效、智能地完成护照查验成为了政府和企业的关键任务。数字化政务正在全球范围内成为趋势,护照查验......
  • SI3933低频唤醒无线接收器 超低功耗125K芯片替代AS3933
    Si3933是一款三通道的低功耗ASK接收机,可用于检测15KH2-150KHz低频载波频率的数字信号,并产生唤醒信号。内部集成的校验器用于检测16位或32位曼彻斯特编码的唤醒向量,且支持两次重复的向量校验。Si3933可以使用一个、两个或者三个通道工作,每个通道都具有频率检测功能和数字RSSI计算......
  • 要使用 netsh 命令更新以太网连接的 IPv6 DNS 服务器地址,可以通过以下步骤进行操作。
    要使用netsh命令更新以太网连接的IPv6DNS服务器地址,可以通过以下步骤进行操作。以下是设置IPv6DNS的命令示例。使用 netsh 设置以太网的IPv6DNS打开命令提示符:以管理员身份运行命令提示符。输入以下命令:bashCopyCodenetshinterfaceipv6setdnsname......
  • BeginnersBook-Java-示例-一-
    BeginnersBookJava示例(一)原文:BeginnersBook协议:CCBY-NC-SA4.0Java程序:计算复合利率原文:https://beginnersbook.com/2019/07/java-program-to-calculate-compound-interest/在本教程中,我们将编写一个java程序来计算复合利率。复利计算公式使用以下公式计算复利:......
  • BeginnersBook-C-语言示例-一-
    BeginnersBookC语言示例(一)原文:BeginnersBook协议:CCBY-NC-SA4.0C程序:检查阿姆斯特朗数原文:https://beginnersbook.com/2014/06/c-program-to-check-armstrong-number/如果数字的各位的立方和等于数字本身,则将数字称为阿姆斯特朗数。在下面的C程序中,我们检查输入的......