【阿里云IoT套件使用教程3】将ESP32接入物联网平台

2019-04-092.2万
AI 快速预览详细 收起
本教程详细介绍了如何将ESP32连接到阿里云IoT平台。首先,在物联网平台上创建产品和设备。然后,通过WiFi将ESP32连接到互联网。接着,从物联网平台获取设备证书、域名和端口号等连接信息。最后,将这些信息写入DFRobot提供的demo中,实现MQTT连接。通过本教程,您可以轻松实现ESP32与物联网平台的连接,解决设备无法在线的问题。


将ESP32接入物联网平台
   
       前一章节介绍了如何在物联网平台上创建产品和设备,本节讲述了如何将真实设备连接到阿里云IoT平台上。
       以连接在ESP32上的LED为例,要将LED设备连接到物联网平台,即将ESP32接入物联网,需要做如下步骤:
              1.  在物联网平台上创建相应的产品和设备;
              2.  将ESP32接入互联网(WiFi);(LED灯需借助ESP32的WiFi功能接入互联网
              3.  从物联网平台获取设备的设备证书、域名、端口号等连接信息。

所需材料

ESP32接入
    在开始之前,先下载阿里云IoT入门套件库文件及样例代码,下载页面:https://www.dfrobot.com.cn/goods-1896.html
1.在物联网平台上创建相应的产品和设备
       在物联网平台上创建产品和设备。创建的具体操作,请参考前面章节产品及设备创建,这里就不多说了。
2.将ESP32接入互联网
       LED灯连接到ESP32的D2数字口,只需将ESP32主控通过WiFi连接到互联网即可。代码如下 :
       #include <WiFi.h>

       /*配置WIFI名和密码*/
       const char * WIFI_SSID     = "WIFI_SSID";
       const char * WIFI_PASSWORD ="WIFI_PASSWORD";

       void connectWiFi(){
            Serial.print("Connecting to ");
            Serial.println(WIFI_SSID);
            WiFi.begin(WIFI_SSID,WIFI_PASSWORD);
            while(WiFi.status() != WL_CONNECTED){
                 delay(500);
                 Serial.print(".");
            }
           Serial.println();
           Serial.println("WiFi connected");
           Serial.print("IP Adderss: ");
           Serial.println(WiFi.localIP());
     }
3.从物联网平台获取设备的设备证书、域名、端口号等连接信息
        首先,进入物联网平台。

       (1)设备证书信息获取
        有2种获取方式:I.项目外获取;II.项目内获取
         I.项目外获取。选择设备管理->设备,在设备列表找到某一设备,点击查看按钮,即可进入设备详情页,在该页的设备信息栏,即可看到ProductKey、DeviceName、DeviceSecret等设备信息,如下图所示:

【阿里云IoT套件使用教程3】将ESP32接入物联网平台图1

        II.项目内获取。进入某个项目(例:物联网管理项目)。选择设备管理->设备,进入设备管理页面,在设备列表找到某一设备(如lamp),点击激活凭证查看,即可看到ProductKey、DeviceName、DeviceSecret等设备信息,点击激活凭证如下图所示:

【阿里云IoT套件使用教程3】将ESP32接入物联网平台图2

    在设备管理页面,点击查看进入设备详情页,如下图所示:

【阿里云IoT套件使用教程3】将ESP32接入物联网平台图3

        设备ID:可自定义,64字符以内,如ClientId= "12345"。

       (2)域名获取
        格式:iot-as-mqtt.region.aliyuncs.com
        region需替换为物联网平台服务所在地域的代码。地域代码,请参考地域和可用区。这里的域名是指产品及设备所创建的地域,默认为华东2(上海),如下图所示:

【阿里云IoT套件使用教程3】将ESP32接入物联网平台图4

        华东2(上海)的Region ID为cn-shanghai,可以用下列代码表示:
        String ALIYUN_SERVER = "iot-as-mqtt.cn-shanghai.aliyuncs.com";
        若在新加坡创建产品,则为iot-as-mqtt.ap-southeast-1.aliyuncs.com

       (3)端口号获取
        默认端口号为1883,通用。
        uint16_t PORT = 1883;


    将获取到的WiFi名和密码,设备证书信息,域名和端口号信息写入DF提供的demo中,即可MQTT连接成功。此时,你会看到设备处于在线状态。

【阿里云IoT套件使用教程3】将ESP32接入物联网平台图6

注意:MQTT连接失败原因:
       1.  设备证书信息、域名、端口号填写错误;
       2.  从别的地方下载了pubsubclient文件,在PubSubClient.h文件中未修改如下所示信息:
【阿里云IoT套件使用教程3】将ESP32接入物联网平台图5
在这一步,只是完成了物理设备连接上阿里云IoT,若要实现通信,还需设置一些参数,下一节会简单的介绍如何实现物理设备同阿里云IoT平台之间的通信。

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(9)
DFHk-0ykaN8
DFHk-0ykaN8
ESP32写入后,wifi连接不上是否可以提示一下,谢谢楼主。
DFHk-0ykaN8
DFHk-0ykaN8
物联网平台的三元组写入后,无法连接,是否是代码的问题呢?
DFrJ30-4u3V
DFrJ30-4u3V
我用我的esp32f烧录例程后一直系统复位,还发这个东西Guru Meditation Error of type InstrFetchProhibited occurred on core 0. Exception was unhandled.
Register dump:
PC : 0x3ffc1094 PS : 0x00060033 A0 : 0x80085841 A1 : 0x3ffc05a0
A2 : 0x00000000 A3 : 0x00060021 A4 : 0x00060e23 A5 : 0x00000020
A6 : 0x00000020 A7 : 0x00060023 A8 : 0x80081ba5 A9 : 0x3ffc3f24
A10 : 0x3ffc1088 A11 : 0x00060023 A12 : 0x00060021 A13 : 0x3ffc8730
A14 : 0x3ffc17a0 A15 : 0x00060023 SAR : 0x00000012 EXCCAUSE: 0x00000014
EXCVADDR: 0x3ffc1094 LBEG : 0x00000000 LEND : 0x00000000 LCOUNT : 0x00000000
Backtrace: 0x3ffc1094:0x3ffc05a0
请问一下怎么解决啊
DFrJ30-4u3V
DFrJ30-4u3V
一定要这个IOT套件才行吗?我用我的esp32f行吗?
龙神ldy
龙神ldy
貌似还是不行。。继电器 都有信号进来了。就是不会通电打开 锁头
wuji
wuji
作者
回复龙神ldy

先用锁的电源线一头接地,一头试触法,看看锁有没有反应,用试触法+Arduino串口打印,查看锁的信号线的输出值
龙神ldy
龙神ldy
应用六:智能门锁 这块你们 门锁的接线图 有吗。就差这个 了
wuji
wuji
作者
回复龙神ldy


电源12V,把UNO换成ESP32即可
gada888
gada888
详尽的教程步骤
rzegkly
rzegkly
很好的物联网教程,学习下
rzyzzxw
rzyzzxw
等您下一篇。
您有时间写一个用mind+图形化和阿里云,掌控板物联的教程吧,搞了几天,一直没有成功。我现在能连接上设备,却不能通信。
DFBJKmr6VoQ
DFBJKmr6VoQ回复rzyzzxw
请问这个用MIND+、阿里云和掌控板实现了吗?多谢
- 没有更多了 -