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

[K10教程] 【花雕动手做】K10系列实验之网络服务查询福建福州天气

[复制链接]
【花雕动手做】K10系列实验之网络服务查询福建福州天气图1

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

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


【花雕动手做】K10系列实验之网络服务查询福建福州天气图2

驴友花雕  高级技神
 楼主|

发表于 2 小时前

【花雕动手做】K10系列实验之网络服务查询福建福州天气

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

【花雕动手做】K10系列实验之网络服务查询福建福州天气图3

网络服务获取天气积木

【花雕动手做】K10系列实验之网络服务查询福建福州天气图1
网络服务 NTP 授时积木

【花雕动手做】K10系列实验之网络服务查询福建福州天气图2

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 2 小时前

【花雕动手做】K10系列实验之网络服务查询福建福州天气

网络服务 Wi-Fi 相关积木

【花雕动手做】K10系列实验之网络服务查询福建福州天气图1

辅助:屏幕显示相关积木

【花雕动手做】K10系列实验之网络服务查询福建福州天气图2

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 2 小时前

【花雕动手做】K10系列实验之网络服务查询福建福州天气

本帖最后由 驴友花雕 于 2026-6-8 10:53 编辑

【花雕动手做】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. // 定义屏幕旋转方向参数,数值2代表指定屏幕显示角度
  12. uint8_t         screen_dir=2;
  13. // 实例化WiFi联网对象,负责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(0x66FF99); // 设置屏幕背景色为浅青绿色
  27.     // 连接WiFi网络,参数依次为WiFi名称:zhz3,WiFi密码:z656721
  28.     myIot.wifiConnect("zhz3", "z6156721");
  29.     // 初始化天气接口:指定天气服务器地址、用户编号、接口密钥
  30.     myWeather.init("server.mindplus.top", "31982666", "E6MtBcxQ");
  31.     // 配置NTP网络授时:选择东八区(北京时间),使用国内教育网时间服务器
  32.     ntptime.setNtpTime(ntptime.UTCEast8_t, "edu.ntp.org.cn");
  33.     // 循环阻塞等待,直到WiFi连接成功,才继续执行后续代码
  34.     while (!myIot.wifiStatus()) {}
  35. }
  36. // 主循环函数,程序上电后**无限循环执行**,实时刷新数据与屏幕
  37. void loop() {
  38.     // 在屏幕第3行,红色字体显示实验标题
  39.     k10.canvas->canvasText("K10系列实验之天气", 3, 0xFF0000);
  40.     // 第5行蓝色字体:查询城市代码101230101(福州)的天气状况并拼接显示
  41.     k10.canvas->canvasText((String("福州天气:") + String(myWeather.getWeather("weather", "101230101"))), 5, 0x0000FF);
  42.     // 第6行红色字体:查询福州当日最高气温并显示
  43.     k10.canvas->canvasText((String("最高温度:") + String(myWeather.getWeather("temperaturHigh", "101230101"))), 6, 0xFF0000);
  44.     // 第7行蓝色字体:查询福州当日最低气温并显示
  45.     k10.canvas->canvasText((String("最低温度:") + String(myWeather.getWeather("temperaturLow", "101230101"))), 7, 0x0000FF);
  46.     k10.canvas->updateCanvas(); // 第一次刷新画布,把上方天气相关文字显示到屏幕
  47.     // 第9行蓝色字体:读取AHT20传感器采集的环境摄氏温度并显示
  48.     k10.canvas->canvasText((String("实际温度:") + String(aht20.getData(AHT20::eAHT20TempC))), 9, 0x0000FF);
  49.     // 第10行红色字体:读取AHT20传感器采集的环境相对湿度并显示
  50.     k10.canvas->canvasText((String("实际湿度:") + String(aht20.getData(AHT20::eAHT20HumiRH))), 10, 0xFF0000);
  51.     // 第11行蓝色字体:读取K10板载ALS光敏传感器,获取环境亮度值并显示
  52.     k10.canvas->canvasText((String("实际亮度:") + String(k10.readALS())), 11, 0x0000FF);
  53.     k10.canvas->updateCanvas(); // 第二次刷新画布,把温湿度、亮度数据显示到屏幕
  54. }
复制代码


回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 2 小时前

【花雕动手做】K10系列实验之网络服务查询福建福州天气

本帖最后由 驴友花雕 于 2026-6-8 10:53 编辑

代码解读

一、整体功能
本程序让行空板 K10 连接 WiFi,从云端服务器在线查询福州天气预报(天气状况、最高温、最低温);同时读取外接 AHT20 温湿度传感器、板载环境光传感器的实时数据,所有信息实时显示在屏幕上,程序循环刷新内容。

二、头文件与对象定义

  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. // 设置屏幕旋转方向为2,适配设备摆放角度
  12. uint8_t         screen_dir=2;
  13. // 实例化WiFi对象,用于配网和联网状态检测
  14. DFRobot_Iot     myIot;
  15. // 实例化天气查询对象,发起网络天气请求
  16. mPython_Weather myWeather;
  17. // 实例化网络时间对象
  18. MPython_NtpTime ntptime;
  19. // 实例化AHT20温湿度传感器对象,读取环境温湿度
  20. AHT20           aht20;
复制代码


三、setup () 初始化函数(上电仅执行 1 次)

  1. void setup() {
  2.         // 初始化K10底层硬件
  3.         k10.begin();
  4.         // 按设定方向初始化显示屏
  5.         k10.initScreen(screen_dir);
  6.         // 创建绘图画布,屏幕文字都绘制在画布上
  7.         k10.creatCanvas();
  8.         // 设置屏幕背景色为浅草绿色(0x66FF99)
  9.         k10.setScreenBackground(0x66FF99);
  10.         // 连接WiFi:WiFi名称zhz3,密码z6156721
  11.         myIot.wifiConnect("zhz3", "z6156721");
  12.         // 初始化天气接口:依次填写服务器地址、用户编号、接口密钥,完成云端对接
  13.         myWeather.init("server.mindplus.top", "31982666", "E6MtBcxQ");
  14.         // 配置网络授时:东八区北京时间,使用国内教育网时间服务器
  15.         ntptime.setNtpTime(ntptime.UTCEast8_t, "edu.ntp.org.cn");
  16.         // 循环等待,直到WiFi连接成功,才继续执行后续代码
  17.         while (!myIot.wifiStatus()) {}
  18. }
复制代码

四、loop () 主循环函数(无限循环运行,实时刷新数据)

  1. void loop() {
  2.         // 第3行、红色字体,显示实验标题
  3.         k10.canvas->canvasText("K10系列实验之天气", 3, 0xFF0000);
  4.         // 第5行、蓝色字体:查询城市编码101230101(福州)的天气状况并显示
  5.         k10.canvas->canvasText((String("福州天气:") + String(myWeather.getWeather("weather", "101230101"))), 5, 0x0000FF);
  6.         // 第6行、红色字体:查询福州当日最高气温
  7.         k10.canvas->canvasText((String("最高温度:") + String(myWeather.getWeather("temperaturHigh", "101230101"))), 6, 0xFF0000);
  8.         // 第7行、蓝色字体:查询福州当日最低气温
  9.         k10.canvas->canvasText((String("最低温度:") + String(myWeather.getWeather("temperaturLow", "101230101"))), 7, 0x0000FF);
  10.         // 刷新画布,将上方天气内容显示到屏幕
  11.         k10.canvas->updateCanvas();
  12.         // 第9行、蓝色字体:读取AHT20采集的实时摄氏温度
  13.         k10.canvas->canvasText((String("实际温度:") + String(aht20.getData(AHT20::eAHT20TempC))), 9, 0x0000FF);
  14.         // 第10行、红色字体:读取AHT20采集的实时空气湿度
  15.         k10.canvas->canvasText((String("实际湿度:") + String(aht20.getData(AHT20::eAHT20HumiRH))), 10, 0xFF0000);
  16.         // 第11行、蓝色字体:读取K10板载光敏传感器,获取环境亮度值
  17.         k10.canvas->canvasText((String("实际亮度:") + String(k10.readALS())), 11, 0x0000FF);
  18.         // 再次刷新画布,把温湿度、亮度数据显示到屏幕
  19.         k10.canvas->updateCanvas();
  20. }
复制代码

五、关键知识点补充
1、城市编码
101230101 是气象专用编码,固定对应福州市,更换城市只需修改该编码。
2、天气查询函数
getWeather(查询项,城市编码)
weather:获取晴、阴、雨等天气现象
temperaturHigh:当日最高气温
temperaturLow:当日最低气温
3、传感器说明
AHT20:外接数字温湿度传感器,采集本地实时温湿度;
ALS 光敏:K10 板载传感器,数值越大代表环境光线越亮。
4、颜色格式
采用 0xRRGGBB 十六进制色值:FF0000红色、0000FF蓝色、66FF99浅绿。
5、运行前提
设备必须连接名称为zhz3的 WiFi,否则无法联网获取天气数据。


回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 2 小时前

【花雕动手做】K10系列实验之网络服务查询福建福州天气

Mind+图形编程

【花雕动手做】K10系列实验之网络服务查询福建福州天气图1
回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 2 小时前

【花雕动手做】K10系列实验之网络服务查询福建福州天气

实验场景图与视频记录

【花雕动手做】K10系列实验之网络服务查询福建福州天气图2

【花雕动手做】K10系列实验之网络服务查询福建福州天气图1
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail