驴友花雕 发表于 2025-3-12 10:36:08

【花雕动手做】行空板K10系列实验之搭建OneNET物联网平台



行空板K10是一款专为快速体验物联网和学习人工智能而设计的开发学习板,100%采用国产芯片,知识产权自主可控,符合信息科技课程中编程学习、物联网及人工智能等教学需求。该板集成2.8寸LCD彩屏、WiFi蓝牙、摄像头、麦克风、扬声器、RGB指示灯、多种传感器及丰富的扩展接口。凭借高度集成的板载资源,教学过程中无需额外连接其他设备,便可轻松实现传感器控制、物联网应用以及人脸识别、语音识别、语音合成等AI人工智能项目。

主要特点
集成摄像头&内置算法,可进行离线图像检测
集成麦克风&内置算法,可进行离线语音识别
集成扬声器&内置算法,可进行离线语音合成
2.8寸彩色屏幕,数据展示更清晰
集成度高,利于教学
接口丰富,兼容软件多,扩展性好。



驴友花雕 发表于 2025-3-12 10:55:41

【花雕动手做】行空板K10系列实验之搭建OneNET物联网平台

知识点:MQTT

MQTT(Message Queuing Telemetry Transport)是一种轻量级的、基于发布/订阅模式的消息传输协议,广泛应用于物联网(IoT)设备之间的数据通信。以下是一些关于MQTT的关键知识点:
1. 基本概念
发布/订阅模式:MQTT 采用发布/订阅的消息传输方式。设备可以向主题发布消息(发布者),也可以订阅主题来接收消息(订阅者)。
主题(Topic):主题是消息的分类标签,发布者和订阅者通过主题进行消息的传递和接收。主题结构类似目录路径,如 home/livingroom/temperature。
消息代理(Broker):MQTT 代理是服务器,负责接收发布者发送的消息并将其转发给相应的订阅者。

2. 特点
轻量级:MQTT 设计非常轻量,适用于资源受限的设备,如嵌入式系统和传感器。
低带宽需求:由于消息头部较小,MQTT 非常适合网络带宽有限的环境。
可靠性:MQTT 提供三种服务质量(QoS)级别,确保消息的可靠传输:
QoS 0:最多一次(消息可能丢失或重复)
QoS 1:至少一次(消息可能重复)
QoS 2:只有一次(确保消息不丢失且不重复)

3. 工作原理
连接建立:客户端与 MQTT 代理建立连接。
消息发布:发布者向代理发送消息,并指定消息的主题。
消息转发:代理将消息转发给所有订阅了该主题的客户端。
连接断开:客户端与代理断开连接。

4. 常见应用场景
物联网设备通信:用于传感器数据收集、设备状态监控和控制指令发送。
智能家居:用于连接智能家居设备,实现设备之间的数据交互和控制。
远程监控:用于远程监控和控制工业设备、环境参数等。

5. 安全性
身份验证:通过用户名和密码进行客户端身份验证。
加密通信:使用 TLS/SSL 加密客户端与代理之间的通信,确保数据传输的安全性。
访问控制:使用访问控制列表(ACL)控制客户端对主题的发布和订阅权限。

6. 实现方式
客户端库:许多编程语言(如 Python、C、JavaScript 等)都有 MQTT 客户端库,方便开发者使用。
代理软件:常见的 MQTT 代理软件有 Mosquitto、HiveMQ、EMQ X 等,提供强大的消息传输和管理功能。



驴友花雕 发表于 2025-3-12 11:00:27

【花雕动手做】行空板K10系列实验之搭建OneNET物联网平台

知识点:OneNET平台

OneNET平台是中国移动推出的物联网开放平台,旨在帮助开发者和企业用户轻松实现设备接入与设备连接,提供综合性的物联网解决方案。

1、平台概述:

OneNET平台支持多种协议(如MQTT、CoAP、HTTP、LwM2M等)和多种设备类型的接入。

平台提供设备管理、数据存储、数据分析和可视化等功能。

2、主要功能:

设备管理: 提供设备状态监控、远程升级、SIM卡信息管理等服务。

数据分析: 提供全域数据集成、统一数据管理、图形化数据任务编排等功能,帮助客户提升数据价值。

消息服务: 提供低时延、高并发的消息中间件,保障应用平台与OneNET数据交互的即时可靠性。

位置服务: 提供智能硬件定位、轨迹查询及快速的地图展示应用服务。

3、应用场景:

智慧城市: OneNET平台可用于构建城市物联网平台,支持市政、能源、公共安全、环保、消防、交通等多个行业的感知终端接入。

工业物联网: 面向制造业数字化、网络化、智能化需求,提供基于海量数据采集、汇聚、分析的工业物联网服务体系。

智能家居: 提供智能家居场景下的设备接入和控制,如灯、开关、门锁、空气净化器等。

4、开发支持:

OneNET平台提供易读、易用的开发文档,帮助开发者快速上手。

平台还提供丰富的SDK和API,支持多种协议和设备的快速接入。



驴友花雕 发表于 2025-3-12 16:24:28

【花雕动手做】行空板K10系列实验之搭建OneNET物联网平台

打开OneNET平台
网址:https://open.iot.10086.cn/



驴友花雕 发表于 2025-3-12 16:31:41

【花雕动手做】行空板K10系列实验之搭建OneNET物联网平台

注册,登录,通过实名认证



驴友花雕 发表于 2025-3-12 16:35:42

【花雕动手做】行空板K10系列实验之搭建OneNET物联网平台

进入个人平台



驴友花雕 发表于 2025-3-12 16:36:57

【花雕动手做】行空板K10系列实验之搭建OneNET物联网平台

创建产品




驴友花雕 发表于 2025-3-12 16:39:04

【花雕动手做】行空板K10系列实验之搭建OneNET物联网平台

设备接入


驴友花雕 发表于 2025-3-12 16:45:57

【花雕动手做】行空板K10系列实验之搭建OneNET物联网平台

添加设备





驴友花雕 发表于 2025-3-12 17:03:07

【花雕动手做】行空板K10系列实验之搭建OneNET物联网平台

设备ID为100001




驴友花雕 发表于 2025-3-12 17:31:28

【花雕动手做】行空板K10系列实验之搭建OneNET物联网平台

至此,取得OneNET平台的初始化参数


驴友花雕 发表于 2025-3-12 17:41:33

【花雕动手做】行空板K10系列实验之搭建OneNET物联网平台

【花雕动手做】行空板K10系列实验之MQTT网络服务搭建OneNET平台连接物联网
实验开源代码

#include <DFRobot_Iot.h>
#include "unihiker_k10.h"

// 静态常量
const String topics = {"qUOAwGhNR", "", "", "", ""};
// 定义一个包含五个字符串的数组,用于存储 MQTT 话题

// 创建对象
UNIHIKER_K10 k10; // 创建 UNIHIKER_K10 类的对象 行空板k10
uint8_t screen_dir = 3; // 定义一个无符号 8 位整数,用于设置屏幕方向
DFRobot_Iot myIot; // 创建 DFRobot_Iot 类的对象 myIot,用于处理 IoT 功能

// 主程序开始
void setup() {
    k10.begin(); // 初始化 K10 模块
    k10.initScreen(screen_dir); // 使用屏幕方向初始化屏幕
    k10.creatCanvas(); // 创建绘图画布
    k10.setScreenBackground(0xFFFFFF); // 将画布背景颜色设置为白色
    k10.canvas->canvasText("行空板K10系列实验之MQTT", 3, 0xFF0000); // 在画布上以红色显示文本
   
    myIot.wifiConnect("zhz3", "z6156721"); // 连接到 Wi-Fi 网络
    while (!myIot.wifiStatus()) {} // 等待 Wi-Fi 连接成功
   
    k10.canvas->canvasText("Wi-Fi 连接成功", 5, 0x0000FF); // 以蓝色显示 Wi-Fi 连接成功消息
    k10.canvas->canvasText((String("IP地址:") + String(myIot.getWiFiLocalIP())), 6, 0x0000FF); // 以蓝色显示本地 IP 地址
    k10.canvas->updateCanvas(); // 更新画布以显示更改
   
    myIot.init("mqtt.heclouds.com", "T1t86iaVTg", "100001", "FUHjl9sp1bVZPZvRReHLA1Hh23nvl1PF38U7BVsNGWM=", topics, 6002); // 初始化 MQTT 客户端并连接到 OneNET 平台
    myIot.connect(); // 连接到 MQTT 服务器
    while (!myIot.connected()) {} // 等待 MQTT 连接成功
   
    k10.canvas->canvasText("OneNET 平台搭建成功!", 7, 0xFF6666); // 以粉红色显示 OneNET 平台搭建成功消息
    k10.canvas->updateCanvas(); // 更新画布以显示更改
}

void loop() {
    // 主循环(当前为空)
    // 此处可以添加需要循环执行的代码
}


驴友花雕 发表于 2025-3-12 17:47:03

【花雕动手做】行空板K10系列实验之搭建OneNET物联网平台

代码解读
这段代码是为 UNIHIKER K10 行空板编写的,它利用 Wi-Fi 连接和 MQTT 协议与 OneNET 平台通信。

1、导入库和定义常量:

#include <DFRobot_Iot.h>

#include "unihiker_k10.h"

const String topics = {"qUOAwGhNR","","","",""};
DFRobot_Iot.h 和 unihiker_k10.h 是该代码所需的库,用于处理 IoT 功能和 K10 模块。

定义了一个包含 5 个字符串的数组 topics,用于 MQTT 话题。

2、创建对象:


UNIHIKER_K10 k10;

uint8_t screen_dir=3;

DFRobot_Iot myIot;
创建 UNIHIKER_K10 类的对象 k10,用于操作 K10 模块。

定义一个无符号 8 位整数 screen_dir,用来设置屏幕方向。

创建 DFRobot_Iot 类的对象 myIot,用于处理 IoT 功能。

3、主程序开始:


void setup() {

    k10.begin();

    k10.initScreen(screen_dir);

    k10.creatCanvas();

    k10.setScreenBackground(0xFFFFFF);

    k10.canvas->canvasText("行空板K10系列实验之MQTT", 3, 0xFF0000);

    myIot.wifiConnect("zhz3", "zy156721");

    while (!myIot.wifiStatus()) {}

    k10.canvas->canvasText("Wi-Fi 连接成功", 5, 0x0000FF);

    k10.canvas->canvasText((String("IP地址:") + String(myIot.getWiFiLocalIP())), 6, 0x0000FF);

    k10.canvas->updateCanvas();

    myIot.init("mqtt.heclouds.com","T1t86iaVTg","100001","FUHjl9sp1bVZPZvRReHLA1Hh23nvl1PF38U7BVsNGWM=",topics,6002);

    myIot.connect();

    while (!myIot.connected()) {}

    k10.canvas->canvasText("OneNET 平台搭建成功!", 7, 0xFF6666);

    k10.canvas->updateCanvas();

}
setup 函数在程序启动时执行一次。

k10.begin() 初始化 K10 模块。

k10.initScreen(screen_dir) 以指定方向初始化屏幕。

k10.creatCanvas() 创建一个画布。

k10.setScreenBackground(0xFFFFFF) 将画布背景颜色设置为白色。

k10.canvas->canvasText("行空板K10系列实验之MQTT", 3, 0xFF0000) 在画布上以红色显示文本。

myIot.wifiConnect("zhz3", "zy156721") 连接到 Wi-Fi 网络。

while (!myIot.wifiStatus()) {} 等待 Wi-Fi 连接成功。

k10.canvas->canvasText("Wi-Fi 连接成功", 5, 0x0000FF) 在画布上以蓝色显示 Wi-Fi 连接成功消息。

k10.canvas->canvasText((String("IP地址:") + String(myIot.getWiFiLocalIP())), 6, 0x0000FF) 显示本地 IP 地址。

k10.canvas->updateCanvas() 更新画布以显示更改。

myIot.init(...) 初始化 MQTT 客户端并连接到 OneNET 平台。

myIot.connect() 连接到 MQTT 服务器。

while (!myIot.connected()) {} 等待 MQTT 连接成功。

k10.canvas->canvasText("OneNET 平台搭建成功!", 7, 0xFF6666) 在画布上以粉红色显示 OneNET 平台搭建成功消息。

k10.canvas->updateCanvas() 更新画布以显示更改。

4、主循环:


void loop() {

    // 目前为空

}
loop 函数是主循环,会不断执行。当前未定义任何操作。

这个程序的总体流程是初始化硬件和网络连接,然后在屏幕上显示连接状态和 IP 地址信息,并建立 MQTT 连接。

驴友花雕 发表于 2025-3-12 17:50:50

【花雕动手做】行空板K10系列实验之搭建OneNET物联网平台

Mind+图形编程


驴友花雕 发表于 2025-3-12 18:20:18

【花雕动手做】行空板K10系列实验之搭建OneNET物联网平台

实验场景图(OneNET平台未搭建成功)


驴友花雕 发表于 2025-3-12 18:26:03

【花雕动手做】行空板K10系列实验之搭建OneNET物联网平台

关于秘钥,尝试了设备秘钥和用户Accesskey,初步分析,是Apikey的问题


页: [1]
查看完整版本: 【花雕动手做】行空板K10系列实验之搭建OneNET物联网平台