開發與維運

開發與維運

JavaScript使用Modbus協議實現RTU設備連雲

來源 | HaaS技術社區 1、功能簡介 在阿里雲物聯網平臺下發物模型屬性設置數據,HaaS600Kit 接收並解析雲端數據後控制 Modbus 繼電器設備進行開關動作。 2、硬件連接 硬件平臺:HaaS600開發板(EC600S-CN)、TTL轉485串口板、Modbus繼電器設備。 注意本示例中 HaaS600開發板需要5V DC接口供電,否則串口轉接板工作時有可能因為供電不足導致系統重啟。 2.1、HaaS600串口使用介紹 HaaS600 用戶串口只有一個UART2,為了方便開發,板子上提供了USB2、J5和 J6 三處UART2 接口,其中 J5 […]

開發與維運

HaaS EDU K1場景式應用案例上手

來源 | HaaS技術社區 1、場景式案例介紹 基於HaaS EDU K1 硬件本體,在無須外接任何外設的情況下,官方提供了10個精心打造的場景式案例,每一個都是不同的知識點,先來一個10個案例的總覽: 10大場景中包含了常見的物聯網傳感器、相應的操作案例、開源代碼。寓教於樂,在邊玩的過程中就能將知識點學習了。場景式案例包括: 首頁系統信息屏 溫溼度計 陀螺儀小球 分歧爭端機 電子羅盤 光照信息屏 大氣壓海拔儀 復古八音盒 貪吃蛇 飛機大戰  

開發與維運

談談MQTT協議下的歷史演進及實踐

來源 | HaaS技術社區 MQTT是基於TCP/IP協議棧構建的異步通信消息協議,是一種輕量級的發佈、訂閱信息傳輸協議。MQTT已逐漸成為IoT領域最熱門的協議,也是國內外各大物聯網平臺最主流的傳輸協議,阿里雲IoT物聯網平臺很多設備都是通過MQTT接入。 本文將詳細介紹MQTT協議的歷史演進,以及阿里雲IoT物聯網平臺在MQTT協議層實踐中的一些關鍵設計及思考。 本文主要包含了以下內容: MQTT協議演進歷史及協議特點,總結和分析MQTT協議族的優缺點,分析和總結了為什麼相比於其他協議,MQTT適合IoT等。 阿里雲IoT MQTT3和5協議在實踐中的一些關鍵設計及思考。包括連接複用、狀態一致性、擴展增值能力設計等。 一、MQTT協議 1.1 MQTT協議演進 MQTT最初由IBM於20世紀90年代發明,最初是用於石油管道的傳感器與衛星之間數據傳輸。MQTT v3.1.1於2014.10月正式發佈,與此同時v3.1.1已成為OASIS協議標準(就是3.1.1已升級為國際物聯網標準)。正如HTTP為人們通過web分享信息鋪平了道路一樣,MQTT標準化能將幾十億低成本、IoT設備連接到網絡。毫無疑問,MQTT是當前最主流、增長最迅速的IoT應用層傳輸協議,目前,阿里雲IoT平臺許多在線設備都是通過MQTT接入的。 MQTT v5.0 於2018.5月正式發佈,2019年3月,v5.0 成為了新的 OASIS 標準。v5.0在

開發與維運

解讀|阿里雲IoT億級設備接入層如何建設實踐

來源 | HaaS技術社區 一、前言 不同的接入層 互聯網的產品基本都需要解決終端的接入問題,每個接入層會因為終端數量、終端能力、網絡環境等不同的因素有各自的設計特性,比如:淘寶網需要解決海量短連接問題、微信需要解決海量長連接問題,同時大家都要解決移動網絡問題,那麼阿里雲IoT物聯網接入層需要解決的是什麼?在回答這個問題之前,先來看看物聯網的特性 物的特性不同 “物”的種類非常多,應用場景、成本各不同,比如水錶一般安裝在戶外,一般採用電池供電,這種設備對能耗的要求非常苛刻,比如基站鐵塔的後備電源,一般安裝在荒野,這種設備對網絡的要求非常苛刻,比如開關,這種設備對存儲、內存、cpu的要求非常苛刻,不同的”物”特性催生了不同的IoT接入層,下面來看看IoT接入層需要做什麼? 二、IoT接入層需要解決什麼問題? 2.1 接入層關鍵問題 安全性:通道安全、身份安全、數據安全 連接方式:採用TCP、UDP,使用長連接還是短連接? 協議選擇:http協議、protobuf協議、mqtt、coap、私有協議等 網絡問題:就近接入/就快接入、系統及TCP/IP協議內核參數的調優等 海量連接問題:當海量連接在線時,怎麼保障系統的可用性? IoT協議多樣性、設備碎片化 針對這些設備特性,IoT接入層需要怎麼來解決? 2.2 相同的問題,不同的解法 安全性:各種設備都聯網後,設備將在我們的生活中更加根深蒂固,給安全帶來更大的挑戰,比如:汽車、門鎖、起搏器等收到安全攻擊,那麼用戶的隱私、財產、生命都會帶來嚴重的威脅。IoT場景下很多設備對存儲、內存、cpu、網絡都有要求,那麼在設計安全時,就不能簡單的通過加強加密的安全方法來解決這個問題,因為它們執行復雜加密和解密的速度不足以讓它們實時安全地傳輸數據。IoT接入層既要考慮安全性,又要對受限設備做妥協,需要怎麼去平衡兩者的需求?

開發與維運

HaaS100串口UART使用介紹

1. HaaS100串口UART硬件說明 HaaS100上有3個物理串口(UART)。 1) UART 0 UART 0是調試串口,已用USB轉UART芯片轉為USB口,可通過Micro USB線與電腦連接,用於串口打印及shell命令輸入。同時,可以通過板子上硬件電阻切換成RS232。 UART 0調試串口在板子上的位置如下圖紅框所示:  UART 0作為調試口時,使用Micro USB數據線連接串口即可。 UART 0作為RS232使用時,在板子上的位置如下圖所示: RS232由於與調試串口共用UART 0,使用時,需要修改板子上的硬件,把UART 0切換成RS232,修改方法如下: 如上圖,將圖示中紅框中的2個焊點短接,UART0切換成RS232接口,此時USB口無法使用。

開發與維運

關於IoT高級設備檢索需知,看這篇就夠了

一、場景特性 每個業務場景都有自己特有數據特性,IoT也不例外。單純從設備檢索的角度切入來看,IoT的設備檢索特性如下:      1. 億級數據;      2. 數據高頻變更;      3. 時序特性;      4. 無冷熱特徵;      5. 結構鬆散;      6. 數據異構; 二、數據Dump層 整體思路和多數檢索場景類似:全量數據+增量數據。由於底層用了多套雲檢索引擎,因此整個Dump層天然具備雲原生的能力,與此同時,我們採用了影子庫、主備集群、讀寫分離、配置化、全鏈路監控等手段,來保障數據的吞吐、時延、穩定、高效。 三、物模型檢索 物模型是物理空間中的實體(如傳感器、車載裝置、樓宇、工廠等)在雲端的數字化表示,從屬性、服務和事件三個維度,分別描述了該實體是什麼、能做什麼、可以對外提供哪些信息。因此相對於設備的元數據(名稱等),物模型數據的檢索是極其重要的一部分。然而,雖然單個設備的物模型屬性數量是有限的,但是不同的設備的物模型屬性數是完全不一樣的,這就導致最終最終設備的物模型的屬性是不可窮盡的,但是我們的索引表的寬度是有限的。因此,就需要用有限的索引列存儲無限的物模型數據。 通過結合物模型的特點:數據定義明確、整體數量不可窮盡、單設備可窮盡,將單設備的物模型信息與索引進行映射,多設備複用相同索引,實現物模型數據的檢索。 四、SQL-Like檢索能力

開發與維運

物聯網輕鬆上雲實踐 之 HaaS樣板間

1、背景 從2020年雲棲大會HaaS團隊第一次發佈“HaaS物聯網設備雲端一體開發框架”至今,HaaS團隊共發佈了HaaS100/ EDU K1/ 200/ 506/ 610/ 531/ 600等HaaS智能硬件。   圖1:HaaS各版本智能硬件的主要區別 那麼用戶拿到HaaS開發板之後,如何快速的讓自己的HaaS硬件快速的上雲,並且在雲端可視化頁面中和HaaS硬件交互呢?傳統的做法是,開發者需要經歷以下步驟:  圖2: 傳統雲端一體案例開發流程 大家看到這麼長的開發流程是不是有心疼自己腦細胞,想放棄(讓開發板吃灰)的念頭? 那麼能不能做點局部創新,讓HaaS用戶在收到開發板之後稍作修改就能快速體驗到“HaaS雲端一體”的解決方案呢?答案是肯定的。 2、為什麼要做HaaS JS輕應用樣板間 為了讓廣大開發者用戶在拿到HaaS硬件之後不讓它吃灰,我們專門打造了“HaaS JS輕應用樣板間”,基於此開發者用戶們可以在10分鐘內快速體驗一把“HaaS雲端一體”的解決方案。

開發與維運

大數據技術之Hadoop3.x筆記

一、Hadoop入門 1、常用端口號 hadoop3.x HDFS NameNode 內部通常端口:8020/9000/9820 HDFS NameNode 對用戶的查詢端口:9870 Yarn查看任務運行情況的:8088 歷史服務器:19888 hadoop2.x HDFS NameNode 內部通常端口:8020/9000 HDFS NameNode 對用戶的查詢端口:50070 Yarn查看任務運行情況的:8088 歷史服務器:19888

開發與維運

阿里巴巴前端規約及配套工具

規約文檔 規約文檔主要分為編碼規約和工程規約兩大類,包括: 編碼規約 HTML 編碼規約 CSS 編碼規約 JavaScript 編碼規約 TypeScript 編碼規約 React 編碼規約 Rax 編碼規約 Node.js 開發規約 工程規約 Git 規約

開發與維運

js中的數組刪除、對象屬性刪除

刪除數組中的元素 使用splice(會改變原數組) arr.splice(index,len,item); //index,刪除或者替換的起始位置 //len,刪除或者替換的長度 //item,替換的內容 arr = [“a”,”b”,”c”,”d”] //刪除 arr.splice(1,2) ====>[“a”,”d”] //替換 arr.splice(1,1,”tt”) ====> [“a”,”tt”,”c”,”d”] arr.splice(1,2,”tt”) ====> [“a”,”tt”,”d”] //添加

Scroll to Top