首页 文章 精选 留言 我的

精选列表

搜索[start],共10019篇文章
优秀的个人博客,低调大师

阿里云物联网平台独享实例使用Quick Start

Step By Step 1、创建实例 注意:整个实例的完整初始化大概需要10分钟左右。 2、切换实例(从共享实例切花到独享实例) 3、独享实例下面创建产品和设备(与共享实例操作方法一致) 4、获取连接参数 5、基于开源Java SDK上行数据 参考链接:基于开源JAVA MQTT Client连接阿里云IoT import com.alibaba.taro.AliyunIoTSignUtil; import com.google.common.util.concurrent.ThreadFactoryBuilder; import org.eclipse.paho.client.mqttv3.*; import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; import java.util.HashMap; import java.util.Map; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; public class IoTDemo1 { public static String productKey = "g0fzs******"; public static String deviceName = "******"; public static String deviceSecret = "d2d447494a340499****************"; public static String regionId = "cn-shanghai"; public static String instanceId = "****************"; //物模型-属性上报topic private static String pubTopic = "/sys/" + productKey + "/" + deviceName + "/thing/event/property/post"; private static String subTopic = "/sys/" + productKey + "/" + deviceName + "/thing/event/property/post_reply"; private static MqttClient mqttClient; public static void main(String [] args) throws MqttException { initAliyunIoTClient(); ScheduledExecutorService scheduledThreadPool = new ScheduledThreadPoolExecutor(1, new ThreadFactoryBuilder().setNameFormat("thread-runner-%d").build()); scheduledThreadPool.scheduleAtFixedRate(()->postDeviceProperties(), 10,10, TimeUnit.SECONDS); mqttClient.subscribe(subTopic); mqttClient.setCallback(new MqttCallback() { @Override public void connectionLost(Throwable throwable) { } @Override public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { System.out.println("Topic : " + s); System.out.println("message ;" + mqttMessage.getPayload()); System.out.println(new String(mqttMessage.getPayload())); //打印输出消息payLoad } @Override public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { } }); } private static void initAliyunIoTClient() { try { String clientId = "java" + System.currentTimeMillis(); Map<String, String> params = new HashMap<>(16); params.put("productKey", productKey); // params.put("IotInstanceId", instanceId); params.put("deviceName", deviceName); params.put("clientId", clientId); String timestamp = String.valueOf(System.currentTimeMillis()); params.put("timestamp", timestamp); String targetServer = "tcp://" + instanceId + ".mqtt.iothub.aliyuncs.com:1883"; String mqttclientId = clientId + "|securemode=3,signmethod=hmacsha1,timestamp=" + timestamp + "|"; String mqttUsername = deviceName + "&" + productKey; String mqttPassword = AliyunIoTSignUtil.sign(params, deviceSecret, "hmacsha1"); connectMqtt(targetServer, mqttclientId, mqttUsername, mqttPassword); } catch (Exception e) { System.out.println("initAliyunIoTClient error " + e.getMessage()); } } public static void connectMqtt(String url, String clientId, String mqttUsername, String mqttPassword) throws Exception { MemoryPersistence persistence = new MemoryPersistence(); mqttClient = new MqttClient(url, clientId, persistence); MqttConnectOptions connOpts = new MqttConnectOptions(); // MQTT 3.1.1 connOpts.setMqttVersion(4); connOpts.setAutomaticReconnect(false); connOpts.setCleanSession(true); connOpts.setUserName(mqttUsername); connOpts.setPassword(mqttPassword.toCharArray()); connOpts.setKeepAliveInterval(60); mqttClient.connect(connOpts); } private static void postDeviceProperties() { try { //上报数据 //高级版 物模型-属性上报payload String payloadJson = "{\"params\":{\"DetectDistance\":13}}"; MqttMessage message = new MqttMessage(payloadJson.getBytes("utf-8")); message.setQos(1); mqttClient.publish(pubTopic, message); System.out.println("upload message demo"); } catch (Exception e) { System.out.println(e.getMessage()); } } } 6、数据转发到实例内的时序数据存储 7、设备上行消息,查询运行日志 可以基于日志,快速进行常见问题的排查定位。 8、使用SDK查看流转到TDSB的数据 8.1 pom.xml <dependencies> <dependency> <groupId>com.aliyun</groupId> <artifactId>hitsdb-client</artifactId> <version>0.2.7</version> </dependency> </dependencies> 8.2 code sample import com.aliyun.hitsdb.client.TSDB; import com.aliyun.hitsdb.client.TSDBClientFactory; import com.aliyun.hitsdb.client.TSDBConfig; import com.aliyun.hitsdb.client.value.request.LastPointQuery; import com.aliyun.hitsdb.client.value.request.LastPointSubQuery; import com.aliyun.hitsdb.client.value.response.LastDataValue; import java.util.HashMap; import java.util.List; import java.util.Map; public class demo1 { public static void main(String[] args) { //实例详情页面中的连接地址、端口 String connectString = "************.hitsdb.rds.aliyuncs.com"; int port = 3242; //实例详情页面中的时序数据存储用户名、密码 String username = "iot*****"; String password = "********"; TSDBConfig config = TSDBConfig.address(connectString, port) .basicAuth(username, password) // 网络连接池大小,默认为64。 .httpConnectionPool(64) // HTTP 等待时间,单位为秒,默认为90秒。 .httpConnectTimeout(90) // IO 线程数,默认为1。 .ioThreadCount(1) .config(); TSDB tsdbClient = TSDBClientFactory.connect(config); //按标签筛选数据 Map<String, String> tags = new HashMap<>(); tags.put("deviceName","device1"); String metric = "detectDistance"; long now = System.currentTimeMillis(); LastPointQuery query = LastPointQuery.builder() .timestamp(now) .backScan(-1) .msResolution(true) .sub(LastPointSubQuery.builder(metric, tags).build()).build(); List<LastDataValue> lastDataValues = tsdbClient.queryLast(query); System.out.println(lastDataValues); } } 8.3 result [LastDPValue [metric=detectDistance, timestamp=1594622426000, value=13.0, tags={deviceName=device1}, tsuid=0C000000000002000003000000000098]] 更多参考 实例管理基于开源JAVA MQTT Client连接阿里云IoT阿里云物联网平台博客综述

优秀的个人博客,低调大师

21.8k start! 目前最强大、可扩展性最强的文档项目 -- Wiki

Wiki是一种在网络上开放且可供多人协同创作的超文本系统,由美国人沃德·坎宁安于 1995年首先开发,这种超文本系统支持面向社群的协作式写作,同时也包括一组支持这种写作。沃德·坎宁安将 Wiki定义为“一种允许一群用户用简单的描述来创建和连接一组网页的社会计算系统”。 Wiki站点可以有多人(甚至任何访问者)维护,每个人都可以发表自己的意见,或者对共同的主题进行扩展与探讨。 应用简览 Wiki.js 是一款基于Node.js的开源、现代、轻量级和强大wiki应用程序。其界面简洁且美观、功能丰富且强大。适合做小团队的知识库,一方面方便管理和阅读,另一方面还能协同创作。 主要功能 界面简洁美观:样式精美,友好易用 权限管理灵活:根据角色和需求,精确控制权限,确保系统安全和高效运行 支持多种编辑器: code(可编写 html 页面),markdown(在编辑页面可看到页面效果),visual editor(功能强大的文本编辑器,所见即所得) 多种用户验证方式:包括Github、Gitlab、Auth0等,应用灵活,确保多样性用户需求得以满足 多种备份存储方式:Amazon S3、SFTP、Azure Blob Storage等,也可选择本地文件备份,支持每日备份 强大搜索功能:支持全局和关键字搜索,确保快速定位所需信息 支持网站分析工具:Google Analytics、百度统计、Matomo、StatCounter等等,共多达十几种 多语言支持 :提供多语言界面,包括中文,以适应不同地区和用户的需求 应用特色 一、多语言支持 Wiki.js的系统提供多语言界面,其中包括中文,以满足不同地区和用户的语言需求。这意味着用户可以在最熟悉和舒适的语言环境下使用Wiki.js。 二、界面简洁美观 Wiki.js提供了一个内置的UI设计,它的美观程度相对较高。同时,它采用了经典的布局方式,将左侧用作导航侧栏,右侧用于显示目录。这个布局符合人们从左到右的阅读习惯,因此也是默认的访客页面布局。这种布局设计有助于用户更轻松地浏览和导航网站内容,提供了一种直观的阅读体验。 三、支持多种编辑器 Code编辑器:对于那些擅长编写HTML页面或需要更高度定制的用户,Wiki.js提供了Code编辑器,让用户能够自由编写HTML代码,实现精确的页面设计和功能。 Markdown编辑器:对于喜欢简洁、结构化文本的用户,Wiki.js支持Markdown编辑器。在编辑页面时,用户可以立即看到Markdown代码的渲染效果,使用户可以更直观地编辑和预览内容。 Visual Editor:如果用户需要一个强大的文本编辑器,但不想与代码互动,Wiki.js提供了Visual Editor,这是一个所见即所得的编辑器。它具有丰富的功能,让用户可以直接编辑内容,无需编写代码,使编辑变得更加简单和直观。 四、权限管理灵活 Wiki.js提供了高度灵活的权限管理系统,允许用户根据不同角色和特定需求,精确控制用户权限。这确保了系统在安全性和高效性方面运行良好。无论是限制访问特定功能、页面或数据,还是分配不同级别的管理权限,都可以根据用户的需求进行精细调整,以满足组织内不同角色的要求,同时确保敏感信息的保护和系统的合规性。 五、多种用户验证方式。 Wiki.js支持多种用户验证方式,包括Github、Gitlab、Google等,这些验证方式非常灵活,可以满足不同用户的多样性需求。不管是希望使用现有的身份验证凭据,还是需要单点登录来简化访问流程,我们都提供了适用的解决方案。这使得用户可以以自己熟悉和信任的方式访问系统,提高了用户体验,同时保障了安全性。无论您的用户群体多么多样化,Wiki.js都有适合的验证方式来满足他们的需求。 六、多样化的备份存储选择 Wiki.js提供多种备份存储方式,以满足用户的数据保护需求,包含但不限于以下几种存储方式: Amazon S3:将备份存储在Amazon S3对象存储中,确保数据的高可用性和可靠性。 SFTP:使用SFTP协议将备份传输到远程服务器,以确保数据的安全传输。 Azure Blob Storage:选择Azure Blob Storage作为备份存储选项,将数据存储在Microsoft Azure云中。 本地文件备份:如果用户更倾向于将备份存储在本地环境中,Wiki.js也支持本地文件备份选项,以满足特定的需求。 此外,Wiki.js还提供每日备份功能,以确保用户的数据随时都能得到备份并保持最新。这一系列备份存储选择旨在为用户提供灵活性和可靠性,以确保数据的安全性和可恢复性。 七、积极支持多种网站分析工具 包括但不限于以下几种: Google Analytics:借助Google Analytics,您可以深入了解网站访问者的行为、来源和流量,以便做出更明智的决策。 百度统计:百度统计是中国用户常用的分析工具,可提供详细的网站数据和用户洞察。 Matomo:Matomo(以前称为Piwik)是一个开源的网站分析平台,让您完全掌控数据,并提供高级的分析功能。 StatCounter:StatCounter提供了实时网站分析,以及各种有用的统计数据,以帮助您了解访问者的习惯。 这仅是多达十几种网站分析工具中的一小部分。Wiki.js支持这些工具以满足用户的多样性需求,无论是需要基本的访问统计还是深入的用户行为分析,都能在Wiki.js平台上找到适合的解决方案。Wiki.js的目标是为用户提供详尽的网站数据,以便更好地了解和优化在线业务。 安装指南 进入云原生应用商店 搜索 Wiki 进入详情,选择包类型(本应用支持,docker安装,ram安装) 点击安装,执行相应命令即可。如有疑问可参阅使用文档 或加入社区 关于云原生应用市场 云原生应用市场是一个汇聚了各类开源软件的应用市场,不仅可以作为你自己的 Helm Chart 仓库,提供丰富多样的Helm应用,还有 Docker 应用、Rainbond 应用模板、信创应用等多种选择。 官网:https://hub.grapps.cn/ 微信群:关注 云原生应用市场 公众号加入技术交流群

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册