ESP8266物联网时钟-概要设计(数据上阿里云)

一、阿里云端配置

1.1创建产品

ESP8266物联网时钟-概要设计(数据上阿里云)_第1张图片

 搜索阿里云,然后点击控制台,进入阿里云物联网平台。

ESP8266物联网时钟-概要设计(数据上阿里云)_第2张图片

点击公共实例,进入到产品管理界面,这里面的操作说明就比较详细了。跟着步骤操作即可。

1.2创建设备

ESP8266物联网时钟-概要设计(数据上阿里云)_第3张图片

点击产品-创建产品,点击设备,基于产品新建涉笔

1.3创建数据模型

ESP8266物联网时钟-概要设计(数据上阿里云)_第4张图片

最终得到如图的数据模型

ESP8266物联网时钟-概要设计(数据上阿里云)_第5张图片

最主要是得到这三个东西,这个是设备和云平台连接的主要信息,需要复制保存好。

二、设备端配置

首先需要加载以下的库文件:AliyunIoTSDKArduinoJson、PubSubClient、SHA256库

注意SHA256库是安装下面这个:

在程序中包含相关的头文件

ESP8266物联网时钟-概要设计(数据上阿里云)_第6张图片

 完整的代码

#include 
#include 
#include 
#include 
#include "DHT.h"

#include 
#include 
#include 
#include 


WiFiUDP ntpUDP;
DHT dht;
AliyunIoTSDK iot;
static WiFiClient espClient;

//阿里云三元组
#define PRODUCT_KEY "aXXX"
#define DEVICE_NAME "IOT_Clock_XXXX"
#define DEVICE_SECRET "e2e45b8677XXXXX"
#define REGION_ID "cn-shanghai"

//WIFI账号和密码
const char* ssid = "ximi";
const char* password = "123456";

#define PIN_LED 4  //定义LED灯:PIN_LED所对应的引脚为4号

NTPClient timeClient(ntpUDP, "ntp1.aliyun.com", 3600*8, 60000);       //乘以8是因为北京时间时东八区的时间


void setup()        //初始化
{
  Serial.begin(115200);
//  Wire.mode(WIFI_STA);
  Wire.begin(2,14);
  dht.setup(5); // data pin 2
  delay(500);

  Serial.println();         // Connect to WiFi network
  Serial.println();
  Serial.print("Connecting to "); Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print(".");}
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println(WiFi.localIP());

  timeClient.begin();
  AliyunIoTSDK::begin(espClient, PRODUCT_KEY, DEVICE_NAME, DEVICE_SECRET, REGION_ID);
  // 绑定属性回调
  AliyunIoTSDK::bindData("LED_ON_OFF", powerCallback);

  pinMode(PIN_LED, OUTPUT); //初始化PIN_LED引脚模式为输出
  digitalWrite(PIN_LED,LOW);//初始LED灯置为低电平,表示点亮
}

void loop()
{
  AliyunIoTSDK::loop();
  Time_InitDis();
  float humidity = dht.getHumidity();
  float temperature = dht.getTemperature();
  Serial.print((int)temperature); Serial.print("C, "); 
  Serial.print((int)humidity); Serial.println("%");
  AliyunIoTSDK::send("temperature", (int)temperature);
  AliyunIoTSDK::send("Humidity", (int)humidity);
  delay ( 500 );
}

void Time_InitDis(void)   //
{
  timeClient.update();
  Serial.println(timeClient.getFormattedTime());
  
  timeClient.getDay();  //换算星期
  timeClient.getHours();  //换算小时
  timeClient.getMinutes();  //换算分钟
  timeClient.getSeconds();  //换算
}

void powerCallback(JsonVariant p)
{
    int PowerSwitch = p["LED_ON_OFF"];
    if (PowerSwitch == 1)
    {   
      Serial.println("LEDON");  
      digitalWrite(PIN_LED,LOW);     
    }
    else
    {
      Serial.println("LEDOFF"); 
      digitalWrite(PIN_LED, HIGH);         
    }
}

三、移动可视化开发

阿里云平台上搜索IOT Studio,点击移动应用开发

ESP8266物联网时钟-概要设计(数据上阿里云)_第7张图片

根据新建步骤进行开发

ESP8266物联网时钟-概要设计(数据上阿里云)_第8张图片

 最终在手机端的效果ESP8266物联网时钟-概要设计(数据上阿里云)_第9张图片

 

你可能感兴趣的:(ESP8266,阿里云,物联网,云计算)