自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

JavaScript在智能設(shè)備物聯(lián)網(wǎng)中的崛起

移動開發(fā)
這是一篇老文,略有刪減,不過文中所述目前似乎正在變成現(xiàn)實。有人用Javascript制造機器人和火箭,甚至有人用JavaScript在工業(yè)時代的單片機上制作一個天氣預報屏。比XML數(shù)據(jù)更密集,性能更好的JSON數(shù)據(jù)交換格式也在成為物聯(lián)網(wǎng)傳輸?shù)氖走x。支持NodeJS的硬件平臺也在不斷增多,如RaspberryPI, Tessel, Arduino 。還很多不知名的JS庫 devicejs.org Sylon.js等;很顯然,采用Node.JS來驅(qū)動你的物理設(shè)備,將極大地降低“創(chuàng)客”們的技術(shù)門檻。

注* 這是一篇老文,略有刪減,不過文中所述目前似乎正在變成現(xiàn)實。有人用Javascript制造機器人和火箭,甚至有人用JavaScript在工業(yè)時代的單片機上制作一個天氣預報屏。比XML數(shù)據(jù)更密集,性能更好的JSON數(shù)據(jù)交換格式也在成為物聯(lián)網(wǎng)傳輸?shù)?**。支持NodeJS的硬件平臺也在不斷增多,如RaspberryPI, Tessel, Arduino 。還很多不知名的JS庫 devicejs.org Sylon.js等;很顯然,采用Node.JS來驅(qū)動你的物理設(shè)備,將極大地降低“創(chuàng)客”們的技術(shù)門檻。

[[119696]]

星期五,2012年7月13日

在2010年9月7日,我犯了個錯誤,在node-serialport 串口驅(qū)動開源項目中添加了一個“不建議使用”的聲明。我已經(jīng)有了一些使用各種無線頻譜在較大項目庫之間進行通信的經(jīng)驗(開放API,像X10 ),通過傳感器監(jiān)測。本來我使用的是非常強大的pyserial庫驅(qū)動,剛開始很順利,但在一些與感應器交互的關(guān)鍵地方我還是感到了不便。我承認,這種感覺是非常不爽,我不是懷疑這個庫,它已經(jīng)做得也非常好了。

就在這個時候,JSConf EU(歐盟)展示了一個Nikolai Onken 和 Jörn Zaefferer 關(guān)于JavaScript智能設(shè)備的提案。在提案中,他們表示使用JavaScript控制設(shè)備將會非常簡單,比如:

  1. $("livingroom").bind("motion"function() { 
  2.   $(this).find("lights").brightness("75%").dimAfter("120s"); 
  3. }); 

這個東西撥動了我的神經(jīng)。

通過模擬現(xiàn)實世界中的的對象和行為。鏈式的,事件化的處理過程看上去非常自然。對于我的情況,我處理的是串口響應,這樣做的***例子就是“當大門打開后,切換所有的燈”。就像上文那段相似的jQuery代碼那樣。因為項目規(guī)模的增加,我們已經(jīng)不需要一個非 常了解串行端口和Python的大師程序員,它只需要對JavaScript和jQuery有一個粗略的理解就可以了。我覺得這里有一些非常有價值的東 西,我開始坐下來實現(xiàn)這些代碼。

在編寫node-serialport的***個版本時,我想我應該分享幾個非常另人振奮的東西。我看到 很多同樣的問題,采用Node.JS進行串口編程時經(jīng)常會碰到的那種,我想表達一下我的看法。我更喜歡使用的Node.js驅(qū)動arduinos,無線裝 備,打印機,烤面包機等(一切可以通過串口連接的東西)。首先最直接的原因就是簡單。NodeJS的模塊系統(tǒng)和耦合非常低的原生綁定允許我能迅速完成底層 功能的開發(fā),而不必引用太多的Node庫,通過幾段代碼。這也讓我減小了對庫維護的工作,充分利用時間去解決實際問題,而不必整天測試串口的功能。 Node.js與傳統(tǒng)的C+ +代碼連接是如此之簡單,幾乎是微不足道的實施(保證正確性的前提下),這就是為什么我馬上愛上了它的原因。我認識的人也有類似的感覺(或者恨)對 Python或Ruby的本地綁定,但個人而言,我認為C和JavaScript之間的語法相似性使得它們之間的編程過程更加的流暢,盡管跨越兩種語言。 如果你看一下Node.JS的底層代碼,一個串口的C++,你也許可以完全理解,即使你只有JavaScript編程的經(jīng)驗。無可否認,這可能會造成一點 混亂,但對我來說只是一點點,完全無法掩蓋我對操作底層串行端口的喜悅。這是值得研究的。

盡管底層代碼已經(jīng)寫完了,但是我繼續(xù)為 Node.js串口編碼貢獻代碼的原因是,我希望我可以以一種比較優(yōu)雅的方式來解決這類問題。如前所述,我在我的系統(tǒng)中使用了Node,串口 (Arduino的,等等)。在大多數(shù)系統(tǒng)中,在他們會等待某些事件或數(shù)據(jù),然后處理一些事件的反應。這可以說是JavaScript的優(yōu)勢,絕大部分人 都可以處理,他們可以使用Node和JavaScript來思考。你也可以用其他語言,但JS無疑是最簡單的,從低層的c++的代碼,到事件處理都得心應 手,毫不費力。在有關(guān)Node.JS無線擴展機器人一文中,有人詢問為 何不是Clojure或scala或Python或Ruby而選擇JavaScript我最直接的答案是,大量代碼成就了響應式的系統(tǒng)(包括 eventmachine/ twisted/ Redis/ PubSub/等)此類系統(tǒng)的快速增長增加了對事件驅(qū)動機制的喜愛?,F(xiàn)在誠實地講,因為多種開源硬件平臺的出現(xiàn)(Raspberry pi, arduino, x10等),軟件工程師現(xiàn)在也可以玩硬件了。在這種背景后,我相信會有越來越多的Ruby開發(fā)人員使用Node.js創(chuàng)建智能硬件原型。它更輕量級,操作 簡單,并且很容易編寫復雜的響應式系統(tǒng)。最重要的是它基于JavaScript,因此即使你的原型因為某些“更值得生產(chǎn)的”東西而失敗了,你也不會損失太 多時間。

下面這個例子是展示Node.JS的應用有多輕量級, 在Johnny-Five工作的Rick Waldron做出的驚艷的框架,看看從acceleromator處理事件的源代碼。它非常易于閱讀,易于理解而且僅需要10行代碼??刂扑欧C構(gòu)的代碼,也僅有10多行。

所有這些都讓我相信,JS將是未來智能設(shè)備控制器的***編程語言。

我這樣說是因為我每天都聽到越來越多的人作出更新,更亮,更智能的東西。對于我來講,它打破了軟件和硬件的邊界,這讓我很開心,相對于純碎地寫代碼,智能硬件領(lǐng)域讓我們更接受真實,我們有更大的潛力做些更多更好的事情。

原文地址: voodootikigod.com

譯文:http://ourjs.com/detail/540d6ec9f50bcc0a66000007

譯者:ourjs

責任編輯:閆佳明 來源: ourjs
相關(guān)推薦

2022-12-01 10:57:40

物聯(lián)網(wǎng)智能建筑

2016-08-12 11:04:17

JavaScript物聯(lián)網(wǎng)應用

2024-04-16 14:35:25

物聯(lián)網(wǎng)智能建筑

2023-04-03 16:51:35

物聯(lián)網(wǎng)物流

2023-07-04 10:54:38

2023-09-22 09:59:45

2018-11-19 05:00:48

2019-06-05 13:44:15

2022-10-24 16:03:13

2022-07-27 12:45:22

物聯(lián)網(wǎng)安全智能設(shè)備物聯(lián)網(wǎng)

2022-03-18 09:24:30

工業(yè)物聯(lián)網(wǎng)數(shù)字化轉(zhuǎn)型智能工廠

2020-06-18 11:10:11

物聯(lián)網(wǎng)安全人工智能

2020-06-18 15:21:55

銀行物聯(lián)網(wǎng)IOT

2019-10-11 11:20:28

物聯(lián)網(wǎng)技術(shù)機器學習

2022-11-08 10:30:46

Matter物聯(lián)網(wǎng)智能家居

2023-11-07 11:08:23

物聯(lián)網(wǎng)IOT

2021-04-22 15:46:42

物聯(lián)網(wǎng)智能辦公IoT

2019-10-24 07:29:05

采礦安全物聯(lián)網(wǎng)IOT

2021-03-22 15:26:44

物聯(lián)網(wǎng)技術(shù)智能水表物聯(lián)網(wǎng)

2020-05-07 11:08:23

物聯(lián)網(wǎng)智能停車智能交通
點贊
收藏

51CTO技術(shù)棧公眾號