杭州专业做网站公司,河南省建设监理协会新网站,在深圳学网站设计,商丘58同城招聘网最新招聘一、前言
随着物联网#xff08;IoT#xff09;技术的飞速发展#xff0c;越来越多的设备开始连接到互联网#xff0c;形成了一个万物互联的世界。在这个背景下#xff0c;设备与云端之间的通讯变得尤为重要。
本文将探讨几种常见的无线通信模块——EC20-4G、Air724ug-4…一、前言
随着物联网IoT技术的飞速发展越来越多的设备开始连接到互联网形成了一个万物互联的世界。在这个背景下设备与云端之间的通讯变得尤为重要。
本文将探讨几种常见的无线通信模块——EC20-4G、Air724ug-4G、NBIOT-BC26 和 ESP8266-WIFI并展示如何通过发送AT指令来控制这些模块利用MQTT协议连接华为云物联网平台实现数据的高效上传。
EC20-4G 和 Air724ug-4G 模块以其高速的数据传输能力和广泛的网络覆盖成为4G LTE通信的理想选择NBIOT-BC26 模块则专为低功耗广域网LPWAN设计特别适合于要求低带宽、远距离传输的应用场景而 ESP8266-WIFI 模块则凭借其成本效益高、易于集成的特点在Wi-Fi连接领域备受青睐。
下面将逐一介绍这些模块的基础配置方法并通过具体的实例说明如何使用AT指令建立与华为云物联网平台的安全连接。介绍MQTT协议的优势包括其轻量化、低延迟和高可靠性等特性这些特性使得MQTT成为物联网领域中最受欢迎的消息传递协议之一。
通过这些模块的学习可以了解到如何选择适合自己项目的通信模块还能掌握实际的操作步骤从硬件初始化到软件编程最终成功地将传感器数据上传到云端。
二、模块介绍
2.1 EC20-4G模块
EC20-4G是QuectelQuectel Wireless Solutions公司推出的一款4G LTE无线通信模块它主要面向全球市场支持多个频段的4G LTE网络以及向下兼容的3G和2G网络。这款模块非常适合用于数据传输速率要求较高的应用场合如工业路由器、移动支付终端、远程医疗设备、车联网和其他M2MMachine to Machine通讯领域。
EC20-4G模块采用LGA封装形式拥有紧凑的设计使得它可以轻松集成到各种类型的设备中即便是在空间有限的应用环境中也能发挥良好的性能。该模块支持多种网络协议例如TCP/IP, FTP, HTTP等这使得开发者可以灵活地根据不同的应用场景选择合适的网络协议栈。
除了基本的数据传输功能外EC20-4G还具备丰富的扩展接口包括UART、USB、GPIO等方便与其他硬件组件进行连接和交互。此外还支持多种定位技术比如GPS/GLONASS/Galileo/QZSS使得集成位置服务成为可能。
在软件支持方面EC20-4G提供了广泛的AT指令集便于开发人员进行编程控制。同时Quectel也为这款模块提供了详尽的技术文档和支持帮助开发人员快速完成产品的开发和上市。 2.2 ESP8266-WIFI模块
ESP8266是一款由乐鑫科技Espressif Systems开发的高度集成的Wi-Fi SoC系统级芯片它专为移动设备、可穿戴技术和物联网应用而设计。ESP8266芯片内部集成了一个Tensilica L106超低功耗32位微处理器主频可达80MHz至160MHz拥有512KB的SRAM以及内置的Wi-Fi模块支持IEEE 802.11 b/g/n标准。这些特性使ESP8266成为一种成本效益高的解决方案能够快速实现设备的Wi-Fi连接功能。
ESP8266模块通常以小型化的形式出现比如ESP-01它是一个非常小巧的模块尺寸仅约为25mm x 18mm却包含了所有必要的Wi-Fi功能。这样的尺寸使得它非常适合集成到空间受限的项目中。ESP8266模块通过简单的AT命令集来进行配置和控制这让它对于那些希望快速添加互联网连接功能到现有产品中的工程师来说非常有吸引力。
除了作为独立的微控制器运行之外ESP8266还可以作为从机与另一个主控器如Arduino或树莓派、STM32、51单片机配合工作通过串口接收命令来执行Wi-Fi相关的任务。这种方式允许开发者利用ESP8266的强大网络功能同时保持主控器对整个系统的控制。 2.3 BC26-NBIOT模块
BC26-NB是Quectel公司推出的一款窄带物联网(NB-IoT)模块它专门针对低功耗广域网(LPWAN)的应用需求进行了优化。BC26-NB模块支持3GPP Release 13 NB-IoT标准适用于各种需要长距离、低功耗、可靠连接的物联网应用如智能计量、资产追踪、智慧城市基础设施监测等场景。
该模块采用了紧凑型设计适合集成到空间受限的设备中。BC26-NB模块不仅支持NB-IoT网络还具备低功耗模式使得它可以在电池供电的情况下长时间运行这对于需要长期部署在野外或难以更换电池的设备来说是非常有利的特点。此外它还提供了一系列的硬件接口如UART、SPI、I2C、PWM等方便与外部传感器或其他硬件设备进行连接和数据交换。
在软件支持方面BC26-NB模块配备了全面的AT指令集简化了模块的初始化和配置过程。开发人员可以通过这些指令来控制模块的网络连接、数据传输等功能。Quectel公司还提供了详细的开发指南和技术支持帮助用户快速地将BC26-NB模块集成到他们的物联网解决方案中。
由于NB-IoT网络覆盖范围广、穿透力强BC26-NB模块可以实现深覆盖区域内的可靠通信即使是在地下室或偏远地区也能保持稳定的连接。这种能力对于需要在复杂环境中工作的物联网设备来说至关重要。 2.4 Air724-UG-4G模块
Air724-UG是Quectel公司推出的一款高性能的4G无线通信模块它专为全球市场设计支持多个频段的4G LTE Cat 4网络同时兼容3G和2G网络以便在全球范围内提供广泛的网络覆盖。该模块特别适合应用于需要高数据传输速率和稳定连接的行业解决方案中如车载系统、工业路由器、远程监控系统以及移动支付终端等。
Air724-UG模块采用了LGA封装具有紧凑的外形尺寸这使其能够轻松地集成到空间受限的产品设计中。它支持多种网络协议包括TCP/IP、FTP、HTTP等这使得开发人员可以根据具体的应用场景灵活选择适当的协议栈。此外Air724-UG还具备多个物理接口如UART、USB、GPIO等便于与其他硬件组件进行连接从而增强系统的功能性和互操作性。
在功能特性方面Air724-UG模块不仅支持高速数据传输最高可达下行150Mbps和上行50Mbps的速率还提供了丰富的扩展能力和附加功能。例如它支持GNSS全球导航卫星系统功能可用于定位服务具备语音通话功能适用于某些需要语音支持的应用场景同时该模块还支持多种安全机制如SSL/TLS加密保障了数据的安全传输。
Quectel为Air724-UG模块提供了详尽的技术文档和支持资源包括开发指南、参考设计和SDK等帮助开发人员快速启动项目并缩短产品上市时间。模块的易用性和Quectel的技术支持使得Air724-UG成为了一款理想的4G LTE解决方案适用于多种专业领域的设备连接需求。 三、MQTT协议介绍
MQTT协议概述
MQTTMessage Queuing Telemetry Transport是一种轻量级的消息传输协议它被设计用来提供一对多的消息分发和应用之间的通讯尤其适用于远程位置的设备和高延迟或低带宽的网络。MQTT协议基于客户端-服务器架构客户端可以订阅任意数量的主题并可以发布消息到这些主题。服务器通常称为MQTT Broker则负责接受来自客户端的连接请求并转发消息给感兴趣的客户端。
MQTT协议特点
MQTT协议具有以下主要特点
轻量级MQTT协议的实现非常轻巧占用资源少非常适合于资源受限的设备如传感器、嵌入式设备等。低带宽需求MQTT协议的设计考虑到了带宽的高效利用其报头非常小这使得它能够在低带宽环境下有效工作。可靠的消息传递MQTT提供了三种服务质量等级QoS允许发布者和订阅者之间选择合适的服务质量级别。支持多种传输层虽然MQTT最初是基于TCP/IP设计的但它也支持使用WebSockets和其他传输协议以便更好地集成到现代Web应用中。安全性MQTT支持TLS加密通信保证了数据的安全性并可以通过认证机制增强安全性。
MQTT协议的基本概念
MQTT协议的核心概念包括客户端、服务器Broker、主题和消息。
客户端Client任何连接到Broker的应用程序都可以被称为客户端。客户端可以订阅感兴趣的主题接收其他客户端发布的消息也可以发布消息。服务器BrokerMQTT服务器或Broker是消息的中心节点它接受客户端的连接请求存储订阅关系并将消息从发布者路由到订阅者。主题Topic主题是一个字符串用于标识消息的类别或目的。客户端订阅主题后可以接收到发布到该主题的所有消息。消息Message消息是由客户端发布的一组数据它包含两部分主题名和消息体。
MQTT协议的工作流程
MQTT的工作流程如下
连接客户端向Broker发送连接请求包含客户端ID、用户名、密码等信息。订阅一旦连接成功客户端可以订阅一个或多个主题。发布客户端可以向特定主题发布消息。接收如果客户端订阅了一个主题则它可以接收该主题下的消息。断开连接当客户端完成所有操作后可以断开与Broker的连接。
MQTT协议的应用场景
由于其轻量级特性和高效的消息传递能力MQTT协议广泛应用于物联网IoT领域特别是在智能家居、工业自动化、远程监控等领域。此外随着移动互联网的发展MQTT也被用于移动应用程序中的实时数据更新和推送服务。
四、上云测试
【1】MQTT服务器地址信息
下面的这个我华为云IOT物联网服务器的设备信息方便下面进行测试。连接这个服务器。
IP地址117.78.5.125
端口号1883
ClientId 64000697352830580e48df07_dev1_0_0_2023030206
Username 64000697352830580e48df07_dev1
Password a695af9883c5d0e3817bc6971beeecadf8c7c595677c461b1fe75882ed2bf449
订阅主题$oc/devices/64000697352830580e48df07_dev1/sys/messages/down
发布主题$oc/devices/64000697352830580e48df07_dev1/sys/properties/report
发布的消息{services: [{service_id: stm32,properties:{DHT11_T:18,DHT11_H:80,MQ2:1,water:1,flame:1,light:0,LED1:0,LED2:0,LED3:0}}]}【2】ESP8266-WIFI连接
要通过ESP8266模块使用AT指令来连接MQTT服务器订阅特定的主题并发布消息可以按照以下步骤操作。
请注意这里提供的AT命令序列是基于ESP8266模块支持的MQTT功能。
下面是一个示例流程 初始化ESP8266 ATRST 重启模块AT 测试模块是否响应ATCIPMUX1 设置多连接模式可选ATCIPRXGET1,100 设置接收数据的方式可选 设置Wi-Fi连接 ATCWMODE3 设置为StationAP模式通常只需要Station模式即可即设置为1ATCWJAPyourSSID,yourPassword 连接到Wi-Fi网络 配置MQTT客户端 ATCIPMQTTCFG117.78.5.125,1883,64000697352830580e48df07_dev1_0_0_2023030206,64000697352830580e48df07_dev1,,a695af9883c5d0e3817bc6971beeecadf8c7c595677c461b1fe75882ed2bf449,0,0,60 配置MQTT客户端参数包括服务器地址、端口、客户端ID、用户名、密码等 连接MQTT服务器 ATCIPMQTTC1 连接到MQTT服务器 订阅主题 ATCIPMQTTSUB0,$oc/devices/64000697352830580e48df07_dev1/sys/messages/down,2 订阅指定的主题 发布消息 ATCIPMQTTPUB0,$oc/devices/64000697352830580e48df07_dev1/sys/properties/report,2,0,0,{services: [{service_id: stm32,properties:{DHT11_T:18,DHT11_H:80,MQ2:1,water:1,flame:1,light:0,LED1:0,LED2:0,LED3:0}}]} 发布消息到指定主题 断开MQTT连接 ATCIPMQTTDISC0 断开与MQTT服务器的连接 关闭TCP/IP连接 ATCIPCLOSE 关闭当前的TCP/IP连接
注意在使用中需要将yourSSID和yourPassword替换为实际使用的Wi-Fi网络的SSID和密码。
【3】NBIOT-BC26
使用NBIoT-BC26模块连接MQTT服务器的过程与使用ESP8266类似但是命令集有所不同。
以下是使用NBIoT-BC26模块通过AT指令连接MQTT服务器、订阅主题以及发布消息的示例流程 初始化模块 AT 检查模块是否在线ATE0 关闭回显ATCFUN1 启用射频功能ATCGATT1 附着到网络 设置网络参数 ATCNOPS0 设置网络操作模式ATCGDCONT1,IP,your_apn 设置PDP上下文使用您的运营商提供的APN 激活PDP上下文 ATCGACT1,1 激活PDP上下文 配置MQTT客户端 ATQMTOPEN0,tcp,117.78.5.125,1883 打开一个TCP连接到MQTT服务器 建立MQTT连接 使用ATQMTCONN命令进行连接此命令会发送MQTT CONNECT包给服务器。ATQMTCONN0,64000697352830580e48df07_dev1_0_0_2023030206,60,0,1,0,64000697352830580e48df07_dev1,a695af9883c5d0e3817bc6971beeecadf8c7c595677c461b1fe75882ed2bf449 连接MQTT服务器参数包括客户端ID保持活动时间Clean Session标志Will标志Will QoSWill保留位用户名和密码。 订阅主题 ATQMTSUB0,2,$oc/devices/64000697352830580e48df07_dev1/sys/messages/down 订阅主题 发布消息 ATQMTPUB0,1,$oc/devices/64000697352830580e48df07_dev1/sys/properties/report,0,0,0,512 开始发送消息{services: [{service_id: stm32,properties:{DHT11_T:18,DHT11_H:80,MQ2:1,water:1,flame:1,light:0,LED1:0,LED2:0,LED3:0}}]} 发送的消息内容 断开MQTT连接 ATQMTDISC0 断开MQTT连接 关闭TCP连接 ATQMTCLS0 关闭TCP连接 去激活PDP上下文 ATCGACT1,0 去激活PDP上下文
上述命令序列是基于NBIoT-BC26模块的MQTT功能。
【4】EC20-4G模块
对于EC20模块通常是4G LTE模块连接MQTT服务器、订阅主题和发布消息的AT指令会有所不同。
以下是使用EC20模块通过AT指令完成这些操作的流程
初始化EC20模块
AT检查EC20是否正常工作。
设置工作模式为数据模式如果尚未设置
ATQCFGnwscanmode,0,1设置网络扫描模式为自动。
连接到移动网络
ATQNWINFO检查网络连接状态。
设置MQTT服务器的IP地址和端口
ATQMTOPEN0,117.78.5.125,1883连接到MQTT服务器的指定IP和端口。
登录MQTT服务器
ATQMTCONN0,64000697352830580e48df07_dev1,a695af9883c5d0e3817bc6971beeecadf8c7c595677c461b1fe75882ed2bf449,0,0使用客户端ID、用户名和密码连接MQTT服务器。
订阅MQTT主题
ATQMTSUB0,$oc/devices/64000697352830580e48df07_dev1/sys/messages/down,1订阅指定的MQTT主题。
发布消息到MQTT主题
ATQMTPUB0,$oc/devices/64000697352830580e48df07_dev1/sys/properties/report,0,0,{services:[{service_id:stm32,properties:{DHT11_T:18,DHT11_H:80,MQ2:1,water:1,flame:1,light:0,LED1:0,LED2:0,LED3:0}}]}向指定的MQTT主题发布消息。
断开MQTT连接
ATQMTDISC0断开与MQTT服务器的连接。
关闭EC20模块如果需要
ATQPOWD1关闭EC20模块或使其进入省电模式。
检查状态可选
ATQMTSTAT0检查MQTT连接状态。
请注意
ATQMTOPEN、ATQMTCONN、ATQMTSUB 和 ATQMTPUB 命令中的第一个参数 0 是连接的会话编号。可以根据需要调整它。发布的消息格式要符合MQTT协议的要求可能需要根据具体的EC20模块固件版本调整。确保你已经在模块中设置了正确的APN并成功连接到移动网络。