问题标签 [sim800]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
736 浏览

c - strstr 找不到子字符串,但缓冲区包含该值

我正在尝试UART使用STM32F407V6T6and CubeMx

UART的工作正常。我在比较缓冲区时遇到的问题:我strstr()用来检查我的缓冲区是否包含有效的子字符串。

这是代码:

在这里,我正在做的是连接我的GSM Module Sim800并发送AT。在调试我的代码后,我发现buff[6] = 'O'buff[7] = 'K'. 在检查我是否可以闪烁 LED 时。

但是当我尝试函数时strstr()它不会返回任何东西。

起初我以为我的数组buff不是以\0. 所以我做了这个

但什么都没有改变。

任何建议为什么它不能与strstr().

提前致谢。

0 投票
3 回答
419 浏览

c - 使用 strstr() 后,子字符串也通过 uart 传输

我正在尝试UART使用STM32F407V6T6and CubeMx

正如我已经发布了一些strstr()功能问题。这里有一些新问题。

这是代码:

我在这里做的是hello\r\n使用传输中断进行传输。传输后,我正在检查某些值,例如hiin rxBuff[10]

在这个特定的代码中,我没有收到任何我刚刚创建的缓冲区并检查它是否包含的东西hi

请注意,在传输时,我只发送 7 个字节的数据。但是在HAL_UART_Transmit_IT()大小我给10的地方。

HAL_UART_Transmit_IT(&huart2,(uint8_t*)"hello\r\n",10);

将此代码闪烁到我的 stm32 后,我可以在终端中看到各种输出,例如

你好\r\n你好

如果我将 txt 从更改为hi行星之类的其他东西,那么输出将是

你好\r\npl

但是当我给出这样的完美尺寸时

HAL_UART_Transmit_IT(&huart2,(uint8_t*)"hello\r\n",7);

我得到了我应该得到的实际输出

你好\r\n

通过 UART 传输数据并查找某个缓冲区中是否存在子字符串是完全不同的任务。

有什么建议为什么会发生这种情况?

PS:基本上我的项目是使用 GSM MODULE SIM800c 和 STM32f407VGt6 我想从 stm32 发送各种 AT 命令并检查响应,以便我可以相应地工作。

以前我曾用 AVR 系列 mcus 尝试过这个项目,我可以发送短信,接收特定短信,使用 post 和 get 方法将数据发送到服务器,一切正常。

转移到 ARM 后,我不知道 STM32 的表现如何。

0 投票
0 回答
259 浏览

https - 无法通过 Sim 800 向 thingspeak 发送数据

我已通过 TTL 连接器将 sim800L 连接到我的 PC。使用“腻子”,我尝试使用以下 AT 命令通过 sim 800 GSM 模块将数据发送到 thingspeak。

在这段代码结束时,GSM 模块返回 SEND OK 但我无法在我的 thingspeak 频道上获取数据。我能为此做些什么?好心,帮帮我。

0 投票
0 回答
115 浏览

python-3.x - 为什么 GSM/GPRS SIM800L 模块在英国不工作

我来自英国,我正在使用 SIM800L 模块发送短信。我的模块没有连接到网络(LED 每秒闪烁一次,而不是 3 秒后)。我不知道是什么问题,我想知道这个模块(SIM800L)是否在英国工作?如果不是,那么其他支持 4G 的模块可以正常工作吗?我正在使用 Raspberry Pi 3 连接 GPRS 模块。

0 投票
1 回答
535 浏览

iot - 如果启用了 ATE1(回显),是否应该将响应附加到 AT 命令?

我即将实现一个适用于 GPRS 调制解调器(尤其是 SIM800L)的 PC 控制台程序。

我刚刚了解到由于 UCR(未经请求的结果代码)的出现而难以解析响应。

所以我用谷歌搜索了一下,发现了这篇文章:

https://embeddedfreak.wordpress.com/2008/08/19/handling-urc-unsolicited-result-code-in-hayes-at-command/

报价:

打开 ECHO (ATE1) 我见过的大多数应用程序示例都会关闭 ECHO(通过发送 ATE0)。原因未知,但他们中的大多数人都说减少串口通信(因此减少了解析器的工作量)。但这是不正确的。

如果您想建立强大的通信,您应该打开 ECHO。原因很简单,您可以检测调制解调器接收到的命令/URC 的顺序。这是上图的实际顺序(从调制解调器的回声看):

我很困惑。我想它应该可以工作,但前提是响应总是在相应命令之后进行。

但我找不到它的强项。AT 命令的描述和 SIM800L 数据表都没有包含该声明。

或者,也许我只是以错误的方式理解它?

0 投票
0 回答
241 浏览

udp - UDP 数据报发送的正确 AT 命令序列

你能帮忙消除我的困惑吗?

我正在阅读我的 SIM800L 模块的 AT 命令手册,在单个命令的范围内一切都很清楚。但在发送 UDP 数据包时,尚不清楚哪种顺序最好。

所以,我知道命令的顺序如下:

好的,但我需要不时发送数据报。比如说,这个时间段是从几分钟到几小时。

我看到 AT+CIICR 可以为后续调用返回 ALREADY CONNECTED ,我想我不应该多次调用它。所以问题是:下一个数据报应该使用哪个序列?:

1)

要不就:

2)

和 AT+CIPCLOSE 在调制解调器关闭之前的某个地方。

AT+CIPSTART 状态是否有生存时间?最佳做法是什么?

0 投票
2 回答
785 浏览

json - Arduino 从软件串口接收数据

对不起我的英语不好。我正在尝试在我的 Arduino 上接收来自 Sim800 的 json 数据。要读取串行端口上的数据,我使用了以下代码:

但收到不完整的数据。如下:

为了获得更好的结果,我使用了以下代码:

数据完全接收。如下:

但是我觉得这个代码不好,有问题。例如如果没有连接sim800时serialSIM800不可用,下面的代码会导致崩溃while(serialSIM800.available()==0);因为这总是正确的或者如果有错误并且OK没有收到,则以下代码导致崩溃while(!(data[x-1]=='K'&&data[x-2]=='O'));因为这总是正确的。最大数据长度为 120 字节,我应该怎么做才能从 Arduino 串口接收 Json 数据?谢谢你们。

0 投票
0 回答
1034 浏览

tcp - 为什么当 IP 地址和 TCP 连接建立后,SIM 响应 AT+CIPSEND 并显示“+CME ERROR: operation not allowed”?

我正在与一个团队合作,使用名为“SIM800L EBV”的 GSM 模块通过 2G 网络将数据从 Raspberry Pi 发送到服务器。我们遇到了仅在非洲赞比亚发生的 AT+CIPSEND 错误,而在美国(阿肯色州、科罗拉多州和华盛顿州)已经正常工作了两年。下面是我们的 SIM 日志的图片。我们从日志中注意到,请求 IP 地址的 AT+CIFSR 正在工作。并且当运行 AT+CIPSTART 启动与服务器“obfuscated.org”在端口 11002 的 TCP 连接时,响应 OK 和 CONNECT OK,表明与服务器的 TCP 连接已建立。然而,当 AT+CIPSEND 运行时,我们收到“+CME ERROR: operation not allowed”。有没有人遇到过这个问题?有谁知道可能有助于解决问题的任何支持信息?关于如何解决这个 CME 错误有什么建议吗?是否有任何其他命令可以替换此 AT+CIPSEND 命令?为什么它在美国行得通,而在赞比亚却不行?非常感谢!

0 投票
1 回答
285 浏览

gsm - AT指令模块SIM7000E

我正在 STM32 板上编写一些功能。该功能由一系列 AT 命令组成,这些命令通过 UART 发送到 SIM7000E 模块,以执行不同的任务。该模块使用带 GSM 的 SIM 卡。

配置函数发送以下命令:

现在我想编写一个函数来检查模块是否在配置函数后消耗网络数据。我不确定是否应该检查 CREG、CGATT、CIICR 或其他命令。

那么问题来了:SIM卡在哪一点消耗网络数据?

先感谢您!

0 投票
1 回答
1119 浏览

arduino - 无法使用 AT+CMGS="XXXXXXXXX" 设置接收方电话号码返回错误 325

我正在使用 SIM808 向特定号码发送短信。但是当尝试使用 AT+CMGS=XXXXXXX 设置数字时,返回 +CMS ERROR:325。我已将 AT+CSCS 设置为 GSM,但仍然没有运气。以下是代码: