Arduino通过AT指令与N10通讯模块的数据交互

 

0.0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include <SoftwareSerial.h>
#include <time.h>


SoftwareSerial mySerial(7, 6); // TX-Pin11, RX-Pin10
void updateSerial()
{
delay(1000);
while (Serial.available()) {
mySerial.write(Serial.read());//如果Serial收到数据则通过mySerial输出
}
while(mySerial.available()) {
Serial.write(mySerial.read());//如果mySerial收到数据则通过Serial输出
}
}

void setup()
{
Serial.begin(9600);
mySerial.begin(9600);
randomSeed(analogRead(0));
}

void loop()
{
int requestcode=1;
int heartrateMin=50;
int heartrateMax=150;

int h=999;

//随机值模拟实时
srand((unsigned)time(NULL));
int random1=150;
h = random(60,90);

//处理字节大小的问题
int n1=0;
int n2=0;
if(h>=0&&h<10){n1=7;n2=11;}
else if(h>=10&&h<100){n1=8;n2=111;}
else{n1=9;n2=1111;}




switch(requestcode){


case 0: //只上传最新的一次
{
// mySerial.println("AT+GMR"); //读取固件版本
// updateSerial();
//
// mySerial.println("at+cpin?"); //查询卡是否插好
// updateSerial();
//
// mySerial.println("at+csq"); //查询设置信号质量
// updateSerial();
mySerial.println("AT"); //握手测试,成功则返回OK
updateSerial();

mySerial.println("AT+HTTPPARA=url,122.152.193.34/iot/servlet/Insert"); //设置 url
updateSerial();

mySerial.println("AT+HTTPPARA=port,8080"); //设置目标端口号为 8080
updateSerial();

mySerial.println("AT+HTTPSETUP"); //建立 HTTP 链接
updateSerial();

mySerial.print("AT+HTTPACTION=2,"); //post方式请求 POST 方式请求,POST 发 送 n个字节;
mySerial.println(n1);
updateSerial();

mySerial.print("r=0&h="); //输入需要上传的内容
mySerial.println(h);
mySerial.println(n2);

updateSerial();

mySerial.write(26);//结束符

//停止
while(1)
{
if(mySerial.available())
{
Serial.write(mySerial.read());//如果mySerial收到数据则通过Serial输出
}
if(Serial.available())
{
mySerial.write(Serial.read());//如果Serial收到数据则通过mySerial输出
}
}
break;
}


case 1:
{
mySerial.println("AT"); //握手测试,成功则返回OK
updateSerial();

mySerial.println("AT+HTTPPARA=url,122.152.193.34/iot/servlet/Insert"); //设置 url
updateSerial();

mySerial.println("AT+HTTPPARA=port,8080"); //设置目标端口号为 8080
updateSerial();

mySerial.println("AT+HTTPSETUP"); //建立 HTTP 链接
updateSerial();

mySerial.print("AT+HTTPACTION=2,"); //post方式请求 POST 方式请求,POST 发 送 n个字节;
mySerial.println(n1);
updateSerial();

mySerial.print("r=1&h="); //输入需要上传的内容
mySerial.println(h);
mySerial.println(n2);

updateSerial();

mySerial.write(26);//结束符




break;

}





}



}