2021阿里云AIOT开发手册.docx

上传人:夺命阿水 文档编号:1167910 上传时间:2024-03-26 格式:DOCX 页数:196 大小:3.86MB
返回 下载 相关 举报
2021阿里云AIOT开发手册.docx_第1页
第1页 / 共196页
2021阿里云AIOT开发手册.docx_第2页
第2页 / 共196页
2021阿里云AIOT开发手册.docx_第3页
第3页 / 共196页
2021阿里云AIOT开发手册.docx_第4页
第4页 / 共196页
2021阿里云AIOT开发手册.docx_第5页
第5页 / 共196页
点击查看更多>>
资源描述

《2021阿里云AIOT开发手册.docx》由会员分享,可在线阅读,更多相关《2021阿里云AIOT开发手册.docx(196页珍藏版)》请在课桌文档上搜索。

1、阿里云AlOT开发手册目录第一章开发者操作大图1第二章从零开始一一5分钟简易实践4基于阿里云物联网平台实现的简易出入监控4使用IoTStudio开发一个简单的温湿度监控器155分钟完成硬核工业PM2.5监控40树莓派实现人脸识别49第三章技术进阶一一打造你的智能家居63基于VBS7100B的智能语音LED灯的开发案例63使用IoTStudio开发你的智能家居控制台79I。TStUdi。+LoRa打造“又猛又持久”的智能厕所89用阿里云物联网服务开创你的智能家居联动106第四章高阶实战不止停留在Demo113使用IOTStudio搭建农业监控大屏113IoTSaaS加速器助力阿尔茨海默病人护理1

2、23第二章开发者操作大图如何让我的设备连上云云-云端开发1SS1F设酱管理开发版务8ToTstudio惧番分蛆僚务开发toTRfiM第数第分析流取蠢分析I端-设备端开发,AliOSE遗捋没岱臭熨和连接方式该I*篇要的SDKvwtiSIXAMfiS修高网&密子设备治过网关代取隹云 DTU 1.kAKitSDKtore 1.inkKHSOKforJiWH 1.inkKitSOKforPythonUnkKitSDKforNodoJS1.inkKitSOKforAnctiod1.inkKitSDKf-M,*a-M取消12对象存储由于设备端拍摄的照片需要在钉钉中展示,因此把照片存储在OSS上是一个解决方

3、案。1.2.1新建bucket新建一个bucket用于存储设备上送的照片。读写权限选择公共读然后在bucket中创建photo目录。13函数计算经过物联网平台规则引擎转发过来的JSoN数据,我们通过建立函数,把它转发到钉钉机器人接口上,实现钉钉群中的消息通知1.3.1 新建服务新创建服务,如果需要记录和回溯函数执行的日志,则需要开通日志服务,配置H志仓库。1.3.2 新建函数使用空白模版新建函数,不需要触发器,运行环境选择python2.71.3.3 函数代码# -*-coding:utf-8importloggingimportjsonimportrequests# 钉钉消息发送实现defp

4、ost(data):webhook_url=headers=Content-Type,:application/json;charset=utf-8,)POSJdata=json.dumps(data)try:response-requests.post(webhook_url,headers三headers,datapost_data)logging.info(Sendsuccess*)exceptrequests.exceptions.HTTPErrorasexc:logging.error(SendErrorzHTTPerror:%d,reason:%s%(exc.response.st

5、atus-code,exc.response.reason)raiseexceptrequests.exceptions.ConnectionError:logging.error(,SendError,HTTPconnectionerror!)raiseelse:result=response.json()logging.info(,SendError:%s,%result)ifresult,errcode,:error_data=msgtype:text*,text:content:SendError,reason:%s%result,errmsg,at:(,isAtAll:Truelog

6、ging.error(SendError:%s%error_data)requests.post(webhook-url,headers=headers,data=json.dumps(err。Jdata)returnresult# 发送钉钉markd。即消息defpost_markdown(title,text):data=msgtype,:markdown,“markdown”:title:title,textt,:text,at:natMobiles:,isAtAll:False)post(data)#函数计算入口defhandler(event,context):logger=logg

7、ing.getLogger()evt=json.loads(event)SOSSendpointurlpost_markdown(,告警,!screenshot(https:/$(bucket.oss-cn-photo%s),%evt.get(,photo,*)logger.info(,photonameis%s,evt.get(,photo,z,)return,0K,2.设备端开发HC-SR501模块感应到有人移动时,会输出高电平,则触发摄像头拍照,并将照片文件存储到OSS,同时发送消息到IOT平台的*ProductNameSdeviceN-ame/update*消息队列中21硬件安装1 .

8、连接好摄像头2 .将HC-SR501人体红外感应器的VCC引雌5v,也就是pin4,1/0引脚接PinI8,GND引脚接地pin622环境准备我们在树莓派上使用python2.7作为开发语言。1. pipinstallaliyun-python-sdk-iot-client2. pipinstalloss23. mkdirpy-demo(项目程序文件夹)4. cdpy-demo5. mkdirphoto(本地照片临时目录)6. vimmonitor.py2.3代码开发monitor.py内容如下:# -*-coding:utf-8-*-importjsonimportuuidimportlog

9、gingfromtimeimportsleepfrompicameraimportPiCameraimportRPi.GPIOasGPIOimportoss2importaliyunsdkiotclient.AliyunIotMqttClientasiot# 参数定义options-,productKey,:$productKey),#设备标识三元组,deviceName,:,$deviceName),#设备标识三元组,deviceSecret*:*$deviceSecret),#设备标识三元组,port,:1883,#iotmqttport,host,:,iot-as-,#iotmqtten

10、dpoint,endpoint:http:/oss-cn-,#ossendpoint,ak:,$ak)lsk,:,S(sk)bucket:,$bucket,#ossbucketir-pin:24#人体红外感应器设置读取针脚标号topic=,+options,productKey,+options,deviceName+*usertest,# 拍照存oss,并发送通知deftakephoto2oss(client):#拍照Photo_filename=str(uuid.uuidl()+”.jpgprint(takephoto:,+photo_fiIename)camera.capture(pho

11、to/,+photo-fiIename)# 存OSSprint(,savephototooss:,+photo_fiIename)bucket.put_object_from_file(,photo/,+PhOtO_filename,photo/,+photo_fiIename)# 消息上送PayIoad_json=(photo*:photo_fiIename)print(senddatatoiotserver:+Str(Payloadson)client.publish(topic,payload=str(payload_json)defon_connect(client,userdata,

12、flags_dict,rc):print(mConnectedwithresultcodeu+str(rc)defon_disconnect(client,userdata,flags-dict,rc):print(Disconnected.)if_name_=_main_,:# GPIO初始化GPIO.setmode(GPIO-BCM)GPIO.setwarnings(False)GPIO.setup(options,ir_pin,GPIO.IN)# 摄像头初始化camera=PiCamera()camera.resolution=(64。,480)camera.vflip=Truecame

13、ra.hflip三True# OSS初始化auth=oss2.Auth(options,ak,options(sk)bucket=oss2.Bucket(auth,options,endpoint,options,bucket,)ftIOTMqtt初始化client=iot.getAliyunlotMqttClient(optionsproductKey,options,deviceName,optionsdeviceSecret,SeCUreJnode-3)client.on_connect=on_connectclient.connect(host=optionsproductKey+,.

14、,+optionshost,jport-optionsport),keepalive-60)whileTrue:#当高电平信号输入时报警ifGPIO.input(optionsir_pin*)=True:printnSomeoneiscoining!takephoto2oss(client)else:continuesleep(3)3.测试运行3.1 设备端运行在py-demo文件夹下运行。pythonmonitor.py3.2 云端查看上送消息进入设备界面,观察设备状态201114 1S-S4 !9在设备的Topic列表中,也可以看到发布的消息个数燎的ToPiC列表tt11ToMc0IIqM

15、ra三WBftMnBKVGJCWmVy3H8lelMt发布4/1KVGJcmmvySfeatMipdtrorH三0KVGJCfnmVydtS*VqmiTM0高级版的产品,还提供了消息日志,而本例中的产品是基础版,并无此功能。3.3 钉钉群机器人结果当有人出入门口的时候,钉钉群就可以收到机器人的消息推送。3.4 后续完善如果大家有兴趣,还可以进一步结合阿里云的人脸识别服务,再配合继电器,实现人员考勤和出入门禁的功能。总结通过阿里云物联网平台,结合阿里云提供的其他产品和服务,使用者可以快速地构建一套基于云边端一体的IOT产品,开发者只需关注业务层面的开发,而不用再花太多的精力在底层和通讯上,大大减

16、少了开发周期,实现了产品的快速研发和迭代,节约了开发成本。使用IOTStudio开发一个简单的温湿度监控器作者:Wusongl19概述本文将介绍一个如何使用IoTStudio实现室内温湿度监控的简单案例。室内温湿度监控需求如下:1)业主可以随时查看室内的温度、热指数、湿度环境情况:2)业主从PC浏览器上和手机APP上可以实时查看室内的温度数据、热指数数据和湿度数据,温湿度正常不亮警示灯;3)当室内温度高于27度或低于10度时,亮红灯,能够在钉钉群里报警或短信报警告知业主,提示应该开启空调的制冷或电加热模式:4)当室内湿度高于60或低于35时,亮黄灯,能够在钉钉群里报警或短信报警告知业主,提示应

17、该开启除湿机或加湿器;室内温湿度监控实现方案如下:1)室内的大气是均匀分布的,在室内安装一个温湿度传感器,根据温湿度传感器上报的数据和临界值进行室内温湿度是否正常的判断;2)室内温湿度是否正常的统计需求:可以通过服务开发工作台开发一个云端APl接口实现;3)PC浏览器上查看室内温湿度:可以通过Web可视化开发工作台开发一个网页应用实现:4)手机App上查看室内温湿度:可以通过移动可视化开发工作台开发一个移动App实现;5)室内温湿度异常报警:可以通过服务开发工作台开发一个云端设备规则引擎实现:最终的效果如下图所示:物料清单硬件(5)软件(5)代码图纸(1)相关资源(2)ArdUinO 基础电路

18、图IOT StUdiO参考文档WCMCSDI开发板阿里云IOT物联网平台WeMQS设备端代列WeMosDl开发板,阿里云IoT物联网平基于Arduino开发框自带ESP8266Wifi模台,提供设备接入、设架实现的WeMos1)1块,支持Arduino开发备管理功能。开发板设备战代码逻辑框架(Xl)DHT22数字温混度传IiaCklabWebIDEIoTStudio的设备开DIrr22数字温湿度传发工作台.通过在线感器M2302温湿度WebIDE降低设备上模块(Xl)云门捱,提高设备上云效率.提高APl接口和设备规面包板无描述信息(Xl)71.ED灯泡发尤.极管服务开发L作什各种颜色的LED发

19、光通过可视化拖拽降低疑二极管(X2)务端送辑的开发门椎,Web可视化开发工作台IoTSludio的Web前端应用可视化开发工作台,通过可视化施拽配置降低Web前端应用的开发门槛,提而Web前端应用的开发效率.罪,杜邨线/连接线无描述信息6)移动可视化开发r作台IoTStudio的移动APP可视化开发工作台,通过可视化拖拽配置降低移动客户端应用的开发门槛.提高移动客户端应用的开发效率.方法&步骤第1步IOTStUdiO简介IoTStudio提供了物联网解决方案开发时所需的工具。物联网解决方案开发与IoTStudio务开发工作台APHf:可*WMI动应用用JBiM引簟:设备1艮帙件上18忖!1发A

20、lioSThingB设上云Wet)IR*中低阶开发害:Web可改化搭It应用,编件配置UnkCSOKiS上云母开发工作台*teb开发工作台Webffi)M高附开发者:WebHjI应用,BonH梁及UIeI件Arauinowwwexn不均托GVeb匍Ji应用的开发者WeblJJ非托量应用1)设备开发工作台:通过在线WeblDE降低设备上云门槛,提高设备上云效率:开发的产物是设备端的嵌入式软件;2)服务开发工作台:通过可视化拖拽降低服务端逻辑的开发门槛,提高API接IJ和设备规则引擎的开发效率;开发的产物是可供应用调用的API接口和云端自动运行的设备规则引擎;3)Web可视化开发工作台:通过可视化

21、拖拽配置降低Web前端应用的开发门槛,提高Web前端应用的开发效率;开发的产物是Web前端应用;4)移动可视化开发工作台:通过可视化拖拽配置降低移动客户端应用的开发门槛,提高移动客户端应用的开发效率:开发的产物是AndroidAPK安装包和iOS源码包;第2步阿里云IOTLinkPIatfonn:创建项目、产品和设备1)登录自己的阿里云账号,进入阿里云IoT物联网平台的开发服务页面:hlips:ioi.consol。.Uliyun.ConlVludio,创建*个起源计划”项目;2)进入起源计划项目的产品页面,创建一个“室内温湿度与LED报警”产品,并完成物的功能属性定义;3)进入起源计划项目的

22、设备页而,创建一个室内温湿度与LED报警产品的设备:第3步HacklabWebIDE:实现设备数据上云1)根据物料清单的硬件列表,采买并准备好响应的开发板、传感器、LED灯、面包板设备,用导线连接好各个硬件(可参考hllps:WWW2)进入起源计划项目的其他一嵌入式C页面,点击“开始使用”,进入HacklabWebIDE页面:hlls:,从左下角下载DeviceAgent到本地,并启动运行,会看到开发板己经和WebIDE建立了连接;Odevice-agent-machacklab-agent-macn?-*A4.11-mac.sh8024BiSnTsoudeHacBook-Proidevlce

23、*agent-macbisnS./run-mac.sh1NFO)INFOINFOINFO2019-93-12T2:472.546J219-3-12T247r2.6762019-e3-12T2:47:92.6772019-63-12120:4702.677default-Codefault-BiSnTsoudeMacBook-Pro.localisreadydefault-Authenticationsucceededdefault-Startwatchdevice3)在HaCkIabWebIDE里创建一个WeMOSDl开发板的工程;4)在SrC目录下新建一个main.ino文件,修改PIatf

24、ormiO.ini配置文件(管理工程依赖的三方库),代码可参考https/code.aliyun.co代WUSong119/arduinodhlproicct:5)点击左下角的Buid按钮,完成设备端软件的编译,再点击左下角的Run按钮,完成设备端软件的烧写运行,并点击设备节点查看实际的运行效果;6)手机开启设备端软件需要的W热点,此时WeMosDl开发板会连到这个Wif:,同时会根据刚刚烧录的设备端软件逻辑连接到阿里云IoT物联网平台,并定时将传感器采集的数据上报到云端,这点从起源计划项目的设备页面可以看到;na,ta ?ux(21.02 c29.10322.00 C综上,我们完成了设备数据

25、上云的实践。第4步CloudServiceWorkbench:可视化开发APl接口和规则引擎D进入起源计划项目的服务开发页面,创建一个“温湿度状态统计”的API接口和一“温湿度报警规则的设备规则引擎;2)“温湿度状态统计”的API接口如下图所示,可以点击API输入节点下方的部署和调试运行试一试,这个API接口将会被Web前端应用调用;附脚本节点代码:QparamObjectpayload上一节点的输出* param(Object)node指定某个节点的输出* Rparam(Object)query服务流第一个节点的输出* 0paramObjectcontextappKeyzappSecret)

26、*/module,exports=asyncfunctionpayload,node,query,context)console.log(payload:,payload);letresult=当前室内环境情况:;lettemperature-0;lethumidity=0;letheatindex=0;for(leti=0;i=27)result+-,温度+temperature+,度,太热,小心中罟;”elseif(temperature=10&temperature=60)result+-n湿度+humidity+潮湿,elseif(humidity=35&humidity=27quer

27、y.props,temperature.value=60IIquery.props.humidity.value直观、易上手、方便调试,预装了 兼容市而上90%的PLC以及其他 的数据采集通讯协议.支持自定义 节点,自由创作自定义协议”方法&步骤第1步通讯协议首先先把pm2.5plO激光传感器插在电脑上然后通过厂家给的说明书里的通讯协议我们可得知设备默认参数 串口通讯协议:96008N1(速率9600,数据位8,校验位无,停止位1) 串口自动上报通讯周期:H0.5秒 数据帧(10字节):报文头+指令号+数据(6字节)+校验和+报文尾示例报文为AACO71OlCA01B99389AB具体含义:

28、AA报文头 CO指令号,客户开发产品时,看到接收到有CO,即表示是由PM2.5传感器输出的信号 71PM2.5低字节 01PM2.5高字节CAPMlo低字 01-PMlo高字节 B9传感器的ID93传感器的ID 89校验和,即71+01+C+01+B9+93=289即0x0289,这里我们舍弃了高字节02,只保留了低字节89 AB-报文尾因为输出的是,16进制数据,请转换成10进制数进行计算。PM2.5值的计算:71Ol低字节71:7*16+1=113高字节01:0*16+1=1(PM2.5高字节*256)+PM2.5低字节)/10(1*256+113)/10=36.9ugm3PMlO值的计算

29、:CA01 低字节CA:C*16+A=202 高字节01:0*16+1=1(PMlO高字节*256)+PMlO低字节)/10(1*256+202)/10=45.8ugm3校验和: 8971+01+CA+01+B9+93=289,舍弃高字节02,留低字节89第2步配置阿里云IoT注册阿里云IoT账号在阿里云IoT注册账号创建产品登录账号后在阿里云IoT产品页创建产品,选择高级版,填写相应信息,这边我们选择上传的是温湿度信息,节点类型选择网关,点击完成即可快速创建。新建户品箝二步:埴写户拓信SU共二步)节点哭里.节点类型设四I河关注网与数鬣在网方式以太网数据格式ICA标准数先格式(AIK JSON

30、),使用ID1认证:否? itt*chSW5创建设备创建产品完毕后创建相应设备,查看设备详情点击刚才创建的设备查看ProductKey(产品 key)、DeviceSecret(产品密钥)、DeviceName(设备名称)。第3步配置节点流打开AM-IoT可视化开发平台软件,进入可视化编辑器。本次教程需要用到如下节点,在左侧节点栏中拖拽出使用。1 .serial在输入栏目,用于读取串口二进制流。serial2 .延迟在功能栏目,用于延迟消息速率。朝3 .function在功能栏目,用于配置逻辑代码。TJ(X)function4 .阿里云IOT数据上传到阿里云。阿里云IO5 .调试在输出栏目,用

31、于调试输出。配置界面详情接下来我们来配置如上图的节点流,首先将左侧节点栏的serial,延迟、function,调试节点分别拖拽到工作区,再点击相应的流节点的端口依次按配置界面所示连接起来,再双击相应流节点进入配置界面配置相应属性。serial是用于读取串口输出的节点工具。该工具需要配置串口名称(SeriaIPort)波特率(BaUdRate)9600、数据位(DataBits)8、校验位(Parity)Node、停止位(StopBits)1。该USB转串口程序在奥迈智能网关中使用不需要下载任何驱动程序,即插即用。在插入智能网关的USB口后,会在系统的驱动目录下dev生成一个串口文件ttyUSBO(没有其他USB转串口的工具插入下),我们需要在配置串口名称(SerialPort)配置devttyUSB0oWindows下需要安装官方驱动。由于serialin读取串口数据是连续的,所以我们需要将Splitinput(拆分输入)配置成af

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号