1. MQTT

本节将通过MQTT通讯,实现用鲁班猫上传数据到云平台。

1.1. MQTT介绍

MQTT是一种基于发布/订阅模式的轻量级消息传输协议,它专为物联网(IoT)设计,用于实现设备之间以及设备与服务器之间的数据通信。 在MQTT协议中,消息通过主题(Topic)进行分类和路由,发布者(Publisher)将消息发布到指定的主题上,而订阅者(Subscriber)则 通过订阅这些主题来接收消息。这种发布/订阅模式使得消息发布者和接收者之间实现了松散的耦合,从而提高了系统的可扩展性和灵活性。

1.2. 涂鸦智能云平台

1.2.1. 平台介绍

涂鸦开发者平台 致力于打造互联互通的物联网开发标准,连接品牌、OEM 厂商、开发者、零售商和各行业的智能化需求。 基于全球化部署的公有云,涂鸦开发者平台实现了智慧场景和智能设备的互联互通,承载着每日数以亿计的设备请求交互。 平台服务涵盖硬件开发工具、App 开发工具、物联网云服务和智慧行业开发,为开发者提供从技术到营销渠道的全面赋能。

本次将演示如何使用鲁班猫上传数据到涂鸦智能云平台,并使用涂鸦智能提供的APP查看数据。

1.2.2. 产品创建

下面将介绍如何在涂鸦云平台上创建设备。进入涂鸦开发者平台:https://platform.tuya.com/,点击“创建产品”:

../../_images/show-operation-tuya-create-device-01.png
../../_images/show-operation-tuya-create-device-02.png
../../_images/show-operation-tuya-create-device-03.png
../../_images/show-operation-tuya-create-device-04.png
../../_images/show-operation-tuya-create-device-05.png
../../_images/show-operation-tuya-create-device-06.png
../../_images/show-operation-tuya-create-device-07.png
../../_images/show-operation-tuya-create-device-08.png

1.2.3. 设备开发

../../_images/show-operation-tuya-device-develop-01.png
../../_images/show-operation-tuya-device-develop-02.png
../../_images/show-operation-tuya-device-develop-03.png
../../_images/show-operation-tuya-device-develop-04.png
../../_images/show-operation-tuya-device-develop-05.png
../../_images/show-operation-tuya-device-develop-06.png

1.2.4. 手机APP绑定

../../_images/show-operation-tuya-app-create-01.png
../../_images/show-operation-tuya-app-create-02.png

1.2.5. APP下载

下载“智能生活”APP:

../../_images/show-operation-tuya-app-download-01.png

1.2.6. APP扫码绑定设备

打开“智能生活”APP,使用与涂鸦智能云平台相同的手机号登录,并扫码绑定设备:

../../_images/show-operation-tuya-app-bind-dev-01.png
../../_images/show-operation-tuya-app-bind-dev-02.png

1.3. 实验操作

1.3.1. 获取程序

测试代码位于lubancat_rk_code_storage/expansion_board/mqtt,将mqtt整个文件夹拷贝到板卡。

1.3.2. python代码测试

python测试代码为:lubancat_rk_code_storage/expansion_board/mqtt/python/main.py

将程序中使用的DeviceID和deviceSecret替换成自己的:

1
2
cd python
vi main.py
1
2
3
4
''' main.py '''

DeviceID = '2632d4478100fda674lxlu'         # 替换成自己的DeviceID
DeviceSecret = 'qxZS1LhriSGzzqiE'           # 替换成自己的DeviceSecret

可以自行修改待上传的温度值和led开关值:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
''' main.py '''

...

# 上报的温度值
temp_value = 35
# 上报的LED开关值
led_value = 1

...

执行如下命令运行程序

1
sudo python main.py

手机APP查看数据:

../../_images/show-operation-tuya-app-disp-01.png
../../_images/show-operation-tuya-app-disp-02.png

1.3.3. c代码测试

c测试代码为:lubancat_rk_code_storage/expansion_board/mqtt/c/main.c

执行如下命令安装程序所需要的相关库:

1
2
sudo apt update
sudo apt install libssl-dev

将程序中使用的DeviceID和deviceSecret替换成自己的:

1
2
cd c
vi main.c
1
2
3
4
// main.c

#define TUYA_DEVICE_ID        "2632d4478100fda674lxlu"      // 替换成自己的DeviceID
#define TUYA_DEVICE_SECRET    "qxZS1LhriSGzzqiE"            // 替换成自己的DeviceSecret

可以自行修改待上传的温度值和led开关值:

1
2
3
4
5
6
7
8
// main.c

...

#define TEMP_VALUE   "35"  // 上报的温度值
#define LED_VALUE    "1"   // 上报的LED开关值

...

执行如下命令编译运行程序

1
2
make
sudo ./main

手机APP查看数据:

../../_images/show-operation-tuya-app-disp-02.png