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

本文介绍了如何将ESP8266物联网时钟与阿里云平台集成,包括在阿里云创建产品和设备,定义数据模型,并获取设备连接信息。在设备端,文章提到了所需的库文件加载,如AliyunIoTSDK、ArduinoJson等。此外,还阐述了通过阿里云IOT Studio进行移动应用开发,实现手机端的可视化效果。

一、阿里云端配置

1.1创建产品

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

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

1.2创建设备

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

1.3创建数据模型

最终得到如图的数据模型

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

二、设备端配置

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

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

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

 完整的代码

#include <Wire.h>
#include <ESP8266WiFi.h>
#include <NTPClient.h>
#include <WiFiUdp.h>
#include "DHT.h"

#include <PubSubClient.h>
#include <ArduinoJson.h>
#include <AliyunIoTSDK.h>
#include <SHA256.h>


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,点击移动应用开发

根据新建步骤进行开发

 最终在手机端的效果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值