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

网络服务 NTP 授时积木
网络服务 Wi-Fi 相关积木

辅助:屏幕显示相关积木

知识点:Wi-Fi
Wi-Fi(无线保真)是一种允许设备通过无线电波连接到互联网的技术。以下是一些关于Wi-Fi的关键知识点:
1、基本概念
无线局域网(WLAN):Wi-Fi 技术基于无线局域网 (WLAN),通过无线电波在有限的区域内传输数据。
频段:常用的 Wi-Fi 频段有2.4GHz 和5GHz,5GHz 频段提供更快的速度,但覆盖范围较小;2.4GHz 频段则覆盖范围较大,但速度相对较慢。
2、主要标准
Wi-Fi 有多个版本,每个版本在速度和覆盖范围上都有不同的性能:
802.11b:2.4GHz 频段,最大传输速度为11 Mbps。
802.11g:2.4GHz 频段,最大传输速度为54 Mbps。
802.11n:2.4GHz 和5GHz 频段,最大传输速度为600 Mbps。
802.11ac:5GHz 频段,最大传输速度可达到1Gbps 以上。
802.11ax(Wi-Fi 6):2.4GHz 和5GHz 频段,支持更高的速度和更大的设备连接数。
3、Wi-Fi 的工作原理
接入点(AP):Wi-Fi 网络的核心组件,用于发送和接收无线信号,通常为路由器。
客户端设备:例如智能手机、电脑、平板电脑等,通过无线网络适配器连接到接入点。
数据传输:无线电波在接入点和客户端设备之间传输数据,通过SSID(服务集标识符)和安全协议(如 WPA2)进行连接和加密。
4、安全与加密
WEP:一种较早的加密标准,安全性较低,易被破解。
WPA/WPA2:较新的加密标准,WPA2 是目前广泛使用的加密协议,安全性更高。
WPA3:最新的加密协议,提供更强大的安全性和易用性。
5、Wi-Fi 的应用
Wi-Fi 广泛应用于家庭、办公、公共场所等环境,提供无线互联网连接:
家庭网络:用于连接智能家居设备、智能电视等。
办公网络:用于企业内部的无线连接,提高办公效率。
公共热点:例如咖啡店、机场等,为用户提供免费或付费的无线连接服务。
6、常见问题与解决方法
信号弱:检查路由器位置,避免放置在金属物品或墙壁后面,可以使用Wi-Fi中继器或Mesh网络增强信号。
连接不稳定:检查是否有设备过多,导致网络拥堵,尝试重启路由器或更换频段。
慢速:确保路由器和设备支持最新的Wi-Fi标准,检查是否有网络干扰或带宽被占用。

知识点:NTP网络授时
NTP 即网络时间协议(Network Time Protocol),是一种用于在计算机网络中同步时钟的协议,以下从主要特点、工作原理、应用场景等方面进行详细介绍:
1、定义与基本信息
NTP 属于应用层协议,基于 UDP(用户数据报协议)传输,使用 UDP 端口号 123。它的设计目标是使网络中的各个计算机保持时间同步,将所有计算机的时间同步到一个统一的时间基准上,其时间精度在局域网内可达亚毫秒级,在广域网中通常能达到几十毫秒的精度。
2、主要特点
高精度:通过复杂的算法和同步机制,NTP 能够实现较高的时间同步精度,满足大多数网络应用对时间准确性的要求。
稳定性:具有良好的稳定性,能够在不同的网络环境和系统负载下保持时间同步的可靠性,确保时间信息的准确传递和系统的稳定运行。
分层架构:采用分层的时间同步体系,将时间服务器组织成不同的层级,形成一个树形结构。顶层是权威时间源,如原子钟或 GPS 时钟,底层是普通的客户端。这种架构使得 NTP 能够适应大规模的网络环境,实现高效的时间同步。
可扩展性:协议具有良好的可扩展性,能够方便地添加新的功能和特性,以适应不断变化的网络需求和技术发展。
3、工作原理
NTP 客户端向 NTP 服务器发送时间请求报文,服务器接收到请求后,会在报文中填入当前的时间戳并返回给客户端。客户端根据接收到的时间戳和本地时间计算出时间偏移量,从而调整本地时钟。为了提高精度,NTP 还会考虑网络延迟等因素,采用多种算法对时间进行校准。
4、应用场景
金融领域:在银行系统、证券交易等金融业务中,时间的准确性至关重要。如股票交易的时间戳用于记录交易顺序和确定交易价格,时间不同步可能导致交易记录混乱、价格不一致等问题,影响市场的公平性和稳定性。
电信行业:通信网络中的各种设备需要精确的时间同步来保证信号的传输、交换和处理的准确性。如在 CDMA、GSM 等移动通信系统中,基站之间需要精确同步,以避免信号干扰,确保用户通话质量和数据传输的稳定性。
分布式系统:在云计算、大数据处理等分布式系统中,多个节点之间需要进行协同工作,时间同步能够保证数据的一致性和操作的顺序性。如分布式数据库中的事务处理,需要准确的时间戳来确保数据的更新顺序正确,避免数据冲突和不一致。
工业自动化:在工业生产过程中,各种自动化设备和控制系统需要精确的时间同步,以实现生产流程的协调和监控。如汽车制造生产线中的机器人操作、流水线的启停控制等,时间同步能够保证生产过程的准确性和高效性,提高产品质量和生产效率。
5、需要注意的事项
网络延迟:网络延迟可能会对时间同步的精度产生影响,在跨广域网进行时间同步时,需要考虑网络延迟的变化,采用合适的算法进行补偿。
服务器可靠性:NTP 服务器的可靠性直接影响时间同步的效果,应选择可靠的 NTP 服务器,并建立备份服务器,以防止单点故障。
安全问题:NTP 通信可能会受到网络攻击,如时间欺骗、拒绝服务攻击等,需要采取相应的安全措施,如使用认证机制、加密传输等,以确保时间同步的安全性和准确性。

【花雕动手做】行空板K10系列实验之网络服务动态时钟授时并屏幕显示日期与时间
实验开源代码
#include <DFRobot_Iot.h> // 引入DFRobot_Iot库,用于Wi-Fi连接及相关物联网功能
#include "unihiker_k10.h" // 引入UNIHIKER_K10库,用于控制行空板K10系列硬件,如屏幕显示、画布操作等
#include <MPython_NtpTime.h> // 引入MPython_NtpTime库,用于获取NTP时间
// 创建对象
uint8_t screen_dir = 3; // 定义屏幕方向变量,设置为3
DFRobot_Iot myIot; // 创建DFRobot_Iot对象,用于处理Wi-Fi联网功能
MPython_NtpTime ntptime; // 创建MPython_NtpTime对象,用于处理NTP时间同步
UNIHIKER_K10 k10; // 创建UNIHIKER_K10对象,用于操作行空板K10功能
// 主程序开始
void setup() {
k10.begin(); // 初始化k10硬件
k10.initScreen(screen_dir); // 配置屏幕方向,参数为screen_dir
k10.creatCanvas(); // 创建并初始化画布,用于显示文本和图形
myIot.wifiConnect("zhz3", "zy156721"); // 连接Wi-Fi网络,参数为SSID "zhz3"和密码 "z6156721"
// 等待Wi-Fi连接成功
while (!myIot.wifiStatus()) {}
// 设置NTP时间同步,使用中国教育网NTP服务器 "edu.ntp.org.cn"
ntptime.setNtpTime(ntptime.UTCEast8_t, "edu.ntp.org.cn");
// 在画布上显示初始信息
k10.canvas->canvasText("行空板K10系列实验NTP授时", 3, 0xFF0000); // 显示实验标题,字体大小为3,颜色为红色(0xFF0000)
}
void loop() {
k10.canvas->canvasClear(7); // 清除画布上的内容,保留7像素边距
// 获取并显示当前年份,字体大小为5,颜色为蓝色(0x0000FF)
k10.canvas->canvasText((String("年份:") + String(ntptime.localTime(ntptime.Year))), 5, 0x0000FF);
// 获取并显示当前日期,字体大小为6,颜色为蓝色(0x0000FF)
k10.canvas->canvasText((String("日期:") + String(ntptime.getDate())), 6, 0x0000FF);
// 获取并显示当前时间,字体大小为7,颜色为蓝色(0x0000FF)
k10.canvas->canvasText((String("时间:") + String(ntptime.getTime())), 7, 0x0000FF);
k10.canvas->updateCanvas(); // 更新画布,将所有已绘制的文本刷新到屏幕上显示
delay(1000); // 延迟1秒,等待下一个循环
}
代码解读
1、库的引入与对象创建
引入了三个库:DFRobot_Iot.h 用于Wi-Fi连接,unihiker_k10.h 用于行空板K10硬件控制,MPython_NtpTime.h 用于NTP时间同步。
定义了四个对象:k10 对象用于操作K10的屏幕和其他外设,myIot 对象处理Wi-Fi连接,ntptime 对象处理NTP时间同步,screen_dir 用于设置屏幕方向。
2、初始化设置(setup 函数)
在 setup() 函数中,调用 k10.begin() 初始化行空板K10硬件,配置屏幕方向,创建画布,设置背景颜色。
使用 myIot.wifiConnect("zhz3", "zy156721") 连接指定的Wi-Fi网络,然后通过 while (!myIot.wifiStatus()) {} 循环等待Wi-Fi连接成功。
成功连接后,调用 ntptime.setNtpTime(ntptime.UTCEast8_t, "edu.ntp.org.cn") 设置NTP时间同步,使用中国教育网NTP服务器。
初始化信息在画布中显示,使用 canvasText 方法绘制实验标题,并使用 updateCanvas 刷新屏幕。
3、主循环处理(loop 函数)
每次 loop() 运行时,首先使用 canvasClear(7) 清除画布内容,保留7像素边距。
获取并显示当前年份、日期和时间,分别使用 canvasText 方法绘制到屏幕上,设置相应的字体大小和颜色。
最后,通过 updateCanvas 方法更新显示内容,每次循环延迟1秒。
该代码适用于演示如何通过Wi-Fi连接网络并使用NTP同步时间,同时在K10设备屏幕上显示同步后的当前时间信息。这对于物联网设备时间同步和显示功能的开发非常有用。
Mind+图形编程

实验场景图 动态图(每秒钟跳字)


评论