2016/03/20

【翻譯新作】 Arduino物聯網專案實作(Internet of Things with Arduino Blueprints)

嗨,我翻譯了一本書,在此敬告舊雨新知。

書名: Arduino物聯網專案實作
原書名:Internet of Things with Arduino Blueprints
作者:Pradeeka Seneviratne
譯者:我
出版社:博碩
出版日期:2016年2月26日
頁數:208

Arduino是一款能夠作為多項用途的微控制器開發板,也是理想的開放硬體平台,可以充分活用在物聯網(Internet of Things,IoT)的開發領域中。

本書結合物聯網與雲端運算的概念,聚焦在如何將Arduino應用於網路相關的專案中。內容包含致動器控制、從各種感測器讀取資料、以及透過無線方式從 HTTP、TCP 等協定傳遞資料等等。

讀者可把這些示範專案作為更大型專案的基礎藍圖。藉由本書的知識,便能夠成為物聯網領域的Arduino開發專家,建構出具實務性的各項應用。

從本書可學到強大的網路型繼電器,透過內嵌其中的網頁伺服器來監控家用電器;可攜式 Wi-Fi訊號強度感測器,根據訊號強度產生觸覺回饋;透過液體感測器量測水流速率及流量,並取得即時讀數;利用具動作偵測功能的Arduino監視器,將照片上傳至雲端,藉此提供居家防護;搭配Arduino雲端連線服務,實作太陽能面板的即時電壓紀錄功能;藉由GPS取得定位資訊,並上傳至雲端;使用Twitter推文控制車庫電燈;製作Arduino紅外線遙控器,控制常見的電器裝置。

目錄

01 經由網路控制電源開關
02 Wi-Fi 訊號強度讀取器與觸覺回饋
03 雲端智慧水錶
04 具備動作偵測功能的監視器
05 運用 NearBus 雲端連接器和 Xively 記錄太陽能面板的電壓
06 GPS 定位追蹤器與 Temboo、Twilio 和 Google Maps
07 燈光推文—受 Twitter 操控的電燈
08 紅外線遙控器控制電子裝置

21 comments:

  1. 版大辛苦了。滿腔熱情推動世界前進。

    ReplyDelete
  2. 你好 我想寫一個程式 經由 arduino 連接 PN532 V3 接收訊號 然後去控制繼電器 可是tag靠近卻沒有反應

    #include
    #include "PN532_SPI.h"
    #include "PN532.h"
    #include "NfcAdapter.h"

    String const myUID = "56 60 CB 3B";
    const int relayPin = 13;
    int relayState = 0;

    PN532_SPI interface(SPI, 10);
    NfcAdapter nfc = NfcAdapter(interface);

    void setup(void) {
    Serial.begin(115200);
    nfc.begin();
    pinMode(relayPin, OUTPUT);
    }
    void switchRelay()
    {
    if (relayState == 1)
    relayState = 0; // 把繼電器狀態改為 ON
    else
    relayState = 1; // 把繼電器狀態改為 OFF
    digitalWrite(relayPin, relayState); // 讓繼電器作動, 切換開關
    Serial.print("Relay status: "); // 把繼電器的狀態印到 Serial Port
    Serial.println(relayState);
    }

    void loop(void) {
    if (nfc.tagPresent())
    {
    NfcTag tag = nfc.read(); // read the NFC tag
    String scannedUID = tag.getUidString(); // get the NFC tag's UID

    if( myUID.compareTo(scannedUID) == 0)
    switchRelay(); // 切換繼電器開關

    delay(5000);
    switchRelay();
    }
    }

    ReplyDelete
    Replies
    1. 在各處加入一些Serial.println,
      看看哪裡會執行、哪裡不會執行。

      Delete
  3. arduino要怎麼讀到手機imei的程式指令 imei指令有哪些

    ReplyDelete
    Replies
    1. arduino沒辦法直接取得吧,
      如果是android,android.telephony.TelephonyManager.getDeviceId(),
      然後想辦法傳給arduino。

      Delete
  4. 那如果我透過PN532的話
    要打甚麼指令在ARDUINO裡面??

    ReplyDelete
    Replies
    1. NFC是用來傳遞標籤資訊的吧。
      你Android端要怎麼把imei放進標籤?

      Arduino端都是使用NFC程式庫接收資訊囉。

      Delete
  5. 所以android沒辦法把取出的IMEI值並設定成標籤?
    那如果我改做一個APP 然後設定他傳輸的值類似於TAG的UID 這個辦法可行嗎

    ReplyDelete
    Replies
    1. 參考 初探NFC 一書的第7章,
      製作NFC寫入器,把想要的訊息寫入NFC標籤。

      Delete
  6. 如果arduino wifi 連結到網頁然後網頁認證資料 如果資料正確就執行繼電器功能這樣有機會嗎
    他除了要伺服器還要什麼東西 我上網查有查到是不是把資料存到雲端裡還是怎麼樣的

    ReplyDelete
    Replies
    1. 看不懂。
      arduino當伺服器端嗎?
      什麼認證資料?
      從別台機器存資料到雲端,然後由arduino存取嗎?

      Delete
  7. 版大你好,請問這本書內有討論到如何使用網路來上傳程式而不用透過usb嗎?最好是可以像手機一樣可以選擇要不要下載更新程式那樣。不好意思對於物聯網概念還是門外漢,只是最近因需要google了一下發現可能跟司法物聯網有相關。

    ReplyDelete
    Replies
    1. 這本書的主要傳輸管道就是wifi無線網路。
      第一章就是「經由網路控制電源開關」。

      物聯網,就只是個名稱罷了,別太在意。

      司法物聯網是什麼?

      Delete
    2. 司法兩個字應該是我用手機回應時不小心誤觸到的...我對網路家電的概念是一個灌好固定程式的MCU一直等待觸發訊號接收指令,然後依照這個程式來判斷接收到的指令來執行何種動作。但是有辦法透過網路來將一個程式先存到一個額外的記憶體裡,然後收到一個像是"將記憶體的程式上傳至arduino"這樣的一個功能嗎?

      Delete
    3. 你說的是技術問題,技術問題都是可以解決的。

      你要換執行的程式?如果事先已寫好,就把程式通通放進去,然後根據條件切換,譬如手動按按鈕,或是透過網路控制。

      如果是要隨時透過網路更新程式,要看開發粄有無支援,牽涉到權限認證、更新動作若失敗怎麼辦、如何回復等等。

      Delete
  8. This comment has been removed by the author.

    ReplyDelete
  9. 你好 我有買這本Arduino物聯網實作
    請問裡面的範例程式碼該如何取得?(像是B04844_04_03.ino)

    ReplyDelete
    Replies
    1. 到這裡
      https://www.packtpub.com/books/content/support/22394
      跟原出版社索取。

      Delete
  10. 我用D1 mini 照著Arduino的範例做了一個簡單WifiWebServer,去控制燈號的亮滅,但是進行壓力測試,以1秒1~2次的頻率,大約30秒左右,server就無回應了,請問可以調整嗎,謝謝老師。

    ReplyDelete
    Replies
    1. 不好意思,我是翻譯,不是原作者。

      D1 mini是ESP8266吧,請到ESP8266相關論壇發問。

      Delete