SSL/TLS 双向认证(三) -- ESP8266与mosquitto的MQTT双向认证

ESP8266与mosquitto的MQTT双向认证
摘要由CSDN通过智能技术生成

本文部分参考:
https://github.com/tuanpmt/esp_mqtt
http://espressif.com/zh-hans/products/hardware/esp8266ex/overview

前言

ESP8266是一颗低功耗、高集成度、性能稳定的 Wi-Fi 芯片,是物联网开发的首选设备。ESP8266EX 专为移动设备、可穿戴电子产品和物联网应用而设计,通过多项专有技术实现了最低功耗。ESP8266EX 有三种运行模式:激活模式、睡眠模式和深度睡眠模式,能够延长电池寿命。 ESP8266EX 是业内集成度最高的 Wi-Fi 芯片,最小封装尺寸仅为 5mm x 5mm。ESP8266EX 高度集成了天线开关、射频 balun、功率放大器、低噪放大器、过滤器和电源管理模块,仅需很少的外围电路,可将所占 PCB 空间降到最低。ESP8266EX 集成了更多的元器件,性能稳定,易于制造,工作温度范围达到 -40°C 到 +125°C。
mosquitto是一款精致的MQTT broker.一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制器等移动设备。
mosquitto的相关使用请参考上一篇博客: http://blog.csdn.net/ustccw/article/details/76905459#t8

一: 目的

使用mosquitto broker 作为 MQTT server,开启双向认证。同时 mosquitto broker 订阅主题 /mqtt/topic/1 ,使用 ESP8266 作为 MQTT Client,开启双向认证,订阅和发布主题 /mqtt/topic/1。如果 mosquitto broker 收到ESP8266 的消息,则成功实现ESP8266与mosquitto的MQTT双向认证。

二: ESP8266及开发环境搭建

如果您熟悉ESP8266开发环境,可以很顺利理解下面步骤; 如果您不熟悉某个部分,比如编译,烧录。需要您结合官方的相关文档来理解。http://espressif.com/zh-hans/support/download/overview,如您需阅读ESP8266 快速入门指南文档。

1.1 ESP8266NONOS SDK和MQTT Demo获取

$git clone https://github.com/ustccw/MQTTESP8266.git

可获取ESP8266开发SDK,此SDK可以保证ESP8266良好工作。如图,esp_mqtt_proj 目录是MQTT Demo.

esp8266

1.2 编译器获取

https://github.com/ustccw/RepoForShareData/tree/master/ESP/ESP8266/compiler,xtensa-lx106-elf.tar.bz2是编译器压缩包,解压后 xtensa-lx106-elf 是编译器根目录,将编译器拷贝至 /opt/ 下。

1.3 mqtt demo 修改

esp_mqtt_proj/include/mqtt_config.h 需修改的地方

        1. #define CFG_HOLDER   0x00FF55A4      // 编译前,改变这个数值。如将 0x00FF55A4 改为 0x00FF55A5。下次编译,不用再改,这个参数将保证设备自动配网,如会保存WiFi账号密码等。
        2. #define MQTT_SSL_ENABLE              // 不可注释,单向认证和双向认证必选
        2. #define MQTT_HOST "192.168.111.100"  // 修改为 MQTT 服务器的IP或域名
        3. #define MQTT_PORT    8883                // 修改为 MQTT 服务器开放的端口号
        4. #define MQTT_CLIENT_ID   "chenwucontr
  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
很抱歉,我无法直接为您提供完整的协议栈代码。协议栈的实现可能因硬件和操作系统不同而有所不同,需要根据具体情况进行适当的修改。 以下是一些常用协议栈的简介及其相关资源,供您参考: 1. WIFI协议栈:WIFI协议栈主要包括PHY层、MAC层和网络层。常用的WIFI协议包括IEEE 802.11a/b/g/n/ac/ax等。如果您需要实现WIFI协议栈,您可以参考以下资源: - ESP8266 WIFI模块源代码:https://github.com/espressif/esp8266-rtos-sdk/tree/master/components/esp8266/include/driver/include/driver - ESP32 WIFI模块源代码:https://github.com/espressif/esp-idf/tree/master/components/esp_wifi - Linux下的WIFI实现:https://wireless.wiki.kernel.org/en/developers/documentation/wireless-drivers 2. 蓝牙协议栈:蓝牙协议栈主要包括PHY层、MAC层、L2CAP层、RFCOMM层、SDP层等。常用的蓝牙协议包括BLE、Classic Bluetooth等。如果您需要实现蓝牙协议栈,您可以参考以下资源: - BlueZ蓝牙协议栈:https://git.kernel.org/pub/scm/bluetooth/bluez.git/ - Android蓝牙协议栈:https://android.googlesource.com/platform/system/bt/ - Nordic Semiconductor的nRF5 SDK:https://www.nordicsemi.com/Software-and-Tools/Software/nRF5-SDK 3. TCP/IP协议栈:TCP/IP协议栈主要包括物理层、数据链路层、网络层、传输层和应用层。常用的TCP/IP协议包括TCP、UDP、IP等。如果您需要实现TCP/IP协议栈,您可以参考以下资源: - lwIP协议栈:http://www.nongnu.org/lwip/ - Linux内核中的TCP/IP协议栈实现:https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt - Contiki OS中的TCP/IP协议栈实现:https://github.com/contiki-os/contiki/tree/master/os/net 4. CoAP协议栈:CoAP协议栈是一种轻量级的RESTful协议,适用于物联网设备之间的通信。如果您需要实现CoAP协议栈,您可以参考以下资源: - Erbium CoAP协议栈:https://github.com/contiki-os/er-coap - LibCoAP协议栈:https://github.com/obgm/libcoap - Californium CoAP协议栈:https://github.com/eclipse/californium 5. MQTT协议栈:MQTT协议栈是一种轻量级的消息协议,适用于物联网设备之间的通信。如果您需要实现MQTT协议栈,您可以参考以下资源: - Paho MQTT协议栈:https://github.com/eclipse/paho.mqtt.embedded-c - Mosquitto MQTT协议栈:https://github.com/eclipse/mosquitto - Eclipse IoT MQTT协议栈:https://www.eclipse.org/paho/clients/c/embedded/ 6. HTTP(S)协议栈:HTTP(S)协议栈是一种广泛应用于互联网上的应用层协议。如果您需要实现HTTP(S)协议栈,您可以参考以下资源: - Mongoose HTTP(S)协议栈:https://github.com/cesanta/mongoose - libcurl HTTP(S)协议栈:https://curl.se/libcurl/ - Microchip HTTP(S)协议栈:https://www.microchip.com/design-centers/wireless-connectivity/wifi/products/wi-fi-software/mrf24w-software 7. SSL/TLS协议栈:SSL/TLS协议栈是一种安全传输协议,适用于互联网上的安全通信。如果您需要实现SSL/TLS协议栈,您可以参考以下资源: - OpenSSL SSL/TLS协议栈:https://www.openssl.org/ - wolfSSL SSL/TLS协议栈:https://www.wolfssl.com/ - mbed TLS SSL/TLS协议栈:https://tls.mbed.org/
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值