下一代物聯(lián)網(wǎng)全棧開發(fā)
Java數(shù)據(jù)展示開源項目匯總
D3(https://github.com/d3/d3)是基于SVG的矢量圖操作工具。通過使用Java,D3將數(shù)據(jù)以矢量圖形式展示出來并提供了任意伸縮的能力,在HTML5出現(xiàn)之前,D3是二維可視化的底層標準。通常許多繪制圖表與數(shù)據(jù)可視化工具都使用D3作為底層驅(qū)動引擎,在其之上提供用戶友好的API接口。
three.js(https://github.com/mrdoob/three.js/)是基于WebGL的Java3D繪圖工具。通過WebGL擴展,Java語言實現(xiàn)了直接驅(qū)動底層顯卡進行3D繪圖。three.js在3D圖像基礎上還提供了VR支持,可以方便的使用Java來實現(xiàn)VR數(shù)據(jù)展示。
ionic(https://github.com/driftyco/ionic)是基于AngularJS的移動端跨平臺開發(fā)環(huán)境,能夠在一個統(tǒng)一的框架下使用Java HTML CSS,同時完成開發(fā)iOS、Android、Window Phone程序,并根據(jù)各個環(huán)境的不同UI做自動適配。
Electron(https://github.com/electron/electron)是基于Node.js與chrome的跨平臺桌面開發(fā)環(huán)境,electron通過將瀏覽器內(nèi)核和后臺Node.js服務進行打包,實現(xiàn)了一個使用Java的全棧開發(fā)環(huán)境,無需任何修改就能夠?qū)⒊绦虿渴鸬絎indows、macOS、Linux平臺上。
nw(https://github.com/nwjs/nw.js)是輕量級的Java跨平臺桌面開發(fā)環(huán)境,它實現(xiàn)了在HTML代碼中直接調(diào)用Node.js的各種API函數(shù),提供了一個平滑自然的桌面應用開發(fā)環(huán)境,隱藏了客戶端服務器編程的細節(jié)。
物聯(lián)網(wǎng)Java實例講解
為更好理解Java物聯(lián)網(wǎng)開發(fā),下面以筆者設計的物聯(lián)網(wǎng)系統(tǒng)為例,詳細介紹物聯(lián)網(wǎng)系統(tǒng)的設計。所有設計資料都是開源的,讀者可以對照源碼網(wǎng)頁與文檔。( http://openfpgaduino.github.io)
● 物聯(lián)網(wǎng)網(wǎng)關最小系統(tǒng)硬件設計
對于應用于物聯(lián)網(wǎng)的嵌入式系統(tǒng),系統(tǒng)的硬件設計是重要的組成部分,通常來說應對不同的應用,嵌入式硬件的系統(tǒng)設計會有所不同,每個系統(tǒng)都會按照相應的應用場景進行調(diào)整。但是物聯(lián)網(wǎng)的核心系統(tǒng)通常是一個設計構架可以應用于一大類的系統(tǒng),所需要調(diào)整的通常是外圍設備。

圖1
如圖1所示是筆者設計的物聯(lián)網(wǎng)網(wǎng)關最小系統(tǒng),在系統(tǒng)設計思想上首先保證了核心系統(tǒng)的通用性,采用了ARM處理器。因為是網(wǎng)關節(jié)點,設計上需要網(wǎng)關直接連接IP網(wǎng)絡并提供全功能的網(wǎng)絡服務,因此選擇了能夠完整運行Linux系統(tǒng)的ARM9處理器,運行完整的Linux也是能夠運行Node.js與完整Java的必要條件。由于采用了標準Linux,雖然Linux內(nèi)核提供了一些實時性補丁,但由于編程模型復雜而且也不適合與Node.js集成,因此在最小核心系統(tǒng)中加入了FPGA。FPGA能夠在硬件層面完成實時響應,解決了系統(tǒng)的實時響應需求,其次由于FPGA是一種可配置系統(tǒng),能夠根據(jù)應用需要進行設計與配置,所以引入FPGA也極大提高了系統(tǒng)的適配能力,為靈活適配各種不同物聯(lián)網(wǎng)應用提供了基礎。
● 物聯(lián)網(wǎng)網(wǎng)關系統(tǒng)軟件設計
物聯(lián)網(wǎng)網(wǎng)關的軟件設計完全是基于硬件設計的構架,最大限度發(fā)揮硬件的功能,設計流程如下:
1.首先在ARM9處理器上運行完整的Linux系統(tǒng),其擁有完整的網(wǎng)絡服務,并能根據(jù)需要通過APT-GET命令來安裝所需要的軟件包。
2.在Linux系統(tǒng)基礎上,運行Node.js+MongoDB來提供所有網(wǎng)絡服務。
3.在Node.js里運行HTTP服務器來提供基于Restful API的各種本地服務,包括各種外設與I/O的控制。
4.運行HTTP服務器,基于RESTful API,實現(xiàn)了基于HTML5的云IDE開發(fā)環(huán)境。方便技術極客對網(wǎng)關的功能進行定制,這些IDE包括了Java的IDE,基于圖形編程的Blockly IDE和可以配置FPGA模塊功能和引腳定義的Web設計工具,當然也包括較為底層的c語言IDE。
有了這些功能,用戶就可以根據(jù)自己的需要,編寫簡單的程序來控制與物聯(lián)網(wǎng)網(wǎng)關連接的任何設備,實現(xiàn)自己的智能物聯(lián)網(wǎng)。
在板子內(nèi)部,通過實現(xiàn)Linux內(nèi)核驅(qū)動的用戶空間模式,實現(xiàn)了Node.js直接訪問FPGA內(nèi)存空間、控制FPGA內(nèi)部邏輯,并最終控制與FPGA相連接的各種物聯(lián)網(wǎng)外設的功能。同時還實現(xiàn)了Node.js對FPGA的現(xiàn)場再配置,這樣直接通過網(wǎng)絡下載FPGA配置文件,即可現(xiàn)場改變整個核心系統(tǒng)。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
下載地址
下一代物聯(lián)網(wǎng)全棧開發(fā)下載
相關電子資料下載
- 四維圖新成員企業(yè)四維智聯(lián)榮登中國物聯(lián)網(wǎng)新物種企業(yè)榜單 42
- 工業(yè) CPE 雙頻網(wǎng)關在工業(yè)物聯(lián)網(wǎng)中的應用優(yōu)勢 143
- Arm物聯(lián)網(wǎng)事業(yè)部業(yè)務拓展副總裁馬健:如何幫助AIoT企業(yè)加速創(chuàng)新? 21
- 傾角傳感器物聯(lián)網(wǎng)解決方案 190
- 工業(yè)物聯(lián)網(wǎng)解決方案:卷繞機數(shù)據(jù)采集管理系統(tǒng) 67
- 分析 丨2個新規(guī)實施,Wi-Fi 7增添變數(shù) 153
- 介紹保護物聯(lián)網(wǎng)設備安全的11種方法 11
- 蜂窩物聯(lián):物聯(lián)網(wǎng)智能控制器,多種傳感器接入,一部手機控制全部設備 54
- 遠程IO模塊物聯(lián)網(wǎng)應用提高工業(yè)自動化生產(chǎn)效率 136
- 國內(nèi)外龍頭RISC-V布局情況分析 62
