用 Intel Edison 模組做一個寶寶監視器

2015-10-24    分類:作業系統、程式設計開發、首頁精華2人評論發表於2015-10-24

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

Intel® IoT開發工具包,是一個完整的硬體和軟體解決方案,允許開發人員用Intel® Galileo和Intel® Edison模組建立新的令人興奮的解決方案。歡迎訪問Intel® Developer Zone for IoT

Intel Edison的小巧非常適合於可穿戴裝置。它的語言和程式設計環境對於開發人員而言,非常的靈活方便,並且由於它還整合了Wi-Fi和藍芽,使得它特別適合可穿戴裝置。現在,市面上有很多的可穿戴裝置,但是似乎沒有專門為嬰兒設計的裝置。出門在外工作的父母總是會為自己孩子的健康狀況、體溫、環境等操心。嬰兒需要24 * 7小時的監控,但這在一些夫妻雙方都工作的家庭裡是不可能做到的,而且有時這些忙碌的父母還得做大量的家務勞動,這些都會迫使他們不得不讓寶寶離開他們的視線。在這些情況下,家長需要一個智慧的寶寶監測系統,以便於跟蹤寶寶的身體健康,並且在出現任何異常的時候,提醒他們。

智慧寶寶監視器可以:

  1. 監測寶寶是在睡覺還是在玩。
  2. 當他哭的時候通知家長。
  3. 檢測寶寶的體溫。
  4. 發現體溫異常,就立即發出警報。
  5. 視覺化顯示資料。
  6. 可以在任何地方檢視監測資料。

必需品:

  • Intel Edison模組
  • Edison的Arduino擴充套件板
  • 模擬麥克風
  • 溫度感應器
  • 16 * 2液晶顯示器
  • 電源
  • USB資料線
  • 跨接線

模擬麥克風是一個簡單的聲音感測器,可用於檢測環境中聲音的強度。在這個專案中我使用的是帶有Grove Base Shield的Grove感測器。我們將使用Intel XDK IoT Edition在Node.js中編碼。

建立連線

  1. 通過USB資料線將Edison連線到電源和電腦。
  2. 在花費15-20秒的開機時間之後,堆疊Grove Base Shield。
  3. 連線聲音感測器(此處即Grove感測器)到模擬針腳A0。
  4. 連線溫度感測器到A1。
  5. 連線LCD顯示器連線到I2C埠中的一個。

程式設計

  1. 開啟Intel XDK IoT Edition,如果你的電腦上面還沒安裝的話,可以點這裡https://software.intel.com/en-us/iot/downloads<wbr><wbr><wbr>
  2. 如果在安裝了Flash Lite Tool之後,Edison閃爍,那麼說明Node.js已經安裝在主機板上了。
  3. 連線IDE到Edison板。它會要求你輸入使用者名稱和密碼,預設的使用者名稱是root,沒有密碼。

選擇一個空白的Node.js模板並建立一個新專案。

模擬麥克風的程式碼

function readSoundSensorValue() {

    var buffer = new upmMicrophone.uint16Array(128);

    var len = myMic.getSampledWindow(2, 128, buffer);

    if (len)

    {

        var thresh = myMic.findThreshold(threshContext, 30, buffer, len);

        myMic.printGraph(threshContext);

        if (thresh)

            console.log("Threshold is " + thresh);

        v.saveValue(thresh);

        if(thresh>50 && thresh<150)

         showNormalLCD();

        if(thresh>=150)

        showLCD();

        if(thresh<50)

        showSleepLCD();
    }
}
setInterval(readSoundSensorValue, 1000);

<a href="https://software.intel.com/sites/default/files/managed/74/61/code.png"><img height="900" width="718" src="https://software.intel.com/sites/default/files/managed/74/61/code.png" alt="" /></a>

溫度感測器的程式碼

var temp = new groveSensor.GroveTemp(1);

console.log(temp.name());

var i = 0;

var waiting = setInterval(function() {

        var celsius = temp.value();

        var fahrenheit = celsius * 9.0/5.0 + 32.0;

        console.log(celsius + " degrees Celsius, or " +

            Math.round(fahrenheit) + " degrees Fahrenheit");

        i++;

        if (i == 10) clearInterval(waiting);

        }, 1000);

把資料傳送到雲

var ubidots = require('ubidots');

var client = ubidots.createClient('YOUR-API-KEY');

client.auth(function () {

  this.getDatasources(function (err, data) {

    console.log(data.results);

  });

  var ds = this.getDatasource('xxxxxxxx');

  ds.getVariables(function (err, data) {

    console.log(data.results);

  });

  ds.getDetails(function (err, details) {

   console.log(details);

});

  var v = this.getVariable('xxxxxxx');

  v.getDetails(function (err, details) {

    console.log(details);

  });

  v.getValues(function (err, data) {

    console.log(data.results);

  });

這裡,我用Ubidots作為IoT(物聯網)雲,通過Ubidots我們就可以用一種有效的途徑視覺化了資料。Ubidots支援的裝置很廣泛,並且還可以觸發如傳送郵件和訊息的一些活動。它還提供了許多API,通過選擇我們的語言加速開發。因此,我選擇了它的Node.js庫來和我的Edison發生互動。

設定Ubidots

  1. 登入到你的Ubidots帳戶,也可以新建立一個http://ubidots.com/<wbr>
  2. 選擇“Sources”選項卡,然後單擊“Add Data Source”來建立一個新的資料來源。在這裡,我新增的是My Edison。

一旦資料來源建立之後,我們必須新增變數。在這個專案中,我們要傳送的是感測器和溫度資料,因此我們建立兩個變數。

點選變數並複製變數ID。然後將這個貼上到程式碼中。

選擇My Profile->API Keys。從這裡獲取你的API金鑰。

  1. 在你的儀表板上,根據你想要如何顯示資料的方式新增你所需的視窗小部件。
  2. 我為聲音感測器選擇的是Gauge(量表),為溫度選擇的是Graph(曲線圖)。通過檢視Gauge,你可以馬上知道聲音的強度,而通過檢視Graph,你可以知道溫度有沒有發生突然變化。

在Edison上構建,上傳並執行app。你會在除錯控制檯中看到感測器值,如果一切正常的話,你會發現資料正在被髮送到Ubidots雲。導航到Ubidots儀表盤,你會看到所有從感測器傳送的資料。在這裡,我也創造了一些警告,如果聲音水平超過了一定水平(指嬰兒哭)警報就會馬上通過簡訊傳送到我們的手機裡。

對於小嬰兒來說,光是這些或許還是不夠的,所以我一直在改進中,希望能做到更準確的檢測和更好的提醒,以後再分享給大家。

譯文連結:http://www.codeceo.com/article/intel-edison-baby-monitors.html
英文原文:Smart Baby Monitor with Intel® Edison and Ubidots
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章