从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

    记录下自己做的第一个物联网项目,真正从零开始,断断续续花了2个月时间看各种视频,网站学习有关物联网的知识,期间碰到过好多问题,没有人指导,都得靠自己慢慢研究,有时会很迷茫,没有方向,但还得坚持下去,当经过自己的努力解决一个个问题时,会很兴奋开心。话不多说,下面回顾下整个项目的制作过程。

目录

一、硬件准备

 二、软件准备

三、阿里云平台搭建

四、阿里云平台操作部分可以暂停下了,接下来我们打开Arduino,复制粘贴以下代码,代码里有*号的部分都要根据自己的实际情况替换掉:

 ​编辑

五、代码部分搞定后,我们再回到阿里云平台 

六、WEB应用开发 


一、硬件准备

        esp8266 NODEMCU板一块(带数据线),DHT11传感器一个,面包板一个,杜邦线若干条

接线图如下:(D7引脚接S端,3V3接中间,GND接“-”),就三线线很简单了。

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

 二、软件准备

        安装好Arduino IDE,因为程序需要用到以下几个库,所以相关的库文件也需要安装好,安装AliyunIoTSDK、ArduinoJson、 PubSubClient、Crypto,DHT11,以上五个库,在Arduino 菜单项目—->加载库-》管理库里输入以上的库文件名,系统会自动搜索出相应的库文件,如果没有安装的话,点安装就可以,安装好显示如下:从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

各种库安装好后,要把PubSubClient库里的参数进行修改,在项目文件夹位置(可以在Arduino文件-》首选项里查看到)下的librariespubsubclient-2.8src,可以看到PubSubClient.h文件,用记事本打开它,修改第26行和第31行的参数,改为1024和60,如下图。

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

三、阿里云平台搭建

 软硬件装备好之后,接下来进入阿里云平台进行相关操作了,

1、打开阿里云首页:https://www.aliyun.com/,登录自己的账号

2、点击右上角的控制台

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

3、搜索产品与服务,输入 物联网平台,或者直接打开物联网平台

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

 4、创建公共实例,然后点击进入公共实例(免费的)

5、点击“设备管理”-》“产品”-》“创建新产品”

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

6、自己给产品输入一个名称,品类选择:

 从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

7、确认后,前往添加设备

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

8、添加设备,输入设备名和备注

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

9、设备添加后,显示示激活状态

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

10、回到“产品”页面,可以看到我们刚才新建的产品

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

11、点“查看”-》“功能定义”-》“编辑草稿”-》“添加标准功能”,把“温度”和”湿度“这两个属性勾选。

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

12、接下来,我们添加一个自定义功能,定义一个电源开关功能,设置如下

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

13、发布上线后,效果如下图:

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

四、阿里云平台操作部分可以暂停下了,接下来我们打开Arduino,复制粘贴以下代码,代码里有*号的部分都要根据自己的实际情况替换掉:

#include 
#include 
#include 

//设置用于连接温湿度传感器的引脚
#define DHTPIN 13  //根据硬件连接确定引脚编号(注意,这里我连接的是D7,也就是GPIO13)
#define Led  D4


#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
float h,t;


// 引入 wifi 模块,并实例化,不同的芯片这里的依赖可能不同
#include 
static WiFiClient espClient;

// 引入阿里云 IoT SDK
#include "AliyunIoTSDK.h"

// 设置产品和设备的信息,从阿里云设备信息里查看
#define PRODUCT_KEY "*****"
#define DEVICE_NAME "****"
#define DEVICE_SECRET "*******"//(这三个东西在阿里云里面)
#define REGION_ID "cn-shanghai"

// 设置 wifi 信息
#define WIFI_SSID "*****"//(这里面连你自己家的WiFi,注意要是2.4G频段的,5G的不行)
#define WIFI_PASSWD "******"//(你自己家的WiFi密码)

void setup()
{
    Serial.begin(9600);//设置好自己的串口频率要一致

    // 初始化 wifi
    wifiInit(WIFI_SSID, WIFI_PASSWD);

    //初始化 iot,需传入 wifi 的 client,和设备产品信息
    AliyunIoTSDK::begin(espClient, PRODUCT_KEY, DEVICE_NAME, DEVICE_SECRET, REGION_ID);

    // 绑定一个设备属性回调,当远程修改此属性,会触发 powerCallback
    // PowerSwitch 是在设备产品中定义的物联网模型的 id
    AliyunIoTSDK::bindData("PowerSwitch",powerCallback);
    //当PowerSwitch属性值改变时,会触发powerCallback函数
    
    pinMode(DHTPIN,INPUT);
    pinMode(Led,OUTPUT);
    dht.begin();
 
}

void loop()
{
    
  AliyunIoTSDK::loop();  
  AliyunIoTSDK::send("CurrentTemperature",t);//发送当前温度值到云平台
  AliyunIoTSDK::send("CurrentHumidity",h);//发送当前湿度值到云平台
  AliyunIoTSDK::send("PowerSwitch",Switch_State(digitalRead(Led)));
  //发送当前Led灯状态到云平台
/*CurrentTemperature,CurrentHumidity,PowerSwitch,这三个参数一定要与阿里云平台“产品”-》“功能/定义”->"标识符"里的数据一致,否则数据是传不到云平台的*/
  
  h = dht.readHumidity();
  t = dht.readTemperature(); 
               
  Serial.print("Temperature:");  //串口显示温度                    
  Serial.println(t);                                     
  delay(1000);
  Serial.print("Humidity:");   //串口显示湿度                          
  Serial.print(h);                                    
  Serial.println("%");                                 
  delay(1000);
  Serial.print("PowerSwitch:"); //串口显示开关状态,0表示开,1表示关                           
  Serial.println(digitalRead(Led));                                    
  delay(1000);

}

// 初始化 wifi 连接
void wifiInit(const char *ssid, const char *passphrase)
{
    WiFi.mode(WIFI_STA);
    WiFi.begin(ssid, passphrase);
    while (WiFi.status() != WL_CONNECTED)
    {
        delay(1000);
        Serial.println("WiFi not Connect");
    }
    Serial.println("Connected to AP");
     digitalWrite(Led, LOW);


}

// 电源属性修改的回调函数
void powerCallback(JsonVariant p)
{
    int PowerSwitch = p["PowerSwitch"];
    if (PowerSwitch == 1)
    {
        // 开灯
        digitalWrite(Led, LOW);
    } 
    if (PowerSwitch == 0)
    {
        // 关灯
        digitalWrite(Led, HIGH);
    } 
}

bool Switch_State(bool s)
{
  if(s == HIGH)
    return 0;//Led状态为HIGH表示关灯,返回0
  if(s == LOW)
    return 1;//Led状态为LOW表示开灯,返回1
}

 从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

代码里这是设备三元组信息,可以在“设备”,找到相应设备点“查看”,

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

然后,分别把这三个信息复制到代码里去。

代码修改好后,上传到ESP8266板里,运行后打开串口,会显示如下信息:

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

五、代码部分搞定后,我们再回到阿里云平台 

1、点“设备管理”-》“设备”,找到相应设备,点“查看”-》“物模型数据”,可以看到实时数据了,这样就实现了设备上传数据到云端了。

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

 2、接下来,我们可以在线调试,通过云端设置改变ESP8266的LED灯开关状态。点击“监控运维”-》“在线调试”,选择相应的产品和设备,然后设置电源开关状态,就可以控制Led灯的开和关了。

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

3、到此为止,设备和云端的数据就实现了互通了,云端可以接收到设备上传的信息并显示出来,云端发送的指令设备端也可以接收到,并按指令执行。

六、WEB应用开发 

        接下来,我们要通过阿里云的IoT Studio开发一个WEB应用页面,可以实时显示设备状态信息,并通过网页开关控制LED灯。

1、打开阿里云IoT Studio,点击下面链接

阿里云登录 – 欢迎登录阿里云,安全稳定的云计算服务平台

 2、新建项目,建一个空白项目,设置一个项目名称

3、新建一个Web应用,进入进行编辑

4、在页面左边,点击“组件“栏

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

5、拖动”图片“组件”到右边页面里,然后上传一张图片作为背景

6、拖动一个“卡片”到页面里,在右边页面设置栏里进行相关设置,组件名称改为“温度”,标题为:“当前温度”,设置好相关的颜色等属性 

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

7、点展示数据后面的 配置数据源 ,点“产品”-》“选择产品”-》“产品管理”-》“关联物联网产品”

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

8、点“设备”-》“关联物联网平台设备”,选择相关的设备

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

9、回到配置数据源的页面,刷新,选择相应的产品和设备,属性选择“温度”

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

10、按相同的方法,设置好湿度的卡片,页面就可以显示当前温度和湿度了

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

11、按同样的方法,可以拖动两个“实时曲线”组件到页面里,并进行相应的设置,点击右上角的预览就可以看下如下图的效果了。

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关 12、在WEB页面中加入开关和指示灯效果,在组件栏-》基础-里找到指示灯,拖动放到右边页面里,按上面的方法配置数据源

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

13、在组件-》控制栏里找到 开关 控件,拖入页面,按上面一样的方法配置数据源,设置好颜色效果 ,然后预览,可以看下开关控制Led灯的效果

从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

 这里要提醒下大家,开关控制可能会有些网络的延时问题,另外程序里的那三条延时语句也会影响开关效果,开关会出现乱跳的情况,所以最好 把那几条串口打印的延时语句注释了,效果会更好些

 从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

 至此,我们就实现了通过DHT11温湿度传感器连接ESP8266通过WIFI连接网络,再通过MQTT协议与阿里云平台实现数据上传与发送,设备端的数据在上传到云平台并在网页中显示出来,网页也能通过控件控制设备工作。今天的记录暂时到这,后面我会再加多些设备进来,使其功能更完善些。

本文章来源于互联网,如有侵权,请联系删除!原文地址:从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

相关推荐: 物联网平台搭建的全过程介绍(三)阿里云物联网设备接入订阅发布之Android studio例程

物联网平台搭建系列内容前两节介绍的都是功能性的描述,今天以一个小例子,介绍具体的设备接入、订阅、发布的操作,例子的名字为:学生成绩录入平台,例子的界面如下图所示。 功能描述:当在阿里云物联网平台内下发学生姓名的时候,“学生姓名”后边会显示这个学生的名字。当在数…