IOT联控器!!!连载(二)单片机透传控制 SIM800C 模块

单片机透传控制 SIM800C 模块

一、学习目标

  1. 通过串口调试助手,发送 AT 指令给单片机,单片机透传到 SIM800C 模块实现与远程服务器的数据透传。

二、开发环境

秉火指南者开发板+串口调试模块+SIM800C模块

三、学习过程

一、配置单片机串口2与串口3透传

  1. 由于实现过程比较繁琐,直接附上代码 -> 以后附上

二、按顺序发送以下指令给单片机(注意顺序):

  1. AT+CGDCONT=1,“IP”,“CMNET”
    定义PDP移动场景
  2. AT+CGATT=1
    激活PDP,获取IP地址
  3. AT+CIPCSGP=1,“CMNET”
    设置模块连接方式为GPRS链接方式,接入点为“CMNET”(对于移动和联通一样,上同)
  4. AT+CIPSTATUS
    一共十种状态,只有处于IP_INITIAL,IP_CLOSE,IP_STATUS三种状态下才能正确建立连接,否则返回错误。
  5. AT+CIPSTART=“TCP”,“140.143.85.71”,“80”
    建立GPRS连接,140.143.85.71是TCP服务器的IP(这里可以换成域名),80是服务器的端口号,有时会出现连接失败,多次重连即可。
  6. AT+CIPSEND
    发送数据,返回">"后输入要传输的数据,在发送CTRL+Z(或者以十六进制的方式发送0x1a),即可将所要发送的数据发送到指定IP或域名的服务器上。
  7. AT+CIPCLOSE
    关闭TCP连接
  8. AT+CIPSHUT
    关闭移动场景
SIM800C模块应用Arduino 51单片机 STM32软件例程源码资料合集: 1、Arduino例程 2、51单片机测试源码 3、STM32测试源码 4、Linux 5、PC端 6、Windows 01.STM32 拨打电话 02.STM32 发送短信 03.STM32 短信远程控制开关 04.STM32 TCP通信 GSM GPRS模块和STM32的连接方式.txt 01.STC89C52+SIM800C拨打电话 02.STC89C52+SIM800C发送短信 03.STC89C52+SIM800C接收短信控制开关 04.STC89C52+SIM800C TCP通信 GSM GPRS模块和51单片机接线方式.txt void main() { Uart_Init(); if (sendCommand("AT\r\n", "OK\r\n", 3000, 10) == Success); else errorLog(); delay_ms(10); if (sendCommand("AT+CPIN?\r\n", "READY", 1000, 10) == Success); else errorLog(); delay_ms(10); phone(phoneNumber); //´òµç»° while(1) { } } void phone(char *number) { char send_buf[20] = {0}; memset(send_buf, 0, 20); //Çå¿Õ strcpy(send_buf, "ATD"); strcat(send_buf, number); strcat(send_buf, ";\r\n"); if (sendCommand(send_buf, "OK\r\n", 10000, 10) == Success); else errorLog(); } void errorLog() { while (1) { if (sendCommand("AT\r\n", "OK\r\n", 100, 10) == Success) { soft_reset(); } delay_ms(200); } } void soft_reset(void) //ÖÆÔìÖØÆôÃüÁî { ((void (code *) (void)) 0x0000) (); } unsigned int sendCommand(char *Command, char *Response, unsigned long Timeout, unsigned char Retry) { unsigned char n; CLR_Buf(); for (n = 0; n < Retry; n++) { SendString(Command); //·¢ËÍGPRSÖ¸Áî Time_Cont = 0; while (Time_Cont < Timeout) { delay_ms(100); Time_Cont += 100; if (strstr(Rec_Buf, Response) != NULL) { CLR_Buf(); return Success; } } Time_Cont = 0; } CLR_Buf(); return Failure; } //**************************************************** //MSÑÓʱº¯Êý(12M¾§ÕñϲâÊÔ) //**************************************************** void delay_ms(unsigned int n) { unsigned int i,j; for(i=0;i<n;i++) for(j=0;j<123;j++); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值