IoT Studio + LoRa打造“又猛又持久”的智能厕所

概述

为了增加厕所使用效率,减少被味道“熏陶”的等待时间,同时也为了增加厕所的清洁效率,我们决定做一个非侵入式的智能厕所改造方案。它可以通过红外热释电检测每个坑位有没有人,在web/app上实时显示,方便如厕人员查询。并且可以检测厕所的臭味,达到阈值时通知清洁工进行清扫。
之前的文章里,我们使用了Link Develop平台 + arduino搭建了一个基于wifi连接的智能厕所demo。实际生产过程中,NodeMCU+PIR有耗电比较高,结构不稳定,没有外壳防水等问题。因此如果需要商用化智能厕所的方案,需要一个更稳定的可靠的办法。
目前Link Develop已经升级成为IoT Studio,我们将会用更强大,更方便的开发能力实现LoRa传感器数据上传+存储,以及对应应用的开发等。

架构

物料清单

慧联无限LoRa红外传感器
一台能联网的电脑

方法&步骤

步骤一:配置LoRa网关-组网络

前往LinkWAN进行网关配置。
关于LoRa以及LoRaWAN的介绍可以查看这篇文档。如果有需要帮助请私信作者。

我们可以选择从清单上:https://linkmarket.aliyun.com/wan 购买网关自己组网络,或是也可以问问其他阿里云用户,透过分享入网凭证给我们,用上他的网络。

这次我们购买慧联的室内小网关G200,自己组建网络。

 

可以看的到,我们需要插上网线与电源。

然后到Link WAN控制台注册网关

G200回传网默认是DHCP上网配置,如果你是固定IP或PPPoE在依照实际环境调整,方法可以参考G200网关手册

如果一切顺利可以再Link WAN 网关页面显示在线

这样就是组好网络了。

分配网络给自己用

网络组好之后,我们要把网络分配给自己用,也可以分配其他人使用,当然被分配的人都必须有阿里云账号
PS. 阿里云园区都有LoRaWAN网络,你可以联系阿里云IoT的同学,分享给你用,这样就不用自己买网关组网了。

分配的方式是透过入网凭证来取得网络使用权利。
首先我们来创建自己的网络凭证

我们自己要用网,所以就授权给自己

成功之后,就会在凭证清单看到了,当然如果是别人授权给你的,也会在此清单看到

步骤二:拆封LoRa硬件

从网上购买来的认证过的LoRa传感器,拆出来的时候可以看到后面附了一个16位码的贴纸。这个是节点的DevEUI,在后面的新版硬件中还会加上6位的PINCODE字段。

按照说明书,默认是5分钟模式——即收到一次警报之后5分钟之内不会再上传。这跟厕所的使用场景不一致,我们需要调成测试模式——即每次收到警报都会上传。把背部的壳子掰开(不需要螺丝刀)之后,调整跳针针帽位置到ON。

然后合上盖子,先不拔掉塑料片。我们需要先在LinkWAN配置LoRa设备信息。

步骤三:在LinkWAN上配置LoRa节点

在步骤一中我们已经把LoRa网关配置完成,获得了GwEUI和JoinEUI,我们只需要填入每个节点的DevEUI和PINCODE即可。

进入LinkWAN平台,首先需要向网关拥有者(即自己)申请一个节点分组(JoinEUI)。

按照图示填写即可。

添加完成后点击授权即可开通权限。

然后进入节点分组管理,点击创建分组。

需要点击“专用凭证”,然后选择之前“入网开通”申请的凭证。

点击完成,即可看到新建的分组,然后点击节点进入管理。

选择添加节点。

然后在弹窗内输入传感器节点上贴纸的信息。(注:作者的传感器为早期版本,只有DevEUI,PINCODE是自己拿的。目前市面的传感器都有贴上DevEUI和PINCODE信息,如果没有请联系供应商。)

添加成功。这样就成功把一个传感器ID授权加入LinkWAN上了。接下来需要前往物联网平台进行节点上云。

步骤四:在物联网平台上配置LoRa节点

首先进入物联网平台Link Platform的产品页面。选择新建产品。产品相当于一个类(class),是某一类设备的集合,该类设备具有相同的功能,您可以根据产品批量管理对应设备。

新建产品时,要选择透传。

建立了产品之后,点击“设备管理”前往设备管理页面。然后选择“添加设备”。输入16位DevEUI作为DeviceName(注意要小写)。然后确定。

接下来返回到LinkWAN平台。为刚才的节点分组添加“数据流转”,选择刚才添加的产品。

这时候可以拔掉塑料片让传感器上电了。可以看到LinkWAN有收到上行日志。

同时物联网平台的设备也收到了日志。

接下来就是解析设备上传的信息了。从传感器的说明文件可以得知,传感器上报的是二进制数据。我们如何把二进制数据转化为可以理解的属性名称呢?
下图是厂家提供的传感器的二进制配置文件。

下图是原始的上行日志。

对这个传感器,“020100”中的第一个BYTE“02”表示协议,“01”对红外传感器表示“有人”,“00”表示传感器状态正常。我们首先需要在产品里定义“有人经过”和“传感器状态”两个功能,用于记录这两个属性。前往产品详情页的“功能定义”tab,点击右下方“自定义功能”的“添加功能”。

然后在弹窗内配置属性,“室内人体探测开关”配置为布尔型,“传感器属性”配置为枚举型。注意要是“读写型”。点击确定添加属性。

最后结果如图。

然后我们需要使用产品定义里的数据解析,把二进制数据自动转化为Alink-JSON格式,以对应上刚才设置的“室内人体探测开关”与“传感器属性”。转化规则可以参考文档。我们这里只放出最后的代码。注意:数据解析需要产品为“未发布”状态。如果已经发布请点击右上角“撤回发布”。

输入如下的解析脚本。

var COMMAND_REPORT = 02;
var COMMAND_SET = 01;
var ALINK_PROP_REPORT_METHOD = 'thing.event.property.post'; //标准ALink JSON格式topic, 设备 上传属性数据到 云端
var ALINK_PROP_SET_METHOD = 'thing.service.property.set';
function rawDataToProtocol(bytes) {var uint8Array = new Uint8Array(bytes.length);for (var i = 0; i < bytes.length; i++) {uint8Array[i] = bytes[i] & 0xff;}var dataView = new DataView(uint8Array.buffer, 0);var jsonMap = new Object();var fHead = uint8Array[0]; // 第0个BYTE为上报协议if (fHead == COMMAND_REPORT) {jsonMap['method'] = ALINK_PROP_REPORT_METHOD; //ALink JSON格式 - 属性上报topicjsonMap['version'] = '1.0'; //ALink JSON格式 - 协议版本号固定字段jsonMap['id'] = '' + 12345; //ALink JSON格式 - 标示该次请求id值var params = {};params['IndoorHumanDetectionSwitch'] = uint8Array[1]; //第1个BYTE为传感器读数判断有没有人params['SensorProperty'] = uint8Array[2]; //第2个BYTE为传感器本身的状态,对应产品属性中 prop_floatjsonMap['params'] = params; //ALink JSON格式 - params标准字段}return jsonMap;
}

然后点击“保存草稿”。之后输入我们的原始数据“020100”进行调试。可以看到右边解析成功了。这时候点击“运行”即可让脚本生效。

在日志里可以看到二进制的020100已经转为{"SensorProperty":0,"IndoorHumanDetectionSwitch":1}了。这样就完成了设备接入。

步骤五:在IoT Studio上配置智能厕所看板

IoT Studio(原Link Develop)是阿里云针对物联网场景提供的生产力工具,可覆盖各个物联网行业核心应用场景,解决物联网开发领域开发链路长、技术栈复杂、协同成本高、方案移植困难的问题。入口在物联网平台的“开发服务”项。

我们首先需要建立一个项目,以项目维度管理我们的智能厕所应用。

创建项目之后可以看到右边栏多了一项“SmartToilet”,点击查看进入项目详情。然后在项目概览页点击右上角导入产品,把刚才创建的产品导入到项目内。

然后在左侧栏点击“推荐”下的“Web可视化开发”,点击“新建应用”进入Web可视化开发工作台,然后选择空白模板进行新建。

进入编辑中,可以改变背景色,添加标题文字等。对最重要的厕所占位状态,可以理解为一个“有人”、“没人”的指示灯,因此把指示灯组件放入画布中。并配置数据源。

配置数据源时,选择产品,关联的设备,以及关联的布尔型属性。点击“验证数据格式”获得通过,之后点击确定完成配置。配置之后可以通过上传图片等修改指示灯开关状态的样式。

点击预览,完成整个Web应用的链路调试。

假设有7个坑位,只需要重复上述步骤即可(可以使用上传excel格式批量添加设备)。另外GUI配置的部分与之前的版本操作一致,在此不再赘述。最终效果图如图。

步骤六:在IoT Studio上配置智能厕所状态推送&转储

服务开发(原服务编排)可以通过可视化拖拽的方式快速完成所需业务逻辑的设计,例如:设备联动、可视化搭建数据联动、云服务连接、API 生成、数据处理与转储,生成 App 的后端服务。在本文中,我们要使用服务开发完成智能厕所坑位状态的推送,以及把厕所使用状况转储到表格存储Table Store上。

首先新建一个服务——从项目概览页点击“推荐”下的“服务开发”,点击“新建服务”即进入服务开发工作台的新建页面。选择空白模板进行新建。

我们首先把厕所的占用时间推送到钉钉机器人上。首先配置一个“设备触发”节点作为输入,选择之前创建的产品,然后选择“所有设备”以监听所有设备上报的信息。最后选择监听“属性上报”。之后配置一个钉钉机器人节点作为消息推送节点。

然后在要推送的钉钉群内添加机器人,获得webhook,如下图所示。具体原理可以参考这篇文档,在此不再赘述。

配置webhook以后可以配置推送的信息。钉钉机器人节点目前支持多种消息推送类型,并且支持动态调用设备数据,具体原理可以参考这篇文档。以后也会陆续推出教程教学如何玩转钉钉机器人节点。

框内配置项如下:

{"msgtype": "text", "text": {"content":"在{{query.props.IndoorHumanDetectionSwitch.time}}时候有{{query.props.IndoorHumanDetectionSwitch.value}}人进坑!"}, "at": {"isAtAll": true}
}

配置完成之后,可以点击“部署”对服务进行部署。之后点击“启动”让服务生效。如果设备已经上线,则可以直接看到机器人的消息推送。如图所示。这样就能实现厕所使用状态的实时推送了。

如果需要把厕所的使用状况使用TableStore,云数据库MySQL等云产品存储起来,可以使用存储节点。

最终结果如图:

总结

Link Develop升级为IoT Studio之后,提供了支撑商业化物联网应用的更强大的能力。

 


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519831.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式事务中间件Fescar—全局写排它锁解读

前言 一般&#xff0c;数据库事务的隔离级别会被设置成 读已提交&#xff0c;已满足业务需求&#xff0c;这样对应在Fescar中的分支&#xff08;本地&#xff09;事务的隔离级别就是 读已提交&#xff0c;那么Fescar中对于全局事务的隔离级别又是什么呢&#xff1f;如果认真阅…

萤石网络摄像头服务器稳定吗,萤石摄像头画面稳定性如何?

稳定性很好&#xff0c;体现在&#xff1a;1、C1S互联网摄像头提供400万像素的摄像头&#xff0c;拥有双向实时语音功能&#xff0c;包括内置温湿度传感器、内置备用电池以及“放大镜”功能。2、萤石爱家神器C2采用内置6块光学镜片的监控镜头&#xff0c;720P图像会保证视频画面…

GTC CHINA 2019 | 黄仁勋发表主题演讲,多项创新技术与合作全面助力 AI 加速落地

近日&#xff0c;NVIDIA 创始人兼首席执行官黄仁勋在中国苏州举办的 GTC China 大会上发表主题演讲&#xff0c;宣布多项创新技术与合作&#xff0c;并阐述了 NVIDIA 如何助力 AI 加速进入大规模应用。 GTC China 是 NVIDIA 每年在中国最重要的大会&#xff0c;今年更是吸引了 …

Kubernetes 调度器实现初探

Kubernetes 调度器 Kubernetes 是一个基于容器的分布式调度器&#xff0c;实现了自己的调度模块。 在Kubernetes集群中&#xff0c;调度器作为一个独立模块通过pod运行。从几个方面介绍Kubernetes调度器。 调度器工作方式 Kubernetes中的调度器&#xff0c;是作为单独组件运…

NVIDIA发布先进的软件定义自主机器平台DRIVE AGX Orin

近日&#xff0c;NVIDIA发布了用于自动驾驶和机器人的高度先进的软件定义平台——NVIDIA DRIVE AGX Orin™。 该平台内置全新Orin系统级芯片。该芯片由170亿个晶体管组成&#xff0c;凝聚着NVIDIA团队为期四年的努力。Orin系统级芯片集成了NVIDIA新一代GPU架构和Arm Hercules C…

OceanBase在蚂蚁金服的智能运维实践之路

OB君&#xff1a;蚂蚁金服资深技术专家虞舜将在本文为大家分享蚂蚁金服数据库所面对的业务挑战&#xff0c;解读OceanBase的自治数据库体系&#xff0c;解密OceanBase在天猫双11大促期间的稳定性解决方案&#xff0c;探索OceanBase在蚂蚁金服的智能运维实践之路。本文整理自Oce…

机器人技术大提升:NVIDIA为构建自主机器统一平台树立里程碑

近日&#xff0c;NVIDIA发布了全新版本Isaac软件开发套件&#xff08;SDK&#xff09;&#xff0c;为机器人提供更新的AI感知和仿真功能。 NVIDIA创始人兼首席执行官黄仁勋在NVIDIA最新的GPU技术会议&#xff08;GTC CHINA 2019&#xff09;上宣布了该消息。在建立统一的机器人…

DLA实现跨地域、跨实例的多AnalyticDB读写访问

1. 介绍 实时数据仓库ADB&#xff08;AnalyticDB&#xff09;云产品&#xff1a;https://www.aliyun.com/product/ads数据湖分析服务DLA&#xff08;Data Lake Analytics&#xff09;云产品&#xff1a;https://www.aliyun.com/product/datalakeanalytics数据湖分析DLA简介&am…

Data Lake Analytics: 以SQL方式查询Redis数据

Data Lake Analytics 作为云上数据处理的枢纽&#xff0c;最近加入了对于Redis 的支持, 这篇教程带你玩转 DLA 的 Redis 支持。 创建数据库 在 DLA 里面创建一个底层映射到 Redis 的数据库的语法如下: CREATE DATABASE redis_test WITH DBPROPERTIES (catalog redis,locati…

云上中国年,阿里云CDN猪年春节高峰流量再创新高

虽然科技拉近了时空距离&#xff0c;但是大部分中国人还是在春节前穿越了千山万水&#xff0c;为的就是能与家人吃一顿年夜饭&#xff0c;这是中国人不变的情结。 过春节&#xff0c;红包可是少不了的关键词&#xff0c;互联网赋予了红包更多元的意义。各大平台每年都会有新玩…

分布式事务中间件 Fescar—RM 模块源码解读

前言 在SOA、微服务架构流行的年代&#xff0c;许多复杂业务上需要支持多资源占用场景&#xff0c;而在分布式系统中因为某个资源不足而导致其它资源占用回滚的系统设计一直是个难点。我所在的团队也遇到了这个问题&#xff0c;为解决这个问题上&#xff0c;团队采用的是阿里开…

腾讯多媒体实验室:基于三维卷积神经网络的全参考视频质量评估算法

腾讯有多个视频业务线&#xff0c;点播视频有腾讯视频、企鹅影视&#xff0c;短视频有微视、K歌&#xff0c;直播类有Now直播、企鹅电竞&#xff0c;实时传输类有QQ和微信的音视频通话、无线投屏和腾讯会议等。 用户对不同的产品有不同程度的期待&#xff1a;比如理想网络环境…

使用 QuickBI 搭建酷炫可视化分析

随着各行各业大数据的渗透&#xff0c;BI 类数据分析需求与日俱增&#xff0c;如何让可视化更好的展现数据的价值&#xff0c;是 BI 类产品一直努力的方向。对此国内外的BI产品都有自己的方法&#xff0c;如国外大牌的 PowerBI、Tableau&#xff0c;还有国内的 FineBI、BDP、Qu…

深度学习原来还可以这么学!

最近身边很多朋友在讨论人工智能&#xff0c;讨论人工智能在我们生活中的应用&#xff0c;随之而来就开始讨论深度学习技术&#xff0c;但是由于深度学习的涉及面比较广&#xff0c;对数学的要求比较高&#xff0c;所以想学也不太敢学&#xff0c;生怕认真学了却没学会。其实可…

spring-security登录和权限管理

spring security spring security 主要的两个功能是认证和授权 认证的大概流程&#xff1a; Username password AuthenticationFilter&#xff08;自定义usernamepassword拦截器&#xff09; UserDetailService &#xff08;查询用户密码的service接口&#xff09; Userdetail…

官宣!阿里Blink和Flink合并计划出炉

apache已公开合并计划&#xff0c;点击可阅读原文《Batch as a Special Case of Streaming and Alibabas contribution of Blink》&#xff0c;由AI前线进行了翻译。 **春节前一周&#xff0c;经过社区内部讨论&#xff0c;阿里巴巴大数据引擎 Blink 作为 Flink 的分支 正式开源…

第四章、项目整合管理【PMP】

文章目录1. 简介2. 项目整合管理涉及的方面3. 项目整合管理的过程包括2. 制定项目章程3. 制定项目章程&#xff1a;输入4. 制定项目管理计划5. 指导和管理项目工作6. 管理项目知识7. 监督项目工作8. 监控项目工作9. 实施整体变更控制10. 结束项目或阶段1. 简介 项目整合管理是…

龙芯新款处理器发布;Citrix 产品曝“惊天漏洞”,影响全球 8 万家公司; AMD发布年度5大里程碑 ……...

关注并标星星CSDN云计算 速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周两次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go铠侠&#xff08;东芝&#xff09;开发新型闪存&a…

开源SQL-on-Hadoop系统一览

引言 查询分析是大数据要解决的核心问题之一&#xff0c;而SQL作为查询分析中使用最简单、最广泛的的语言之一&#xff0c;必然而然的催生了许多支持在Hadoop上使用SQL的系统&#xff0c;这就是所谓的SQL-on-Hadoop系统&#xff0c;其中大众熟知的Hive就是最早的SQL-on-Hadoop…