一、阿里云端配置
1.1创建产品

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

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

点击产品-创建产品,点击设备,基于产品新建涉笔
1.3创建数据模型

最终得到如图的数据模型

最主要是得到这三个东西,这个是设备和云平台连接的主要信息,需要复制保存好。
二、设备端配置
首先需要加载以下的库文件:AliyunIoTSDK、ArduinoJson、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,点击移动应用开发

根据新建步骤进行开发

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

被折叠的 条评论
为什么被折叠?



