4G DTU是一种广泛用于工业物联网数据传输的终端设备,各类传感器串口原始数据通过RS485/232传输到DTU转4G网络,双向透明传输,支持Modbus RTU转TCP/MQTT。广泛应用于远程电力监控、水文水资源监测、山洪地质灾害监测预警、环保污染监测、气象数据采集、森林防火监控等领域。
这一次我们介绍的是来自有人公司的 4G DTU产品USR-DR15X,它支持通过TCP、UDP方式 接入 MODBUS 物联网平台,在很多用户的物联网项目中运行非常稳定。
USR-DR15X 是有人公司推出的超小体积导轨式 DTU 系列,该系列产品具备高速率、低延迟、小体积、使用简单等特点,并开创性的采用了芯片板载的设计方案。USR-DR15X 系列支持国内三大运营商 Cat-1 网络接入,具有双卡单待功能,产品内置一张贴片卡(出厂免费赠送流量,可续费),外部预留 SIM 卡槽供用户使用。
该 系 列 产 品 采 用 工 业 级 设 计 标 准 , 支 持 宽 电 压 端 子 供 电 , RS232/RS485 通 信 方 式 支 持 波 特 率1200~230400bps,TTL 电平通信方式支持波特率 1200~921600bps;支持 FOTA 远程自升级及 FTP 他升级协议。支持微信小程序进行参数配置,使用简单方便,适用性更强;产品自带导轨(C45 国标)卡扣,安装方便快捷。
我们以这台 USR-DR15X 为例,介绍接入 MODBUS 物联网平台 的步骤。对于塔石公司的其它 串口服务器 产品,也可以用同样的方式接入。

MODBUS 物联网平台 上的准备工作
在实践中,我们通常将 串口服务器 作为透传网关,用于在 Modbus 子设备和云平台之间起到消息转发作用。这里我们使用 串口服务器 的 TCP客户端 模式,准备工作只需要以下几步:

具体的步骤请浏览:Modbus入门 ,通常几分钟就可以完成。
打开有人设备管理器 配置软件,连上网口或串口,只需要填写以下几个部分:
第一步:
打开手机蓝牙功能,同时给微信的蓝牙权限打开,使用微信扫一扫功能扫描 USR-DR15X 正面的二维码,
即进入微信小程序“联博士配置工具”;注:华为等安卓手机需要打开位置服务(设置--隐私--位置服务),
若扫描页面卡住,请尝试点击页面右上角的“三个小点”,点击“重新进入小程序”。

2) 微信小程序“联博士配置工具”自动扫描手机旁边的 USR-DR15X 设备,其中每一台设备都有不同的蓝
牙名称,该蓝牙名称为“USR-DR15X-设备 IMEI 号后六位”,便于用户可以正常识别该配置哪一台 USR-DR15X
设备。
3) 点击微信小程序“联博士配置工具”中扫描到的 USR-DR15X 设备名称,若第一次连接,则会弹出弹框,
需输入连接密码进行验证,连接密码初始值为“usr_cn”,密码可以在进入微信小程序后重新进行设定(长度
为 1~10 位)。第一次连接成功后,设备可自动记录连接验证状态。再次连接时, “联博士配置工具”会自动
进入主界面。
4) 微信小程序“联博士配置工具”的主界面如下图所示:


1) 进入微信小程序“联博士配置工具”主界面,点击参数设置选项,进入参数配置界面。界面如下图所示,
小程序会自动获取当前 USR-DR15X 的设置参数然后显示在微信小程序界面上,用户可以非常直观的查看设备
所配置的值。用户可以修改参数值,并点击设置按键进行设置保存,便于适配用户的不同应用。


这里以8路继电器为例:
点击属性设置

点击“新增传感器”,增加1路继电器控制

参数配置:


依次添加8路继电器,只需修改寄存器号即可。
8路继电器全部添加后如下图


点击“配置参数”


这一篇我们介绍了有人科技4G DTU 通过 TCP 透传方式接入 MODBUS 物联网平台 的详细步骤,将8路继电器模块上传到云平台,并生成自定义看板和 App。这些步骤也适用于其它厂商的支持 TCP 透传的 4G DTU产品。
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我正在阅读SandiMetz的POODR,并且遇到了一个我不太了解的编码原则。这是代码:classBicycleattr_reader:size,:chain,:tire_sizedefinitialize(args={})@size=args[:size]||1@chain=args[:chain]||2@tire_size=args[:tire_size]||3post_initialize(args)endendclassMountainBike此代码将为其各自的属性输出1,2,3,4,5。我不明白的是查找方法。当一辆山地自行车被实例化时,因为它没有自己的initialize方法
导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵
目录1.AdmobSDK下载地址2.将下载好的unityPackagesdk导入到unity里编辑 3.解析依赖到项目中
我认为我的问题最好用一个例子来描述。假设我有一个名为“Thing”的简单模型,它有一些简单数据类型的属性。像...Thing-foo:string-goo:string-bar:int这并不难。数据库表将包含具有这三个属性的三列,我可以使用@thing.foo或@thing.bar之类的东西访问它们。但我要解决的问题是当“foo”或“goo”不再包含在简单数据类型中时会发生什么?假设foo和goo代表相同类型的对象。也就是说,它们都是“Whazit”的实例,只是数据不同。所以现在事情可能看起来像这样......Thing-bar:int但是现在有一个新的模型叫做“Whazit”,看起来
我有一个要在我的Rails3项目中使用的数组扩展方法。它应该住在哪里?我有一个应用程序/类,我最初把它放在(array_extensions.rb)中,在我的config/application.rb中我加载路径:config.autoload_paths+=%W(#{Rails.root}/应用程序/类)。但是,当我转到railsconsole时,未加载扩展。是否有一个预定义的位置可以放置我的Rails3扩展方法?或者,一种预先定义的方式来添加它们?我知道Rails有自己的数组扩展方法。我应该将我的添加到active_support/core_ext/array/conversion
我似乎经常遇到一些设计问题,但我不知道是什么是真的很合适。一方面我经常听到我应该限制耦合和坚持单一职责,但当我这样做时,我常常发现它很困难到在需要时将信息获取到程序的一部分。为了例如,classSingerdefinitialize(name)@name=nameendattr:nameend那么Song应该是:classSongdefnew(singer)@singer=singerendend或classSongdefnew(singer_name)@singer_name=singer_nameendend后者耦合性小,按道理应该用。但如果我以后发现宋有什么需要了解更多歌手,我的
我需要使用ActiveMerchant库在我们的一个Rails应用程序中设置支付解决方案。尽管这个问题非常主观,但人们对主要网关(BrainTree、Authorize.net等)的体验如何?它必须:处理定期付款。有能力记入个人帐户。能够取消付款。有办法存储用户的付款详细信息(例如Authotize.netsCIM)。干杯 最佳答案 ActiveMerchant很棒,但在过去一年左右的时间里,我在使用它时发现了一些问题。首先,虽然某些网关可能会得到“支持”——但并非所有功能都包含在内。查看功能矩阵以确保完全支持您选择的网关-http
我真的只是不确定这意味着什么或我应该做什么才能让网页在我的本地主机上运行。现在它只是显示一个错误,上面写着“我们很抱歉,但出了点问题。”当我运行railsserver并在chrome中打开localhost:3000时。这是控制台输出:StartedGET"/users/sign_in"for127.0.0.1at2013-07-0512:07:07-0400ProcessingbyDevise::SessionsController#newasHTMLCompleted500InternalServerErrorin55msNoMethodError(undefinedmethod`