8浏览
查看: 8|回复: 8

[K10教程] 【花雕动手做】K10系列实验之网络服务授时日期、时间...

[复制链接]
【花雕动手做】K10系列实验之网络服务授时日期、时间...图1

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

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


【花雕动手做】K10系列实验之网络服务授时日期、时间...图2

驴友花雕  高级技神
 楼主|

发表于 1 小时前

【花雕动手做】K10系列实验之网络服务授时日期、时间...

行空板K10的网络服务模块,都在这里

【花雕动手做】K10系列实验之网络服务授时日期、时间...图1

获取天气积木

【花雕动手做】K10系列实验之网络服务授时日期、时间...图2

网络服务 NTP 授时积木

【花雕动手做】K10系列实验之网络服务授时日期、时间...图3

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 1 小时前

【花雕动手做】K10系列实验之网络服务授时日期、时间...

网络服务 Wi-Fi 相关积木

【花雕动手做】K10系列实验之网络服务授时日期、时间...图1

辅助:屏幕显示相关积木

【花雕动手做】K10系列实验之网络服务授时日期、时间...图2

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 1 小时前

【花雕动手做】K10系列实验之网络服务授时日期、时间...

知识点: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标准,检查是否有网络干扰或带宽被占用。

【花雕动手做】K10系列实验之网络服务授时日期、时间...图1

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 1 小时前

【花雕动手做】K10系列实验之网络服务授时日期、时间...

知识点: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系列实验之网络服务授时日期、时间...图1

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 半小时前

【花雕动手做】K10系列实验之网络服务授时日期、时间...


【花雕动手做】K10系列实验之网络服务授时日期、时间与本地天气
实验开源代码


  1. // 导入WiFi物联网通信库,实现无线网络连接功能
  2. #include <DFRobot_Iot.h>
  3. // 导入行空板K10专属硬件驱动库,控制屏幕、板载外设、画布绘制
  4. #include "unihiker_k10.h"
  5. // 导入网络天气查询库,对接云端服务器获取城市气象信息
  6. #include <mPython_Weather.h>
  7. // 导入NTP网络授时库,同步互联网标准北京时间
  8. #include <MPython_NtpTime.h>
  9. // 实例化行空板K10主控操作对象
  10. UNIHIKER_K10    k10;
  11. // 定义屏幕旋转方向参数3,设置屏幕显示朝向
  12. uint8_t         screen_dir=3;
  13. // 实例化WiFi连接管理对象
  14. DFRobot_Iot     myIot;
  15. // 实例化天气数据请求对象
  16. mPython_Weather myWeather;
  17. // 实例化网络时间同步对象
  18. MPython_NtpTime ntptime;
  19. // 实例化AHT20数字温湿度传感器对象
  20. AHT20           aht20;
  21. // 初始化函数,设备上电仅运行一次
  22. void setup() {
  23.         k10.begin(); // 初始化K10全部底层硬件资源
  24.         k10.initScreen(screen_dir); // 根据设定方向初始化显示屏
  25.         k10.creatCanvas(); // 创建绘图画布,所有文字绘制依托画布
  26.         k10.setScreenBackground(0x000000); // 设置屏幕背景为纯黑色
  27.         myIot.wifiConnect("zhz3", "z6156721"); // 连接指定WiFi,参数分别为WiFi名称、WiFi密码
  28.         myWeather.init("server.mindplus.top", "31982666", "E6MtBcxQ"); // 初始化天气接口:服务器地址、用户ID、访问密钥
  29.         ntptime.setNtpTime(ntptime.UTCEast8_t, "edu.ntp.org.cn"); // 配置东八区北京时间,选用国内教育网NTP授时服务器
  30.         while (!myIot.wifiStatus()) {} // 阻塞循环,等待WiFi连接成功后再执行后续程序
  31. }
  32. // 主循环函数,程序持续无限循环刷新数据
  33. void loop() {
  34.         // 屏幕第2行,红色字体打印程序总标题
  35.         k10.canvas->canvasText("K10实验之日期、时钟与天气", 2, 0xFF0000);
  36.         // 第4行黄色文字,读取NTP同步后的完整日期并拼接展示
  37.         k10.canvas->canvasText((String("日期:") + String(ntptime.getDate())), 4, 0xFFFF00);
  38.         // 第5行黄色文字,读取NTP同步后的时分秒时间并拼接展示
  39.         k10.canvas->canvasText((String("时间:") + String(ntptime.getTime())), 5, 0xFFFF00);
  40.         k10.canvas->updateCanvas(); // 刷新画布,将日期、时间、标题渲染显示在屏幕
  41.         delay(500); // 延时500毫秒停留显示时间文字
  42.         k10.canvas->canvasClear(5); // 清空第5行时间文字,防止残影重叠
  43.         // 第6行浅青色文字,查询福州(城市编码101230101)天气状况
  44.         k10.canvas->canvasText((String("天气:") + String(myWeather.getWeather("weather", "101230101"))), 6, 0x33FFFF);
  45.         // 第7行浅青色文字,读取AHT20传感器实测摄氏温度
  46.         k10.canvas->canvasText((String("温度:") + String(aht20.getData(AHT20::eAHT20TempC))), 7, 0x33FFFF);
  47.         // 第8行浅青色文字,读取AHT20传感器实测环境相对湿度
  48.         k10.canvas->canvasText((String("湿度:") + String(aht20.getData(AHT20::eAHT20HumiRH))), 8, 0x33FFFF);
  49.         k10.canvas->updateCanvas(); // 二次刷新画布,展示天气、温湿度数据
  50. }
复制代码


回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 半小时前

【花雕动手做】K10系列实验之网络服务授时日期、时间...

代码解读

一、整体核心功能
行空板 K10 连上 WiFi 后同时实现三大网络 + 本地采集功能:
NTP 网络授时,自动获取标准北京时间(日期 + 时分秒)
调用云端接口查询福州在线天气预报
AHT20 采集现场实时温湿度,屏幕分区展示所有数据

二、关键对象与库重点
DFRobot_Iot:唯一网络通信底层,负责 WiFi 连接,没有它无法联网拿时间、天气
MPython_NtpTime:网络授时核心,UTCEast8_t锁定东八区北京时间,依托国内稳定授时服务器edu.ntp.org.cn
mPython_Weather:天气专用库,依靠固定服务器、账号密钥鉴权拉取气象数据
AHT20:本地硬件传感器,测真实环境温湿度,和网络预报温度做对比
k10 画布体系:所有文字不能直接打印屏幕,必须先画画布再updateCanvas刷新才显示

三、setup 初始化关键步骤(缺一不可)
屏幕初始化 + 黑色底色,画布创建是显示前提
wifiConnect()填入正确账号密码,启动 WiFi 连接
天气接口初始化三件套:服务器地址、用户 ID、密钥,鉴权失败拿不到天气
NTP 绑定时区与授时服务器,完成时间同步配置
while (!myIot.wifiStatus()){}阻塞等待,WiFi 没连上绝不往下跑程序,避免网络请求报错崩溃

四、loop 循环核心逻辑与亮点
固定第 2 行常驻标题,不会被清除
时间动态效果:日期常驻第 4 行,时间显示 500ms 后清空第 5 行,形成闪烁刷新效果
ntptime.getDate() 一次性返回完整年月日
ntptime.getTime() 返回时分秒
天气固定查询福州编码101230101,只获取天气状况weather字段
AHT20 两个读取指令:
eAHT20TempC:摄氏温度
eAHT20HumiRH:百分比湿度
两次updateCanvas():先刷新标题日期时间,延时清行后再刷新天气温湿度,分层渲染画面

五、重要参数与颜色标识
屏幕方向 screen_dir=3 正向显示
色值区分:
0xFF0000红色:标题
0xFFFF00黄色:日期时间
0x33FFFF浅青:天气温湿度
0x000000黑色背景
延时delay(500)控制页面刷新节奏,防止刷屏过快屏幕闪烁、网络请求频繁

六、运行硬性限制
必须有zhz3WiFi 信号,密码匹配才能联网
天气服务器地址、ID、密钥不能随意修改,否则接口拒绝访问
AHT20 传感器正常接线才能读出温湿度数值,无传感器会读取异常值。

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 半小时前

【花雕动手做】K10系列实验之网络服务授时日期、时间...

Mind+图形编程

【花雕动手做】K10系列实验之网络服务授时日期、时间...图1
回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 半小时前

【花雕动手做】K10系列实验之网络服务授时日期、时间...

实验场景图与视频记录

【花雕动手做】K10系列实验之网络服务授时日期、时间...图1

【花雕动手做】K10系列实验之网络服务授时日期、时间...图2
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail