写在前面:以下步骤可能并不严谨,仅供参考。

首先,简单说明一下开发目的:本次开发想要实现单片机采集到的信息直接发送到服务器端处理。我现在所知道的可以实现的方式有两种:①利用SIM卡;②利用WIFI传输。两者各有优缺点,而SIM卡最大的优势就是不受WIFI范围限制,因为开发的不是固定场所设备,因此选择了SIM卡。

以下步骤中有在调试过程中出现的问题及解决方案,直接进入正题,拿到某宝买的SIM900A以后,直接看学习资料,明确接线,初始化指令等。

【指令概述】

1、AT [用来同步波特率(默认波特率9600、数据位8、停止位1、无校验位)]

2、AT+CGCLASS="B" [用于设置移动台类别,SIM900A模块仅支持类别"B"和"CC",发送: AT+CGCLASS="B",设置移动台类别为 B]

3、AT+CGDCONT=1,"IP","CMNET" [设置 PDP 上下文标志为 1,采用互联网协议(IP),接入点为"CMNET"]

4、AT+CGATT=1 [附着GPRS业务]

5、AT+CIPCSGP=1,"CMNET" [AT+CIPCSGP,用于设置 CSD 或 GPRS 链接模式。发送: AT+CIPCSGP=1,"CMNET",设置为GPRS连接,接入点为”CMNET“]

6、AT+CLPORT="TCP","2000" [设置 TCP 连接本地端口号为 2000]

7、AT+CIPSTART="TCP","180.120.52.129","8086" [建立一个TCP连接,连接目标地址为:180.120.52.129(需要根据自己的实际情况更换),连接端口为 8086(这个也可以更换),连接成功会返回: CONNECT OK。 ]

8、AT+CIPSEND [用于发送数据,发送后返回:>]

9、1A [发送数据结束后发送1A,必须以HEX发送,发送后如发送成功则返回SEND OK]

10、AT+CIPCLOSE=1 [断开TCP连接]

11、AT+CIPSHUT [断开场景]

【操作步骤及可能出错原因】

1、大家可以查阅网上相关文章来获取自己的IP地址,但是因为我调试的时候是校园网,路由器设置多次仍然不能解决问题,便向其他人索要了一个服务器地址和端口号进行调试。

2、首先进行线路的连接,连接成功,等待一段时间后发送AT,返回OK,用来同步波特率,以免返回乱码

3、紧接着发送AT+CGCLASS="B",返回OK

4、发送AT+CGDCONT=1,"IP","CMNET",返回OK

5、发送AT+CGATT=1,返回OK

6、发送AT+CLPORT="TCP","2000",返回OK

7、发送AT+CIPSTART="TCP","180.120.52.222","8086",返回OK,一直等待到返回CONNECT OK

(这里是最容易出现错的地方,网上也有很多解决方案,我这里列出我出现的错误及自己是如何解决的):

第一种错误:没有返回CONNECT OK,而是+PDP DEACT。这个错误是网络问题,第一考虑自己SIM卡有没有欠费,第二考虑是否供电不足(电流太小),我们一般调试用USB供电的时候就会出现这样的错误。

第二种错误:没有返回CONNECT OK,而是STATE: TCP CLOSED       CONNECT FAIL 。这种错误我的是因为服务器的问题,调试的时候一般是用网络调试助手来接受SIM900A发出的数据,但是因为本机IP一直不能连接,找了很多网上的方法,大概都是明确对外IP和本地IP,然后调整路由器设置(路由器设置有DMZ主机设置和虚拟服务器设置),但是我在设置以后依然不能进行连接(我怀疑是校园网的问题,也可能是其他原因,但是没有外网,无法排除第一种可能),因此就借用了别人的服务器试了一下,结果是完美连接,直接解决问题。在此感谢某店提供的服务器。如果大家真的没有可用的服务器,但是又急于测试,可以留言,联系我。

2020年12月5日补充:

CSDN的消息很难及时回复,这里我提供一个服务器的地址,这个地址提供一个服务器的IP和端口,三分钟内没有连接便会失效,但是刷新一下页面就会再给一个新的。仅作为调试还是不错的。

http://tt.ai-thinker.com:8000/ttcloud

祝大家调试顺利~

【图片区】

指令图:

-----------------------------------------------------------------------------

开发还没有结束,接下来的调试和单片机程序后续更新。

如有错误请及时指正,谢谢。

笔记-SIM900A模块开发:GPRS建立TCP连接与服务器进行数据传输相关推荐

  1. SIM900A模块开发:通过GPRS连接OneNet平台发送GPS信息

    SIM900A模块开发:通过GPRS连接OneNet平台发送GPS信息 1. SIM900A模块介绍 1.1 SIM900A模块具有以下特点: 1.2 模块TTL接口图 1.3 硬件连接方法 2. O ...

  2. python创建tcp socket_Python Socket如何建立TCP连接

    在 Python 程序中创建 TCP 服务器时,创建通用 TCP 服务器的一般演示代码如下.需要记住的是,这仅是设计服务器的一种方式.一旦熟悉了服务器设计,可以修改下面的代码来操作服务器. ss = ...

  3. vc socket api建立TCP连接(包括域名解析)并收发数据的代码模板

    VC和服务器建立TCP连接不像VB的winsock那样两三行代码就能搞定.虽然VC得MFC类库中也有CSocket.CAsyncSocket这样的类,但是这些类的毛病太多,还是返璞归真用socket ...

  4. 8. 【gRPC系列学习】resetTransport建立TCP连接流程

    在Balance实现UpdateClientConnState方法过程中会调用Connect()方法,该方法会调用resetTransport建立TCP连接,本节分析resetTransport执行流 ...

  5. java建立tcp连接测试feiq

    java建立tcp连接 import java.io.IOException; import java.net.Socket; import java.net.UnKnowHostException; ...

  6. 【从浏览器地址栏输入 url 到请求返回的过程】——3.建立TCP 连接

    1.TCP是什么? TCP(Transmission Control Protocol)传输控制协议,是一种面向连接的.可靠的.基于字节流的传输层通信协议.. 2.建立TCP连接的过程(三次握手) 三 ...

  7. 记一次因tcp_tw_recycle误设置为1导致服务器无法正常建立TCP连接的问题排查

    背景 为某SaaS平台的数据推送服务写的接口无法及时响应数据推送请求,导致频繁出现因请求超时而导致的数据推送失败,进而严重影响业务使用.接口部署在公司的阿里云上. 故障点梳理 #mermaid-svg ...

  8. 16w行的nginx源码,如何分拆模块阅读,手把手教你造轮子丨Nginx模块开发丨C/C++丨Linux服务器开发丨后端开发

    16w行的nginx源码,如何分拆模块阅读,让你明白轮子如何造  1. 多进程模型下的惊群处理 2. 内存池的代码封装 3. slab共享内存分配 视频讲解如下,点击观看: 16w行的nginx源码, ...

  9. 《TCP/IP具体解释》读书笔记(18章)-TCP连接的建立与中止

    TCP是一个面向连接的协议.不管哪一方向还有一方发送数据之前.都必须在两方之间建立一条连接.这样的两端间连接的建立与无连接协议UDP不同.UDP向还有一端发送数据报时,无需不论什么预告的握手. 1.建 ...

  10. 《TCP/IP详解》读书笔记(18章)-TCP连接的建立与中止

    TCP是一个面向连接的协议.无论哪一方向另一方发送数据之前,都必须在双方之间建立一条连接.这种两端间连接的建立与无连接协议UDP不同,UDP向另一端发送数据报时,无需任何预告的握手. 1.建立连接的协 ...

最新文章

  1. pom.xml中的dependencyManagement
  2. 零基础自学python的app-零基础学Python需要用哪些软件?
  3. 微分方程的数值解法与程序实现 pdf_初中数学知识点|一元一次方程的概念及讲解(二)建议收藏!内含pdf版...
  4. 牛客网--2019校招--瞌睡
  5. 后台异常引起前端提示跨域出错
  6. redis 完整使用文档(2021)
  7. CATIA二次开发—参数那点事
  8. 对话系统简介与OPPO小布助手的工程实践
  9. 用户验收测试要求目标
  10. 在几何画板上画椭圆可以根据椭圆第二定义
  11. ATF:Gicv源码文件系列-gicv2.mk
  12. 香港常见问题扫盲贴(港币兑换/签注直飞/刷卡/酒店押金/关税/香港上网)
  13. hbase 使用lzo_装配HBase LZO
  14. 帝国CMS 7.2 WAP手机企业网站蓝色个性菜单整站模板
  15. 数据导入与预处理-第4章-数据获取python读取pdf文档
  16. python开发数据库_有没有利用python开发数据库的案例
  17. iOS 之 安装pods 项目配置 及删除项目中的pods
  18. 天下数据教你提升网站访问速度的妙招
  19. 杨致远:感情用事失去机会
  20. 第8组 团队展示(组长)

热门文章

  1. openwrt配置内核,加载air720 4G模块的USB串口设备
  2. 机器学习(MACHINE LEARNING)MATLAB实现层次分析法案例【AHP】
  3. msxml6 C++
  4. cdr怎么抠图轮廓线条_cdr怎么快速抠图呢 需要技巧
  5. 微信40125错误的坑
  6. 图表背后的秘密 | 技术指标讲解:唐奇安通道
  7. c语言中1和0什么意思啊,精讲LOOKUP公式中1和0的含义,这1500字的详细解析值得收藏一份...
  8. python小明爬楼梯_Python两种方法求解登楼梯问题(京东2016笔试题)
  9. Android Jetpack系列之DataStore
  10. 天地不仁,以万物为刍狗!