华为云IoT智慧物流案例10 | 广和通L610模组FOTA升级(服务端FileZilla Server客户端FileZilla)

华为云IoT智慧物流案例10 | 广和通L610模组FOTA升级(服务端FileZilla Server客户端FileZilla)

FOTA升级作用:在官方更新新固件后,模组设备无需寄回给官方,而是通过远程FTP/HTTP进行OTA升级固件,以更新新固件版本,从而达到更新设备的功能/BUG修复。

本次我采用FPT的方式来升级L610的固件,FPT可以选择购买华为云弹性云服务器ECS或用自己的PC局域网搭建FPC服务器,因为我这里只是做测试使用,故选择用自己的PC搭建FPT服务器。

第一章 使用FileZilla Server搭建FTP服务器

  1. 服务端FileZilla Server:FileZilla Server下载
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  2. 配置服务端
    (1)打开Filezilla Server Interface,“Host”默认“localhost”即设置本机为FTP服务器,“Port”为前面安装时的端口,默认“14147”,设置一个服务器端的“Password”,点击“Connect”
    在这里插入图片描述
    在这里插入图片描述
    (2)手动修改服务器IP地址,依次点击“Edit”,“Settings”打开设置界面,选择“Passive mode settings”选项卡,勾选“Use the following IP:”并填写自己PC端的IP地址,之后点击“OK”保存。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)添加X.509证书,点击“FTP over TLS settings”,勾选“Enable FTP over TLS support(FTPS)”
配置证书“Generate new certificate”
国家代码填86,设置路径将证书另存为在你想要保存证书的地方
在这里插入图片描述

(4)设置用户名和密码,以及共享文件夹,具体过程如下:
在这里插入图片描述
设置用户密码

在这里插入图片描述
设置共享文件夹

在这里插入图片描述
设置相关权限
在这里插入图片描述

第二章 通过FileZilla客户端访问FTP服务器

客户端FileZilla:FileZilla下载

  1. 点击左上角的“打开站点管理器”添加新的站点在这里插入图片描述
    2.填写站点相关信息
    在这里插入图片描述
  2. 点击“连接”,即可连接到FTP服务器
    在这里插入图片描述
  3. 也可以通过浏览器访问(浏览器地址栏输入FTP地址,输入用户名密码即可访问FTP目录)
    ftp://IP地址
    在这里插入图片描述

第三章 L610进行FOTA升级固件

  1. 将固件文件上传到FTP服务器
    在这里插入图片描述

  2. 开发板AT开关拨至左边“AT-PC”
    打开串口工具发送AT指令:
    AT:测试AT
    ATI:查询版本
    AT+CPIN?:查询卡状态
    AT+CIMI?:查询IMSI
    AT+CSQ?:信号质量(0-29,数值越高信号越好)
    AT+CEREG?:是否驻网(1为驻网)
    在这里插入图片描述

  3. 驻网拨号→FOTA升级文件
    AT+MIPCALL=1:拨号
    +MIPCALL: 10.104.48.68 //必须等收到+MIPCALL 或者 ERROR 或者超时再下面操作
    FOTA升级:
    AT+GTOTA=1,“111.231.250105:21”,"/upgrade/L610-CN-00/06_05.bin",“user”,“password”
    在这里插入图片描述
    在这里插入图片描述
    技术指导:
    华为云社区与华为云学院:https://edu.huaweicloud.com/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是基于STM32通过广和通L610通信模组与腾讯云连接的代码示例: ```c #include "stm32f10x.h" #include "gprs.h" #include "string.h" #include "stdio.h" #define APN "CMNET" #define USER "" #define PASS "" #define IP "mqtt.tencentdevices.com" #define PORT 1883 #define CLIENT_ID "my_client_id" #define USERNAME "my_username" #define PASSWORD "my_password" #define MQTT_TOPIC "/my_topic" #define MQTT_QOS 0 #define GPRS_RX_BUF_SIZE 1024 #define GPRS_TX_BUF_SIZE 1024 uint8_t gprs_rx_buf[GPRS_RX_BUF_SIZE]; uint8_t gprs_tx_buf[GPRS_TX_BUF_SIZE]; uint8_t mqtt_rx_buf[GPRS_RX_BUF_SIZE]; uint8_t mqtt_tx_buf[GPRS_TX_BUF_SIZE]; int main(void) { uint8_t ip[16]; uint16_t port; uint8_t client_id[32]; uint8_t username[32]; uint8_t password[32]; uint8_t topic[64]; // 初始化GPRS模块 gprs_init(gprs_rx_buf, GPRS_RX_BUF_SIZE, gprs_tx_buf, GPRS_TX_BUF_SIZE); // 连接GPRS网络 if (!gprs_connect(APN, USER, PASS)) { printf("GPRS connect failed!\n"); while (1); } // 获取IP地址和端口号 if (!gprs_get_ip_port(IP, PORT, ip, &port)) { printf("Get IP and port failed!\n"); while (1); } // 连接MQTT服务器 if (!mqtt_connect(ip, port, client_id, username, password)) { printf("MQTT connect failed!\n"); while (1); } // 发布消息 if (!mqtt_publish(MQTT_TOPIC, MQTT_QOS, "Hello, world!")) { printf("MQTT publish failed!\n"); while (1); } // 订阅消息 if (!mqtt_subscribe(MQTT_TOPIC, MQTT_QOS)) { printf("MQTT subscribe failed!\n"); while (1); } // 接收消息 mqtt_receive(mqtt_rx_buf, GPRS_RX_BUF_SIZE); // 断开MQTT连接 mqtt_disconnect(); // 断开GPRS连接 gprs_disconnect(); while (1); } ``` 其中,`gprs_init`、`gprs_connect`、`gprs_get_ip_port`、`gprs_disconnect`是自定义的GPRS模块初始化、连接、获取IP地址和端口号、断开连接函数;`mqtt_connect`、`mqtt_publish`、`mqtt_subscribe`、`mqtt_receive`、`mqtt_disconnect`是自定义的MQTT连接、发布消息、订阅消息、接收消息、断开连接函数。你需要根据你使用的GPRS模块和MQTT库进行相应的修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值