一、前言
① 智能邊緣計算作業系統
- EdgerOS 是為萬物互聯時代而生的智能作業系統,為廣大開發者提供基于互聯網技術堆疊的作業系統平臺,極大簡化了物聯網 App 開發難度,提高開發效率,通過愛智云,EdgerOS 為開發者提供了強大的云-邊-端協同能力,開發者無需關心設備是本地還是遠程連接,EdgerOS 能夠無縫切換,給用戶帶來絲滑的使用感受,實作“多用戶-多終端-多設備”的實時連接與互動,
- EdgerOS 是下一代面向物聯網和邊緣計算的智能作業系統,可廣泛應用于面向個人、家庭和行業的物聯網產品和解決方案,有效降低開發門檻、縮短開發周期,通過建立開放的生態,與廣大開發者一起實作萬物智能互聯,

- 設備自動發現和連接
-
- EdgerOS 能夠為您的居家、作業、購物和娛樂等生活帶來全新的智能體驗,得益于 EdgerOS 對于多種物聯網協議的支持,Spirit 1 能夠通過作業系統內置的 SDDC (Smart Device Discovery & Control) 和 ZDDC (ZigBee Device Discovery & Control) 等智能設備發現協議,自動發現和連接您身邊不同廠家的多種物聯網設備,
-
- EdgerOS 出眾的設備自動發現和連接能力,能夠極大降低物聯網設備發現、連接和配置的困難,

- 場景智能化
-
- EdgerOS 內置了豐富的人工智能演算法,不論您的物聯網設備具備何種計算能力,EdgerOS 都能夠通過算力共享和開箱即用的人工智能演算法,讓您的物聯網設備變得更加智能,回應更加敏捷,成本更加低廉,
-
- 得益于內置的多網路協議和多設備連接能力,結合不斷進化的人工智能演算法,EdgerOS 能夠真正實作基于場景的智能化,而不是把手機變成新的遙控器,

- 多終端和遠程訪問
-
- EdgerOS 支持分布式多顯示終端,無論您身在哪里,您的邊緣計算機,以及與之相連的各種物聯網設備都將變得觸手可及,

-
- EdgerOS 原生支持本地和遠程多終端顯示,客戶端能夠自適應多種不同的螢屏解析度和方向,為用戶提供更佳的使用體驗,通過遠程終端,您可以隨時隨地獲取您關心的設備資料,并根據您的需要進行遠程控制,

- 平臺開放
-
- EdgerOS 除了支持海量設備連接,同時也是一個開放的智能計算平臺,EdgerOS 不僅提供了自研的 SDDC 和 ZDDC 等智能物聯網協議,還提供了功能豐富的設備、網路、安全、流媒體、人工智能等介面和開發 SDK,

-
- 在 EdgerOS 的開發者平臺,無論您是物聯網設備開發者還是應用軟體開發者,都能夠向“愛智社區”與“愛智世界”發布您的物聯網設備資訊或者您開發的應用,這些海量的設備和應用,將為消費者帶來更豐富的體驗,得益于開放的平臺設計,EdgerOS 能夠匯聚眾多開發者的創意,讓更加優質的智能物聯網應用脫穎而出,共同創造未來智能生活,

- 安全和隱私保護
-
- 作為面向物聯網的智能作業系統,EdgerOS 具備業界優秀的安全能力,能夠為您的物聯網設備和隱私資料提供更好的安全保護,EdgerOS 內置了眾多安全存盤與安全通訊技術,能夠鑒別可信硬體,識別并拒絕未經授權的設備或用戶訪問系統應用和資料,把安全措施不足的普通物聯網設備置于 EdgerOS 強大的保護之下,

-
- EdgerOS 具備完善的用戶認證和權限管理機制,任何應用想訪問您的設備和資料,都要經過您的親自授權才可以執行,而且您有隨時識訓這些授權的能力,EdgerOS 還內置了掉電安全的檔案系統,即便使用環境再惡劣,也能夠保護用戶的資料萬無一失,同時 EdgerOS 可以通過 OTA 升級,以應對可能出現的各種安全和隱私威脅,

② 智能邊緣計算機
- Spirit 1 是翼輝資訊推出的一款高性能、高速率、高可靠、低延時的智能邊緣計算機,搭載 EdgerOS 智能作業系統,通過將建立開放的生態,與廣大開發者一起實作萬物智能互聯,

- Spirit 1 身材小巧并且設計百搭,隨心擺放適合不同風格的家庭和辦公環境:

- 半透明面板設計,狀態指示燈讓您隨時掌握設備的作業狀態:

- 64 位高性能 ARMv8,4 核處理器,能輕松處理路由、AI 和設備管理等日常任務:

- 算力分享,依托強大的 EdgerOS 智能邊緣作業系統,將算力分享給周邊的各種智能設備;實時作業系統級別的網路協議優化,穩定提供千兆有線網路和高速無線傳輸;高品質元器件,確保高可靠,EdgerOS 內置的智能服務質量(QoS),用戶可按需調整網路流量,確保網路暢通;EdgerOS 內核來自業內領先的大型實時作業系統 SylixOS,天然具備對高優先級任務的實時回應能力,
- 廣連接:支持 Wi-Fi、以太網、ZigBee、LoRa 等不同制式的無線和有線設備,能夠適應從智能家居到智慧園區等諸多應用場景,

- 真智能:Spirit 1 搭載的 EdgerOS 具有功能豐富,開箱即用的人工智能介面,支持人臉識別、車牌識別、年齡和性別識別等諸多功能,
③ 系統架構
- EdgerOS 作業系統的系統架構分為三個部分,分別是基礎組件、系統服務、應用架構,同時,它們又包含豐富的細分模塊,具體如下圖所示:

二、平臺注冊
① 注冊開發者
- 注冊成為開發者,進入愛智開發者平臺,單擊右上角開始使用按鈕,然后跳轉注冊,需要填寫以下資訊進行注冊(注冊地址),

② 實名認證
- 如果需要創建多個應用,需要完成實名認證,關于實名認證,使用可信的第三方認證,如:支付寶,平臺不保留任何用戶資訊,
- 在應用管理平臺界面單擊用戶設定>實名認證,進入實名資訊頁面,如實填寫姓名和身份證號,然后單擊下一步:

- 進入掃碼認證頁面,打開手機支付寶掃一掃,請在 3 分鐘內完成認證:

- 掃碼后進入支付寶的身份驗證頁面,認真閱讀《認證服務協議》,并點擊同意并認證:

- 根據支付寶提示拍攝或者上傳身份證正反面照片:

- 根據支付寶提示,進行面部掃描:

- 最后提示認證成功身份驗證即完成:

- 進入認證結果頁面,頁面會提示恭喜您已實名認證成功,認證有效期為一年,到期之后需要重新認證:

③ 完善資訊
- 完善郵箱資訊(可選):

- 完善密保問題(可選):

- 完善設備資訊(可選):該設備資訊是指愛智設備(精靈一號)的資訊,通過填寫您的愛智設備的 SN 號和備注,并上傳 Logo,點擊“確定”生成設備二維碼,以便于用戶通過愛智 App 的掃描功能快速連接愛智設備:

④ 開發參考資料
- EdgerOS;
- MS-RTOS,
三、EdgerOS Spirit 1 初體驗
① Spirit 1 開箱
- 外觀:第一眼看上去就是個路由器的造型,透明的外殼工業味十足:

- 正面面板:
-
- 模塊狀態指示燈:依次是 LORA,ZigBee,WAN,mobile,由于 LORA 和 ZigBee 這倆模塊都是內置的,因此指示燈是亮著的;WAN 介面沒插,mobile 模板無設備,因此指示燈沒亮;
-
- CPU 負載燈:負載越大,閃爍越快,應該是讀取了 CPU 的使用率,然后以某個速率點亮 LED;
-
- 設備狀態燈:設備啟動后常量,可以理解為電源顯示燈,

- 背部介面:
-
- 電源:12V2A 的 DC 輸入;
-
- 還原按鍵:這種一般都是硬體直連主控芯片的,某種方式觸發后(一般都是長按多少秒)就可以洗掉所有配置,回歸出廠狀態;
-
- HDMI 介面:可以外接音視頻播放器,這是不是可以開發為電視盒子,直接接顯示幕;
-
- USB 介面:外接輔助設備,應該是可以插優盤,讀取媒體檔案,和上面的結合使用;
-
- 以太網介面:WAN口(廣域網),LAN 口(局域網),

- 側面介面:
-
- SIM 卡介面:這種介面一般工業物聯網無線設備都會加,主要就是可以在沒有有線網的情況下提供無線服務,一般都有專門的流量卡;
-
- TF 卡介面:和后面板的 USB 介面應該差不多,可以外接輔助存盤設備,

- 裝好之后發現外殼可以拆卸,那當然要拆下來一探究竟的,可以發現右側兩根是 Wi-Fi 天線,左側的是 Zigbee 天線,左上是 LoRa 天線,看來它可不僅僅是個路由器:

- 對照說明書,先下載安裝愛智應用,打開后需要先連接到 Spirit 1 的網路中,配置一下網路:

- 配置好網路就可以注冊賬號并登錄:

- 再設定下設備密碼,選擇風格就激活完成了,步驟挺多但是跟著說明書一步步來也還算順利,預裝只有五個應用,愛智世界看上去是個應用商店,
- 激活的時候有一步是設定無線網路,我給跳過了,不過沒關系,在路由器應用當中可以繼續配置:

② 體驗分享
- 路由器是進入愛智的第一個應用,可不光光只是在激活的時候配置一下 Wi-Fi ,其實里面還是有很多值得看一下的地方,進入應用后就是網路速度、消耗流量、以及連接終端數量等統計界面:

- 作為路由器來說,相比常用的路由器要清晰不少,至少不用輸入 IP 進入管理頁面還得調節畫面尺寸然后配置網路,點擊左上角的圖示就可以進入到網路配置界面,正常配置 Wi-Fi 的話進入寬帶連接中選擇對應的連接方式(動態 IP 、靜態 IP 、 PPPoE 撥號)按要求配置就可以了,無線局域網中的配置是來設定 Wi-Fi 名稱和密碼的,至于移動網路這一項可以在使用 SIM 卡上網的情況下查看相關資訊,其他的局域網以及高級設定中可以配置限制規則等更進一步的操作,日常是用不太到,這里不再細說:

- 設備第一次接入:在愛智的官網中看到 Spirit 1 可以接入米家的一些設備,不過種類不是很多,根據官網的介紹這個就需要打開設定應用,點擊下方的加號來掃描發現設備,長按小米插座的開關直到指示燈閃爍進入搜索狀態,之后就可以在愛智上面發現新設備了,點擊添加以后就可以把設備加入到愛智當中了,官網有提供可以控制的應用 ,下圖是官網的動圖演示還是比較清楚的:

- 設定中的用戶和權限控制:比較重要的就是 EdgerOS 的權限控制,在設定中的隱私設定中,可以分別對設備、應用、系統三者間的權限做限制,能看出來在 EdgerOS 中設備和應用是完全獨立的不存在耦合,這樣設備就可以很好的進行復用:

- 再就是用戶設定每一個新用戶要加入到這臺 Spirit 1 上面都需要管理員給添加一個身份,可以自定義這些身份的權限,這一功能還是比較實用的,畢竟如果是攝像頭設備或者一些涉及隱私的應用還是不想其他人可以查看的:

四、開發實踐
① 環境搭建
- iOS 手機端:需要下載并安裝愛智 APP,連接名稱為 EOS-XXXXXX 的 wifi 網路,在 App 中點擊“發現設備”按鈕,添加設備后并完成設備的注冊,最后設定網路名稱和密碼,激活設備,
- PC 電腦端:搭建 EdgerOS 在 PC 端的開發環境還是非常方便,可以直接使用 VSCode 開發工具就可以,只是需要安裝一個相應的開發插件,在 VSCode 中擴展程式中搜索 edger 關鍵字,會出現下圖所示的插件工具,點擊“安裝”即可:

- 安裝完成后,在資源管理器的最下方會出現 EDGEROS 面板,選擇“創建專案”,具體操作如下所示:

- 點擊“創建專案”后,會出現專案模版庫串列,如下圖所示 :

- 選擇“基礎的流媒體攝像頭監控 EdgerOS APP ”模板作為整個工程的基礎組件,如果遇到該頁面為空,沒有這么多的模板資訊,可以嘗試點擊左下角的“重繪模板資訊”按鈕;如果還是為空,可以切換倉庫源為 Gitee,因為系統默認是 Github 倉庫源,很可能因為網路問題導致無法訪問,具體修改方式可以參考下圖:

- 選擇“立即應用”后,會出現下圖的專案資訊頁,完成專案配置,如下所示:

- 資訊填寫完成后,點擊頁面右下角的“立即創建”按鈕,就可以把基礎工程創建好,如下圖所示:

- 其中 camera1 目錄中是后端邏輯代碼,web 目錄中是前端業務邏輯代碼,專案本身實作了前后端分離,
- camera1 中的 package.json 內就是剛才填寫的資訊:
{
"name": "com.example.monitoring",
"version": "0.0.1",
"description": "家用智能監控",
"main": "main.js",
"scripts": {
"build": "eos build"
},
"license": "MIT",
"dependencies": {
"@edgeros/jsre-medias": "^2.0.0"
},
"devDependencies": {
"eslint": "^7.23.0",
"@edgeros/jsre-types": "^0.1.1",
"@edgeros/eslint-plugin-jsre": "^0.0.3"
},
"author": "xxxxxx@qq.com"
}
② 示例代碼分析
- 引入專案所需的系統模塊:
/* Import system modules */
const WebApp = require('webapp');
const WebMedia = require('webmedia');
const bodyParser = require('middleware').bodyParser;
const {Manager} = require('@edgeros/jsre-medias');
const CameraSource = require('./camera_src');
- 部分需要使用的變數定義:
/* Register media source. */
const sourceName = 'camera-flv';
WebMedia.registerSource(sourceName, CameraSource);
/* WebApp. */
var app = WebApp.createApp();
/* Set static path. */
app.use(WebApp.static('/public'));
/* Media manage server. */
var server = undefined;
/* Is server starting. */
var starting = false;
- 創建媒體服務:
/*
* Create Media server.
*/
function createMediaSer() {
console.log('Create media server.');
if (server) {
return server;
}
var opts = {
mediaTimeout: 1800000,
searchCycle: 20000,
autoGetCamera: false
};
server = new Manager(app, null, opts, (opts) => {
return {
source: sourceName,
inOpts: opts,
outOpts: null
}
});
server.on('open', (media) => {
console.log('Media open.')
media.on('open', (media, client) => console.log('Media client open.'));
media.on('close', (media, client) => console.log('Media client close.'));
});
return server;
}
- 設備串列查詢介面:
/*
* res: [{devId, alias, report, status}...]
*/
app.get('/api/list', (req, res) => {
if (!server) {
var ret = startServer();
if (!ret) {
return res.json([]);
}
}
var devs = [];
server.iterDev((key, dev) => {
var info = dev.dev;
var stream = dev.mainStream;
var media = stream ? stream.media : null;
devs.push({
devId: key,
alias: `${info.hostname}:${info.port}${info.path}`,
report: info.urn,
path: media ? '/' + media.sid : '',
status: media ? true: false
});
});
res.send(JSON.stringify(devs));
});
- 前端組件模塊的引入如下:
import Vue from 'vue';
import App from './App.vue';
import router from './router';
import Vant from 'vant';
import 'vant/lib/index.css';
import {Notify} from 'vant';
import {edger} from '@edgeros/web-sdk';
import {setToken, setSrand} from './lib/auth';
import {setPerms, checkPerms, requestPerm} from './lib/permission';
- 定義基礎變數以及收發事件:
console.log(typeof Module);
console.log(typeof NodePlayer);
Vue.config.productionTip = false;
Vue.use(Vant);
Vue.use(Notify);
edger.onAction('permission', (data) => {
setPerms(data);
});
edger.onAction('token', (result) => {
const { token, srand } = result;
setToken(token);
setSrand(srand);
});
edger.token()
.then((result) => {
const {token, srand} = result;
setToken(token);
setSrand(srand);
})
.then(() => {
var ret = checkPerms();
if (ret.length > 0) {
requestPerm();
}
})
.catch((err) => {
console.error(err);
})
.finally(() => {
NodePlayer.load(()=>{
new Vue({
router,
render: h => h(App),
}).$mount('#app');
});
});
- 編譯執行工程的 camera1 和 web,它們各自生成自己的 node_modules 庫目錄,進入 web 目錄,執行 npm run build 命令生成對應的 dist 目錄,將其中的檔案拷貝到 camera1 的 public 目錄中,
- 然后繼續添加設備,打包安裝 EdgerOS APP 到設備上,利用 PC 電腦和 iOS 手機端都同時登陸 EdgerOS 分享出來的 WiFi,可以成功安裝 App,
- 本文正在參與“2021愛智先行者-征文大賽”活動:2021愛智先行者-征文大賽重磅來襲!萬元現金等你來拿,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/357197.html
標籤:其他
上一篇:如何選擇加密模式
下一篇:有關hc-12的使用經驗
