今天我们来学习使用合宙Air708E开发板的MQTT通信基本功能。

一、MQTT介绍

MQTT是一种低开销、低带宽占用的即时通讯协议,可以用极少的代码和带宽为远程设备提供实时可靠的消息服务。它适用于硬件性能低下的设备以及网络状况不佳的环境,因此在物联网(IoT)小型设备和移动应用等方面有广泛应用。

MQTT采用发布/订阅通信模型,客户端可以发布消息到主题(Topic),也可以订阅主题来接收消息。这种模式解耦了消息的发送者和接收者。

MQTT的消息传递质量分为三种:最多一次(QoS0)不保证交付,至少一次(QoS1)确保至少到达但可能重复,只有一次(QoS2)确保仅到达一次。

二、演示功能概述

本demo通过使用AIR708E开发板,带你快速体验通过MQTT协议进行数据接收与发送。

三、准备硬件环境

3.1 AIR780E开发板

3.2 TYPE-C线快充线

四、准备软件环境

注:以下软件下载链接,请复制后,粘贴到浏览器URL地址栏进行下载;

4.1 MQTT.fx

MQTT客户端软件下载:

https://docs.openluat.com/air780e/luatos/app/socket/mqtt/

4.2 Luatools

Luatools日志打印与程序烧录软件下载:

https://doc.openluat.com/wiki/52?wiki_page_id=5071

4.3 core固件和源码脚本

注:core固件,是基础环境,该固件由合宙官方提供,用户不可修改;源码脚本,为应用程序,可由客户自行修改;

五、软硬件资料

●AIR708E开发板原理图,打开Air780E产品手册,访问页面中的《EVB_Air780X_V1.6.zip》

●API使用介绍说明

●AIR708E开发板使用说明,打开Air780E产品手册,访问页面中的《Core_Air780E使用说明V1.0.5.pdf》

5.1 开发板按钮与指示灯图示与说明

5.2 硬件安装与连接

5.2.1 SIM卡安装

5.2.2 实物连接图

注:开发板与电脑通过TYPE-C线连接,用于通信与供电,所以必须使用“支持快充”的TYPE-C线才可以;

六、代码示例介绍

6.1 DEMO软件流程图

6.2 配置

6.2.1 MQTT的4个重要配置

  • localmqtt_host="lbsmqtt.airm2m.com"(MQTT服务器地址,这里使用合宙提供公用测试服务器)

  • localmqtt_port=1884(MQTT端口)

  • localuser_name="user"(MQTT服务器登录用户名)

  • localpassword="password"(MQTT服务器登录密码)

6.2.2 MQTT的2个重要主题

  • localpub_topic="/luatos/pub/123"--..(mcu.unique_id():toHex())(设备发布主题,以下方源码55行,可自行修改)

  • localsub_topic="/luatos/sub/123"--..(mcu.unique_id():toHex())(设备订阅主题,以下方源码56行,可自行修改)

6.3 完整程序清单

注:完整复制后保存为main.lua,可直接使用

七、功能验证

7.1 开机

按图1所示通过TYPE-C线将开发板与电脑连接无误后,开发板电源指示红灯常亮,网络指示灯灭,如下图:

此时按下开机键,约2秒后释放,等待几秒网络指示绿灯常亮,即开机成功,如下图:

此时电脑设备管理器中会发现下图所示几个设备,即代表开机成功!

7.2 打开Luatool软件工具并进入项目管理测试页面

图4

7.3 按序号步骤创建项目

7.4 按如下步骤进行程序烧录

7.5 观察下载过程后确认烧录结果

7.6 查看调试日志,获取设备发布与订阅主题

7.7 打开MQTT客户端MQTT.fx应用程序并配置

7.7.1 MQTT客户端基本配置

ProfileName:合宙(可修改为你想要的名称)

BrokerAddress:http://lbsmqtt.airm2m.com(合宙提供的免费测试服务器,也可修改为自己的服务器)

BrokerPort:1883(端口号)

UserName:user

Password:password

7.7.2 两个重要主题

设备发布主题:861959068926349/up(设备向服务器发送数据使用)

设备订阅主题:861959068926349/down(接收服务器数据主题)

7.8 订阅设备主题

7.9 MQTT客户端给开发板发送数据

7.10 查MQTT客户端订阅的设备数据

八、总结

至此,我们已使用AIR708E开发板完成了MQTT通信的基本功能。

低功耗4G模组:MQTT通信功能的更多相关文章

  1. 制作一个有趣的涂鸦物联网小项目(涂鸦模组SDK开发 CBU BK7231N WiFi+蓝牙模组 HSV彩色控制)

    实现的功能: l  APP控制月球灯 l  本地月球灯控制 l  APP控制"大白"颜色,实现各种颜色变身 l  门状态传感器状态APP显示 l  网络状态指示灯,连接服务器长亮, ...

  2. 手把手教你基于luatos的4G(LTE Cat.1)模组接入华为云物联网平台

    摘要:本期文章采用了4G LTE Cat.1模块,编程语言用的是lua,实现对华为云物联网平台的设备通信与控制 本文分享自华为云社区<基于luatos的4G(LTE Cat.1)模组接入华为云物 ...

  3. 中国移动推出NB-IoT/eMTC/GSM多模通信模组Qualcomm调制解调器支持

    亚洲电子消费展(CES Asia)在上海举行.期间,中国移动正式推出NB-IoT/eMTC/GSM三模通信模组A9500.该通信模组采用Qualcomm MDM9206 LTE IoT调制解调器,具有 ...

  4. NFC模组,开发NFC功能 仅仅要几条指令的事情

    特点:实现NFC透明传输.内置NFC协议栈,支持UART串口直接读写,用于门禁能够同一时候兼容手机和卡片开门,还能实现动态密钥,读到的NFC数据自己主动串口输出,会串口就能开发NFC,不须要研究LLC ...

  5. BC26模组UDP调试

    BC26模组调试 数据上报AT流程 [15:33:46.819]收←◆ F1: 0000 0000 V0: 0000 0000 [0001] 00: 0006 000C 01: 0000 0000 U ...

  6. 异构智联Wi-Fi+蓝牙模组,连接快、准、稳!

    下班回家打开门,电灯.电视.空调.音响.电动窗帘.扫地机器人--一呼百应,有序开工,原本冰冷的房子立刻变成了温暖港湾.可以说,舒适便捷的智能设备已经完全融入了我们的生活中. 从单一场景.单一设备,到现 ...

  7. WiFi-ESP8266入门http(3-4)网页一键配网(1若为普通wifi直连 2若为西电网页认证自动网页post请求连接)+网页按钮灯控+MQTT通信

    网页一键配网(1若为普通wifi直连  2若为西电网页认证自动网页post请求连接)+网页按钮灯控+MQTT通信 工程连接:https://github.com/Dongvdong/ESP8266_H ...

  8. IPv4组播通信原理

    2011-05-08 21:21:14 标签:组播 vin_do,vin_do学习笔记,笔记 休闲 职场 摘自网络,感谢原作者 摘要: 本文试图成为学习TCP/IP网络组播技术的入门材料.文中介绍了组 ...

  9. 二维条码扫描模组在肯德基KFC的无纸化点餐解决方案

    在如今提倡节约资源的环境下,肯德基在品牌发展中,逐渐实现无纸化点餐,不仅节约了纸质点餐单,而且还具有节约资源的示范作用.而其中二维码扫描模组是这套无纸化点餐方案的重点,在整套设备中,加入二维码扫描模组 ...

  10. FreeSWITCH 增删模组

    今天在尝试FreeSWITCH新功能时,遇到一个问题,就是该功能所需要的模组没有加载,导致写了好久的代码不能看到效果,让人很是忧伤啊! 再此,将FS模组增删的方法记录下,以方便遇到同样问题的童鞋. 具 ...

随机推荐

  1. 并查集noi水题 (P1955 [NOI2015]程序自动分析)

    现将输入排序,把merge排在前面 ,避免冗余计算 1 n=rd(); 2 FOR(i,1,n) 3 { 4 s[i].x=rd(),a[++tot]=s[i].x, 5 s[i].y=rd(),a[ ...

  2. 万丈高楼平地起:UML类图

    UML类图 UML类图 是一种静态的结构图,描述了系统的类的集合,类的属性和类之间的关系,可以简化了人们对系统的理解.UML类图 是系统分析和设计阶段的重要产物,是系统编码和测试的重要模型. 图示 类 ...

  3. JWT(JSON WEB TOKEN)是玩具吗

    JWT当然不是玩具,理解其设计意图,和适用场景自然会发现存在的就是有价值的 JWT: JSON Web Token 起源和定义 JWT(JSON Web Token)是由 IETF(Internet ...

  4. Windows10使用MSYS2和VS2019编译FFmpeg详解

    1 环境准备 1.1 安装Visual Studio 2019 这个步骤相对比较简单,不再详细说明. 1.2 安装msys2 首先需要安装msys2环境以及相关的编译依赖项, 官方网址为: https ...

  5. Java面试集锦(一)

    计算机网络 摘要:1. 在浏览器中输入url地址 显示主页的过程,整个过程会使用哪些协议 image.jpeg总体来说分为以下几个过程: DNS解析 TCP连接 发送HTTP请求 服务器处理请求并返回 ...

  6. Flask 从开发到部署

    整理一下怎么开发flask程序应部署到生产环境中 1. 第一个flask 程序 myapp.py from flask import Flask app = Flask(__name__) @app. ...

  7. 官方 | 征集 Flutter 桌面端应用程序的构建案例

    亲爱的社区成员们,大家好! Google Flutter 团队希望了解开发者们使用 Flutter 构建的桌面端应用程序,以提高 Flutter 桌面端的测试覆盖率,邀请大家通过表单的形式提交征集和反 ...

  8. Libevent学习-源码下载和交叉编译,示例代码运行

    1. 官网 2. 交叉编译 我的当前环境 mips平台交叉编译说明 先解压下载后的libevent源码压缩包然后cd进入解压后的文件夹libevent-2.1.11-stable: <1. ./ ...

  9. auto` 作为返回值类型的一些限制

    在 C++ 中,auto 作为返回值类型有一些限制,这与类型推导的方式和时机有关. 虽然在很多场景下 auto 可以简化代码,但它不能直接用于函数返回类型,这是因为在编译时类型推导的机制不同于局部变量 ...

  10. JIT编译选项

    JIT(Just-In-Time)优化在编译过程中有多种编译选项可以支持,不同语言和平台可能有不同的实现.以通用的 JIT 编译器为例,以下是一些常见的编译选项: 编译级别(Compilation L ...