当前位置: 首页 > news >正文

电路研究9.3——合宙Air780EP中的AT开发指南(含TCP 示例)

       根据合宙的AT研发推荐, AT指令基本上也简单看完了,这里开始转到AT的开发了。

        AT 命令采用标准串口进行数据收发,将以前复杂的设备通讯方式转换成简单的串口编程, 大大简化了产品的硬件设计和软件开发成本,这使得几乎所有的网络模组如 GPRS3G/4G 、 NB-IoT、蓝牙、WiFi GPS 等模组都采用 AT 命令。 随着物联网时代的发展,AT 命令被广泛的用于单片机(MCU+ 网络模块这样的物联网开发模式。但这种开发模式单片机是必不可少的部分,因而会使产品的成本相应的高些。 AT 固件是标准固件,所以能支持的驱动也比较少,只有模块状态灯、摄像头扫码、SD 卡等外设驱动功能。要想要支持更多的外设建议用 LuatOS 二次开发固件进行二次开发。        

        根据介绍AT指令需要MCU+GPRS的配合,我们这里也考虑到是否使用到stm32了。根据我们这里使用的GPRS模块本身具备的功能,具备了我们需要的功能了,所以我们这里考虑直接使用AT指令了。

        AT 命令语法介绍:

        本手册中所有命令行必须以"AT""at"作为开头,以回车(<CR>)作为结尾。响应通常紧随命令之后,它的样式是“<回车><新行><响应内容><回车><新行>”(<CR><LF><响应内 容><CR><LF>) 。整本手册里,只有<响应内容>被自始至终介绍,而<回车><新行>被有意省略了。合宙无线模块提供的 AT 命令包含符合 GSM07.05GSM07.07 ITU-T Recommendation V.25ter 的命令。

        之前也在AT指令学习中提到过下面这些:所有 AT 命令从语法上可以分为三类:基础类“S 参数类以及扩展类,分别介绍如下:

        基础类 AT 命令 :这类 AT 命令具有“AT<x><n>”或者“AT&<x><n>”格式,其中“<x>”是命令;“<n>” 可以是一个或者多个参数。例如:“ATE<n>”,该命令用于为 DCE 开关回显功能,即 DCE 会依据“<n>”值决定是否把接收的字符回显给 DTE“<n>”是选配参数,若没有 赋值,模块将使用默认值。

        参数类 AT 命令:这类 AT 命令格式为“ATS<n>=<m>”,其中“<n>”S 寄存器的索引;“<m>”是赋予 的值。“<m>” 是选配参数,若没有赋值,模块将使用默认值。

        扩展类 AT 命令 一般来讲,扩展类命令依据功能可以分为以下几种类型:
        
AT 开发基本架构
        
AT 开发优缺点
         AT 开发的优势 AT 指令作为单片机和通信模块的桥梁,很好的兼顾了单片机开发的特点,
又满足了产品联网的需求。 AT 指令是一种通用的使用方式,在无线模块领域也流行了 20
年。
        AT 开发的缺点 :成本相应的高些,能支持的驱动也比较少。
        确实这个,感觉上选用AT指令的会少一些,不过以前到是用过AT指令来着,不过是构建在stm32的基础之上的。我们这里因为用到了GPRS,所以只能是通过STM32控制GPRS或者直接写到GPRS里面,这个因为GPRS的功能可能够了吧。
         9.2 AT 固件
        这个需要购买GPRS器件,应该附带了固件库吧。
        9.3 AT 命令手册
        之前研究的就是这个手册,之后使用会用到之前研究的,或许需要调整更改吧。
        9.4 AT 开发环境搭建
        这个暂时我们没有Air780EP 开发板,所以先学习一下使用,不做测试了。好像虚拟串口,所以我们研究一下虚拟串口:
        下面是我在网上找的一个虚拟串口工具,我试了试,没有深入研究,不过可以虚拟出来串口,放在了百度网盘的分享里面,不大也就5M左右,供大家研究。
        通过网盘分享的文件:VSPD6.9虚拟串口破解汉化版.zip
链接: https://pan.baidu.com/s/1E-bh5_l38KReuUdLlvNR1g?pwd=4iqg 提取码: 4iqg
        9.5 AT 开发应用指南
        9.5.1 TCP(SSL) 应用指南
        TCP 示例
        开机:这个之前也讲过怎么开机,这里再列出来: 通过拉低 powerkey2 秒进行开机,开机以后通过串口循环发送 AT 直到收到 OK ,如果 90 没有收到 OK 请拉低 RESET_IN_N 引脚 150ms 以上。这个也就是模块的开机了,我当时设计时候没有接触RESET_IN_N 引脚,所以这里就断电试试吧,如果不行我再飞线拉低RESET_IN_N 引脚好了。
         查询 SIM 卡状态: 发送 AT+CPIN? 查询 SIM 卡状态【看起来是已多次发送AT+CPIN?】,直到收到+CPIN: READY ,模块主动上报 SIM REMOVED 和查询返回 +CME ERROR: 10 是模块没有检测到 SIM 卡,如果 10s 内没有收到建议重启模块,如果重启问题依旧需要检查卡是否有插好,或者排查板子的硬件连接。
         查询模块信号强度: 一般信号强度 18 以上才能稳定通讯; 11-17 能连接,会有断网的可能, 10 以下基本连接不 上,在不能联网的情况下,可以先参考一下信号强度如何。
         5.1 查询信号质量: AT+CSQ
        
使用这个指令查询一下是否满足通腾讯条件。
查询网络注册情况: AT+CGATT? 查询是否注册网络收到 +CGATT: 1 值是 1 即为注册成功,正常情况下注册时间不会超过两分钟,如果超过两分钟没有注册可以 进入飞行模式五秒后退出再查询,或者直接重启模块。 值是 0 则没有注册成功。                 
        8.2 GPRS 附着分离: AT+CGATT
        设置命令用于将 MT 附着 GPRS 业务,或将 MT 从 GPRS 业务分离。查询命令返回当前的 GPRS 附着状态。
这个 GPRS 附着分离,之前觉得没所谓了,所以并没深入关注,只是点到了,折现查询就不太清楚了。
        激活网络:
AT+CSTT 配置网络,非私有 APN 以外 Cat1 的固件支持根据卡自动配置 APN ,直接输入
AT+CSTT 即可,模块会按照自动获取的 APN 设置 CSTT APN AT+CIICR 激活网络,在 IP START 的状态使用 AT+CIICR 激活网络 AT+CIFSR 查询是否获取 IP ,如果成功就可以开始配置 TCP 连接了,如果不成功使用 AT+CIPSHUT 关闭移动网络,从 AT+CSTT 重新进行。一定要查询一次再进行服务器连接。
         12.2 启动任务并设置接入点 APN 、用户名、密码: AT+CSTT
        
12.4 激活移动场景 ( 或发起 GPRS CSD 无线连接 ) AT+CIICR
12.5 查询本地 IP 地址: AT+CIFSR
这个几个AT指令不知道是否使用过,之前举例,不过没记在心里呢。
连接 TCP: 此处使用的是非 SSL 连接, TCP/UDP 测试网页 TCP/UDP 测试网页 使用 AT+CIPSTART 来建立连接。
         12.9 建立 TCP 连接或注册 UDP 端口号: AT+CIPSTART
根据 AT+CIPSTART 建立了连接。
发送数据: AT+CIPSEND 可以发送定长或不定长数据,收到 > 以后就可以发送数据(最大 1460 字节)。 如果是定长数据,输入数据达到长度会向服务器自动发送数据。 如果是不定长数据,输入数据后发送十六进制 1A 结束发送,发送完 1A 以后设备会向服务器 发送 1A 之前的所有数据。 定长数据,假设这里发送 10 个字节数据AT+CIPSEND=10
         12.14 发送数据: AT+CIPSEND
这里是发送数据的了。
不定长数据 直接发送 AT+CIPSEND ,会返回一个 > 符号,之后可以输入数据,数据输入完毕后,发送十 六进制的 1A ,结束发送,模块会将输入的数据发送到服务器 发送 AT+CIPSEND 后,可以看到返回了一个 >,后续输入的内容没有返回值,此时再发送十六进制的 1A 来结束发送,才会收到返的  SEND OK
         其他说明: 最新的 AT 固件支持开机直接发送 AT+CIPSTART 联网,不过不推荐使用,推荐根据状态机一 步一步实现。
        这个可以考虑使用,毕竟我们打算不采用MCU单片机来控制呢。
        补:今天先这样,之后再把 TCP 使用 SSL 示例贴出来。

相关文章:

电路研究9.3——合宙Air780EP中的AT开发指南(含TCP 示例)

根据合宙的AT研发推荐&#xff0c; AT指令基本上也简单看完了&#xff0c;这里开始转到AT的开发了。 AT 命令采用标准串口进行数据收发&#xff0c;将以前复杂的设备通讯方式转换成简单的串口编程&#xff0c; 大大简化了产品的硬件设计和软件开发成本&#xff0c;这使得几乎所…...

Qt 数据库SQLite 使用【01】基本功能

1.开发背景 Qt 开发过程中难免需要存储数据&#xff0c;可以选择保存到本地文件&#xff0c;但是查找比较麻烦&#xff0c;所以就有了数据库&#xff0c;主要是方便查找数据&#xff0c;增删改查等操作&#xff0c;而 SqLite 属于数据库中轻量级的存在&#xff0c;适合本地数据…...

stm32小白成长为高手的学习步骤和方法

我们假定大家已经对STM32的书籍或者文档有一定的理解。如不理解&#xff0c;请立即阅读STM32的文档&#xff0c;以获取最基本的知识点。STM32单片机自学教程 这篇博文也是一篇不错的入门教程&#xff0c;初学者可以看看&#xff0c;讲的真心不错。 英文好的同学&#xf…...

大模型产品Deepseek(五)、本地安装部署(Docker方式)

DeepSeek 本地部署指南 DeepSeek是一款高效的智能搜索与推荐引擎,除了通过云端API提供服务外,它还支持本地部署,让开发者可以完全控制数据和计算资源。通过本地部署,您可以将DeepSeek集成到内部系统中,在私有环境下运行模型,减少对外部API的依赖,同时提升数据隐私性与响…...

Kafka 的消费offset原来是使用ZK管理,现在新版本是怎么管理的?

目录 基于 ZooKeeper 管理消费 offset 原理 缺点 新版本基于内部主题管理消费 offset 原理 优点 示例代码(Java) 在 Kafka 早期版本中,消费者的消费偏移量(offset)是存储在 ZooKeeper 中的,但由于 ZooKeeper 并不适合高频读写操作,从 Kafka 0.9 版本开始,消费偏…...

基于改进型灰狼优化算法(GWO)的无人机路径规划

内容&#xff1a; 基于改进型灰狼优化算法的无人机轨迹规划 GWO是一种群体智能优化算法&#xff0c;模仿灰狼的社会等级和狩猎行为。原始的GWO有一些局限性&#xff0c;比如容易陷入局部最优&#xff0c;收敛速度慢等&#xff0c;所以改进型的GWO可能通过不同的策略来优化这些…...

JS中|=是什么意思?

在JavaScript中&#xff0c;| 是一个位运算符的复合赋值操作&#xff0c;具体表示按位或赋值运算。这个操作符会对两个操作数进行按位或&#xff08;|&#xff09;运算&#xff0c;然后将结果赋值回左操作数。 let a 5; // 二进制表示为 0101let b 3; // 二进制表示为 0011a …...

快速上手Vim的使用

Vim Linux编辑器-vim使用命令行模式下所有选项都可以带数字底行模式可视块模式&#xff08;ctrlV进入&#xff09; Linux编辑器-vim使用 Vim有多种模式的编辑器。能帮助我们很快的进行代码的编辑&#xff0c;甚至完成很多其他事情。 默认情况下我们打开vim在命令模式下&#x…...

RPA与深度学习结合

什么是RPA RPA即机器人流程自动化&#xff08;Robotic Process Automation&#xff09;&#xff0c;它是一种利用软件机器人模拟人类在计算机上的操作&#xff0c;按照预设的规则自动执行一系列重复性、规律性任务的技术。这些任务可以包括数据录入、文件处理、报表生成、系统…...

在阿里云ECS上一键部署DeepSeek-R1

DeepSeek-R1 是一款开源模型&#xff0c;也提供了 API(接口)调用方式。据 DeepSeek介绍&#xff0c;DeepSeek-R1 后训练阶段大规模使用了强化学习技术&#xff0c;在只有极少标注数据的情况下提升了模型推理能力&#xff0c;该模型性能对标 OpenAl o1 正式版。DeepSeek-R1 推出…...

长安汽车发布“北斗天枢2.0”计划,深蓝汽车普及全民智驾

2月9日&#xff0c;长安汽车智能化战略“北斗天枢2.0”计划暨深蓝汽车全场景智能驾驶解决方案发布会在重庆盛大召开。此次发布会标志着长安汽车正式迈入智能化战略的新纪元&#xff0c;携手众多“中国智驾合伙人”&#xff0c;共同开启全民智驾元年。 发布会上&#xff0c;长安…...

Aitken 逐次线性插值

Aitken 逐次线性插值 用 Lagrange 插值多项式 L n ( x ) L_n(x) Ln​(x)计算函数近似值时&#xff0c;如需增加插值节点&#xff0c;那么原来算出的数据均不能利用&#xff0c;必须重新计算。为克服这个缺点&#xff0c;可用逐次线性插值方法求得高次插值。 令 I i 1 , i 2…...

docker 安装 Prometheus、Node Exporter 和 Grafana

Docker Compose 配置文件 docker-compose.yml services:prometheus:image: prom/prometheus:latestcontainer_name: prometheusvolumes:- ./prometheus.yml:/etc/prometheus/prometheus.yml # 挂载配置文件 - prometheus_data:/prometheus # 持久化数据存储 command:- --…...

【LeetCode 热题100】74:搜索二维矩阵(二分、线性两种方式 详细解析)(Go 语言实现)

&#x1f680; 力扣热题 74&#xff1a;搜索二维矩阵&#xff08;详细解析&#xff09; &#x1f4cc; 题目描述 力扣 74. 搜索二维矩阵 给你一个满足下述两条属性的 m x n 整数矩阵 matrix &#xff1a; 每行中的整数从左到右按非递减顺序排列。每行的第一个整数大于前一行的…...

元数据、数据元、数据元素、数据项 和 主数据的概念

一、元数据 1.概念 元数据&#xff0c;又称中介数据、中继数据&#xff0c;为描述数据的数据。主要是描述数据属性的信息&#xff0c;用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。 2.实例 数据库中&#xff0c;表的名称、表字段名、其他相关的描述信息&a…...

阿里云cdn怎样设置图片压缩

阿里云 CDN 提供了图像加速服务&#xff0c;其中包括图像压缩功能。通过设置图片压缩&#xff0c;可以显著减小图片文件的体积&#xff0c;提升网站加载速度&#xff0c;同时减少带宽消耗。九河云来告诉你如何进行图片压缩吧。 如何设置阿里云 CDN 图片压缩&#xff1f; 1. 登…...

白话文实战Nacos(保姆级教程)

前言 上一篇博客 我们创建好了微服务项目,本篇博客来体验一下Nacos作为注册中心和配置中心的功能。 注册中心 如果我们启动了一个Nacos注册中心,那么微服务比如订单服务,启动后就可以连上注册中心把自己注册上去,这过程就是服务注册。每个微服务,比如商品服务都应该注册…...

7. 基于DeepSeek和智谱清言实现RAG问答

课件链接&#xff1a;https://cloud.189.cn/t/VNvmyimY7Vna&#xff08;访问码&#xff1a;e4cb&#xff09;天翼云盘是中国电信推出的云存储服务&#xff0c;为用户提供跨平台的文件存储、备份、同步及分享服务&#xff0c;是国内领先的免费网盘&#xff0c;安全、可靠、稳定、…...

【数据结构】双向链表(真正的零基础)

链表是一种物理存储单元上非连续、非顺序的存储结构。数据元素的逻辑顺序是通过指针的链接来实现的&#xff01;在上篇我们学习了单向链表&#xff0c;而单向链表虽然空间利用率高&#xff0c;插入和删除也只需改变指针就可以达到&#xff01;但是我们在每次查找、删除、访问..…...

【生产变更】- Oracle RAC添加配置ipv6地址

【生产变更】- Oracle RAC添加配置ipv6地址 一、概述二、环境检查及备份2.1 检查并备份系统层面IP配置2.2 检查并备份监听配置2.3 检查并备份网卡配置2.4 检查并备份/etc/hosts三、集群层面配置3.1 检查集群配置3.2 停止集群组件3.3 Bond0网卡设置3.4 /etc/hosts文件配置3.5 重…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...