使用AliyunIoTSDK点亮le

72 阅读1分钟


#include <ESP8266WiFi.h>

static WiFiClient espClient;
#include <ArduinoJson.h>

#include <AliyunIoTSDK.h>
AliyunIoTSDK iot;

#define PRODUCT_KEY "dsfdfsdfdf"
#define DEVICE_NAME "Kdsfsdf2-01"
#define DEVICE_SECRET "sdfsdf"
#define REGION_ID "cn-shanghai"

#define WIFI_SSID "Netcore_2_4G"
#define WIFI_PASSWD "sdfdfd$"


void wifiInit(const char *ssid, const char *passphrase)
{
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, passphrase);
  WiFi.setAutoConnect (true);
  WiFi.setAutoReconnect (true);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(1000);
    Serial.println("WiFi not Connect");
  }
  Serial.println("Connected to AP");
}

void setup()
{
  Serial.begin(115200);
 pinMode(D4, OUTPUT);
  wifiInit(WIFI_SSID, WIFI_PASSWD);

  AliyunIoTSDK::begin(espClient, PRODUCT_KEY, DEVICE_NAME, DEVICE_SECRET, REGION_ID);

  // 绑定属性回调
  AliyunIoTSDK::bindData("powerstate", powerCallback);

  // 操作用户自定义Topic
  AliyunIoTSDK::subscribeUser("/get", callback);
  // 发送一个数据到云平台,LightLuminance 是在设备产品中定义的物联网模型的 id
  AliyunIoTSDK::send("mode", 57);
  /*
      下面为操作其他各类topic方法,注意替换自己的参数
      AliyunIoTSDK::subscribe("/sys/${ProductKey}/${deviceName}/thing/service/${tsl.service.identifier}", callback);
      AliyunIoTSDK::publish("/sys/{productKey}/{deviceName}/thing/event/property/post", callback);
  */
}


void loop()
{
  AliyunIoTSDK::loop();
  

}

void callback(JsonVariant p)
{
  Serial.println("custom topic callback");
  serializeJsonPretty(p, Serial);
  Serial.println();
}
 

void powerCallback(JsonVariant p)
{
  int PowerSwitch = p["powerstate"];
  Serial.println("callback start ");
  Serial.println(PowerSwitch);

//  JsonVariant a= new JsonVariant();
//  AliyunIoTSDK::publish("/sys/a1UStjfbm86/K2-01/thing/event/property/post", a);
  if (PowerSwitch == 1)
  {
    digitalWrite(D4, HIGH); 
  }
  else
  {
    digitalWrite(D4, LOW); 
  }
}