20231008_HangBiao_emb/资料/09_arduino代码/bc26_mqtt/bc26_mqtt.ino
2023-10-08 16:59:56 +08:00

85 lines
2.7 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
Most Arduinos have an on-board LED you can control. On the Uno and
Leonardo, it is attached to digital pin 13. If you're unsure what
pin the on-board LED is connected to on your Arduino model, check
the documentation at http://arduino.cc
This example code is in the public domain.
modified 8 May 2014
by Scott Fitzgerald
*/
//判断返回值是否正确
void connectNBIOT (String cmd, char *res)
{
while(1)
{
Serial.println(cmd);
delay(500);
while(Serial.available()>0)
{
if(Serial.find(res))
{
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(100); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(100);
return;
}
}
delay(1000);
}
}
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
Serial.begin(115200); //
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
// prints title with ending line break
connectNBIOT("AT","OK");
Serial.println("ATE0&W");//关闭回显
delay(300);
connectNBIOT("AT+CPIN?","+CPIN: READY");//返+CPIN:READY表明识别到卡了
connectNBIOT("AT+CGATT?","+CGATT: 1");//返+CGACT: 1,就能正常工作了
Serial.println("AT+QMTCLOSE=0");//关闭上一次socekt连接
delay(300);
connectNBIOT("AT+QMTOPEN=0,\"47.92.146.210\",1883","+QMTOPEN: 0,0");//建立服务器的IP和端口连接
delay(300);
connectNBIOT("AT+QMTCONN=0,\"clientExample\"","+QMTCONN: 0,0,0");//建立服务器的IP和端口连接
delay(300);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
// prints title with ending line break
connectNBIOT("AT+QMTPUB=0,0,0,0,\"topic/pub\",\"hello MQTT.\"","+QMTPUB: 0,0,0");//send message
}
/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
Most Arduinos have an on-board LED you can control. On the Uno and
Leonardo, it is attached to digital pin 13. If you're unsure what
pin the on-board LED is connected to on your Arduino model, check
the documentation at http://arduino.cc
This example code is in the public domain.
modified 8 May 2014
by Scott Fitzgerald
*/