使用定时触发器根据天气信息控制远程设备
概述
CFC函数计算定时读取物联网智能家电设备上报到IoT平台的最新数据,调用天气API获取指定位置的天气信息、空气质量、紫外线等指数,智能控制远程设备,如根据温度指数,自动开启空调;根据PM2.5指数,自动开启、调节空气净化器。IoT平台结合函数计算,能快速有效地控制远程物联网设备,大大降低开发成本。
适用场景
- 智能家居、定时获取天气/环境信息
- 天气、环境污染预警
- 自动化生产、农业灌溉等
方案架构
1、智能家电设备通过控制台或API接口接入IoT物接入平台
2、函数计算定时从IoT平台上读取远程设备上报的数据,提取出城市和经纬度信息
3、函数计算根据城市和经纬度信息调用云市场的天气API(或其它业务API)
4、函数计算将处理后的数据推送给远程设备,实现定时控制远程设备
方案优势
- IoT物接入平台快速实现端云一体,支持一站式设备管理服务
- IoT物接入支持原生MQTT协议,开放高效,支持设备安全认证,提供权限管理能力以保障设备安全
- 接入函数计算,实现定时根据设备信息智能化控制远程设备
环境准备
- 配置MQTT的应用客户端,可以快速验证是否可以实现与物接入服务交流发送或者接收消息。登录MQTT.fx官网,找到合适的版本下载并安装MQTT.fx客户端。
- 安装Python3及以上运行环境
方案流程
创建CFC函数
开通CFC服务
如果您还没有开通CFC函数,请参考函数计算概述进行开通。
如果您已经开通CFC服务,可以跳过此步骤。
创建模版函数
1、登录百度智能云平台官网
2、登录成功后,选择"产品服务">"函数计算 CFC",进入"函数列表"页面,点击从模版创建函数,选择IoT-crontab-cfc模版,进入创建函数界面
3、在弹框中输入函数名称、环境变量(环境变量包括appcode、broker、port、username、password、topic等信息),点击确定
4、点击确定后,则成功创建一个CFC函数,可以在函数详情页选择函数代码即可查看新建函数代码
创建IoT物接入项目
开通物接入IoT Hub服务
如果您还没有开通IoT物接入服务,请参考IoT Core开通服务。 如果您已经开通IoT Hub服务,请跳过此步骤。
创建项目
1、IoT Hub服务开通后,选择区域进入项目列表,然后点击创建项目
2、设置项目名称,选择项目类型(示例中选择设备型),点击提交
3、创建成功后,在项目列表中可以看到物接入默认提供的三类地址,选择不同的地址,意味着您可以通过不同的方式连接到百度智能云物接入,具体请参考物接入创建项目
获取连接信息
成功创建物接入项目后,点击项目名称,进入配置物接入设备型项目页面,创建物影子并获取连接信息,具体操作步骤如下:
1、创建物模型:点击项目名称进入后,选择"物模型",进入物模型列表页面,点击"新建物模型"。填写名称、属性等信息后,点击创建即可。
2、创建物影子:左侧选择"物影子",进入物影子列表页面,点击"新建物影子"。输入名称,并选择需要的物模型(这里我们选择了刚才创建的iot_weather),点击创建即可完成,此时会弹出连接信息。
3、获取连接信息:物影子创建完成时,会弹出连接信息,建议下载保存备用。
4、查看(Topic)列表:MQTT 消息的收发是基于主题的。设备型项目的主题是由系统定义的,可点击相应影子的卡片,通过以下页面查看,可根据实际需求选择主题。每个消息均需为 json 格式。
修改CFC函数的环境变量
购买天气API
1、访问百度云云市场(https://cloud.baidu.com/market/),搜索"天气"
2、本示例中使用"全国天气预报",找到该记录,点击进入
3、点击购买
4、完成开通后,返回云市场,点击管理控制台,在已开通的服务中找到"云市场",点击进入
5、在"云市场">"已购买的服务列表"中可以看到全国天气预报服务,点击管理查看服务详情
6、在"全国天气预报"服务详情中,点击交付信息右侧的"显示密钥"查看AppCode
7、进入函数详情页,点击环境变量右侧的"编辑",更新环境变量(环境变量也可以在创建函数时一并添加),添加内容如下:
测试函数
1、为了验证CFC函数是否可以实现与物接入服务交流发送或者接收消息,您需要登录MQTT.fx官网,找到合适的版本下载并安装MQTT.fx客户端。
2、打开并配置MQTT客户端,具体请参考测试MQTT客户端连接
3、点击Connect创建连接,在IoT平台物影子交互页面复制$baidu/iot/shadow/test_weather/update/accepted、$baidu/iot/shadow/test_weather/delta、$baidu/iot/shadow/test_weather/get/accepted并添加订阅
4、进入CFC函数详情页,点击测试执行,可以查看函数运行成功
5、查看MQTT客户端,可以看到订阅Topic上已经收到消息
5、同时进入IoT物接入平台,查看项目物影子详情,可以看到模型数据已经被更新
至此CFC函数能够从IoT平台上读取设备信息,调用天气API,根据天气信息处理数据,最后将数据上报给IoT设备
6、最后需要为CFC函数配置定时触发器触发器,本示例设置每天上午10点触发函数执行,CFC定时触发器的配置请参考CFC定时触发器
7、点击创建后,可以在函数详情触发器列表中可以看到新创建的定时触发器
更多参考
百度函数计算CFC开发文档:https://cloud.baidu.com/doc/CFC/index.html