<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

JavaScript與物聯網

eeDesign ? 2017-10-20 17:03 ? 次閱讀

物聯網(Internet of Things,IoT)一詞,是由美國麻省理工學院Auto-ID中心主任Kevin Ashton,于1999年進行RFID研究時所提出的概念。物聯網是指為每個東西,包括一般物品(例如:超商以及它所販售的所有商品)、傳感器,甚至人類和動物,都標上唯一識別碼(Unique Identifier,如:條形碼、IP地址、身份證號碼等),彼此之間通過約定好的通信協議,利用互聯網相連、分享數據。

物聯網不僅是兩個設備之間的互相連接,它們通常也連接到負責收集數據,以及協調這些設備運作的(云)服務器。此外,控制器、傳感器等物聯網設備,通常也都要具備讓用戶操作和監控的界面,無論是網頁還是App形式。下面是物聯網的基本架構:

可連接互聯網設備的數量,在2011年時超越地球總人口數。這些設備包含消費性電子產品、工廠機器、家電、醫療器材、傳感器等。以往,數據通過人力輸入到計算機(例如,抄錄水、電、燃氣用量),現在多半則是由設備直接提供數據給另一個設備。

舉例而言,你的手機認得“你”和“家人”,當你的小孩抵達校園時,“學?!睍詣影l送短信通知;手機可以記錄你的運動習慣并協調智能型溫控器,在你到家之前調整好室溫:若是下班快抵達家門時,手機可以自動過濾公司電話,并通知住家的房子自動打開車庫門。宅配的貨車可實時更新網購商品位置和預計送達時間,也能讀取送貨路線的交通狀況,并適時提醒或規劃避開車流量大的路線。

所以,機器和機器相互連接、協同合作(Machine to Machine, M2M),就能完成代理人或者貼身秘書的工作。隨著寬帶網絡基礎建設的普及、各式云服務推陳出新,加上傳感器、通信芯片和單片機技術的提升與價格下降,使得“物聯網”從概念融入真實的日常生活中。

0.1 JavaScript與物聯網

許多嵌入式系統采用的是運算性能、存儲器容量相對較低的8位單片機,它們也通常采用專屬的庫和開發工具,并且多采用C/C++語言開發。就像電視機、空調等家電,逐漸脫離“單獨”運作的時代,為了搶食物聯網市場大餅,原本軟硬件較為封閉的嵌入式控制器,也開始擁抱開放的互聯網和Web標準。

這股風潮,也將原本稱霸Web前臺技術的JavaScript(注:在網頁上提供交互功能的編程語言)順勢帶入物聯網。例如,Pebble智能表提供的開發工具PebbleKit和Pebble.js,讓你用JavaScript來開發手表的App。又如,2014年被Google收購的Nest Labs公司推出的Nest溫度控制器,也有供JavaScript代碼使用的API(Application Interface,應用程序接口,也就是提供讓外部程序控制的渠道),因此,程序員可用JavaScript讀取或調控Nest溫控器的狀態?;旧?,凡具備Web瀏覽器的設備,就能運行JavaScript。

在瀏覽器內操作的應用(像YouTube, Google Docs和Office 365),叫作Web應用。Web應用分成前臺和后臺(服務器端)兩大部分,以電子郵件服務網站(如:QQ和Gmail)為例,顯示在瀏覽器里電子郵件操作的界面(網頁)是前臺,提供用戶填寫信件的界面,負責發送郵件的則是后臺。網頁界面的架構通過HTML定義,外觀樣式由CSS定義,動態改變字體樣式、大小、插入表情圖案等交互功能則是用JavaScript寫成的。

JavaScript語言具有下列幾個特色:

所有瀏覽器都支持,也是網頁的標準語言。

語法簡單,學習門檻低,容易入門。

不需要特殊的開發工具,在計算機、平板電腦或手機上,用文本編輯軟件和瀏覽器就能開發和調試JavaScript代碼。

有為數眾多的開發者,以及書籍、網絡等參考資源和示例。

用于服務器和單片機的JavaScript

當QQ用戶單擊“發送”按鈕之后,信件內容會從瀏覽器傳給QQ服務器,而在服務器上運行的代碼,將負責寄送信件和保存郵件等功能。不像瀏覽器,在服務器端運行的編程語言并沒有統一,常見的語言和運行環境有PHP、ASP.NET、Ruby等。

其實,服務器端程序也能用JavaScript語言開發??稍跒g覽器之外獨立運行Ja?vaScript代碼的Node.js于2009年問世,并相繼被沃爾瑪、PayPal(在線支付款項系統)和Netflix(網飛,在線電視)等大型企業所采納,用來建置可應付購物旺季高流量的高性能網站后臺程序。

Node.js并不是第一個可在瀏覽器外運行的JavaScript環境,但它是最成功的一個。

Node.js能夠在Windows、Mac OS X以及Linux系統中運行;不只是個人計算機,風靡創客的Raspberry Pi(以下稱“樹莓派”)、BeagleBone Black(http://beagleboard.org/BLACK),以及9美元的開源微電腦C.H.I.P.(https://getchip.com/),還有基于x86處理器架構的Intel Galileo控制板也都能運行Node.js。

某些采用32位處理器的控制板,更直接把JavaScript語言當作“母語”,例如Espruino(http://espruino.com/)和Tessel 2(http://tessel.io/),而三星電子公司在2015年5月發表了一個“瘦身”版的JavaScript語言,叫作JerryScript(https://samsung.github.io/jerryscript/),可運用在僅有64KB內存的單片機上。換句話說,在這些控制板上讀取和設置I/O腳,都用JavaScript。因此,從前臺網頁、后臺服務器,到單片機和傳感器終端,都能用相同的JavaScript語言編寫;學習JavaScript,也就能同時掌控前臺、后臺和感測端的軟硬件!

0.2 MPU、MCU與SoC介紹

處理器芯片依照功能來區分,大致分成如下三種類型。

MPU:全名是Microprocessor Unit(微處理器單元),其實就是CPU(中央處理器),可運行指令,進行運算和邏輯處理。

MCU:全名是Microcontroller Unit(單片機),把微處理器(MPU)和快閃存儲器、主存儲器(內存)包在同一個芯片里,相當于一臺微型計算機,耗電量低,但是處理器的性能不高(時鐘頻率在200MHz以內),而且存儲器容量不大(以KB為單位)。

當今的MCU通常也會集成模擬-數字轉換器(模數轉換)、USB和其他外圍界面控制器。Arduino UNO的ATmega328芯片屬于MCU。

SoC:全稱為System on a Chip(系統芯片),集成微處理器和特定功能,例如,圖像處理單元(顯示卡)、WiFi網絡、藍牙、音效處理等。智能手機以及某些個人計算機的處理器,都屬于SoC。采用這類處理器的設備,通常需要較高速的運算性能(時鐘頻率達數百MHz至數GHz)以及較大的存儲器容量(單位是MB或GB),所以存儲器不在同一個芯片上,耗電量也較大。

樹莓派的處理器芯片屬于SoC。就功能而言,SoC大于MCU:

以穿戴設備應用來說,MCU足以勝任普通數字手環所需,而且能長時間運作;具備多媒體功能的智能手表,就必須采用SoC。某些智能手表甚至同時搭載SoC和MCU,前者處理復雜的多媒體運算,后者用于連接傳感器以及電源管理。

0.3 章節導讀

第1章JavaScript入門:介紹JavaScript的由來、基礎語法、瀏覽器的DOM(文檔對象模型)、事件處理程序、使用Chrome瀏覽器調試JavaScript代碼、在網頁中嵌入JavaScript代碼等主題。

第2章 認識jQuery庫:jQuery是當今使用最廣泛的JavaScript庫,主要作用是讓動態網頁開發變得更簡單。本章將通過集成Arduino以太網絡與jQueryUI(交互界面)程序,帶領讀者認識jQuery語法、網頁信息交換格式(CSV、XML和JSON)和“不刷新網頁,動態更新內容”的AJAX技術。

第3章Node.js入門:Node.js是一個獨立的JavaScript運行環境,可以讓我們使用JavaScript開發應用,在瀏覽器之外運行。本章將介紹Windows、Mac OS X和Linux(樹莓派)系統的Node.js安裝方式,并通過非阻塞I/O讀取文件、自定義與引用程序模塊、使用npm工具管理模塊、使用Express框架開發網站應用、從Arduino傳遞溫濕度值給Node網站等數個實例認識Node.js。

第4章Node.js串口通信與樹莓派GPIO控制:串口是連接Arduino與個人計算機和Linux微電腦控制板最常用的界面。GPIO則是樹莓派控制板的標準外圍界面,本章除了介紹如何使用Node.js連接與控制串口和GPIO界面,也將介紹GPIO界面集成自制Arduino控制板的方法,還有MOSFET電子元器件,以及通過MOSFET組成5V和3.3V的電壓轉換板。

第5章 使用霹靂五號操控Arduino:Johnny-Five(霹靂五號)是一個Node.js庫,讓計算機(或Linux微電腦控制板)以JavaScript程序操控連接在USB接口的Arduino。本章將比較“霹靂五號”與Arduino的C語法異同,并且通過讀取開關(數字)信號、模擬輸入和PWM輸出、LM35溫度傳感器、舵機控制,還有瀏覽器與矩陣LED作畫等實例,讓讀者了解“霹靂五號”和網頁實時通信程序(socket.io)。

第6章 電子郵件、串流視頻、計算機視覺與操控舵機:本章的示例以樹莓派攝像頭為主,第一個示例搭配PIR人體紅外傳感器,在偵測到入侵者時,自動拍照并發送E-mail。第二個示例介紹使用socket.io和M-JPEG壓縮程序,在網頁上顯示串流視頻。第三個示例介紹簡易的攝像頭+DIY舵機云臺,并通過觸控屏、鍵盤和電玩把手控制云臺。最后一個例子是在計算機的瀏覽器上,通過JavaScript擷取攝像頭的視頻,并偵測其中是否有人類臉孔,若有的話,控制舵機跟著臉孔轉動。

第7章 使用MongoDB數據庫以及ejs模板引擎創建動態網頁:MongoDB是一款適合處理大數據與物聯網數據的免費、開源數據庫,本章將介紹MongoDB的安裝方式、基本架構以及數據的添加、擷?。êY選)、修改和刪除等基本操作,并通過Node.js的Mongoose包(package)連接數據庫,存儲Arduino上傳的數據。

第8章 數據可視化——使用C3.js與D3.js繪制圖表:若只在網頁上用文、數字列舉數據,未免太乏味,本章將介紹如何采用知名的C3.js和D3.js庫,以活潑生動的量表(gague)和圖表(chart)形式呈現存儲在MongoDB數據庫里的數據,以及Arduino傳入的實時數據,并且通過簡易的數字濾波手法過濾噪聲。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 物聯網
    +關注

    關注

    2876

    文章

    41933

    瀏覽量

    359702
  • javascript
    +關注

    關注

    0

    文章

    512

    瀏覽量

    53449
收藏 人收藏

    評論

    相關推薦

    4G聯網開關求助

    阿里云聯網平臺 合宙模塊780E 724 或者移遠4G模塊開發一款聯網開關,有的APP ,可以直接做固件或者固件帶硬件。有可以做的大師可以聯系我有樣品參考
    發表于 05-19 15:28

    javascript的文件擴展名

    流行的Java的聲望。從那時起,JavaScript迅速贏得了開發者的喜愛,并成為互聯網世界中最重要的編程語言之一。 文件擴展名.js通常
    的頭像 發表于 12-03 11:42 ?783次閱讀

    JavaScript的用途和功能

    JavaScript是一種廣泛使用的腳本語言,用于為網站添加動態功能和交互性。從創建簡單的交互式表單到設計復雜的網頁游戲,JavaScript為開發者提供了豐富的功能和靈活的創作能力。它在現代的網頁
    的頭像 發表于 12-03 11:12 ?479次閱讀

    javascript指什么

    JavaScript是一種高級編程語言,通常用于為網頁添加交互功能。它是一種面向對象的語言,旨在通過編寫代碼來控制網頁的行為,使用戶能夠與網頁進行動態交互。JavaScript能夠與HTML和CSS
    的頭像 發表于 12-03 11:11 ?436次閱讀

    javascript深入淺出介紹

    JavaScript是一種廣泛使用的腳本語言,用于開發互聯網應用程序。它非常受歡迎,因為它可以用于網頁開發,服務器端開發以及移動應用程序開發。本文將深入淺出地介紹JavaScript的各個方面,包括
    的頭像 發表于 12-03 11:09 ?2.6w次閱讀

    javascript:;怎么解決

    javascript:” 是一個JavaScript偽協議,它通常出現在URL地址欄或鏈接中,用于執行JavaScript代碼。然而,有時它可能會導致一些問題,特別是在一些不支持
    的頭像 發表于 11-26 14:39 ?2541次閱讀

    瀏覽器怎么打開javascript

    瀏覽器是一種用于瀏覽和訪問互聯網頁面的應用程序,而JavaScript是一種常用的網頁編程語言,用于給網頁添加交互和動態效果。本文將詳細探討如何在瀏覽器中打開JavaScript,并解釋
    的頭像 發表于 11-26 11:25 ?1210次閱讀

    javascript可以關閉嗎

    **JavaScript是一種編程語言,它不能被“關閉”。**JavaScript是一種客戶端腳本語言,它通常嵌入在HTML頁面中。當用戶訪問一個包含JavaScript的網頁時,瀏覽器會執行這些
    的頭像 發表于 11-16 10:20 ?571次閱讀

    javascript有什么用

    JavaScript是一種廣泛使用的編程語言,主要用于增強網頁和創建動態網頁內容。以下是JavaScript的一些主要用途: 交互性:JavaScript可以使網頁具有交互性。例如,當用戶點擊按鈕
    的頭像 發表于 11-16 10:19 ?444次閱讀

    javascript怎么開啟

    在瀏覽器中啟用 JavaScript 的方法如下: 在瀏覽器中啟用 JavaScript 對于大多數瀏覽器,您可以在瀏覽器的設置或選項中啟用 JavaScript。以下是一些常見瀏覽器的啟用步驟
    的頭像 發表于 11-16 10:16 ?962次閱讀

    聯網專業前景怎么樣?

    聯網專業前景怎么樣? 聯網專業在當今技術發展迅速的背景下具有廣闊的前景。以下是聯網專業的
    發表于 10-20 09:48

    基于飛騰派的邊緣聯網

    本帖最后由 zhh763984017 于 2023-9-21 16:53 編輯 今天給大家分享一個飛騰派的一個應用場景——邊緣聯網關。邊緣聯網關可以連接各種
    發表于 09-21 16:50

    電池聯網應用MCU都用哪些型號的?

    電池聯網應用MCU都用哪些型號的
    發表于 09-20 07:57

    聯網簡介

    聯網(IoT)是由物理設備、車輛等組成的網絡,家用電器和嵌入有電子設備、軟件、傳感器等的其他物品,致動器,以及使這些物體能夠連接和交換數據。
    發表于 09-11 07:18

    JavaScript聯網開發 模塊擴展庫

    聯網javascript
    YS YYDS
    發布于 :2023年06月30日 19:55:40
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>