arduino SIM868发送post请求到服务器,解决只能成功发送一次的问题

本文介绍了使用arduino和SIM868模块向服务器发送定位数据时遇到的问题,即只能成功发送一次。作者分享了代码片段,包括向SIM868模块发送指令和发送数据的步骤,并提供了GitHub上的完整代码链接。
摘要由CSDN通过智能技术生成

一、介绍

最近在写一个开发板定位的小系统,用到了SIM868模块向服务器发送定位数据。简单记录一下(只展示了发送数据相关的重要部分,假设已经初始化过sim868板子及获取到了要发送的数据)。完整代码见GitHub

二、代码

1、向SIM868模块发送指令

函数来自购买sim868板子的商家,我只对参数做了简单的注释

/*
*    Command【in】: 发送给sim868板子的命令
*    Response【in】: 执行正确时能得到的回复
*    Timeout【in】: 没有成功读到返回值的时间限制
*    Retry【in】: 没有成功读到返回值时的循环次数(重新计时)
*/
unsigned int sendCommand(char *Command, char *Response, unsigned long Timeout, unsigned char Retry)
{
   
	clrGprsRxBuffer();
	for (unsigned char n = 0; n < Retry; n++)
	{
   
		DebugSerial.print("\r\n---------send AT Command:---------\r\n");
		DebugSerial.write(Command);

		GprsSerail.write(Command);

		Time_Cont = 0;
		while (Time_Cont < Timeout)
		{
   
			gprsReadBuffer();
			if (strstr(gprsRxBuffer, Response) != NULL)
			{
   
				DebugSerial.print(
### 回答1: 要使用Arduino和SIM900A发送短信,需要先连接SIM900A模块到Arduino板上。然后,使用AT指令来控制SIM900A模块发送短信。以下是一个示例代码: ``` #include <SoftwareSerial.h> SoftwareSerial SIM900A(7, 8); // RX, TX pins void setup() { SIM900A.begin(960); // 初始化串口通信 delay(100); SIM900A.println("AT+CMGF=1"); // 设置短信格式为文本模式 delay(100); } void loop() { SIM900A.println("AT+CMGS=\"+86138xxxxxxxx\""); // 设置短信接收者的电话号码 delay(100); SIM900A.print("Hello, this is a test message."); // 设置短信内容 delay(100); SIM900A.write(x1A); // 发送短信 delay(100); } ``` 在代码中,首先使用SoftwareSerial库初始化串口通信,并设置SIM900A模块的短信格式为文本模式。然后,在循环中,使用AT指令设置短信接收者的电话号码和短信内容,并发送短信。注意,在发送短信时,需要使用x1A字符表示发送结束。 ### 回答2: Arduino作为一种易于使用的开源平台,常被用来搭建各种小型电子项目。其中,利用Arduino和Sim900A模块发送短信则是一个非常有趣实用的应用。在这个项目中,我们可以实现通过Arduino和Sim900A模块向指定的手机号码发送短信。 在开始这个项目之前,我们需要准备好以下的材料: 1、Arduino开发板 2、Sim900A GSM模块 3、SIM卡 4、Jumper线 5、USB电缆和计算机连接 接下来,我们需要进行如下步骤: 1、将Sim900A模块连接到Arduino开发板上。连接方式如下: GSM模块 RXD ----------- Arduino TX (Digital Pin 1) GSM模块 TXD ----------- Arduino RX (Digital Pin 0) GSM模块 GND ----------- Arduino GND GSM模块 VCC ----------- Arduino 5V 2、将Sim卡插入Sim900A模块。 3、将Arduino开发板通过USB电缆连接到计算机中。 4、在Arduino开发环境中,打开源代码编辑器。我们将在这里编写代码,让Sim900A模块发送短信。 5、创建一个新的源代码文件,并将以下代码复制并粘贴进去: #include <SoftwareSerial.h> SoftwareSerial mySerial(1, 0); // RX, TX void setup() { Serial.begin(9600); mySerial.begin(9600); // SIM900A模块通过软串口(Software Serial)与Arduino通讯 delay(5000); // 为了等待SIM900A模块完成启动,我们需要先延时几秒钟。 mySerial.println("AT+CMGF=1\r"); // 将SIM900A设为文本模式 delay(1000); // 以下是设置短信参数 mySerial.println("AT+CMGS=\"+xxxxxxxxxx\"\r"); // xxxxxxxxxx表示接收者的手机号码 delay(1000); // 输入短信内容,并发送 mySerial.println("Hello! This is a test message from Sim900A via Arduino."); delay(1000); mySerial.println((char)26); // 按Star键输出,发送短信 delay(1000); mySerial.println(); } void loop() { if(mySerial.available()) Serial.write(mySerial.read()); if(Serial.available()) mySerial.write(Serial.read()); } 6、在代码中设置了接收者的手机号码并输入了短信内容。在这个例子中,短信内容是“Hello! This is a test message from Sim900A via Arduino.”。你可以修改这些信息,根据自己的需要设计不同的发送短信内容。 7、在Arduino的菜单中选择文件 -> “上传”(或者Cmd + U),将代码上传到开发板上。 8、如果一切正常,Sim900A模块就会向绑定的手机号码发送以前设定的短信内容。如果有任何问题,你可以检查连接,查看串口调试工具等等,确定问题所在。 通过上述步骤,我们可以完成在Sim900A与Arduino开发板之间通过软串口发送短信的过程,达到向指定手机号码发送指定内容短信的目的。 ### 回答3: Arduino是一款广泛应用于物联网领域的开发板,可以通过各种传感器和模块来实现各种功能。SIM900A是一款基于GSM/GPRS技术,适用于全球各地的无线通信模块。Arduino和SIM900A的结合可以实现利用SIM900A发送短信的功能。下面,我将详细介绍如何利用Arduino和SIM900A发送短信。 准备工作: 1. Arduino板一个 2. SIM900A模块一个 3. 其他相关电子元件:连接线、电容、电阻等 4. 一张SIM卡 步骤: 1. 连接SIM900A模块和Arduino板,具体连接方案可以上网搜索。 2. 添加对应的库,保证程序能顺利运行。 3. 在Arduino IDE编写程序,将SIM900A的AT指令封装成Arduino函数,从而简化控制SIM900A的过程。 4. 打开串口监视器,并通过AT指令控制SIM900A进行初始化。 5. 通过AT指令设置短信中心号码、发送短信。 6. 关闭串口监视器。 通过以上步骤,即可实现利用Arduino和SIM900A发送短信的功能。如果你已经掌握了Arduino基础,那么学习使用SIM900A发送短信的过程也不会太过困难。在实际应用中,需要注意安全和保密性问题,比如将SIM卡锁定、设置短信加密等。 类似于这样的控制器是物联网建设的重要组成部分,也是未来发展的重要方向,对于Arduino和物联网开发感兴趣的小伙伴们,不妨跟着这个教程深入理解一下利用Arduino实现SIM900A短信功能的具体过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值