版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
阿里云IoT规则引擎SQL参 两张图秒懂IoT设备数据云端流 IoT设备数据转存到DB表格存 IoT设备运行状态缓存到 IoT设备之间M2M场景联动实 App和IoT设备数据实时同步和控 IoT物联网平台3种计费方 IoT平台消息轨迹全景 IoT平台性能压测工具 IoT设备OTA固件升级实 用Wireshark抓包分析IoT设备网络行 IoT平台日志服务详 IoT设备日志采集利器服 IoT平台端到端开发实 7分钟视频讲解全链路开 自建MQTT迁移阿里云 TCP协议IoT设备迁移上 AI人脸识别,监控老板行踪 IoT+DB+DataV搭建实时环境监控大 IoT+TSDB+QuickBI环境监 20元自制Arduino环境监测 IoT二维码收款播报音 IoT智能手持测温枪开 IoTSQLIoTSQLIoTSQL在使用规则引擎时,处理数据逻辑通过一种类似SQL的语法来定义。SQL语句结构如下:二、.SQLSQL语句的示例如下:deveNam)asdevceame,temperatureFROMpm25>设备在IoT ddevceame:dnimei=site西溪湿地-mqtt当设备消息在'/pk/dn/data'主题上发布,则触发规则引擎数据处理SQL语句。如果"pm25"属性大于60,SQL语句将提取selectIoTSQLpoom_mpoom_两张图秒懂IoT两张图秒懂IoTIoTSQLTopic可以转发到RDS、表格存储、HiTSDBDataHubStreamcomputeMaxcompute可以转发到另一个Topic实现M2M可以转发到队列MQ可以转发到消息服务MNSTopicSQL基础版TopicTopic,数据格式是自定义的,物联网平台不高级版系统默认的Topicpayloadpayload>两张图秒懂IoTIoTIoTDB >IoT设备数据转存到DBIoT设备数据转存到DB开通物联网套件pwwod设备上报数据结构添加设备获取三元组,添加标签信息开通表格存储服务:wm三、IoT模拟设备的nodejs脚本:device-2-iot-2-启动虚拟设备脚本:$nodedevice-2-iot-2-ots.js实时监听设备在线/实时监听设备在线/离线事件 >实时监听设备在线/topicTopicpayload数据格式:"time":"2018-08-3115:32:28.205","lastTime":"2018-08-3115:32:28.195",meamp)asmeamp,timeascuenmetatuscrrntTimeltTime了。SQL配置界面:DBstatuslastTime是最后一次通信时间currentTime是这条消息生成时< >IoTKey-Value的数据库--表格存储TResogD中,技术方案如下:10IoT平台,具体通信Topic和payload如下://对应payloadstatus:RUNIN,RUNNING,STOP,SHUTDOWNspeed:3000,waterOutput:125,//当前出水量okngme:72//工作时长xxTSeviceNme数据处理的SQL参考:devceame)asdevceame,attribute('city')ascity,meamp-MM-dd:mm)ascurrentTime,IoTNode.jsOTSkeyvarclientnewTableStore.Client({accessKeyId:'acceKe,secretAccessKey:'eceAceKe,endpoint:'表格存储接入点',nancename:'ID',maRee:3varparams={ abeNme:'表名',pmaKe:[{devceame:'Id'}],maVeon:1cen.geopaa,function(err,data){if(err){console.log('error:',err);ifdaa..maKe){daao.maKe.fachfuncnem){console.log('======>getRow:',emname+'='+ddata.row.ttributes.forEach(function(item)console.log('\t\t'+em.cumname+'='+$$node======>getRow:deceNaexxxIoTIoTM2M >IoTM2MM2M(即cito-acie是一种端对端通信技术。IoT物联网平台支持使用规则引擎的Topic转发功能,实现M2MIoTM2M能力和设备标签功能,我们可以组合出设备Az001s001IoTz001targetId:s001。z001Topic:/a***h/z001/user/change/rangehood后,会在云端规则引擎处理后,转发给油烟机s001订阅的Topic:a***s001useronr/araTopicTopics001s001。四、配置M2MSQLrangehoodId,status,windPower3转发数据过程中,我们用${rangehoodId}Nodejss001subscribeTopicvaroptions{productKey"替换",devceame:"替换",deviceSecret"替换",regionIdcn-shanghai"ccen.nmeage,function(topic,message){console.log("subtopic=>"+topic)conoeogmeage=>"+message)z001varoptions{productKey"替换",devceame:"替换",deviceSecret"替换",regionIdcn-shanghai"varpubTopic=functiongetPostData(){constpayloadJson={windPower:"high"console.log("PubTopic=>"+pubTopic)console.log("Payload=>"+JON.ngfpaadJon)returnJSON.stringify(payloadJson);s001z001z001IoTM2Ms001。s001IoTApp和App和IoT >AppIoTApp和IoTAppAppIoTTopicM2M)AppTopicAppTopicM2MTopicpayloadAppAppvaroptionsproductKey:"",devceame:"",deviceSecret:"",regionId:"cn-shanghai",varsendDataTopic="/"+ductKey+"/"+oon.evceNme+"/user/updata";varubmdoc="/"+ductKey+"/"+oon.dvceNae+varclient=if(error){cen.nmeage,function(topic,message){conoeogmeage,执行Appif(topic==ubmopc)message=JSON.parse(message.toString())},10*MQTTIoT >IoT3IoTIoT3种计费方式< IoT3IoT储等功能。根据企业IoT业务情况,评估设备接入量,消息上下行TPS,规则引擎流转TPS,TPS,时序数据库存储规格,来确定实例费用。SLA铂金版实例的计算、网络、存储资源完全独享,稳定性好,SLA购买铂金版实例可享受大客户服务支持,7*24 >IoTIoTIoT IoT|IoT阿里云IoT企业物联网平台上线了消息轨迹全景图功能,帮助IoT开发者追踪消息TraceIdIoTIoT设备到业务服务端全链路开发实战。在日志服务的消息轨迹TraceIDOTS和AMQP队列全过程和对应时间点。PubAPI下发控制指令到设备后,在企业实例的控制台,日志服务中,可在日志服务的消息轨迹TraceIDPubIoTIoT硬件设 >IoTIoTIoTJMeter IoT平台性能压测工具(IoT)AB发送本文以充电宝机柜上报状态场景为例介绍如何使用MQTT插件和JMeter脚本压IoTMQTT服务性能。开通IoT物联网设备接入服务。twwwlyompodtotJMeter5.1.1mo准备设备身份信息CSVIoTUserName、Password、ClientId3个身份信息,上报状态数据时需要知道自身的productKey和evicNmeTopic。IoTUserNamePassword、ClientIdclient.csvJmeterMQTT下载mqtt-jmeter插件最新版本JAR包:mqtt-xmeter-2.0.2-jar-with-dependencies.jar:pghbmmx-jmeterJARJMeterlib/ext/编辑JMeterJMeter5.1.1配置客户端CSV数据文件打开JMeter在JMeter左侧文件目录中右键单击TestPlan,选择Add>Threads(ThreadGroup在JMeter左侧文件目录中右键单击TestPlan,选择Add>Listener>>ViewResultsTree,添加ViewResultsTree监听器,方便本地调试测试脚本。在TestPlan区域右键单击ThreadGroupAddLogicController>OncenlyController。JMeter中一个线程模拟一个MQTT客户端设备,使用OncenlyController保证一个线程仅读取一次客户端CSV数据文件,绑定一条在TestPlan区域右键单击OncenlController,选择Add>ConfigeenCSVDataSetConfigCSVDataSetConfig对话框中配置Filnme:客户端信息CSV文件路 UTF-Fileencoding:CSV文件编码格式,本示例使 UTF-elimitr这里我们输入#RecycleonEOF:是否循环读取文件。选择False。建立MQTT连接我们使用OncenlyControllerTestPlanOncelControllerAddmpl>MQTTConnect。MQTTConnectTestPlanThreadGroupAddmplMQTTPubaer。MQTTPubamlerQoSLevel:0,即只发送一次,Topicname:消息topic。MQTTtopic支持层次结构,使用/分割,类似文件pts_test/jmeterAddtmtminpayload:是否添加消息头添加发送时间戳。一般勾选此项,方Payloads:thismessageisfrommete${clientId}!,即在消息体中添加客户端ID,方便测试和调试检查。在TestPlan区域单击ThreadGroup,配置LoopCount为10(10在JMeter在ViewResultsTree在SummaryReportGraphResultsIoTIoTIoTOTA >IoTOTAIoTOTA固件升级TAver-theAirechnlgy)TTAT件升级,而不必让运维人员各地奔波。本文以MQTT协议下的固件升级为例,介绍OTApic二、固件升级OTA流程MQTTTopicTopicTopicpYdomTopico$IoTTabTabTabIoTPayload8constoptions={productKey:"替换pk",devceame:"替换dn",deviceSecretds",regionIdcn-shanghai"constdeviceUpgrade=`/ota/device/upgrade/${ductKey}/${options.deviceName}`constdevceIfom=`/ota/device/inform/${ductKey}/${options.deviceName}`client.publish(deviceInform,geFmaeeon1-45-345a"))//OTAconstdeviceProgress=cen.nmeage,function(topic,message)functiondoUpgrade(message){message=JSON.parse(message)client.publish(deviceProgress,getOTAUpgradeData(23))2gnehod验证文件签名是否和sign////3//burn&functiongetOTAUpgradeData(step){constpayloadJson={"id":"params":"step":step,"desc":"xxxxxxxx"//functiongeFmaeeonveon){constpayloadJson={"id":"params":{ >用WrehakIoT用W用Wrehak抓包分析IoT 用Wireshark抓包分析IoTir来帮我们分析设备行为,定位问题。下面我们通过一个简单案例,给大家讲解WirharkIoTNodejsdevice**nodealiyun-iot-constoptions{"productKeyPK",devceNme:DN","regionIdcn-shanghai"//1emeoufuncn){},3*emeoufuncn){iet.pblih(/$duty}${optons.dviae/sr/pdae},5*emeoufuncn){},8*functiongetPostData(){constpayloadJson=temperature:ah.ooahandm)*20)+humidity:ah.foah.ndo)*20)+returnJSON.stringify(payloadJson);使用ehaIoTMQTTtcptcpandportMQTTwiresharkipdeviceIoTIPTCP上面截图红框部分就是TCP的三次握手行为。由device56150。MQTTCONNECTMQTTConnect点击Connect记录,在底部可以看到详细报文。其中clientid,username,password是这次CONNECT身份验证完成,IoTCONNACKCONNECTMQTTSUBSCRIBEdeviceIoTtopicdeviceTopic,见红框部分。IoTdevice下图展示了device向IoT物联网平台PUBLISH一条QoS=1TopicPayload。由于是QoS=1消息,IoT物联网平台会回复一条PUBACK给deviceMQTTDISCONNECTdeviceDISCONNECTMQTTTCPWirshrkIoTIoTTCPIoTIoT >IoTIoTIoTHubTopic如果消息对外通过规则引擎和服务端订阅(AMQP/MNS)APIAPIAPI如果有消息发送到设备侧,IoTHubTopic一、设备上线/设备→IoTAMQP→ECS→服务AMQP(ACK响应)消息链路:业务服务器ECS(PubAPIIoT平台(PublishIoT平台(PubAckIoTIoT >IoTIoTIoT设备本地日MQTTPub"id":"params""utcTime":"utcTime":"2020-03-"logLevel":modue:"code""traceContext":"ai1289sa8dss","logContent":"networkerror""method":Payload结构体参数说明:constconstlogTopic=//functiongetLogData(){constpayloadJson={params:[{"utcTime":"2020-03-"logLevel":modue:"code""utcTime":"2020-03-"logLevel":modue:"code""traceContext":"123456536",method:returnJSON.stringify(payloadJson);设备上报日志后,我们登录控制台,在日志服务里选择产品,点击设备本地日志的Tab,输入设备名eviceName >IoTIoTIoT IoTIoTMQTTIoT建立双向连接,设备上报采通过规则引擎配置把上报的数据实时流转到业务服务器AMQP协议IoTAPI,下达控制指令一、创建IoT然后,在购买页面,根据实际业务需求,选择地域、实例类型、设备数量、消息上下行TPS规则引擎TPS立即购买接入点信息,AMQPAPI在企业实例的设备管理页面,我们需要先创建一个产品家庭温控器,数据通信以JSON格式,认证方式为设备秘钥。MQTT协议接入到我们开通的企业实例。设备端应Nodejsconstconstmqtt=require('aliyun-iot-varoptions={productKey:"产品productKey",devceame:"devceame,deviceSecretdeviceSecret",host:"MQTT接入点"//2.MQTTconstclient=cen.nmeage,function(topic,message){console.log("topic"+topic)conoeogmeage"+message)setInterval(function()//3.上报温湿度数据st`,getPostData(),{qos:0},5*functiongetPostData(){constpayloadJson={id:Date.now(),version:"1.0",params:{temperature:ah.ooahandm)*20)+humidity:ah.foah.ndo)*20)+method:console.log("payloadJson"+JON.ngfpaadJon)returnJON.ngfpaadJon;}四、数据存储到首先,我们创建一个表格存储实例IoTDataStore,建立一张数据表iot_data,以dim和tmesam为主键。如下图:IoT云产品流转中创建规则引擎SQL,配置流转目的地数据处理SQLIoTAMQP方然后,我们在云产品流转SQL,配置流转目的地为上AccessKeyIoTAMQP连接,参考代码如下:publicpublicstaticvoidmanng]args)throwsExceptionStringaccessKey="accessKey";StringaccessSecretaccessSecret";StringconsumerGroupId="Id";StringiotInstanceIdlonglongmeamp=hmacmd5,hmacsha1和hmacsha256Stringgnehodhmacsha1";StringclientId="ecs_"+System.currentTimeMillis();StringuserName=clientId+auhodeakgn"+",signMethod="++",timestamp="++",authId="++",iotInstanceId="++//passwordStringsignContent="authId="+accessKey+&meamp"+meam;Stringpassword=doSign(signContent,accessSecret,signMethod);//qpid-msURLStringconnectionUrl=filoe:(aqps://"+ioIstned+".aqp.otub.aiyns.o:5+Hashtable<String,String>hashtable=newHashtable<>();tb.pCox.TCETT"org.apache.qpid.jms.jndi.JmsInitContextcontext=newConnectionFactorycf=(ConnectionFactory)context.lookup("SBCF");Destinationqueue=(Destination)context.lookup("QUEUE");//CreateConnectionconnection=cf.eaeoneconueNme,password);(msonetooncion.addConcionisee(ymsonetioLstnr//Create//Session.CLIENT_ACKNOWLEDGE:收到消息后,需要手动调用//eion.UOAKNLDE:SDK自动ACK(推荐Sessionsession=connection.createSession(false,esion.T_CKWEGE//CreateReceiver在AMQP的回调中处理privateprivatestaticeageLenermeageLener=neweageLene){publicvoidonMessage(Messagemessage){try{byte[]body=meage.geBdbe.ca);Stringcontent=newStringtopic=Stringtag=message.getStringProperty("tag");("receivemessage"+",\ntopic="++",\nmessageId="++",\ntag="++",\ncontent="+}catch(Exceptione){IoT物联网平台提供的HTTPSAPI可以给指定设备下发控制指PubAPIconstconstco=constRPCClient=eqe@acoupo-constoptions=accessKeyaccessKey",accessKeySecret:"子账号accessKeySecret"constclient=newRPCClient({accessKeyId:options.accessKey,endpoint:'-endpoint:'-bng.aunc.cm,apiVersion:'2018-01-20',//指令内容constpayload={ahngode:2,ahngme:constparams={opcFName:"下行指令的MessageContent:newBuffer(JSON.stringify(payload)).toString("base64"),ProductKey:"产品ProductKey",IotInstanceIdId",Qos:1//3PubAPItry{constresponse=yieldclient.request('Pub',console.log("PubSUCCESS=====>",}catch(err)console.log("PubERROR=====>", >IoT77 7 >自建MQTT迁移阿里云自建MQTT自建MQTT迁移阿里云loT MQTTIoTMQTT企业10万终端设备接入自建MQTT集群,设备15分钟上报一次业务数据到接入MQTT集群,实时流转到消息队列Kafka中,业务系统从Kafka消费数据,按业务逻辑管理人员通过手机App下发配置参数到业务系统,业务系统调用MQTT集群的业务APIMQTTIoT设备做固件升级IoTendpoint配置规则引擎,把设备数据流转AMQP消费组,业务服务器实时接收设IoT产品,连网方式WiFi(可以根据情况选择JSON(TopicTopic最后,我们进入产品详情Topic,点击TopicTopic,IoTAMQP我们进入控制台的服务端订阅创建AMQP消费组择云产品流转,点击创建规则,选择二进制格式(JSON结构数据)。如下SQL,IoTdevceame)asdevceame,meamp)asmeamp,payload()aspayloadFROM最后,我们配置数据转发AMQP消费组MacnodejsMQTT连接,数据上报,指令接收。mqtt//varoptions{productKey"pk",devceame:"dn",deviceSecretds",12cen.nmeage,function(topic,message){console.log("topic"+topic)conoeogmeage"+message)3TopicsetInterval(functione.pbi(/{opos.podK/$opos.di/s/d/p},functiongetPostDataletpayload=D02+ah.foah.anom)*20)+++ah.foah.ndo)*20)+console.log("payload=["+payload+"]")returnJONngfpaoad;Java为例,演示设备数据接收和控制指令的下发。maven依赖如下:<!--<!--amqp1.0qpidclient--<artifactId>qpid-m-<!--aliyunpopsdk--<artifactId>aliyun-java-sdk-<!--IoTpopsdk--<artifactId>aliyun-java-sdk-IoTAMQP文档:poom_iimportog.pace.cmmn.cdecbnaBae64;importog.pace.qdm.Jmonncon;mpotmpotog.pace.qdm.meage.JInbondeageDpach;mpotorg.slf4j.Logger;mpotmpotmpotjavax.crypto.spec.SecretKeySpec;mpotjavax.jms.*;mpotava.namngone;mpotava.namngInaone;.URI;mpotjava.util.Hashtable;publicclassAMQPClientprivatefinalstaticLoggerlogger=publicstaticvoidmanng]args)throwsException//参数说明,请参见上一篇文档:AMQPStringaccessKey"ak";StringaccessSecretas";StringconsumerGroupIdID";longmeampem.cuenme);hmacmd5,hmacsha1和hmacsha256Stringgnehodhmacsha1";StringclientIdec+yem.cueme);//UserName组装方法,请参见上一篇文档:AMQP客户端接入说明。StringuserNameclientIdauhodeakgn"+",signMethod="++",timestamp="++",authId="++",consumerGroupId="++//password:AMQPStringsignContent="authId="+accessKey+&meamp"+meamp;Stringpassword=doSign(signContent,accessSecret,signMethod);//qpid-msURLStringconnectionUrlfailover:(amqps://替换你的阿里云账号UID.-shanghai.al+Hashtable<String,String>hashtable=newHashtable<>();hahabepuquue.UU,"default");tb.pott._ETT"org.apache.qpid.jms.jndi.JmsInitiContextcontext=newConnectionFactorycf=(ConnectionFactory)context.lookup("SBCF");Connectionconnection=cf.eaeoneconueNme,password);Jmonneon)conecon)adonnconLenemJonnecnLene);//Session.CLIENT_ACKNOWLEDGE:收到消息后,需要手动调用//eon.AUOAKOLD:SDK自动ACK(推荐Sessionsession=connection.createSession(false,//CreateReceiverMessageConsumerconsumer=session.createConsumer(queue);privatestaticeageLenermeageLener=neweageLene){publicvoidonMessage(Messagemessage){try{byte[]body=meage.geBdbe.ca);Stringcontent=newString(body);Stringtopic=StringmessageId=meage.gengoemeageId);("receivemessage"+",messageId="+//Session选择的是eion.LNAKNOLDE,ACK//}catch(Exceptione){privatestaticCoeioitesontoLse=newCoeioiener(){publicvoidonConnectionEstablished(URIremoteURI){("onConnectionEstablished,emoe:},remoteURI);publicvoidonConnectionFailure(Throwableerror){publicvoidonConnectionInterrupted(URIremoteURI){("onConnectionInterrupted,emoe:},remoteURI);publicvoidonConnectionRestored(URIremoteURI){("onConnectionRestored,remoteUri:{}",remoteURI);publicvoidonInboundMessage(JmsInboundMessageDispatchenvelope)publicvoidonSessionClosed(Sessionsession,Throwablecause)publicvoidonnumeoeeageonumerconsumer,Throwablecause)publicvoidonduceedeageoducerproducer,Throwablecause)*password签名计算方法,请参见上一篇文档:AMQP客户端接入说明。privateprivatestaticStringdoSign(StringtoSignString,Stringsecret,StringiMtodthrowsException{SecretKeySpecsigningKey=newSecretKeySpec(secret.getBytes(),signMethod);Macmac=Mac.getInstance(signMethod);byte[]rawHmac=mac.doFinal(toSignString.getBytes());returnBae64.ecoeBae64ngamac);PubAPIpoom_mmpotcomaunc.DeauAcen;mpotcomaunc.IAen;mpotcomaunc.eceon.encepon;mpotcomaunc.omde.2010420.ubeque;mpotcomaunc.omde.2010420.ubepone;file.DefaultProfile;mpotcomgoge.on.on;publicclassPubClient{publicstaticvoidmanng]args)DefaultProfileprofile=DefaultProfile.getProfile("替换你的"替换你的IAcsClientclient=newPubRequestrequestnewPubRequest();request.setTopicFullNamepkdn/user/cmd/down");rrequest.setMessageContent("Q01ELDgyOTIzLGFkMzIyCiA=");//原始报文:request.setProductKeypk");tryPubResponseresponse=client.getAcsResponse(request);System.out.println(newGson().toJson(response));}catch(ClientExceptione){em.ou.nnode:"+e.getErrCode());em.ou.nng:"+e.getErrMsg());System.out.println("RequestId:"+e.getRequestId());IoTPubTopicPayloadIoTTCP协议TCP协议IoT >TCP协议IoTTCP协议IoT设备迁移上云一、GPSGPSGPSGPS模块获得的定GPS定位器可用于儿童和老人的行踪掌控,公路巡检,贵重货物跟踪,追踪与勤务派二、存量设备TCP方案TCPTCP/IP令来同步时钟,之后定时发送心跳包来保持TCP长连接,GPS数据变化超过阈值时,自GPS三、TCP70%TCPMQTT协议的方案也IoT物联网平台之后,重新梳理业务链路,会发现IoT定位器设备和IoT物联网平台基于MQTT协议通信,TCP报文调整为MQTT的CONNECT/CONNACK报文,此时业务服务器不需要做身份校验工作,IoT物联网平台企业基于TCP搭建的时钟同步服务也可以下线了,IoT物联网平台提供了完整的NTP服务,解决嵌入式设备资源受限,端上没有精确时间戳的问题。详细文档MQTTPINGREQ/PINGRESP器介入,IoTMQTTtopicpayload,为了减少业务系统改动,我们增TopicTopic:/{pk}/{dn}/user/upIoTTopic:/{pk}/{dn}/user/uppayloadIoTGPSTopic,hexTagelaoel3。TagGPSAIAI >AIAIB站的时候,总是担心着老板来了!ESP-EYEIoT轻松搞定首先,众筹一块ESP-EYE本地人脸识别开发板;其次,录入老板人脸信息;然后,IoT二、ESP-EYE8MBytePSRAM4MByteflashiFiicroUSB调试与供电,可广泛应用于AI智能物联网领域的应用开发。我们基于Arduino编程来降低ESP-EYE人脸识别程序开发难度。Preferencesarduino-esp32URL:然后,我们在BoardsManager中搜索并安装esp32package(1.0.4安装完成后,我们基于CameraWebServer示例程序做二次开发。打开CameraWebServerCAMERA_MODEL_ESP_EYE,设置办ssidpassword,用于开发板联网。ToolsBoardAIThinkerESP32-CAM点击左上角的编译和烧录ArduinoESP32开启人脸识别,点击EnrollFace来完成老板们的人脸库录入。MatchFaceID:0三、IoT我们在IoTesp-eye摄像头,并添加物模型-属性:老板编号bossId0~10。物模型属性esp-eye产品下,注册一个设备,并获取到设备身份三元组,用于和云流转到函数计算pushData2DingTalk中。数据处理SQL3.0函数计算脚本IoTconstconsthttps=constaccessToken='钉钉机器人token';constbossmoue.ep.haner=function(event,context,callback)vareventJson="msgtype":"markdown","markdown":{"at":"isAtAll":constoptions=hostname:oapdngakcm,port:443,path:'/robot/send?access_token='+accessToken,method:O,headers:onenType':onenLength':constreq=https.request(options,(res)=>{res.on('end',()=>{callback(null,'success');req.on('error',(e)=>{4.钉钉群机器人打开摸鱼群,群管理>Webhook四、ESP-EYEMQTTPubSubClientMQTT连#definePRODUCT_KEY "替换PRODUCT_KEY"#defineDEVICE_NAME "替换DEVICE_NAME"#defineDEVICE_SECRET "替换DEVICE_SECRET"#define "cn-/*IoTEndpoint#defineMQTT_SERVER PRODUCT_KEY".iot-as-mqtt."REGION_ID"."#defineMQTT_PORT #define DEVICE_NAME"&"//MQTT_PASSWD和#defineCONTENT_STR_FORMAT"clientIdesp32deviceName"DEVICE_NAME"productKey"PRODUCT_KEYmeampd"charCLIENT_ID[80]=char*FentespClient;PubSubClientclient(espClient);TopicPayload/*/*topicpayload#definePROP_POST_TOPIC"/sys/"PRODUCT_KEY"/"DEVICE_NAME"/thing/event/prope#defineBODY_FORMAT charcharsprintf(jsonBuf,BODY_FORMAT,if(client.connected())booleandcen.ubhROOTOI,jsonBuf);最后,我们把完整版程序烧录到ESP-EYE IoT+DBDataVIoT+DBIoT+DBDataV< IoT+DBDataV今天给大家带来基于阿里云IoT物联网平台+Tablestore表格存储数据库+DataV我们在室内每层部署410IoT物联网平台,通过规则引擎写入表格存储TablestoreDataV二、IoTIoT温湿度环境监测器,并在功能定然后,我们在产品下注册一个设备,获取设备身份证书IoTMQTT长连接时的身份认证。1.4TSDBSQLdevceame)asdevceame,meamp-MM-dd:mm)asme,attribute('floor')asfloor,em.emeauevaueastemperature,em.hum.vaueashumdy我们以Node.jsmqtt//varoptions=devceame:"设备devceame,regionId:"cn-shanghai"setInterval(function(){,},10*functiongetPostData()constpayload={id:Date.now(),params:{temperature:10+ahfoah.ano)*ah.fo0)),humd:10ah.foahandm)*ah.fo0))method:console.log("payload=["+payload+"]")returnJONngfpaoad;我们在表格存储控制台,创建数据库iotMsg,并创建iot_thermometer_data数据deviceName和time四、DataV可视化大屏IoTDataVDataV控制台,在我的数据下,添加数据源,输入表格存储iot_dataAccessKeyDataV我的可视化下面创建一个大屏,根据业务需求添加IoIoTukBI >IT+B+QuickBIIoT+TSDB+QuickBI环境监控IoT物联网平台+TSDB时序时空数据库+QickBI本次IoT物联网开发实战我们在室内部署410秒发送到阿里云IoT物联网平台,通过规则引擎写入TSDBQuBIIoT创建产品室内温湿度计器2TSDBNode.js////依赖mqttconstmqtt=require('aliyun-iot-//varoptions=productKey:"deviceproductKey",devceame:"devicedevceame,deviceSecret:"devicedeviceSecret",regionId:"cn-shanghai"};//constclient=setInterval(function,},10*functiongetPostData()constpayload={id:Date.now(),params:{temperature:10ah.foahandm)*ah.fo0)),humd:10+ahfoah.ano)*ah.fo0))method:console.log("payload=["+payload+"]")returnJON.ngfpaad);创建时序数据库,并开通公网TSQLIoT设备数据写入TSDB四、QiucBITSDB >20Arduino2020Arduino 20元自制Arduino环境监测仪20IoTesp8266dht11DHT11采集温度,湿度数据,通过MQTT协议上报到阿里云IoT物联网OTS数据库中,整体技术方案如下:在温湿度计TopicTopic,这就是我们用Topic。itMsit_romr_t表,IoT已有的表格存储数据库实例io中的ot_rmomt_dt表中,规则引擎配置如SELECTSELECTdevceame)asdevceame,meamp)astime,FROM"/a1k3547Gr0v/+/user/update"TopicPayloadArduinoC设备和云端通过PubSubClient建立MQTT/*/*FiMQTT*/cen.eeveSRVR,MQTT_PORT);client.connect(CLIENT_ID,MQTT_USRNAME,设备读取传感器数据,并通过MQTT通道发送到云端:floathumy=dh.adum);charsprintf(jsonBuf,BODY_FORMAT,temperature,MQTTif(client.connected()){booleand=cen.ubhROOTOI,//delay使用ArduinoIDE烧录程序到esp8266IoT控制台的日志服务中查看到上报的数据,在表格存储控制台,可以看到存储在itthemmete_at物模型TopicTopicPayload我们修改Arduino查询中TopicPayload在设备详情页面,Tab运行状态 >IoTIoTIoT IoT,,百味羹、莲子头、鹅鸭包、镜面糕、鱼桐皮面等。他们用铜钱结账,翌日,那些铜钱都变人就是鬼。App收钱吧,新大陆,哆啦宝等聚合支付公司顺势而生:一柜一码IoTTTS语音合成技术的到账实时语音播报,每日对账报表汇总,让收款顿时轻松起来。阿里云IoTMQTTPUB/SUB的安全、可靠、低延时 >IoTIoTIoT IoTIoT基于稳定性,高并发,低时延的考量我们选择阿里云IoT物联网平台搭建整套系统。AMQP消费组,实时推送到我们业务服务器。TopicTopicM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 康复护理病例言语疗法
- 职场廉洁从业反贪腐承诺书3篇
- 康复护理评定中的沟通技巧
- 2025年长沙市劳动合同解除代理合同协议
- 智慧服务技术规范化操作承诺书7篇范文
- 2026年宜宾市叙州区妇幼保健计划生育服务中心招聘备考题库及答案详解参考
- 2026年福州市台江区第二实验幼儿园招聘备考题库有答案详解
- 2026年海口市教育局招聘备考题库及答案详解(考点梳理)
- 2026年科力锐科技26届秋季校园招聘备考题库及答案详解(新)
- 驾驶员安全责任书协议
- 湖南涉外经济学院《高等数学》2024-2025学年期末试卷(A卷)含答案
- 免陪照护服务的持续改进与质量监控机制
- 2025秋人教版(2024)八年级上册英语课件 Unit 1 Happy Holiday (第2课时) Section A Pronunciation 1- 2f
- 冬季心脑血管疾病预防
- 党建阵地日常管理制度
- 车间医药箱管理制度
- T/CSPSTC 17-2018企业安全生产双重预防机制建设规范
- 遥感图像处理技术在城市更新中的应用
- 食叶草种植可行性报告
- 落叶清扫压缩机设计答辩
- 广东省建筑装饰装修工程质量评价标准
评论
0/150
提交评论