基于Arduino将ESP8266(Nodemcu) MQTT使用TLS接入物联网平台

本文基于UCloud的物联通信云平台给出具体示例,并附上示例代码。
模块是用ESP8266的NodeMCU。

1. TLS的概述

关于TLS的具体理论可以参考下面5篇文章:
HTTPS协议详解(一):HTTPS基础知识
HTTPS协议详解(二):TLS/SSL工作原理
HTTPS协议详解(三):PKI 体系
HTTPS协议详解(四):TLS/SSL握手过程
HTTPS协议详解(五):HTTPS性能与优化

本文虽然不介绍具体的TLS的具体只是,大概讲解下TCP、MQTT、TLS三者之间的关系。

MQTT是一个应用层协议,可以理解为和HTTP相对应的一层协议,MQTT是目前物联网平台广泛支持的一种用于物联网通信的协议,他的优势是开销小,实现标准,目前主流的云厂商AWS、Aliyun、UCloud的物联网平台都是基于MQTT标准进行通信。MQTT的4层连接协议仍然是TCP,所以是可靠的连接,TLS是在TCP和MQTT之间将MQTT数据包加密再通过TCP传输加密数据。所以MQTT over TLS一般叫做MQTTS。

层级关系:
MQTT
---------
TLS
---------
TCP

2. ESP8266 的Arduino库官方TLS库

ESP8266-Aruino使用的是BearSSL库(ESP32使用的是embedTLS库),具体介绍可以参考文档 ESP8266-Aruino的官方介绍文档TLS and HTTPS Basics
在这里插入图片描述
BearSSL官方文档

3. 接入物联网平台准备工作

本文物联网平台使用UCloud物联网通信云平台,目前处于公测阶段是免费使用的,参考文档

1) 创建产品、创建设备

2) MQTT连接参数

  • clientID:zzau1wz5blfzgltp.zpzqzz98lk8yrvmp
  • Username: zzau1wz5blfzgltp|zpzqzz98lk8yrvmp|1
  • Password: 90apiwl2txbo9gn6

3) MQTT连接

4. 实现代码

#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <time.h>
#include <PubSubClient.h>
#include "FS.h"


const char *logo_img = \
{
   
    "`],`].   =@@@^  ,/@@@@@@@^ =@@@^      ,@@@@@@@@@`   @@@O    =@@@. =@@@@@@@@@@` \n"\
    " \\=@O.   =@@@^ ,@@@@.      =@@@^     =@@@^   =@@@^  @@@O    =@@@.         =@@@`\n"\
    " O@@O.   =@@@^ O@@@.       =@@@^     O@@O.    O@@@  @@@O    =@@@. =@@@^   .@@@\\\n"\
    " O@@O.   =@@@^.O@@O        =@@@^    .O@@O     =@@@. @@@O    =@@@. =@@@^   .O@@O\n"\
    " O@@O.   =@@@^ O@@@.       =@@@^     O@@O.    O@@@  @@@O    =@@@. =@@@^   .@@@O\n"\
    " =@@@^  .O@@@. ,@@@@`      ,@@@@].   =@@@\\  ./@@@^  \\@@@`  ,@@@@  =@@@^  ./@@@^\n"\
    "  ,@@@@@@@@/    .\\@@@@@@@^  ,\\@@@@@@O ,\\@@@@@@@O`    ,@@@@@@@@/   =@@@@@@@@@O` \n"\
};


static const char mqtt_ca_crt[] PROGMEM =
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值