使用定时触发器根据天气信息控制远程设备
概述
CFC函数计算定时读取物联网智能家电设备上报到IoT平台的最新数据,调用天气API获取指定位置的天气信息、空气质量、紫外线等指数,智能控制远程设备,如根据温度指数,自动开启空调;根据PM2.5指数,自动开启、调节空气净化器。IoT平台结合函数计算,能快速有效地控制远程物联网设备,大大降低开发成本。
适用场景
- 智能家居、定时获取天气/环境信息
- 天气、环境污染预警
- 自动化生产、农业灌溉等
方案架构

1、智能家电设备通过控制台或API接口接入IoT物接入平台
2、函数计算定时从IoT平台上读取远程设备上报的数据,提取出城市和经纬度信息
3、函数计算根据城市和经纬度信息调用云市场的天气API(或其它业务API)
4、函数计算将处理后的数据推送给远程设备,实现定时控制远程设备
方案优势
- IoT物接入平台快速实现端云一体,支持一站式设备管理服务
- IoT物接入支持原生MQTT协议,开放高效,支持设备安全认证,提供权限管理能力以保障设备安全
- 接入函数计算,实现定时根据设备信息智能化控制远程设备
前提条件
- 已登录百度智能云控制台,并已开通 CFC 服务。未开通请参考 函数计算概述。
- 已开通物联网服务并具备 IoT Core 控制台操作权限。当前控制台请参考 IoT Core。
- 已准备可用的 MQTT 客户端,用于验证消息收发。可按需下载并安装 MQTT.fx官网,并参考 测试MQTT客户端连接 完成基础连接配置。
- 已安装 Python 3 及以上运行环境。
方案流程
创建CFC函数
开通CFC服务
如果您还没有开通CFC函数,请参考函数计算概述进行开通。
如果您已经开通CFC服务,可以跳过此步骤。
创建模板函数
导航路径:产品服务->函数计算 CFC->函数列表

步骤 1:选择 IoT-crontab-cfc 模板并进入函数配置页


创建IoT物接入项目
开通物接入 IoT Hub 服务
如果您还没有开通物联网服务,请参考 IoT Core 开通服务。当前控制台对应入口为 【物联网核心套件 IoT Core】。
如果您已经开通服务,可以跳过此步骤。
创建项目
导航路径:物联网服务->物联网核心套件 IoT Core->实例列表

步骤 1:进入 IoT Core 实例列表

获取连接信息
导航路径:物联网服务->物联网核心套件 IoT Core->实例列表->实例详情
当前控制台中,原文的“物模型”和“物影子”分别对应 【模板】 和 【设备列表】。

步骤 1:创建模板

选择 【模板】,点击 【添加模板】,填写模板名称并提交创建。

步骤 2:新增设备

修改CFC函数的环境变量
购买天气 API
导航路径:云市场->搜索结果->服务详情;更新环境变量时为 产品服务->函数计算 CFC->函数列表->函数详情->函数代码

注意: 天气 API 服务可能涉及计费,请以云市场页面展示的套餐与价格为准。

步骤 1:搜索并进入天气 API 服务详情

访问百度云云市场(https://cloud.baidu.com/market/),搜索 天气,从搜索结果中选择当前可用、支持全国天气查询的天气 API 服务,进入服务详情页。

步骤 2:进入已购服务列表
如服务尚未开通,先完成购买;如服务已开通,进入管理控制台的 【已购服务列表】,点击目标服务的 【管理】。

步骤 3:查看 AppCode

测试函数
导航路径:产品服务->函数计算 CFC->函数列表->函数详情
步骤 1:配置 MQTT 客户端并订阅 Topic

打开 MQTT 客户端,按 测试MQTT客户端连接 完成连接配置,并根据当前设备接入模型订阅对应的 Topic。您可以根据环境从 MQTT.fx官网 获取 MQTT.fx 客户端。

步骤 2:确认当前模板展示的 Topic

进入 IoT Core 实例详情页的 【模板】 页面,查看当前模板展示的系统 Topic,并确认 CFC 函数环境变量中的 topic 与实际 Topic 一致。当前控制台模板页会直接展示 $iot/{deviceName}/events 与 $iot/{deviceName}/msg 等系统 Topic。

步骤 3:在 CFC 中执行函数测试

回到 CFC 函数详情页,点击 【测试】,在 【测试事件】 弹窗中保留默认事件模板并点击 【执行】。当执行结果返回成功后,继续在 MQTT 客户端和设备详情页检查消息下发与模型数据更新结果。
说明: 当前
IoT-crontab-cfc模板示例仍可能使用旧版$baidu/iot/shadow/...主题模型;如果函数执行成功但 MQTT 客户端未收到消息,或设备影子未更新,请优先核对函数环境变量中的topic、当前 IoT Core 模板展示的 Topic,以及设备接入模型是否一致。

步骤 4:配置定时触发器

更多参考
百度函数计算CFC开发文档:https://cloud.baidu.com/doc/CFC/index.html
评价此篇文章
