20浏览
查看: 20|回复: 14

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

[复制链接]
【花雕动手做】行空板K10系列实验之搭建OneNET物联网平台图1

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

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

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

驴友花雕  中级技神
 楼主|

发表于 7 小时前

【花雕动手做】行空板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 等,提供强大的消息传输和管理功能。

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

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 7 小时前

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

知识点:OneNET平台

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

1、平台概述:

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

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

2、主要功能:

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

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

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

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

3、应用场景:

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

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

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

4、开发支持:

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

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

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

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 1 小时前

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

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

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

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 1 小时前

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

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

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

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 1 小时前

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

进入个人平台

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

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 1 小时前

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

创建产品

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

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

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 1 小时前

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

设备接入

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

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 1 小时前

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

添加设备

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


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 1 小时前

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

设备ID为100001

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

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 半小时前

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

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

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

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 半小时前

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

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

  1. #include <DFRobot_Iot.h>
  2. #include "unihiker_k10.h"
  3. // 静态常量
  4. const String topics[5] = {"qUOAwGhNR", "", "", "", ""};
  5. // 定义一个包含五个字符串的数组,用于存储 MQTT 话题
  6. // 创建对象
  7. UNIHIKER_K10 k10; // 创建 UNIHIKER_K10 类的对象 行空板k10
  8. uint8_t screen_dir = 3; // 定义一个无符号 8 位整数,用于设置屏幕方向
  9. DFRobot_Iot myIot; // 创建 DFRobot_Iot 类的对象 myIot,用于处理 IoT 功能
  10. // 主程序开始
  11. void setup() {
  12.     k10.begin(); // 初始化 K10 模块
  13.     k10.initScreen(screen_dir); // 使用屏幕方向初始化屏幕
  14.     k10.creatCanvas(); // 创建绘图画布
  15.     k10.setScreenBackground(0xFFFFFF); // 将画布背景颜色设置为白色
  16.     k10.canvas->canvasText("行空板K10系列实验之MQTT", 3, 0xFF0000); // 在画布上以红色显示文本
  17.    
  18.     myIot.wifiConnect("zhz3", "z6156721"); // 连接到 Wi-Fi 网络
  19.     while (!myIot.wifiStatus()) {} // 等待 Wi-Fi 连接成功
  20.    
  21.     k10.canvas->canvasText("Wi-Fi 连接成功", 5, 0x0000FF); // 以蓝色显示 Wi-Fi 连接成功消息
  22.     k10.canvas->canvasText((String("IP地址:") + String(myIot.getWiFiLocalIP())), 6, 0x0000FF); // 以蓝色显示本地 IP 地址
  23.     k10.canvas->updateCanvas(); // 更新画布以显示更改
  24.    
  25.     myIot.init("mqtt.heclouds.com", "T1t86iaVTg", "100001", "FUHjl9sp1bVZPZvRReHLA1Hh23nvl1PF38U7BVsNGWM=", topics, 6002); // 初始化 MQTT 客户端并连接到 OneNET 平台
  26.     myIot.connect(); // 连接到 MQTT 服务器
  27.     while (!myIot.connected()) {} // 等待 MQTT 连接成功
  28.    
  29.     k10.canvas->canvasText("OneNET 平台搭建成功!", 7, 0xFF6666); // 以粉红色显示 OneNET 平台搭建成功消息
  30.     k10.canvas->updateCanvas(); // 更新画布以显示更改
  31. }
  32. void loop() {
  33.     // 主循环(当前为空)
  34.     // 此处可以添加需要循环执行的代码
  35. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 半小时前

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

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

1、导入库和定义常量:

  1. #include <DFRobot_Iot.h>
  2. #include "unihiker_k10.h"
  3. const String topics[5] = {"qUOAwGhNR","","","",""};
复制代码

DFRobot_Iot.h 和 unihiker_k10.h 是该代码所需的库,用于处理 IoT 功能和 K10 模块。

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

2、创建对象:


  1. UNIHIKER_K10 k10;
  2. uint8_t screen_dir=3;
  3. DFRobot_Iot myIot;
复制代码

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

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

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

3、主程序开始:


  1. void setup() {
  2.     k10.begin();
  3.     k10.initScreen(screen_dir);
  4.     k10.creatCanvas();
  5.     k10.setScreenBackground(0xFFFFFF);
  6.     k10.canvas->canvasText("行空板K10系列实验之MQTT", 3, 0xFF0000);
  7.     myIot.wifiConnect("zhz3", "zy156721");
  8.     while (!myIot.wifiStatus()) {}
  9.     k10.canvas->canvasText("Wi-Fi 连接成功", 5, 0x0000FF);
  10.     k10.canvas->canvasText((String("IP地址:") + String(myIot.getWiFiLocalIP())), 6, 0x0000FF);
  11.     k10.canvas->updateCanvas();
  12.     myIot.init("mqtt.heclouds.com","T1t86iaVTg","100001","FUHjl9sp1bVZPZvRReHLA1Hh23nvl1PF38U7BVsNGWM=",topics,6002);
  13.     myIot.connect();
  14.     while (!myIot.connected()) {}
  15.     k10.canvas->canvasText("OneNET 平台搭建成功!", 7, 0xFF6666);
  16.     k10.canvas->updateCanvas();
  17. }
复制代码

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、主循环:


  1. void loop() {
  2.     // 目前为空
  3. }
复制代码

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

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

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 29 分钟前

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

Mind+图形编程

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

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 23 秒前

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

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

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail