15 static SoftwareSerial mySerial(10, 11);
35 NBduino::NBduino(
const String mqttServer,
const int mqttPort,
const String mqttUser,
const String mqttPassword)
37 _mqttServer=mqttServer;
40 _mqttPassword=mqttPassword;
54 NBduino::NBduino(
const String mqttServer,
const int mqttPort,
const String mqttUser,
const String mqttPassword,
unsigned long timeToConn)
56 _mqttServer=mqttServer;
59 _mqttPassword=mqttPassword;
60 _timeToConn=timeToConn;
72 mySerial.begin(115200);
74 mySerial.println(
"AT+IPR=4800");
79 mySerial.print(
"AT*MCGDEFCONT=");
86 mySerial.println(
"\"");
88 mySerial.print(
"AT+CGDCONT=1,");
99 mySerial.println(
",0,0,0,,,,,,0,,0");
101 mySerial.println(
"AT+CEREG=5");
103 mySerial.println(
"AT+COPS=?");
114 mySerial.begin(115200);
116 mySerial.println(
"AT+IPR=4800");
119 mySerial.begin(4800);
121 mySerial.println(
"ATE0");
122 mySerial.println(
"AT+CEREG=5");
125 _lastTime = millis();
128 if (millis() - _lastTime < _timeToConn) {
130 _inChar = mySerial.read();
131 if ( _inChar ==
'+') {
146 digitalWrite(_reset, LOW);
147 digitalWrite(_pwrkey, HIGH);
149 digitalWrite(_pwrkey, LOW);
159 digitalWrite(_pwrkey, HIGH);
161 digitalWrite(_pwrkey, LOW);
176 len = value.length();
177 if(value[len-1]==
'\n')
180 for(i = 0; i<len; i++) {
181 sprintf(outword+i*2,
"%02X", s[i]);
183 digitalWrite( _led, HIGH );
185 mySerial.print(
"AT+CMQNEW=\"");
186 mySerial.print(_mqttServer);
187 mySerial.print(
"\",""\"");
188 mySerial.print(_mqttPort);
189 mySerial.println(
"\",2400,100");
191 mySerial.print(
"AT+CMQCON=0,3,");
192 mySerial.print(
"\"");
193 mySerial.print(topic);
194 mySerial.print(
"\"");
195 mySerial.print(
",1200,0,0,");
196 mySerial.print(
"\"""");
197 mySerial.print(_mqttUser);
198 mySerial.print(
"\",""\"");
199 mySerial.print(_mqttPassword);
200 mySerial.println(
"\"");
202 mySerial.print(
"AT+CMQPUB=0,\"");
203 mySerial.print(
"NBduino/");
204 mySerial.print(topic);
205 mySerial.print(
"\",1,0,0,");
206 mySerial.print(value.length());
208 mySerial.print(
"\"");
209 mySerial.print(outword);
210 mySerial.println(
"\"");
212 mySerial.println(
"AT+CMQDISCON=0");
214 digitalWrite(_led, LOW);
225 unsigned int messageSize;
227 mySerial.println(
"AT+GSN");
229 if (mySerial.available()) {
230 for (
int c = 0; c <= 99; c++) aMessage[c] = 0;
233 while (mySerial.available()) {
234 cha = mySerial.read();
235 aMessage[messageSize] = cha;
240 aMessage[messageSize] =
'\0';
242 String exString = aMessage;
243 exString.remove(0, 2);
contains the NBduino class definition and the include file that the class implementation needs...
publish(const String topic, const String value)