【花雕动手做】行空板K10系列实验读取MQTT发送光强消息

2025-03-104247
AI 快速预览详细 收起
本文介绍了如何使用行空板K10读取光强并通过MQTT发送消息。行空板K10是一款专为快速体验物联网和学习人工智能而设计的开发学习板,集成2.8寸LCD彩屏、WiFi蓝牙、摄像头、麦克风、扬声器、RGB指示灯、多种传感器及丰富的扩展接口。通过本文,孩子们可以轻松掌握编程和物联网技术,展示他们的创造力和成就感。
【花雕动手做】行空板K10系列实验读取MQTT发送光强消息图1

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

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


【花雕动手做】行空板K10系列实验读取MQTT发送光强消息图2

创作许可协议

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

评论(17)
驴友花雕
驴友花雕
作者

驴友花雕
驴友花雕
作者
查看消息图形波形

驴友花雕
驴友花雕
作者
查看接收到的消息

驴友花雕
驴友花雕
作者
登录 Siot 后台

驴友花雕
驴友花雕
作者

在手机端打开浏览器,输入服务器IP地址:192.168.28.178:8080
登录:账号:siot 密码:dfrobot

驴友花雕
驴友花雕
作者
实验场景图 动态图

驴友花雕
驴友花雕
作者
实验场景图 动态图


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


驴友花雕
驴友花雕
作者
代码解读
1、库的引入与对象创建
代码首先引入了两个库:DFRobot_Iot.h 用于Wi-Fi连接和MQTT通信,unihiker_k10.h 用于K10硬件控制。
创建了三个主要对象:screen_dir 定义屏幕方向,k10 用于操作K10功能,myIot 用于处理Wi-Fi连接和MQTT通信。
定义了两个静态常量数组:topics 用于存储MQTT主题,msgHandles 用于处理不同主题的消息回调函数。
2、初始化设置(setup 函数)
在 setup() 函数中,调用 k10.begin() 初始化K10硬件,配置屏幕方向,创建画布。
使用 myIot.wifiConnect("zhz3", "z6156721") 连接指定的Wi-Fi网络,通过 while (!myIot.wifiStatus()) {} 循环等待Wi-Fi连接成功。
成功连接后,使用 canvasText 方法在画布上显示Wi-Fi连接成功的信息和本机IP地址,然后调用 updateCanvas 刷新屏幕。
初始化MQTT连接参数,并通过 myIot.connect() 连接MQTT服务器,通过 while (!myIot.connected()) {} 循环等待MQTT连接成功。
成功连接后,使用 canvasText 方法在画布上显示MQTT连接成功的信息,然后调用 updateCanvas 刷新屏幕。
3、主循环处理(loop 函数)
每次 loop() 运行时,通过 myIot.publish(topics[0], k10.readALS()) 方法发布环境光强度的消息到主题 topics[0],然后延迟1秒。
事件回调函数
定义回调函数 obloqMqttEventTqguh5(String& message),用于处理接收到的MQTT消息。每当接收到消息时,使用 canvasText 方法在画布上显示环境光强度的信息,并调用 updateCanvas 刷新屏幕。
该代码展示了如何通过Wi-Fi连接网络并使用MQTT协议与Siot平台进行通信,同时在K10设备屏幕上显示连接状态和接收到的消息。这对于物联网设备的连接和数据通信非常有用。
驴友花雕
驴友花雕
作者
【花雕动手做】行空板K10系列实验之通过Siot物联网服务平台读取MQTT发送的光强消息
实验开源代码
[code]#include // 引入DFRobot_Iot库,用于Wi-Fi连接及MQTT通信
#include "unihiker_k10.h" // 引入UNIHIKER_K10库,用于控制行空板K10系列硬件,如屏幕显示、画布操作等
// 函数声明
void obloqMqttEventTqguh5(String& message); // 声明一个回调函数,用于处理MQTT接收到的消息
// 静态常量
const String topics[5] = {"K10/001","K10/002","","",""}; // 定义一个包含5个主题的静态常量数组,用于存储MQTT主题
const MsgHandleCb msgHandles[5] = {obloqMqttEventTqguh5,NULL,NULL,NULL,NULL}; // 定义一个包含5个回调函数的静态常量数组,用于处理不同主题的消息
// 创建对象
uint8_t screen_dir = 3; // 定义屏幕方向变量,设置为3
UNIHIKER_K10 k10; // 创建UNIHIKER_K10对象,用于操作行空板K10功能
DFRobot_Iot myIot; // 创建DFRobot_Iot对象,用于处理Wi-Fi连接及MQTT通信功能
// 主程序开始
void setup() {
k10.begin(); // 初始化k10硬件
myIot.setMqttCallback(msgHandles); // 设置MQTT回调函数数组
k10.initScreen(screen_dir); // 配置屏幕方向,参数为screen_dir
k10.creatCanvas(); // 创建并初始化画布,用于显示文本和图形
// 在画布上显示实验标题
k10.canvas->canvasText("行空板K10系列实验之MQTT", 3, 0xFF0000); // 显示实验标题,字体大小为3,颜色为红色(0xFF0000)
// 连接Wi-Fi网络
myIot.wifiConnect("zhz3", "z6156721"); // 调用myIot对象的wifiConnect方法,连接Wi-Fi网络,参数为SSID "zhz3"和密码 "z6156721"
// 等待Wi-Fi连接成功
while (!myIot.wifiStatus()) {}
// Wi-Fi连接成功后,显示相关信息
k10.canvas->canvasText("Wi-Fi 连接成功", 4, 0x0000FF); // 显示Wi-Fi连接成功提示,字体大小为4,颜色为蓝色(0x0000FF)
k10.canvas->canvasText((String("IP地址:") + String(myIot.getWiFiLocalIP())), 5, 0x0000FF); // 显示IP地址信息,字体大小为5,颜色为蓝色(0x0000FF)
k10.canvas->updateCanvas(); // 更新画布,将上面的文本刷新至屏幕上
// 初始化MQTT连接
myIot.init("192.168.28.178","siot","5334955888049981","dfrobot", topics, 1883); // 初始化MQTT连接参数,包含服务器地址、客户端ID、用户名、密码、主题数组及端口号
myIot.connect(); // 连接MQTT服务器
// 等待MQTT连接成功
while (!myIot.connected()) {}
// MQTT连接成功后,显示相关信息
k10.canvas->canvasText("Siot 平台搭建成功", 6, 0x0000FF); // 显示MQTT连接成功提示,字体大小为6,颜色为蓝色(0x0000FF)
k10.canvas->updateCanvas(); // 更新画布,将上面的文本刷新至屏幕上
}
void loop() {
myIot.publish(topics[0], k10.readALS()); // 发布环境光强度的消息到主题topics[0]
delay(1000); // 延迟1秒,等待下一个循环
}
// 事件回调函数
void obloqMqttEventTqguh5(String& message) {
// 当接收到消息时,在画布上显示环境光强度的信息
k10.canvas->canvasText((String("读取消息-环境光强度:") + String(message)), 7, 0xFF6666); // 显示接收到的消息内容,字体大小为7,颜色为粉红色(0xFF6666)
k10.canvas->updateCanvas(); // 更新画布,将上面的文本刷新至屏幕上
}[/code]
驴友花雕
驴友花雕
作者
三、关闭防火墙

驴友花雕
驴友花雕
作者
二、启动siot


驴友花雕
驴友花雕
作者
一、下载siot:https://mindplus.dfrobot.com.cn/siot
SIoT为一个为中小学STEM教育定制的跨平台的开源MQTT服务器程序,S指科学(Science)、简单(Simple)的意思。SIoT支持Win10、Win7、Mac、Linux等操作系统,支持虚谷号、树莓派等迷你电脑,一键启动,无需注册和设置即可使用。

驴友花雕
驴友花雕
作者
知识点:Siot 平台
SIoT(Simple Internet of Things)平台是一个开源的、跨平台的MQTT服务器程序,专为教育和物联网应用设计。以下是关于SIoT平台的关键知识点:
1. 基本概念
SIoT:全称为Simple Internet of Things,旨在简化物联网设备之间的通信和数据传输。
MQTT协议:SIoT平台基于MQTT协议,采用发布/订阅模式,适用于资源受限的设备和网络环境。
2. 特点
跨平台:支持多种操作系统,包括Windows、Mac、Linux等。
一键启动:无需复杂的配置和安装,下载解压后即可使用。
开源免费:SIoT平台是开源的,用户可以自由下载、使用和修改。
易于使用:适合中小学物联网技术教学,帮助学生理解物联网原理并开发创意应用。
3. 工作原理
发布/订阅模式:设备通过主题(Topic)进行消息的发布和订阅,消息代理(Broker)负责接收和转发消息。
数据存储:支持SQLite和MySQL数据库,所有物联网消息数据都可以在线导出。
4. 应用场景
教育:帮助中小学生理解物联网原理,进行物联网项目开发。
智能家居:连接和控制智能家居设备,实现自动化和远程控制。
环境监测:收集和分析环境数据,如温度、湿度、空气质量等。
5. 安装与配置
下载与安装:从官方渠道下载SIoT平台,解压后运行即可使用。
配置:通过浏览器访问SIoT管理页面,进行主题和设备的配置。

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

驴友花雕
驴友花雕
作者
辅助:屏幕显示相关积木

驴友花雕
驴友花雕
作者
网络服务 MQTT相关积木

网络服务 Wi-Fi 相关积木

- 没有更多了 -