HaaS506 -HD1综合案例 - 智能路灯
最新案例教程点击下方链接跳转,CSDN已停止更新
点
击
跳
转
简介
本案例打造的智能路灯系统能检测周围环境的明亮变化。
路灯包括准点定时开关与检测光照强度两种模式 . 可以通过移动应用切换路灯模式以及切底关闭路灯.应用界面如下:
- 主界面
准备
本案例需要的硬件
器材 | 数量 |
---|---|
HaaS506 - HD1(RTU) | 1 |
建大仁科光照温湿度变送器 | 1 |
220v电灯泡 | 1 |
SIM卡 | 1 |
杜邦线 | 若干 |
硬件连接图
功能实现
1、物联网平台开发
第一次使用物联网平台的读者,需要开通实例后使用物联网平台功能。也可以使用免费的公共实例进行开发,在阿里云物联网平台中,左上角选择‘华东2-上海’,点击‘公共实例’,即可开通。
1、平台产品创建可参考haas506 2.0开发教程-aliyunIoT
2、创建产品属性(添加物模型)
选择产品功能定义–编辑草稿
1、添加自定义功能
2、添加标识符与数据类型(标识符要与代码一致)
3、点击发布上线
- 点击确定
打开对应设备查看三元组(需要使用三元组修改代码)
2、设备端开发
-
第一次使用开发板的读者可以按照haas5062.0开发教程-导学篇搭建开发环境。
-
下载代码,更改如下部分,productSecret可以不改
本案例没有使用动态注册,直接使用三元组连接阿里云平台
代码测试
烧写后设备log如下:
- 连接阿里云
- 上报信息
- 重复打印光照强度和继电器状态
[10:46:04.653]收←◆amp shakehand begin...
[10:46:06.174]收←◆POWERONREASON:0x0000,parse:NORMAL_REBOOT.
mpthread_init stack:0x80afbb5c 0x80afbb5c
[10:46:12.908]收←◆[ 10.392]<E>ACTIVATION_REPORT2 activation_report2:286 report http data:POST /device/add HTTP/1.1
Host:nps.huntercat.cn
User-Agent: AliOS-Things
Content-Length:157
Accept: */*
Content-Type:application/json
Connection: Keep-Alive
{"activationStr":"V=3.0.0&P=Enginelf&A=HaaS506_App&B=HaaS506&C=M601&N=Cellular&X=HaaS506-M320&S=Cellular&O=FreeRTOS&T=DTU&M=866907051899317&Y=Alibaba-Cloud"}
network register successed
[10:46:13.213]收←◆[ 10.696]<E>sntp timeout_ms= 5000
[10:46:18.217]收←◆[ 15.700]<E>sntp timeout_ms= 5000
[10:46:23.217]收←◆[ 20.700]<E>sntp timeout_ms= 5000
[10:46:23.293]收←◆
device_obj->iot_device_handle:0x80ba1510
{'deviceName': '******', 'deviceSecret': '*************', 'region': 'cn-shanghai', 'productKey': '*********', 'keepaliveSec': 60}
[1665715583.000][LK-0313] MQTT user calls aiot_mqtt_connect api, connect
[1665715583.000][LK-0317] RTU_test&a1laDtv9VrO
[1665715583.000][LK-0318] 3800F14EAEED1393CC723BD2085F45FFFE4A644D3BF1F355E17874B92B426F7E
[10:46:23.902]收←◆[1665715583.666][LK-0313] MQTT connect success in 599 ms
<I>UA uagent_ext_comm_init[63]: [uA]prepare start uagent comm a1laDtv9VrO RTU_test
<I>UA uagent_ext_comm_init[74]: [uA]Subsrcibe TOPIC /sys/a1laDtv9VrO/RTU_test/_thing/service/invoke
[1665715583.666][LK-0309] sub: /sys/a1laDtv9VrO/RTU_test/_thing/service/invoke
<I>UA uagent_ext_comm_init[80]: [uA]IOT_MQTT_Subscribe(/sys/a1laDtv9VrO/RTU_test/_thing/service/invoke) success
[1665715583.666][LK-0309] sub: /sys/a1laDtv9VrO/RTU_test/_thing/service/post_reply
<I>UA uagent_ext_comm_init[89]: [uA]IOT_MQTT_Subscribe(/sys/a1laDtv9VrO/RTU_test/_thing/service/post_reply) success
[1665715583.666][LK-0309] pub: /sys/a1laDtv9VrO/RTU_test/thing/config/log/get
[LK-030A] > 7B 22 69 64 22 3A 22 31 22 2C 22 76 65 72 73 69 | {"id":"1","versi
[LK-030A] > 6F 6E 22 3A 22 31 2E 30 22 2C 22 70 61 72 61 6D | on":"1.0","param
[LK-030A] > 73 22 3A 7B 22 67 65 74 54 79 70 65 22 3A 22 63 | s":{"getType":"c
[LK-030A] > 6F 6E 74 65 6E 74 22 2C 22 63 6F 6E 66 69 67 53 | ontent","configS
[LK-030A] > 63 6F 70 65 22 3A 22 64 65 76 69 63 65 22 7D 7D | cope":"device"}}
[1665715583.666][LK-0309] pub: /sys/a1laDtv9VrO/RTU_test/thing/deviceinfo/update
[LK-030A] > 7B 22 69 64 22 3A 22 32 22 2C 22 76 65 72 73 69 | {"id":"2","versi
[LK-030A] > 6F 6E 22 3A 22 31 2E 30 22 2C 22 70 61 72 61 6D | on":"1.0","param
[LK-030A] > 73 22 3A 5B 7B 22 61 74 74 72 4B 65 79 22 3A 22 | s":[{"attrKey":"
[LK-030A] > 53 59 53 5F 53 44 4B 5F 4C 41 4E 47 55 41 47 45 | SYS_SDK_LANGUAGE
[LK-030A] > 22 2C 22 61 74 74 72 56 61 6C 75 65 22 3A 22 43 | ","attrValue":"C
[LK-030A] > 22 2C 22 64 6F 6D 61 69 6E 22 3A 22 53 59 53 54 | ","domain":"SYST
[LK-030A] > 45 4D 22 7D 7B 22 61 74 74 72 4B 65 79 22 3A 22 | EM"}{"attrKey":"
[LK-030A] > 53 59 53 5F 4C 50 5F 53 44 4B 5F 56 45 52 53 49 | SYS_LP_SDK_VERSI
[LK-030A] > 4F 4E 22 2C 22 61 74 74 72 56 61 6C 75 65 22 3A | ON","attrValue":
[LK-030A] > 22 61 6F 73 2D 72 2D 33 2E 30 2E 30 22 2C 22 64 | "aos-r-3.0.0","d
[LK-030A] > 6F 6D 61 69 6E 22 3A 22 53 59 53 54 45 4D 22 7D | omain":"SYSTEM"}
[LK-030A] > 7B 22 61 74 74 72 4B 65 79 22 3A 22 53 59 53 5F | {"attrKey":"S***** connect lp succeed****
handle 0x80ba1510
iot_device_handle:0x80ba1510
ota register default status cb[1665715583.666][LKota Public topic:/sys/a1laDtv9VrO/RTU_test/thing/deviceinfo/updateota Public msg:{"id":"0","version":"1.0","params":[{"attrKey":"SYS_OTA_ID","attrValue":"HOTA-3.3.0-1-0-0"}],"method":"thing.deviceinfo.update"}[1665715583.666][LK-0309] pub: /sys/a1laDtv9VrO/RTU_test/thing/deviceinfo/update
[LK-030A] > 7B 22 69 64 22 3A 22 30 22 2C 22 76 65 72 73 69 | {"id":"0","versi
[LK-030A] ota rollback err1:-1ota ota init fail, ret:-1[ 21.460]<E>APP_OTA customer ota init failed!
ota report submode version
ota Public topic:/ota/device/inform/a1laDtv9VrO/RTU_test msg:{"id":0,"params":{"version":"amp-v2.03","module":"system"}}[1665715583.666]ota Public topic:/ota/device/inform/a1laDtv9VrO/RTU_test msg:{"id":0,"params":{"version":"1.0.1"}}[1665715583.777][LK-0309] pub:[LK-030A] > 2E 31 22 7D 7D 00 | .1"}}.
---------------- {'params': '{"modle": 1}'}
[1665715583.777][LK-0309] pub: /sys/a1laDtv9VrO/RTU_test/thing/event/property/post
[LK-030A] > 7B 22 69 64 22 3A 22 33 22 2C---------------- {'params': '{"onoff": 1}'}
[1665715583.777][LK-0309] pub: /sys/a1laDtv9VrO/RTU_test/thing/event/property/post
[LK-030A] > 7B 22 69 64 22 3A 22 34 22 2C 22 76 65 72 73 69 | {"id":"4","versi
[LK-030A] > 6F 6E 22 3A 22 31 2E 30 22 2C 2---------------- {'params': '{"light": 200}'}
[1665715583.777][LK-0309] pub: /sys/a1laDtv9VrO/RTU_test/thing/event/property/pos---------------- {'params': '{"time_beg": 18}'}
[1665715583.777][LK-0309] pub: /sys/a1laDtv9VrO/RTU_test/thing/event/property/post
[LK-030A] > 7B 22 69 64 22 3A 22 36 22 2C 22 76 65 72 73 69 | {"id":"6","versi
[LK-030A] > 6F 6E 22 3A 22 31 2E 30 22 ---------------- {'params': '{"time_end": 6}'}
[1665715583.888][LK-0309] pub: /sys/a1laDtv9VrO/RTU_test/thing/event/property/po
K-030A] > 31 7D 7D | 1}}
t
[LK-030A] < 7B 22 63 6F 64 65 22 3A 32 3[1665715583.888][LK-0309] pub: /sys/a1laDtv9VrO/RTU_test/thing/event/property/post_reply
[LK-030A] < 7B 22 63 6F 64 65 22 3A light_intensity 340
modle
relay port1,state=0
[1665715583.888][LK-0309] pub: /sys/a1laDtv9VrO/RTU_test/thing/event/property/post_reply
[LK-030A] < 7B 22 63 6F 64 65 22 3A 32 30 30 2C 22 64 61 74 | {"code":200,"dat
[LK-030A] < 61 22 3A 7B 7D 2C 22 69 64 22 3A 22 36 22 2C 22 | a":{},"id":"6","
[LK-030A] < 6D 65 73 73 61 67 65 22 3A 22 73 75 63 63 65 73 | message":"succes
[1665715583.888][LK-0309] pub: /sys/a1laDtv9VrO/RTU_test/thing/event/property/post_reply
[LK-030A] < 7B 22 63 6F 64 65 22 3A
[10:46:24.688]收←◆light_intensity 336
modle
relay port1,state=0
[10:46:25.229]收←◆light_intensity 336
modle
relay port1,state=0
[10:46:25.769]收←◆light_intensity 338
modle
relay port1,state=0
[10:46:26.309]收←◆light_intensity 338
modle
relay port1,state=0
应用开发
以下是物联网应用开发流程,接下来按以下流程介绍移动端应用的开发。
3.1新建‘普通项目’
- 使用阿里云IoTStudio创建项目。
- 在项目管理新建空白项目
3.2关联产品和设备
3.3新建‘移动应用’
界面创建
- 点击页面"+"创建三个空白界面
- 主界面模式选择,及两个跳转界面:光照强度模式和定时开关模式
- 配置模式选择界面信息
- 光照强度界面
- 定时开关模式界面
添加组件
- 模式选择界面组件添加
- 添加交互(光照强度需要交互两个动作,一个跳转界面,一个切换开发板模式)
- (定时开关需要交互两个动作,一个跳转界面,一个切换开发板模式)
- 指示灯更改样式
- 光照强度模式组件添加
- 配置交互(路灯开关同上)
- 定时开关模式组件添加
- (路灯开关同上)
3.4保存预览
手机扫描二维码即可通过手机控制路灯