linux 4G模块 :EC200N—AT指令收发短信

查看/dev目录下的串口设备:在终端中运行以下命令,查看系统检测到的串口设备:

$ ls /dev/ttyUSB*

minicom串口通信软件安装

sudo apt-get install minicom

修改串口配置:
在minicom的配置界面中,选择"Serial Port Setup"选项,然后按照提示进行串口配置

sudo minicom -s

打开串口:
注意,根据实际情况,您可能需要调整波特率(-b参数)和设备名称(-D参数)

sudo minicom -b 9600 -o -D /dev/ttyUSB0

使用AT指令控制4g模块
“AET1”设置为回显模式
“AET0”设置为非回显模式

常用的AT指令

一、通用命令
ATI 显示产品标识信息
AT+GMI索取制造商识别码
AT+GMM请求TA模型识别
AT+GMR请求软件版本的修订标识
AT+CGMI索取制造商识别码
AT+CGMM请求模型识别
AT+CGMR请求版本的修订标识
AT+GSN请求国际移动设备识别码(IMEI)
AT+CGSN索取产品序列号识别码
AT&F 将所有当前参数设置为制造商默认值
AT&V 显示当前配置
AT&W 将当前参数存储到用户定义的配置文件中
ATZ 将所有当前参数设置为用户定义的配置文件
ATQ 设置结果代码演示模式
ATV TA响应格式
ATE 设置命令回显模式
A/ 重复上一个命令行
ATS3 设置命令行终止字符
ATS4 设置响应格式字符
ATS5 设置命令行编辑字符
ATX 设置连接结果代码格式和监控呼叫进度
AT+CFUN 设置电话功能
AT+CMEE 错误消息格式
AT+CSCS 选择TE字符集
AT+QURCCFG 配置URC指示选项

二、 串行接口控制命令
AT&C 设置DCD功能模式
AT&D 设置DTR功能模式
AT+IFC 设置TE-TA本地数据流控制
AT+IPR 设置TE-TA固定本地费率

三、 状态控制命令
AT+CPAS 查询移动活动状态
AT +CEER 报告扩展错误
AT +QCFG 配置扩展设置
AT +QCFG=“gprsattach” 配置GPRS附加模式
AT+QCFG=“nwscanmode” 配置网络搜索模式
AT+QCFG =“nwscanseq” 配置网络搜索顺序
AT+QCFG =“roamservice” 配置漫游服务
AT+QCFG =“servicedomain” 配置服务域
AT+QCFG =“band” 配置Band
AT+QCFG =“urc/ri/other” 指定在呈现其他URC时的RI行为
AT+QCFG =“urcdelay” 设置URC指示的延迟时间
AT+QCFG =“urc/cache” 启用/禁用URC缓存功能
AT+QINDCFG 配置URC指示

四、 SIM卡相关命令
AT+CIMI 请求国际移动用户身份(IMSI)
AT+CLCK 设备锁
AT+CPIN 输入PIN
AT+CPWD 更改密码
AT+CSIM 通用(U)SIM卡访问权限
AT+CRSM 受限(U)SIM卡访问权限
AT+QCCID 显示ICCID
AT+QPINC 显示PIN剩余计数器
AT+QINISTAT 查询(U)SIM卡的初始化状态
AT+QSIMDET (U)SIM卡检测
AT+QSIMSTAT (U)SIM卡插入状态报告

五、 网络服务命令
AT+COPSO 运算符选择
AT+CREG 网络注册状态
AT+CSQ 信号质量报告
AT+CPOL 首选运营商清单
AT+COPN 读取操作员名称
AT+CTZU 自动时区更新
AT+CTZR 时区报告
AT+QLTS 获得通过网络同步的最新时间
AT+QNWINFO 查询网络信息

六、 电话簿命令
AT+CNUM 订户编号
AT+CPBFF 查找电话簿条目
AT+CPBR 阅读电话簿条目
AT+CPBS 选择电话簿内存存储
AT+CPBW 编写电话簿条目

七、 短消息服务命令
AT+CSMS 选择消息服务
AT+CMGF 消息格式
AT+CSCA 服务中心地址
AT+CPMSP 首选消息存储
AT+CMGD 删除消息
AT+CMGL 列表消息
AT+CMGR 阅读消息
AT+CMGS 发送消息
AT+CMMS 发送更多消息
AT+CMGWW 将消息写入内存
AT+CMSS 从存储发送消息
AT+CNMA 对UE/TE的新消息确认
AT+CNMISMS 事件报告配置
AT+CSCB 选择小区广播消息类型
AT+CSDH 显示SMS文本模式参数
AT+CSMP 设置SMS文本模式参数
AT+QCMGS 发送级联消息
AT+QCMGR 读取连接的消息

八、 数据包域命令
AT+CGATT PS的附着或分离
AT+CGDCONT 定义PDP上下文
AT+CGQREQ 服务质量配置文件(已请求)
AT+CGQMIN 服务质量配置文件(最低可接受)
AT+CGEQREQ 3G服务质量配置文件(已请求)
AT+CGEQMIN 3G服务质量配置文件(最低可接受)
AT+CGACT 激活或停用PDP上下文
AT+CGDATA 输入数据状态
AT+CGPADDR 显示PDP地址
AT+CGCLASS GPRS移动台类
AT+CGREG 网络注册状态
AT+CGEREP 包域事件报告
AT+CGSMS 为MO SMS消息选择服务
AT+CEREG EPS网络注册状态
AT+QGDCNT 数据包数据计数器
AT+QAUGDCNT 自动保存数据包数据计数器

九、 硬件相关命令
AT+QPOWD 关闭电源
AT+CCLK 时钟
AT+QSCLK 启用/禁用进入睡眠模式

代码
XXXXX.h

#ifndef SMSTHREAD_H
#define SMSTHREAD_H#include <QObject>
#include <QThread>
#include <QDebug>
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>class SmsThread : public QThread
{Q_OBJECT
public:SmsThread();//SmsThread(QString Path);~SmsThread();void run() override;private:QSerialPort *Serial;bool SerialState = false;QString m_Path;QString m_Number;QString m_DeviceStatus;QString m_SmsID;void SerialInit();void SerialWrite(char *Number,QString val,bool bt=false);signals:void setDeviceStatus(QString val);public slots:void readData();void setReplySms();
};#endif // SMSTHREAD_H

XXXXX.cpp

#include "smsthread.h"
#include <QSettings>SmsThread::SmsThread(){SerialInit();
}SmsThread::~SmsThread()
{if(SerialState) {Serial->close();SerialState = false;}
}
void SmsThread::run()
{while (1) {if(!SerialState)SerialInit();
//        readData();
//        msleep(500);}
}void SmsThread::SerialInit()
{Serial = new QSerialPort;//设置串口名字Serial->setPortName("/dev/ttyUSB1");//设置波特率Serial->setBaudRate(QSerialPort::Baud115200);//设置数据位Serial->setDataBits(QSerialPort::Data8);//设置奇偶校验位Serial->setParity(QSerialPort::NoParity);//设置停止位Serial->setStopBits(QSerialPort::OneStop);//设置流控Serial->setFlowControl(QSerialPort::NoFlowControl);//打开串口SerialState = Serial->open(QIODevice::ReadWrite);SerialWrite(const_cast<char*>("AT+CMGF=%s\r\n"),"1");connect(Serial, &QSerialPort::readyRead, this, &SmsThread::readData);}
void SmsThread::readData()
{if(!SerialState)return;QString Read= Serial->readAll();qDebug() << Read << endl;if (Read.isEmpty()&& Read == "ERROR")return;Read.replace("\r\n", ",");Read.remove(QRegExp("\""));QStringList parts = Read.split(',', QString::SkipEmptyParts);parts.removeDuplicates(); // 移除列表中的重复项if(Read.contains("+CMTI:", Qt::CaseSensitive)) //true{m_SmsID = parts[1];SerialWrite(const_cast<char*>("AT+CMGR=%s\r\n"),m_SmsID);}else if(Read.contains("+CMGR:", Qt::CaseSensitive)) //true{for(int i = 0; i < parts.count(); i++){qDebug() <<">>>:"<<i<< parts.at(i);if(parts.at(i).contains("+86", Qt::CaseSensitive))m_Number = parts.at(i);if(parts.at(i).toLower() == "on" ||parts.at(i).toLower() == "off" ){m_DeviceStatus =parts.at(i).toLower();emit setDeviceStatus(m_DeviceStatus);}}SerialWrite(const_cast<char*>("AT+CMGD=%s\r\n"),m_SmsID);}else if(Read.contains(">", Qt::CaseSensitive)) //true{SerialWrite(const_cast<char*>("Turn %s machine lock OK"),m_DeviceStatus,true);}
}void SmsThread::setReplySms()
{SerialWrite(const_cast<char*>("AT+CMGS=%s\r\n"),m_Number);
}void SmsThread::SerialWrite(char *Number, QString val, bool bt)
{if(!SerialState)return;char temp[64];memset(temp,0,sizeof(temp));sprintf(temp,Number,val.toUtf8().data());if(bt)temp[strlen(temp)] = 0x1a;Serial->write(temp);qDebug() <<"<<<:"<<temp;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/29037.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机相关专业还值得选择吗

2024年&#xff0c;计算机相关专业还值得选择吗&#xff1f; 随着2024年高考落幕&#xff0c;数百万高三学生又将面临人生中的重要抉择&#xff1a;选择大学专业。在这个关键节点&#xff0c;计算机相关专业是否仍是“万金油”的选择&#xff1f;在过去很长一段时间里&#xf…

知识库的创建(1) - KnowledgeFile文件加载和分割

文章目录 前言一、 类的初始化方法 __init__1. 参数解析2. 初始化步骤 二、 方法 file2docs1. 功能2. 参数3. 步骤 三、 方法 docs2texts1. 功能2. 参数3. 步骤 四、 方法 file2text1. 功能2. 参数3. 步骤 五、 方法 file_exist1. 功能2. 返回3. 方法 get_mtime4. 功能5. 返回 …

高考没考好焦虑怎么选计算机专业!一篇告诉你,推荐三个风口专业!想学计算机怎么选大学专业

高考成绩揭晓&#xff0c;几家欢喜几家愁。对于那些未能如愿考取理想分数的同学来说&#xff0c;未来似乎蒙上了一层阴影。尤其是在计算机专业如此热门的今天&#xff0c;低分考生是否还有机会在这个领域找到一席之地&#xff1f;本文将为你揭秘&#xff0c;即使高考成绩不理想…

Drake 机器人仿真

sudo apt-get install&#xff0c;pip3 install&#xff0c;sudo apt install这些命令是在Linux系统中用于安装软件包或Python库的不同方法&#xff0c;它们分别属于不同的包管理系统和工具。 sudo apt-get install&#xff1a; 这是在Debian、Ubuntu等基于Debian的系统上用于从…

Linux下C程序的编写

Linux下C程序的编写 第一部分&#xff1a;编写C程序并使用gcc编译器 首先&#xff0c;我们编写一个简单的C程序hello_gcc.c&#xff0c;用于在屏幕上输出“Hello gcc&#xff01;”。 // hello_gcc.c #include <stdio.h> int main() { printf("Hello gcc!\n&…

牛客周赛 C-苗苗的气球

原题链接&#xff1a;C-苗苗的气球 题目大意&#xff1a;n种气球&#xff0c;给出每种气球的个数&#xff0c;二种不同的气球相碰会爆炸&#xff0c;问最后留下来的气球有几种可能性。 思路&#xff1a;从特殊到一般&#xff0c;如果是一种气球&#xff0c;那么答案肯定是1&a…

mysql [Err] 1118 - Row size too large (> 8126).

1.找到my.ini文件 1.1 控制台输入以下指令&#xff0c;打开服务 services.msc1.2 查看mysql服务的属性 2.停止mysql服务&#xff0c;修改my.ini文件并且保存 innodb_strict_mode03.重启mysql服务 4.验证是否关闭成功 show variables like %innodb_strict_mode%; show vari…

【华为免费实战课】基于ENSP实现企业园区网组网项目实战

带你一起走进网工的世界&#xff01; 2024年G-LAB【华为实战公开课】即将开始啦&#xff01;华为实战千万别错过&#xff01; 公开课为期四天&#xff0c;6月18日-6月21日晚20&#xff1a;00开始 关注 工 仲 好&#xff1a;IT运维大本营&#xff0c;私信glab-mary&#xff0…

算法课程笔记——线段树维护哈希

算法课程笔记——线段树维护哈希 提前空出来

FastAdmin后台开发框架 lang 任意文件读取漏洞复现

0x01 产品简介 FastAdmin是一款基于PHPBootstrap的开源后台框架&#xff0c;专为开发者精心打造。它基于ThinkPHP和Bootstrap两大主流技术构建&#xff0c;拥有完善的权限管理系统和一键生成CRUD等强大功能。FastAdmin致力于提高开发效率&#xff0c;降低开发成本&#xff0c;…

git error: does not have a commit checked out fatal: adding files failed

git add net error: net/ does not have a commit checked out fatal: adding files failed这个错误是因为尝试将一个尚未被提交的文件夹添加到Git中。解决这个问题的方法是先将文件夹中的文件提交到Git仓库中&#xff0c;然后再将文件夹添加到Git中。 首先&#xff0c;需要进…

苏州辰安塑业携塑料托盘、塑料物流箱解决方案亮相2024杭州快递物流展

苏州辰安塑业携塑料托盘、吹塑托盘、塑料卡板箱、塑料周转箱、塑料物流箱、塑料垃圾桶解决方案盛装亮相2024杭州快递物流展&#xff01; 展位号&#xff1a;3C馆A51 苏州辰安塑业有限公司&#xff0c;是一家专业从事塑料托盘、吹塑托盘、塑料卡板箱、塑料周转箱、塑料物流箱、…

【计算机毕业设计】235基于微信小程序点餐系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

CentOS搭建kubernetes集群详细过程(yum安装方式)

kubernetes集群搭建详细过程&#xff08;yum安装方式&#xff09; Kubernetes&#xff0c;也被称为K8s&#xff0c;是一个多功能的容器管理工具&#xff0c;它不仅能够协调和调度容器的部署&#xff0c;而且还能监控容器的健康状况并自动修复常见问题。这个平台是在谷歌十多年…

减肥药实质利好服装业:身材好了,更时尚了 1-5月份,新建商品房销售面积同比下降20.3%

减肥药实质利好服装业&#xff1a;身材好了&#xff0c;更时尚了 减肥成功的顾客纷纷瞄准性感look&#xff0c;不但促进了销售&#xff0c;还给服装品牌节省了成本&#xff0c;因为小尺寸的衣服使用的面料更少。大码女装&#xff0c;可能是下一个被 GLP-1减肥神药杀死的行业。…

基于ChatGPT-4o自然科学研究全流程实践技术应用

自然科学研究遵循严谨的科学方法论&#xff0c;包括文献调研、问题综述、试验设计、提出假设、数据清洗、统计诊断、大数据分析、经典统计模型&#xff08;回归模型、混合效应模型、结构方程模型、Meta分析模型&#xff09;、参数优化、机器/深度学习、大尺度模型构建与模拟、论…

万字长文详述 - 带你了解Jvm虚拟机运行时数据区

JVM虚拟机&#xff0c;对大部分Java程序员而言&#xff0c;是既熟悉又陌生的存在&#xff0c;Java程序在虚拟机的自动内存管理机制帮助下&#xff0c;减少了绝大部分的内存管理工作。但也正是因为如此&#xff0c;虚拟机如果出现了内存溢出或者泄露的情况&#xff0c;问题排查、…

C++ SIMD性能优化

// 使用SIMD指令优化的向量加法 //<mmintrin.h> MMX //<xmmintrin.h> SSE //<emmintrin.h> SSE2 //<pmmintrin.h> SSE3 //<tmmintrin.h> SSSE3 //<smmintrin.h> SSE4.1 //<nmmintrin.h> SSE4.2 //<wmmintrin.h> AES //<imm…

一文细谈SNN的基本数学原理,LIF模型,STDP与STBP学习方法

首先本文是读完 如何看待第三代神经网络SNN&#xff1f;详解脉冲神经网络的架构原理、数据集和训练方法 原创-CSDN博客 一文通俗入门脉冲神经网络(SNN)第三代神经网络-CSDN博客 两篇文章的总结&#xff0c;文章仅用于学习。 本文主要讨论STDP和STBP方法。 我们都知道&…

JavaEE、SSM基础框架、JavaWeb、MVC(认识)

目录 一、引言 &#xff08;0&#xff09;简要介绍 &#xff08;1&#xff09;主要涉及的学习内容 &#xff08;2&#xff09;学习的必要性 &#xff08;3&#xff09;适用学习的人群&#xff08;最好有这个部分的知识基础&#xff09; &#xff08;4&#xff09;这个基础…