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

2025-03-124870
AI 快速预览详细 收起
行空板K10是一款专为快速体验物联网和学习人工智能而设计的开发学习板,集成2.8寸LCD彩屏、WiFi蓝牙、摄像头、麦克风、扬声器、RGB指示灯及多种传感器。该板支持离线图像检测和语音识别,适用于编程学习、物联网及人工智能教学。通过本实验,学生可以轻松实现物联网应用,无需额外设备。
【花雕动手做】行空板K10系列实验之搭建OneNET物联网平台图1

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

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

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

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(15)
驴友花雕
驴友花雕
作者
关于秘钥,尝试了设备秘钥和用户Accesskey,初步分析,是Apikey的问题

驴友花雕
驴友花雕
作者
实验场景图 (OneNET平台未搭建成功)

驴友花雕
驴友花雕
作者
Mind+图形编程

驴友花雕
驴友花雕
作者
代码解读
这段代码是为 UNIHIKER K10 行空板编写的,它利用 Wi-Fi 连接和 MQTT 协议与 OneNET 平台通信。
1、导入库和定义常量:
[code]#include
#include "unihiker_k10.h"
const String topics[5] = {"qUOAwGhNR","","","",""};[/code]
DFRobot_Iot.h 和 unihiker_k10.h 是该代码所需的库,用于处理 IoT 功能和 K10 模块。
定义了一个包含 5 个字符串的数组 topics,用于 MQTT 话题。
2、创建对象:
[code]UNIHIKER_K10 k10;
uint8_t screen_dir=3;
DFRobot_Iot myIot;[/code]
创建 UNIHIKER_K10 类的对象 k10,用于操作 K10 模块。
定义一个无符号 8 位整数 screen_dir,用来设置屏幕方向。
创建 DFRobot_Iot 类的对象 myIot,用于处理 IoT 功能。
3、主程序开始:
[code]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();
}[/code]
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、主循环:
[code]void loop() {
// 目前为空
}[/code]
loop 函数是主循环,会不断执行。当前未定义任何操作。
这个程序的总体流程是初始化硬件和网络连接,然后在屏幕上显示连接状态和 IP 地址信息,并建立 MQTT 连接。
驴友花雕
驴友花雕
作者
【花雕动手做】行空板K10系列实验之MQTT网络服务搭建OneNET平台连接物联网
实验开源代码
[code]#include
#include "unihiker_k10.h"
// 静态常量
const String topics[5] = {"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() {
// 主循环(当前为空)
// 此处可以添加需要循环执行的代码
}
[/code]
驴友花雕
驴友花雕
作者
至此,取得OneNET平台的初始化参数

驴友花雕
驴友花雕
作者
设备ID为100001


驴友花雕
驴友花雕
作者
添加设备


驴友花雕
驴友花雕
作者
设备接入

驴友花雕
驴友花雕
作者
创建产品


驴友花雕
驴友花雕
作者
进入个人平台

驴友花雕
驴友花雕
作者
注册,登录,通过实名认证


驴友花雕
驴友花雕
作者
打开OneNET平台
网址:https://open.iot.10086.cn/

驴友花雕
驴友花雕
作者
知识点:OneNET平台
OneNET平台是中国移动推出的物联网开放平台,旨在帮助开发者和企业用户轻松实现设备接入与设备连接,提供综合性的物联网解决方案。
1、平台概述:
OneNET平台支持多种协议(如MQTT、CoAP、HTTP、LwM2M等)和多种设备类型的接入。
平台提供设备管理、数据存储、数据分析和可视化等功能。
2、主要功能:
设备管理: 提供设备状态监控、远程升级、SIM卡信息管理等服务。
数据分析: 提供全域数据集成、统一数据管理、图形化数据任务编排等功能,帮助客户提升数据价值。
消息服务: 提供低时延、高并发的消息中间件,保障应用平台与OneNET数据交互的即时可靠性。
位置服务: 提供智能硬件定位、轨迹查询及快速的地图展示应用服务。
3、应用场景:
智慧城市: OneNET平台可用于构建城市物联网平台,支持市政、能源、公共安全、环保、消防、交通等多个行业的感知终端接入。
工业物联网: 面向制造业数字化、网络化、智能化需求,提供基于海量数据采集、汇聚、分析的工业物联网服务体系。
智能家居: 提供智能家居场景下的设备接入和控制,如灯、开关、门锁、空气净化器等。
4、开发支持:
OneNET平台提供易读、易用的开发文档,帮助开发者快速上手。
平台还提供丰富的SDK和API,支持多种协议和设备的快速接入。

驴友花雕
驴友花雕
作者
知识点: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 等,提供强大的消息传输和管理功能。

- 没有更多了 -