首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用模块SIM800L用英语以外的语言发送短信?

如何用模块SIM800L用英语以外的语言发送短信?
EN

Stack Overflow用户
提问于 2022-01-20 16:30:56
回答 2查看 349关注 0票数 -2

如何用波兰文发送短信,例如使用以下文字"Cześć",其中字符来自GSM字母表之外?我有一个TTGO T呼叫板,它有一个来自SIMCOM的SIM800L模块.我试过使用各种AT命令,但都没有用。有没有人遇到过类似的问题?非常感谢您的帮助!

EN

回答 2

Stack Overflow用户

发布于 2022-01-20 17:00:08

根据GSM规范3GP TS 127.007,声明要发送UCS2字符(16位unicode)的神奇命令是:

代码语言:javascript
复制
AT+CSCS="UCS2"

从那时起,您必须发送unicode字符的十六进制值。这个例子说,要发送Abc,您实际上发送了004100620063。所以要发送Cześć,它将是0043007a0065015b0107

票数 0
EN

Stack Overflow用户

发布于 2022-01-20 17:19:08

这是TTGO T调用1.3/1.4 SIM800L的工作代码

代码语言:javascript
复制
#define SIM800L_RX     27
#define SIM800L_TX     26
#define SIM800L_PWRKEY 4
#define SIM800L_RST    5
#define SIM800L_POWER  23

void Send_AT(String command) {
  Serial.println("AT: " + command);
  Serial2.println(command);
  long timer = millis();
  while (timer + 3000 > millis()) {
    while (Serial2.available()) {
      Serial.write(Serial2.read());
    }
  }
  Serial.println();
}

void setup() {
  pinMode(SIM800L_POWER, OUTPUT);
  digitalWrite(SIM800L_POWER, HIGH);
  Serial.begin(115200);
  Serial2.begin(9600, SERIAL_8N1, SIM800L_TX, SIM800L_RX);
  delay(1000);
  Serial.println("--- Loading Firmware ---\n");
  delay(5000);
  Serial.println("--- (C) 2022 by Dawid Irzyk ---");
  Serial.println("");
  while (Serial2.available()) {
    Serial.write(Serial2.read());
  }
}

void SendMessage()
{
  Serial2.print("ATZ\r\n");
  delay(2000);
  Serial2.print("AT+CSCS=\"HEX\"\r\n");
  delay(2000);
  Serial2.print("AT+CSMP=17,168,0,8\r\n");
  delay(2000);
  Serial2.print("AT+CMGF=1\r\n");
  delay(2000);
  Serial2.print("AT+CMGS=\"+48123123123\"\r\n");
  delay(2000);
  Serial2.print("0043007a0065015b0107");
  delay(2000);
  Serial2.println((char)26);
}

void loop() {

  SendMessage();

  while (true) {
    delay(1000);
  }
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70789914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档