作者:OREO | 更新时间:2020-04-09 | 浏览量:1556
库链接:https://github.com/OREOCODETECH/ArduinoBigiot
用法:以Blink例程为例
[code]
#include <ESP8266WiFi.h>
#include "ArduinoBigiot.h"
#ifndef STASSID
#define STASSID "your-ssid"//你的WiFi名称
#define STAPSK "your-password"//你的WiFi密码
#endif
String DEVICEID = "deviceid";//设备ID,在https://www.bigiot.net/User/listDev.html中查看
String APIKEY = "apikey";//设备APIKEY,在https://www.bigiot.net/User/listDev.html中查看
const char* host = "www.bigiot.net";//贝壳服务器域名www.bigiot.net
const uint16_t port = 8181;//端口
#define LED_PIN 2//LED GPIO管脚
const char* ssid = STASSID;
const char* password = STAPSK;
WiFiClient client;
ArduinoBigiot iot;
void handlePlay() {//为"play"命令创建一个回调函数,即ESP收到"play"命令时执行函数中的代码
digitalWrite(LED_PIN, LOW);//开启LED
Serial.println("Nice day ! ( > v < )");
}
void handleStop() {//为"stop"命令创建一个回调函数,即ESP收到"stop"命令时执行函数中的代码
digitalWrite(LED_PIN, HIGH);//关闭LED
Serial.println("Good night!( = v = )");
}
void handleOffOn() {//为"offOn"命令创建一个回调函数,即ESP收到"offOn"命令时执行函数中的代码
digitalWrite(LED_PIN, !digitalRead(LED_PIN));//反转GPIO状态
Serial.println(" Switch ! ( O v O )");
}
void setup() {
Serial.begin(115200);
Serial.println();
pinMode(LED_PIN, OUTPUT);//初始化LED GPIO脚为输出脚
digitalWrite(LED_PIN, HIGH);//关闭LED 注意:在此例程中默认GPIO高电平为关灯,低电平为开灯
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.mode(WIFI_STA);//设置WiFi模式为STA模式
WiFi.begin(ssid, password);//连接WiFi
while (WiFi.status() != WL_CONNECTED) {//程序将等待直至WiFi连接成功
delay(500);
Serial.print(".");
}
Serial.println();
Serial.println("WiFi connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
Serial.print("Connecting to ");
Serial.print(host);
Serial.print(":");
Serial.println(port);
while (!client.connect(host, port)) {//连接服务器,程序将等待直至服务器连接成功
delay(500);
Serial.print(".");
}
Serial.println();
Serial.println("Host connected");
Serial.println("Iot services init");
iot.begin(client, DEVICEID, APIKEY);//初始化ArduinoBigiot,并设置设备ID和设备APIKEY
iot.checkout();//强制目标设备下线,消除滞留
iot.checkin();//设备登录
iot.offOn(handleOffOn);//为"offOn"命令绑定"handleOffOn"函数,即上面创建的"handleOffOn"回调函数
iot.play(handlePlay);//为"play"命令绑定"handlePlay"函数,即上面创建的"handlePlay"回调函数
iot.stop(handleStop);//为"stop"命令绑定"handleStop"函数,即上面创建的"handleStop"回调函数
Serial.println("Iot services started");
}
void loop() {
iot.handleiot();//保活设备,处理连接信息
delay(50);
}
[/code]
第一眼看着很多,其实仔细看你会发现大部分代码都是串口打印(笑
更改完信息并上传至ESP后,尝试在设备列表中对应的遥控面板(或小程序等)点击play或stop或offOn,观察板载LED灯变化,修改相应回调函数中的代码即可改变ESP在收到命令后的动作。