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

2026-06-08812
AI 快速预览详细 收起
行空板K10是一款专为快速体验物联网和学习人工智能而设计的开发学习板,集成2.8寸LCD彩屏、WiFi蓝牙、摄像头、麦克风、扬声器等资源。通过本实验,学生可以轻松实现网络服务查询福建福州天气,无需额外设备。该板支持离线图像检测、语音识别和语音合成,适合STEM教育场景,帮助学生掌握编程和物联网技能。
【花雕动手做】K10系列实验之网络服务查询福建福州天气图1

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

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


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

创作许可协议

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

评论(6)
驴友花雕
驴友花雕
作者
实验场景图与视频记录


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

驴友花雕
驴友花雕
作者
代码解读
一、整体功能
本程序让行空板 K10 连接 WiFi,从云端服务器在线查询福州天气预报(天气状况、最高温、最低温);同时读取外接 AHT20 温湿度传感器、板载环境光传感器的实时数据,所有信息实时显示在屏幕上,程序循环刷新内容。
二、头文件与对象定义
[code]// 引入WiFi物联网库,实现无线网络连接
#include
// 行空板K10核心库,负责屏幕、画布、板载传感器等硬件控制
#include "unihiker_k10.h"
// 网络天气查询专用库,对接云端天气接口
#include
// NTP网络授时库,可同步标准北京时间(本程序暂未调用时间功能)
#include
// 实例化K10主控对象,操作主板所有硬件
UNIHIKER_K10 k10;
// 设置屏幕旋转方向为2,适配设备摆放角度
uint8_t screen_dir=2;
// 实例化WiFi对象,用于配网和联网状态检测
DFRobot_Iot myIot;
// 实例化天气查询对象,发起网络天气请求
mPython_Weather myWeather;
// 实例化网络时间对象
MPython_NtpTime ntptime;
// 实例化AHT20温湿度传感器对象,读取环境温湿度
AHT20 aht20;[/code]
三、setup () 初始化函数(上电仅执行 1 次)
[code]void setup() {
// 初始化K10底层硬件
k10.begin();
// 按设定方向初始化显示屏
k10.initScreen(screen_dir);
// 创建绘图画布,屏幕文字都绘制在画布上
k10.creatCanvas();
// 设置屏幕背景色为浅草绿色(0x66FF99)
k10.setScreenBackground(0x66FF99);
// 连接WiFi:WiFi名称zhz3,密码z6156721
myIot.wifiConnect("zhz3", "z6156721");
// 初始化天气接口:依次填写服务器地址、用户编号、接口密钥,完成云端对接
myWeather.init("server.mindplus.top", "31982666", "E6MtBcxQ");
// 配置网络授时:东八区北京时间,使用国内教育网时间服务器
ntptime.setNtpTime(ntptime.UTCEast8_t, "edu.ntp.org.cn");
// 循环等待,直到WiFi连接成功,才继续执行后续代码
while (!myIot.wifiStatus()) {}
}[/code]
四、loop () 主循环函数(无限循环运行,实时刷新数据)
[code]void loop() {
// 第3行、红色字体,显示实验标题
k10.canvas->canvasText("K10系列实验之天气", 3, 0xFF0000);
// 第5行、蓝色字体:查询城市编码101230101(福州)的天气状况并显示
k10.canvas->canvasText((String("福州天气:") + String(myWeather.getWeather("weather", "101230101"))), 5, 0x0000FF);
// 第6行、红色字体:查询福州当日最高气温
k10.canvas->canvasText((String("最高温度:") + String(myWeather.getWeather("temperaturHigh", "101230101"))), 6, 0xFF0000);
// 第7行、蓝色字体:查询福州当日最低气温
k10.canvas->canvasText((String("最低温度:") + String(myWeather.getWeather("temperaturLow", "101230101"))), 7, 0x0000FF);
// 刷新画布,将上方天气内容显示到屏幕
k10.canvas->updateCanvas();
// 第9行、蓝色字体:读取AHT20采集的实时摄氏温度
k10.canvas->canvasText((String("实际温度:") + String(aht20.getData(AHT20::eAHT20TempC))), 9, 0x0000FF);
// 第10行、红色字体:读取AHT20采集的实时空气湿度
k10.canvas->canvasText((String("实际湿度:") + String(aht20.getData(AHT20::eAHT20HumiRH))), 10, 0xFF0000);
// 第11行、蓝色字体:读取K10板载光敏传感器,获取环境亮度值
k10.canvas->canvasText((String("实际亮度:") + String(k10.readALS())), 11, 0x0000FF);
// 再次刷新画布,把温湿度、亮度数据显示到屏幕
k10.canvas->updateCanvas();
}[/code]
五、关键知识点补充
1、城市编码
101230101 是气象专用编码,固定对应福州市,更换城市只需修改该编码。
2、天气查询函数
getWeather(查询项,城市编码)
weather:获取晴、阴、雨等天气现象
temperaturHigh:当日最高气温
temperaturLow:当日最低气温
3、传感器说明
AHT20:外接数字温湿度传感器,采集本地实时温湿度;
ALS 光敏:K10 板载传感器,数值越大代表环境光线越亮。
4、颜色格式
采用 0xRRGGBB 十六进制色值:FF0000红色、0000FF蓝色、66FF99浅绿。
5、运行前提
设备必须连接名称为zhz3的 WiFi,否则无法联网获取天气数据。
驴友花雕
驴友花雕
作者
【花雕动手做】K10系列实验之网络服务查询福建福州天气
实验开源代码
[code]// 引入物联网WiFi功能库,用于连接无线网络
#include
// 引入行空板K10核心驱动库,实现屏幕、传感器、画布等硬件操作
#include "unihiker_k10.h"
// 引入网络天气查询库,用于联网获取城市天气数据
#include
// 引入NTP网络授时库,用于同步网络标准时间
#include
// 实例化行空板K10主控对象,所有板载硬件操作都通过该对象调用
UNIHIKER_K10 k10;
// 定义屏幕旋转方向参数,数值2代表指定屏幕显示角度
uint8_t screen_dir=2;
// 实例化WiFi联网对象,负责WiFi连接与状态检测
DFRobot_Iot myIot;
// 实例化天气查询对象,用于请求、解析网络天气信息
mPython_Weather myWeather;
// 实例化网络时间同步对象,用于获取标准北京时间
MPython_NtpTime ntptime;
// 实例化AHT20温湿度传感器对象,读取环境实际温度、湿度
AHT20 aht20;
// 初始化函数,设备上电后**仅执行一次**
void setup() {
k10.begin(); // 初始化行空板K10全部底层硬件资源
k10.initScreen(screen_dir); // 根据设定参数初始化显示屏,并设置屏幕旋转方向
k10.creatCanvas(); // 创建屏幕绘图画布,后续所有文字都绘制在画布上
k10.setScreenBackground(0x66FF99); // 设置屏幕背景色为浅青绿色
// 连接WiFi网络,参数依次为WiFi名称:zhz3,WiFi密码:z656721
myIot.wifiConnect("zhz3", "z6156721");
// 初始化天气接口:指定天气服务器地址、用户编号、接口密钥
myWeather.init("server.mindplus.top", "31982666", "E6MtBcxQ");
// 配置NTP网络授时:选择东八区(北京时间),使用国内教育网时间服务器
ntptime.setNtpTime(ntptime.UTCEast8_t, "edu.ntp.org.cn");
// 循环阻塞等待,直到WiFi连接成功,才继续执行后续代码
while (!myIot.wifiStatus()) {}
}
// 主循环函数,程序上电后**无限循环执行**,实时刷新数据与屏幕
void loop() {
// 在屏幕第3行,红色字体显示实验标题
k10.canvas->canvasText("K10系列实验之天气", 3, 0xFF0000);
// 第5行蓝色字体:查询城市代码101230101(福州)的天气状况并拼接显示
k10.canvas->canvasText((String("福州天气:") + String(myWeather.getWeather("weather", "101230101"))), 5, 0x0000FF);
// 第6行红色字体:查询福州当日最高气温并显示
k10.canvas->canvasText((String("最高温度:") + String(myWeather.getWeather("temperaturHigh", "101230101"))), 6, 0xFF0000);
// 第7行蓝色字体:查询福州当日最低气温并显示
k10.canvas->canvasText((String("最低温度:") + String(myWeather.getWeather("temperaturLow", "101230101"))), 7, 0x0000FF);
k10.canvas->updateCanvas(); // 第一次刷新画布,把上方天气相关文字显示到屏幕
// 第9行蓝色字体:读取AHT20传感器采集的环境摄氏温度并显示
k10.canvas->canvasText((String("实际温度:") + String(aht20.getData(AHT20::eAHT20TempC))), 9, 0x0000FF);
// 第10行红色字体:读取AHT20传感器采集的环境相对湿度并显示
k10.canvas->canvasText((String("实际湿度:") + String(aht20.getData(AHT20::eAHT20HumiRH))), 10, 0xFF0000);
// 第11行蓝色字体:读取K10板载ALS光敏传感器,获取环境亮度值并显示
k10.canvas->canvasText((String("实际亮度:") + String(k10.readALS())), 11, 0x0000FF);
k10.canvas->updateCanvas(); // 第二次刷新画布,把温湿度、亮度数据显示到屏幕
}[/code]
驴友花雕
驴友花雕
作者
网络服务 Wi-Fi 相关积木

辅助:屏幕显示相关积木

驴友花雕
驴友花雕
作者
行空板K10的网络服务模块,都在这里

网络服务获取天气积木

网络服务 NTP 授时积木

- 没有更多了 -