-
Notifications
You must be signed in to change notification settings - Fork 1
/
gsm.ino
160 lines (110 loc) · 3.41 KB
/
gsm.ino
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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#include "gsm.h"
void GsmHttpSend() {
debug("Send GSM HTTP.....");
File logfile = SPIFFS.open("/gsmlog.txt", "a");
logfile.println("gsmhttpsend");
// URL, path & port (for example: arduino.cc)
//const char server[] = "www.pierrebeck.fr";
//String resource = "/dumbpost.php?text=" + String(ESP.getChipId()) + "_" + String(weightRaw);
//const int port = 80; // port 80 is the default for HTTP
//String apn =
char apn[100];
readSetting("gsmGprsAPN").toCharArray(apn,100);
String server = readSetting("gsmGprsHost");
int port = readSetting("gsmGprsPort").toInt();
String resource = readSetting("gsmGprsURL");
resource.replace("{chipID}",String(ESP.getChipId()));
resource.replace("{weightRaw}",String(weightRaw));
// Your GPRS credentials
// Leave empty, if missing user or pass
//const char apn[] = "mobiledata";
//const char user[] = "";
//const char pass[] = "";
TinyGsm modem(modemSerial);
TinyGsmClient client(modem);
HttpClient http(client, server, port);
//HttpClient http(URL);
RTCReadReg();
logfile.print(nowStr() + " : ");
logfile.println("Initializing modem...");
modem.init();
String modemInfo = modem.getModemInfo();
logfile.println(nowStr());
logfile.print("Modem: ");
logfile.println(modemInfo);
logfile.println(nowStr());
logfile.print(F("Waiting for network..."));
if (!modem.waitForNetwork()) {
logfile.println(nowStr());
logfile.println(" fail");
delay(10000);
return;
}
logfile.print(nowStr() + ":");
logfile.println(" OK");
logfile.println(nowStr());
logfile.print(F("Connecting to "));
logfile.print(apn);
//if (!modem.gprsConnect(apn, user, pass)) {
if (!modem.gprsConnect(apn)) {
logfile.println(nowStr());
logfile.println(" fail");
delay(10000);
return;
}
logfile.println(nowStr());
logfile.println(" OK");
logfile.print(nowStr()+" : ");
logfile.println(F("Performing HTTP GET request... "));
int err = http.get(resource);
if (err != 0) {
logfile.println("failed to connect");
delay(10000);
return;
}
int status = http.responseStatusCode();
logfile.print(nowStr()+ " : ");
logfile.println(status);
if (!status) {
delay(10000);
return;
}
int length = http.contentLength();
if (length >= 0) {
logfile.println(String("Content length is: ") + length);
}
String body = http.responseBody();
logfile.print(nowStr() + ":");
logfile.println("Response:");
logfile.println(body);
logfile.println(String("Body length is: ") + body.length());
// Shutdown
http.stop();
modem.gprsDisconnect();
logfile.print(nowStr() + " : ");
logfile.println("GPRS disconnected");
logfile.close();
}
void GsmSmsSend() {
TinyGsm modem(modemSerial);
//TinyGsmClient client(modem);
RTCReadReg();
File logfile = SPIFFS.open("/smslog.txt", "a");
String message = readSetting("gsmSmsMessage");
message.replace("{chipID}",String(ESP.getChipId()));
message.replace("{weightRaw}",String(weightRaw));
logfile.println("Initializing modem...");
modem.init();
String modemInfo = modem.getModemInfo();
logfile.print("Modem: ");
logfile.println(modemInfo);
logfile.print(F("Waiting for network..."));
if (!modem.waitForNetwork()) {
logfile.println(" fail");
delay(10000);
return;
}
logfile.println(" OK");
modem.sendSMS(readSetting("gsmSmsPhoneNum"), message);
logfile.close();
}