天气服务

更新时间:2024-06-24 08:13:32下载pdf

本文介绍如何使用 MCU 通用协议接入,为设备获取天气数据。天气服务是智能设备最重要的功能之一,涂鸦 MCU 标准协议接入可通过蓝牙低功耗(Bluetooth LE)模组获取到相关的天气数据。

使用场景

蓝牙模组通过手机或者网关连接到云端后,MCU 可通过发送指令获取天气数据。值得注意的是,模组不支持订阅天气变化,因此,MCU 需要定期调用命令来查询天气数据,以便获取最新的天气信息。

天气数据的地区是基于配网手机所在的经纬度。

相关协议

获取天气数据(CMD-0xB6)

  • 通过该接口可向手机请求获取指定位置及指定的天气数据。
  • 天气参数详情见附录。

MCU 发送

序号 字节数 字段 说明
0
1
2 帧头 0x55
0xAA
2 1 版本号 0x00
3 1 命令字 CMD 0xB6
4
5
2 数据长度 Len Len 高 8 位
Len 低 8 位
6~6+Len-1 Len Data 见说明
6+Len 1 CRC8 从帧头开始按字节求和得出的结果对 256 求余

Data 说明:

位置 天气参数 预报天数
1 字节 4 字节 1 字节
  • 位置:

    • 0x01:配网位置
    • 0x02:当前位置(手机)
  • 天气参数

    (1 << 0), /**< temperature. */
    (1 << 1), /**< high temperature. */
    (1 << 2), /**< low temperature. */
    (1 << 3), /**< humidity. */
    (1 << 4), /**< weather condition. */
    (1 << 5), /**< pressure. */
    (1 << 6), /**< sensible temperature. */
    (1 << 7), /**< uvi. */
    (1 << 8), /**< sunrise. */
    (1 << 9), /**< sunset. */
    (1 << 10), /**< unix time, used with sunrise and sunset. */
    (1 << 11), /**< local time, used with sunrise and sunset. */
    (1 << 12), /**< wind speed. */
    (1 << 13), /**< wind direction. */
    (1 << 14), /**< wind speed scale/level. */
    (1 << 15), /**< aqi. */
    (1 << 16), /**< tips. */
    (1 << 17), /**< Detailed AQI status and national ranking. */
    (1 << 18), /**< pm10. */
    (1 << 19), /**< pm2.5. */
    (1 << 20), /**< o3. */
    (1 << 21), /**< no2. */
    (1 << 22), /**< co. */
    (1 << 23), /**< so2. */
    (1 << 24), /**< weather condition mapping id. */
    
  • 预报天数:需要预报天数(n 表示需要预报的天数,1 ≤ n ≤ 7,1 表示当天),详情见附录。

模组返回

序号 字节数 字段 说明
0
1
2 帧头 0x55
0xAA
2 1 版本号 0x00
3 1 命令字 CMD 0xB6
4
5
2 数据长度 Len Len 高 8 位
Len 低 8 位
6~6+Len-1 Len Data 见说明
6+Len 1 CRC8 从帧头开始按字节求和得出的结果对 256 求余

Data 说明:Status(1 字节)+ weather_values(0 字节或 Len-1 字节)。

  • Status:

    • 0x00:成功

    • 0x01:参数错误

    • 0x02:请求失败

    • 0x03:请求超时

    • 0x04:重复请求

    • 0x05:状态错误

  • Weather_values:天气值,仅当 Status0x00 时有该字段,格式见下表。

    {某天 天气参数(小端) 数据类型 数据长度 x 数据} …… 依以上格式循环
    1 字节 4 字节 1 字节 1 字节 x 字节 …… 依以上格式循环

    数据类型:

    • 0x00:整形
    • 0x01:字符串

    示例:

    • MCU > 模组:55 AA 00 B6 00 06 01 00 00 00 0F 01 CC

    • 模组 > MCU:55 AA 00 B6 00 2D 00 01 01 00 00 00 00 04 00 00 00 21 01 02 00 00 00 00 04 00 00 00 24 01 04 00 00 00 00 04 00 00 00 1C 01 08 00 00 00 00 04 00 00 00 44 AA

附录

天气 UTF-8 编码对照表

编号 conditionNum 天气(中文) condition 中文 UTF-8 编码(16 进制)
120 E699B4
101 大雨 E5A4A7 E99BA8
102 雷暴 E99BB7 E69AB4
103 沙尘暴 E6B299 E5B098 E69AB4
104 小雪 E5B08F E99BAA
105 E99BAA
106 冻雾 E586BB E99BBE
107 暴雨 E69AB4 E99BA8
108 局部阵雨 E5B180 E983A8 E998B5 E99BA8
109 浮尘 E6B5AE E5B098
110 雷电 E99BB7 E794B5
111 小阵雨 E5B08F E998B5 E99BA8
112 E99BA8
113 雨夹雪 E99BA8 E5A4B9 E99BAA
114 尘卷风 E5B098 E58DB7 E9A38E
115 冰粒 E586B0 E7B292
116 强沙尘暴 E5BCBA E6B299 E5B098 E69AB4
117 扬沙 E689AC E6B299
118 小到中雨 E5B08F E588B0 E4B8AD E99BA8
119 大部晴朗 E5A4A7 E983A8 E699B4 E69C97
121 E99BBE
122 阵雨 E998B5 E99BA8
123 强阵雨 E5BCBA E998B5 E99BA8
124 大雪 E5A4A7 E99BAA
125 特大暴雨 E789B9 E5A4A7 E69AB4 E99BA8
126 暴雪 E69AB4 E99BAA
127 冰雹 E586B0 E99BB9
128 小到中雪 E5B08F E588B0 E4B8AD E99BAA
129 少云 E5B091 E4BA91
130 小阵雪 E5B08F E998B5 E99BAA
131 中雪 E4B8AD E99BAA
132 E998B4
133 冰针 E586B0 E99288
134 大暴雨 E5A4A7 E69AB4 E99BA8
136 雷阵雨伴有冰雹 E99BB7 E998B5 E99BA8 E4BCB4 E69C89 E586B0 E99BB9
137 冻雨 E586BB E99BA8
138 阵雪 E998B5 E99BAA
139 小雨 E5B08F E99BA8
140 E99CBE
141 中雨 E4B8AD E99BA8
142 多云 E5A49A E4BA91
143 雷阵雨 E99BB7 E998B5 E99BA8
144 中到大雨 E4B8AD E588B0 E5A4A7 E99BA8
145 大到暴雨 E5A4A7 E588B0 E69AB4 E99BA8