1
1
#include < SoftwareSerial.h>
2
2
3
- SoftwareSerial mySerial (8 , 9 ); // RX, TX
3
+ #define SERIAL_RX_PIN 8
4
+ #define SERIAL_TX_PIN 9
4
5
5
6
#define EVENT_PIN 2
6
7
#define RESET_PIN 4
7
8
8
9
#define MY_AWS_IOT_ENDPOINT " <hash>-ats.iot.<region>.amazonaws.com"
9
10
10
- #define HOST_RESPONSE_BUFFER_SIZE 500
11
-
12
- char buffer[HOST_RESPONSE_BUFFER_SIZE];
13
-
14
11
typedef enum event_t {
15
12
EVENT_NONE = 0 ,
16
13
EVENT_STARTUP = 2 ,
@@ -31,18 +28,12 @@ typedef enum {
31
28
STATE_CONNECTED,
32
29
} state_t ;
33
30
34
- static state_t state;
35
- static unsigned long got_connected;
36
- static unsigned long saved_timeout_value_ms;
37
-
38
31
String execute_command (String command, unsigned long timeout_ms)
39
32
{
40
- saved_timeout_value_ms = Serial.getTimeout ();
33
+ unsigned long saved_timeout_value_ms = Serial.getTimeout ();
41
34
Serial.setTimeout (timeout_ms);
42
- memset (buffer, 0 , HOST_RESPONSE_BUFFER_SIZE);
43
35
Serial.println (command);
44
- Serial.readBytesUntil (' \n ' , buffer, HOST_RESPONSE_BUFFER_SIZE);
45
- String s (buffer);
36
+ String s = Serial.readStringUntil (' \n ' );
46
37
s.trim ();
47
38
Serial.setTimeout (saved_timeout_value_ms);
48
39
return s;
@@ -99,7 +90,7 @@ state_t process_ssid(String response)
99
90
100
91
void setup ()
101
92
{
102
- state = STATE_INIT ;
93
+ SoftwareSerial mySerial (SERIAL_RX_PIN, SERIAL_TX_PIN) ;
103
94
Serial.begin (115200 );
104
95
mySerial.begin (115200 );
105
96
pinMode (EVENT_PIN, INPUT);
@@ -110,14 +101,13 @@ void setup()
110
101
while (!mySerial) {
111
102
;
112
103
}
113
- got_connected = 0 ;
114
- saved_timeout_value_ms = 0 ;
115
104
}
116
105
117
106
void loop ()
118
107
{
119
108
event_t event = EVENT_NONE;
120
109
String response;
110
+ static state_t state = STATE_INIT;
121
111
122
112
if (state != STATE_INIT)
123
113
{
@@ -170,12 +160,14 @@ void loop()
170
160
if (event == EVENT_CONLOST)
171
161
{
172
162
state = STATE_PROVISIONED;
163
+ break ;
173
164
}
174
- if (millis () - got_connected >= 10000 )
165
+ static unsigned long last_send_time;
166
+ if (millis () - last_send_time >= 10000 )
175
167
{
176
168
response = execute_command (" AT+SEND1 Hello World" , 5000 );
177
- got_connected = millis ();
169
+ last_send_time = millis ();
178
170
}
179
171
break ;
180
172
}
181
- }
173
+ }
0 commit comments