Tag Archives: linkit one

[課程紀錄]物聯網大專教師研習-使用LinkIt 7697@經濟部通推小組

作者/攝影 曾吉弘
課程時間  2017 5/12
課程講師 曾吉弘
課程場地 經濟部通訊產業發展推動小組會議室

台北市中山區長安東路一段18號6F

通訊大賽物聯網組的大專教師研習開跑,2015年是LinkIt ONE, 2016是 LinkIt 7688,今年則是一片可愛的LinkIt 7697 (具備 Wi-Fi, BLE 的 Arduino相容板)。

7697的投影片在此(還有學習筆記),快100頁喔,喜歡就幫忙分享出去吧!


當天上課內容如下:

  • 7697 硬體介紹以及當作 Arduino使用
  • 基礎電路操作 – 使用 BlocklyDuino 與 Arduino IDE
  • BLE 基礎介紹,使用App Inventor 編寫Android app 來控制 7697
  • 由MCS雲服務來控制7697腳位
  • 上傳感測器資料到 MCS 雲服務指定之資料頻道
  • 如何外部取得 MCS channel 的資料點 (JSON format)

這次有個重要的亮點是 BlocklyDuino 圖形化介面(離線執行,載點請按我),除了基本的I/O指令之外,Seeed Grove套件、Adafruit 套件甚至 IFTTT, Blynk 等雲端服務等都寫好了。請一定要試試看。

對於小朋友來說,拉拉方塊就能寫好當然是最棒啦。但如果是會Arduino IDE 語法的朋友,可以轉成Arduino 語法之後再進行最佳化。不管怎樣,聽起來都是很棒的東西呢。

BlocklyDuino 主畫面

上圖之積木方塊轉為Arduino 語法

BlocklyDuino 之設定畫面

其實像是 IFrog ICblockwebduino 或是 Motoduino慧手科技的motoblockly 都有類似的服務。 

上課實況,感謝諸多老師參加喔!

上課會使用 7697 搭配簡易電子元件來做到各種互動功能,不過物聯網系列的課程重點都是在資料聯網之後的應用,能夠正確控制周邊應該是最大公因數,在此也感謝許多廠商努力提供好用的軟硬體。

使用App Inventor 藉由 BLE 通訊來與 LinkIt 7697 互動

下圖是上傳光敏電阻資料到 MCS 的資料頻道上:

LinkIt 7697(數大就是美)

Motoblockly.com 主畫面

webduino (轉 javascript) 主畫面

 

相關文章:

 

161204 LinkIt ONE 結合 AWS IoT 研習營

LinkIt ONE 是一片整合了完整通訊功能的 Arduino 相容板,具備 Wi-Fi、藍牙、GPRS 與 GPS 衛星定位等等,非常適合用來製作各種聯網專題。搭配本身的音效晶片,要打電話或變成mp3播放器也不成問題。

本次研習將告訴您如何讓 LinkIt ONE 連上 Amazon AWS IoT 這個超專業的企業級雲服務。您會知道AWS IoT 的基礎設定,並將 LinkIt ONE的感測器上傳到雲端後觸發 rule engine,還會贈送CAVEDU的『LinkIt ONE 物聯網實作入門(增訂版)』,以及電子實驗材料包,請別錯過本次課程喔。

線上報名請按我

主辦單位:CAVEDU 教育團隊、翰尼斯企業有限公司

時間 : 105年12月4日星期日,9:30~16:30

地點:翰尼斯企業有限公司(台北市中正區中華路2段165號1F)

請自行攜帶以下項目:

1. 筆記型電腦,作業系統須為 Windows 7 以上或 MAC OSX 10 以上
2. 建議自備LinkIt ONE開發板,如果沒有的話,可以跟我們借用,課後歸還。
3. 請先安裝 Arduino IDE 1.6.x 以上版本,LinkIT ONE SDK安裝說明:http://labs.mediatek.com/site/global/developer_tools/mediatek_linkit/sdk_intro/index.gsp
4. 請先註冊 Amazon AWS IoT 帳號:https://aws.amazon.com/tw/iot/

收費:$4000,名額有限,請儘早報名。請先繳費完成並收到我們寄出的確認信函才算報名成功喔!
贈送:
1.『LinkIt ONE 物聯網實作入門(增訂版)』 1本。
2. 本課程所需的『電子實驗材料包』一份。

付款方式:
1. 匯款:
銀行名稱 :華南商業銀行 雙園分行 / 戶名 :翰尼斯企業有限公司
銀行代號 :008 / 帳號 :122-10-015315-3

2. 來店付款:
翰尼斯企業有限公司 台北市中正區中華路二段165號1樓

3. 線上付款:
在機器人王國的線上商城付款也可以。連結如下
http://shop.robotkingdom.com.tw/–20/iot-mediatek-linkit-one.html

活動流程:

9:30 CAVEDU 教育團隊簡介

9:40 LinkIt ONE 硬體介紹
     LinkIt ONE SDK 安裝
    
10:30 基礎 I/O 控制,常用感測器與周邊
  
12:00 午餐

13:00 認識 AWS IoT
             建立thing、policy 與 rule

14:00 產生憑證並放置到 LinkIt ONE 中

15:00 上傳感測器資料

16:30 結語、賦歸

注意:主辦單位保留修改與解釋活動之所有權利。

聯絡我們:02-23062900 / service@cavedu.com

161128 LinkIt ONE問事桌,物聯網大小問題調解委員會(含Facebook直播)

LinkIt ONE 大小問題搞不定嗎?阿吉老師與豐智老師讓您一次問個夠,歡迎把做不完的專題帶過來看看!不能到場的朋友別擔心,我們也有Facebook直播喔!

注意:請準備好相關軟硬體環境以及 error message 畫面,時間有限無法從零開始 debug

時間:11/28 星期一 19:00~21:00

地點:CAVEDU教育團隊

費用:免費,現場來賓加購各類電子周邊與書籍另有優惠,要找阿吉老師與豐智老師簽名也可以

報名:請到Facebook 活動報名,或寫信到 service@cavedu.com 註明您要報名本次調解委員會。

取得 Mediatek Cloud Sandbox 的資料點 (JSON)

本篇教學要告訴您如何使用AppInventor 的web元件取得 Mediatek Cloud Sandbox 上指定 test device 下 data channel 的最新一筆資料點( data point)。 .aia 原始檔請點我下載
 
首先,您的MCS test device 上必須要有個什麼資料,並且把這個 test device 設為 public,否則將無法取得資料。
這是我的 test device 設為public 之後的畫面,其中 DCT60FBv 就是 deviceID。連結:http://mcs.mediatek.com/public/devices/DCT60FBv
以我的 test device 來說,有這些 data channel:
  • Controller : LED_CONTROL (控制D13 LED亮滅)
  • Display
    • LED (檢視 D13 腳位狀態)
    • Longitude(經度)
    • Latitude(緯度)
    • GPS (嵌入式 Google Map)
 
但在 public device 上只能看到這樣的畫面,也就是只有顯示器型態的 data channel,換言之,您無法透過 public 的 test device 來控制您的開發板。

根據 MCS 的 API 說明,取得最新一筆資料點的語法如下,會直接回傳 JSON 的資料格式,如此一來就可以用 App Inventor 的 Web Component 搭配 JsonTextDecode  方法幫我們轉成陣列,這樣就方便多啦!

以下語法是取得 DCT60FBv 這個 tst device 下的 longitude 這個 data channel 下的最新一筆資料點,由下圖可看到就是 121.2214

http://api.mediatek.com/mcs/v2/devices/DCT60FBv/datachannels/longitude/datapoints

 

如果用 jsoneditoronline.org 這類型的 JSON 檢視網站來看的話,您會對MCS 資料點的格式更清楚喔

台大黑客松課程期末demo – 物聯網、Web與iOS

經過了一個學期12堂課的課程,台大黑客松物聯網組的 demo day 來囉!

IoT組的同學學習了各種電子元件、感應器和LinkItONE的應用以及藍牙、Wi-Fi、GPS與 Mediatek Cloud Sandbox的雲端平台。

IMG_8492

今天與同樣是台大黑客松開設的iOS課程和web課程同學們一起做學期專題的demo

首先介紹的是smart door這一組

IMG_8442

利用LinkIt的藍芽與wifi功能 搭配iOS app

建立一個監控門鎖狀態的介面

希望可以藉由即時狀態的顯示,紓解電影院、百貨公司人多時廁所供不應求的問題

IMG_8438

同學利用手機和板子通訊,並且以MCS做為後台監控

IMG_8450

IMG_8468

第二組同學的主題是智慧型購物車

IMG_8455

使用者可以在逛大賣場時利用手機app遙控購物車(這組是以App Inventor寫了一個android的app)

經過不同商品的區域時可以獲得相關優惠訊息

在MCS也可以看到購物車經過各個區域的次數(利用顏色感應器)

IMG_8457

不同顏色代表不同的商品種類,例如紅色是多力多滋 等

IMG_8463

未來可能會再加上senor讓購物車可以自動追蹤消費者,讓使用過程變得更簡易

IMG_8465

最後一組同學帶來的是 無人搜救船

IMG_8472

這組同學利用3DP搭配伺服馬達與直流馬達製作了一台氣墊船

當有人在海中落難時,利用LinkIt發出訊號

此時收到訊號的無人搜救艇便可以前往救援

IMG_8471 IMG_8475

這個學期的物聯網課程就到這邊告一段落

謝謝CAVEDU的阿吉老師、豐智老師及佑緣老師還有台大黑客松

同學們demo也辛苦了~

台大黑客松IoT課程─Grove感應器套件的應用

這一學期CAVEDU受到台大黑客松的邀請再次來台大開設IoT課程,授課內容以聯發科的LinkItONE開發板為基礎,使用MediaCloudSandbox雲端平台,搭配電子元件、感應器以及AppInventor,透過藍芽、wifi、GPS通訊來學習物聯網的應用。

IMG_0236

在今天的課程,豐智老師帶來了Grove的各種感應器,包含氣壓、溫濕度、氣體、觸碰、光源、三軸加速度、紫外線、聲音感應器,搭配Grove的擴充板使用,同學們可以省去接電路的步驟,利用套件迅速地完成一個小型的物聯網專案。

IMG_0238

使用Grove套件除了不用接電路以外,在寫程式的時候,因為是使用I2C的通訊方式,所以不需要指定腳位!需要注意的是這些感應器必須搭配額外的函式庫,函式庫可以在SeeedStudio的Github下載 ,平常使用arduino時函式庫都是直接丟到library的資料夾,LinkItONE通常也可以用相同的做法,如果失敗的話在這邊另外提供兩個方法給大家:

如何新增LinkItONE函式庫?

方法一:將函式庫放到arduino→hardware→arduino→mtk→libraries

方法二:打開Arduino IDE,Sketch→import library

grove的各個感應器的datasheet都可以在SeeedStudio官方的wiki找到,有需要的人可以上網搜尋。

IMG_0239

豐智老師簡單介紹完grove套件後就是同學們的實作時間了,不知道下個禮拜同學們會為我們帶來什麼有趣的作品呢?

IMG_0237

IMG_0240

台大黑客松這學期除了IoT課程以外也開設了web以及iOS的課程,課程結束後1/23為三門課程的demo day,同學們目前都如火如荼的在準備期末的demo,有興趣的朋友歡迎到時候一起來看同學們這學期學習的成果!

[物聯網震撼彈] LinkIt Smart 7688與7688 Duo,超低價重拳出擊

在這兩年的開發板海之中來來去去,很久沒這麼興奮了。聯發科 MediaTek Labs 今天發布了旗下 LinkIt 家族的新成員:LinkIt Smart 7688與7688 Duo,價格分別為驚人低的$13與$16美金,也就是$500台幣不到。同時也在MCS雲服務上發布了兩個範例:LED blinker 與 Analog Controller兩個範例讓大家馬上上手,另外還有 joystick controllervideo streaming service 範例,期待中。

a01

先來看看影像串流的效果,相當不錯喔

[youtube=”https://www.youtube.com/watch?v=iDvKmrPzqrM”]

7688 與 7688 Duo 差別在於後者多一顆ATmega32U4 MCU,因此可透過 Arduino IDE 編寫 Arduino 程式,前者則是讓具備網路背景的朋友以 node.js 或 python 來開發。在物聯網這個領域,有人是從硬體走向網路,有人則是從網路走向硬體,不一定非要 Arduino 不可。

在看完規格與實際把玩7688之後,深深覺得:

7688根本就是衝著Arduino Yun 對著幹

  1. 兩者本身就是一台AP,直接連到7688之後就可以進行影像串流 (webcam 接到 USB host),這在CAVEDU翻譯書實戰物聯網開發,使用Arduino Yun中是個常用的範例。但11/7在物聯網教學應用發表會上的朋友,還記得下面這台小機器人嗎?影像的效果應該很不錯吧
  2. 作業系統採用 openWRT,這點與 Arduino Yun 相同,但實測上穩定度相當好。

IMG_2296

Continue reading

MediaTek Cloud SandBox 的小更新:新地圖 data channel更好用

感謝朋友告知,MediaTek Cloud SandBox 有小幅更新:地圖Data channel 介面更新了,搭配日期搜尋功能就更方便啦。以我們第一次LinkIt ONE GPS 道路測試:台北武陵農場來回 來說,可以更方便尋找指定時間區間中的點。請看以下:

在 test device 測試裝置中,點選地圖的 data channel 右上角的 Show History 可以看到地圖變成接近全螢幕,好棒!(之前真的不夠大,每次都拉來拉去)

0001

 

 

另一方面,在GPS路徑的編排上也清爽多了,不會都擠在一起。點選某個路徑點就可以看到詳細資料喔

0002

另一方面,聽說最近有另一本 LinkIt ONE 新書要上市了,就請大家靜候佳音囉~  LinkIt ONE 也可以與 Amazon IoT 以及 IBM Bluemix 來連線了,實在是很熱鬧啊

11054519_10205149518849852_4298184390105493302_n

延伸閱讀:

CAVEDU LinkIt ONE  相關文章

LinkIt ONE GPS 道路測試:台北武陵農場來回

 

 

LinkIt ONE 結合 IBM BlueMix 雲服務 – 即時檢測 DHT11 溫濕度感測器資料

本文是參考 IBM 開發者論壇上 IoTGeek 網友的教學,使用聯發科 LinkIt ONE 開發板經由 Wi-Fi 連上 IBM Bluemix 雲服務。

前置作業:

  1. 註冊 IBM Bluemix ID (可免費試用 30 天)
  2. 作業系統:Microsoft Windows XP/Vista/7/8 或 Mac OS X 10.9 以上。請確認您的電腦已經安裝上述版本的 Arduino IDE 與 LinkIt ONE SDK:教學請點我
  3. Arduino IDE:版本需為 1.5.6-r2 BETA 與 1.5.7 BETA,這是為了配合 LinkIt ONE SDK 的緣故。
  4. 請確認您知道如何將 LinkIt ONE 連上 WiFi:教學請點我

下載 LinkItONE-IBMBluemix 範例程式並修改對應參數

  1. 請由此下載範例草稿碼:https://github.com/iotgeek/LinkItONE-IBMBluemix
  2. 請根據本網頁說明來完成 https://github.com/iotgeek/LinkItONE-IBMBluemix/blob/master/README.md
  3. 如果您有 Grove 擴充板的話,請將其裝上 LinkIt ONE,接著在 D2 腳位上裝一個溫度感測器。

4-15a

  1. 在 Arduino IDE 中開啟 quickstart.ino (在剛剛下載的 .zip 檔中),請將其中的 WiFi 相關資訊(帳號、密碼與 WPA/WEP 加密方式等)修改為您的環境參數。
  2. 在草稿碼中修改 servername,格式:”666666.messaging.internetofthings.ibmcloud.com“, “666666” 是您的組織 (organization) 名稱
  3. 在草稿碼中修改 clientName,格式:”LinkItONE: aabbccddeeff “,”aabbccddeeff ” 是 MAC Address,以 LinkIt ONE 來說就是 2CXXXXXXXXXX (寫在 LinkIt ONE 背面,如下圖);”666666″ 是您的組織 (organization) 名稱 ,裝置種類則是 LinkItONE。

1-07

#define WIFI_AP “your_ap_ssid”                  
// WiFi AP 名稱

#define WIFI_PASSWORD “your_password”      
// 輸入 WiFi AP 密碼

#define WIFI_AUTH LWIFI_WPA
// choose from LWIFI_OPEN, LWIFI_WPA, or LWIFI_WEP, depending on security type of your WiFi access point.

char macstr[] = “aabbccddeeff”;
// Enter the device mac address here. You can see the WiFi MAC address printed on the backside                                                                                of the LinkIt ONE board.

上傳並執行

編譯並上傳這份草稿碼到 LinkIt ONE,上傳好之後板子就會連上 WiFi AP (一切順利的話),接著板子就會把溫濕度資料以 MQTT 訊息格式送到 IBM Bluemix。

請用網頁瀏覽器開啟:https://quickstart.internetofthings.ibmcloud.com/#/ ,請在畫面左側輸入您剛剛在 quickstart.ino 中所修改的同一組 MAC Address,再按下 “Go” 就可以看到來自 LinkIt ONE 的即時溫溼度資料:

ibmInternetofthingsfoundation_quickstart

執行畫面如下圖。您也可以從同一個帳號下管理所有連到您的 IBM Bluemix 下的各種裝置。

QuickStart_graph2

 

quickstart.ino

/*
  MQTT IOT Example - LinkIt One board to IBM Bluemix Connection quick start
 - continuously obtains values from the Virtuabotix DHT11 temperature/humidity sensor
 - formats the results as a JSON string for the IBM IOT example
 - connects to an MQTT server (either local or at the IBM IOT Cloud)
 - and publishes the JSON String to the topic named quickstart:MY_MAC_ADDRESS
 */



#include <SPI.h>


#include <LWiFi.h>
#include <LWiFiClient.h>
#include "DHT.h"

/* PubSubClient has been taken from https://github.com/knolleary/pubsubclient/tree/master/PubSubClient */
#include <PubSubClient.h>

#define DHTPIN 2     // what pin we're connected to
#define DHTTYPE DHT22   // DHT 22  (AM2302)

/* Modification Needed : 
   Enter your WIFI Access Credentials. 
*/
#define WIFI_AP "your_ap_ssid"
#define WIFI_PASSWORD "your_password"
#define WIFI_AUTH LWIFI_WEP  // choose from LWIFI_OPEN, LWIFI_WPA, or LWIFI_WEP.



char macstr[] = "aabbccddeeff";  // Enter the device mac address here



// Note this next value is only used if you intend to test against a local MQTT server
byte localserver[] = {192,168,1,196};

char servername[] = "quickstart.messaging.internetofthings.ibmcloud.com";
String clientName = String("d:quickstart:arduino:") + macstr; 
String topicName = String("iot-2/evt/status/fmt/json");

float tempF = 0.0;
float tempC = 0.0;
float humidity = 0.0;

DHT dht(DHTPIN, DHTTYPE);
LWiFiClient wifiClient;
PubSubClient client(servername, 1883, 0, wifiClient);

// Uncomment this next line and comment out the line after it to test against a local MQTT server
//PubSubClient client(localserver, 1883, 0, ethClient);


void InitLWiFi()
{
  LWiFi.begin();
  // Keep retrying until connected to AP
  Serial.println("Connecting to AP");
  while (0 == LWiFi.connect(WIFI_AP, LWiFiLoginInfo(WIFI_AUTH, WIFI_PASSWORD)))
  {
    delay(1000);
  }
  
  
  Serial.println("Connected to AP");
}

void setup()
{
   Serial.begin(9600);
   dht.begin();
   InitLWiFi();
}

void loop()
{
  IPAddress server(localserver);
  
  char deviceName[] = "Linkitone";
  char clientStr[34];
  clientName.toCharArray(clientStr,34);
  char topicStr[26];
  topicName.toCharArray(topicStr,26);
  
  
  getData();
  
 


  if (!client.connected()) {
    Serial.print("Trying to connect to: ");
    Serial.println(clientStr);
   
    Serial.println("Connecting to server "); 
    while (! client.connect(clientStr))
    {
      Serial.println("Re-Connecting to SERVER");
      delay(3000);
    }
   Serial.println("Connected to server");
    
  }
  
  if (client.connected() ) {
    
    Serial.println("Connected to server : Building jason");
    
    String json = buildJson();
    char jsonStr[200];
    json.toCharArray(jsonStr,200);
    Serial.println("Connected to server : publishing");
    boolean pubresult = client.publish(topicStr,jsonStr);
    Serial.print("attempt to send ");
    Serial.println(jsonStr);
    Serial.print("to ");
    Serial.println(topicStr);
    if (pubresult)
      Serial.println("successfully sent");
    else
      Serial.println("unsuccessfully sent");
  }
  delay(5000);
}

String buildJson() {
  String data = "{";
  data+="\n";
  data+= "\"d\": {";
  data+="\n";
  data+="\"myName\": \"LinkIt ONE DHT11\",";
  data+="\n";
  data+="\"temperature (F)\": ";
  data+=(int)tempF;
  data+= ",";
  data+="\n";
  data+="\"temperature (C)\": ";
  data+=(int)tempC;
  data+= ",";
  data+="\n";
  data+="\"humidity\": ";
  data+=(int)humidity;
  data+="\n";
  data+="}";
  data+="\n";
  data+="}";
  return data;
}

void getData() {

    // Reading temperature or humidity takes about 250 milliseconds!
    // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
    if(dht.readHT(&tempC, &humidity))
    {
        Serial.println("------------------------------");
        Serial.print("temperature = ");
        Serial.println(tempC);
        tempF = (tempC * 2 ) + 30;
        
        Serial.print("humidity = ");
        Serial.println(humidity);
    }
    
    delay(2000);

}
quickstart.ino

AWS IoT Services 結合 LinkIt™ ONE 開發平台入門教學 – 第一支AWS IoT 程式

本文參考 Mediatek Labs 的 AWS (Amazon Web Services) IoT 教學頁面,告訴您如何讓簡易的 AWS IoT 服務執行在您的 LinkIt ONE 開發板上。在建立並執行您的第一份 AWS IoT 草稿碼之前,請先根據以下連結來建置開發環境並取得 AWS IoT 憑證。

AWS IoT Services 結合 LinkIt™ ONE 開發平台入門教學 – 環境建置與取得憑證

快速入門:

  • 將 LinkIt ONE 開發板切為儲存模式並放入 .pem 檔
  • 在 Arduino IDE 中匯入 mbed TLS 與 AWS IoT Services MQTT 函式庫
  • Wi-Fi 設定
  • 編寫程式

按部就班:

Step 1: 將 LinkIt ONE 開發板切為儲存模式並放入 .pem 檔 
開發 AWS IoT Services 之應用程式可在 Arduino IDE 完成。在開始寫程式之前,我們得先將憑證放到 LinkIt ONE 開發板的記憶體中,如果您還沒有取得憑證的話,請根據本文來操作。步驟如下:

  1. 請依照下圖將 LinkIt ONE 開發板切為儲存 (Mass Storage) 模式


    LinkIt ONE 切換到 mass storage 模式

  2. 電腦中找到卸除式存放裝置(Devices and Removable Storage),請開啟對應於您的 LinkIt ONE 開發板的那個卸除式存放裝置。


    LinkIt ONE 作為卸除式儲存裝置

  3. 複製 .pem 的憑證檔到 LinkIt ONE 中。


    將憑證檔放入 LinkIt ONE

  4. 現在請將板子切回 Normal Bootup 模式 (UART) 並接續編寫草稿碼。


    將 LinkIt ONE 開發板板子切回 Normal Bootup 模式

Step 2: 在 Arduino IDE 中匯入 mbed TLS 與 AWS IoT Services MQTT 函式庫 

編寫 AWS LinkIt ONE 的草稿碼需要匯入 mbed TLS 與 AWS IoT Services MQTT 等函式庫才能支援 MQTT 通訊。mbed TLS 函式庫可讓您的裝置(包含嵌入式裝置) 具備 SSL/TLS 功能,不需要修改太多程式就可直接使用。

您可在 GitHub 上的 aws_mbedtls_mqtt repository 找到本 Arduino 專案的原始碼(aws_paho_mqtt.ino) 以及函式庫。請將本函式庫複製到您的 Arduino/libraries 資料夾中即可。

Step 3: Wi-Fi 設定 
LinkIt ONE 開發板有豐富的聯網功能,包含 Wi-Fi, Bluetooth and GSM/GPRS。本範例將使用 Wi-Fi 來連上網際網路。請參閱 LinkIt ONE developer’s guide 的 section 5.3 “Connecting to the web using Wi-Fi” 來理解如何在板子上接好 Wi-Fi/Bluetooth 天線並在程式碼中匯入 LWifi 函式庫。

Step 4: 編寫程式
本範例將示範如何運用 AWS IoT Services與 LinkIt ONE 開發板進行 MQTT 的 publish 與 subscribe 這兩個功能。您需要在 Arduino 草稿碼中更新您所選用的 AWS IoT Services 標題 (topic) 名稱,以及方才存放在 LinkIt ONE 開發板中的憑證名稱。

  1. 在 Arduino IDE 中開啟 aws_paho_mqtt.ino 這份草稿碼。
  2. 解析主機名稱 (hostname) 來取得 IP 位址,請在 cmd 中執行以下指令:
    ping g.us-east-1.pb.iot.amazonaws.com

    執行指令後的畫面如下圖,只是您電腦所顯示的 IP 應該是不一樣的。請把 IP 位址記下來。


    驗證主機名稱的 IP 位址

    將 VMSTR IP_ADDRESS 變數值改為您在上一步所取得的 IP 位址

    VMSTR IP_ADDRESS = “54.86.88.20”; //currently only support IP address
  3. 修改您的憑證名稱。
    char cafileName[] = "A5.pem";
    char clientCRTName[] = "cert.pem"; char clientKeyName[] = "privatekey.pem";
  4. 將以下變數值換成您的 topic 名稱。
    subParams.pTopic = "yourTopicName";
    Params.pTopic = "yourTopicName";
  5. 將程式碼上傳到 LinkIt ONE 開發板。
  6. 在 Arduino IDE 中開啟 Serial Monitor,首先看到的訊息是關於是否成功連上網路AP 與 AWS 。


上傳草稿碼之後顯示於 Serial Monitor 上的訊息

使用 MQTT 通訊協定持續將訊息發佈到 Serial Monitor

恭喜!您已經成功使用 AWS IoT Services、LinkIt ONE 開發板搭配 MQTT 通訊協定來發布訊息了。

您需要用到 MQTT client 才能驗證 MQTT 的 subscribe 功能,請參考 AWS IoT Services Getting Started Guide 中的 “Verify MQTT Subscribe and Publish” 說明頁面。

AWS IoT Services 結合 LinkIt™ ONE 開發平台入門教學 – 環境建置與取得憑證

本文參考 Mediatek Labs 的 AWS (Amazon Web Services) IoT 教學頁面,有 LinkIt ONE 的朋友們歡迎跟著一起作,完成之後即可讓簡易的 AWS IoT 服務執行在您的 LinkIt ONE 開發板上喔

AWS IoT Services 結合 LinkIt™ ONE 開發平台入門教學

AWS IoT 服務現在支援 LinkIt ONE 開發板了!使其可在概念驗證用的專案與Amazon 專門為 IoT 最佳化的雲服務之間建立安全的通訊機制。 AWS IoT 服務使用  MQTT (message queuing telemetry support) 與 HTTP 作為其通訊協定。為了在 LinkIt ONE 上做到這件事,需要用到 mbed TSL library for LinkIt ONE (一種 mbed TLS 函式庫) 來提供傳輸層安全協議 (TLS, Transport Layer Security。本函式庫很容易就能整合新建或既有 (已嵌入) 應用程式並提供安全通訊、加密與金鑰管理所需的相關指令。

如果這是您首次使用 LinkIt ONE 開發板,請參考 LinkIt ONE get started 說明來安裝 Arduino IDE、LinkIt ONE SDK 以及驅動程式。本頁面教學內容包含:

  • 您所需的額外軟體
  • 設定開發環境
  • 建立用於裝置或應用程式通訊的認證
  • 建立您的第一個 AWS IoT Services 應用程式

請注意:本教學使用 Windows 作業系統,但在 Mac OSX 上的建置方式是類似的。

Continue reading

151107 物聯網教學應用發表會@南港高工

市面上物聯網開發板何其多,您是否對於如何選擇感到困擾?本次分享會將介紹目前常見的物聯網開發板,並展示目前市面上各類型物聯網開發板的應用,誠摯邀請您一同來了解。

活動現場除了將陳列各式開發裝置與應用範例之外,還會有各家廠商的技術代表,為您即刻解答相關疑難。還可以跟各方高手一同切磋、交流,當然還有CAVEDU滿滿對科技教育的熱情。

開發版發表會

地點:臺北市立南港高級工業職業學校,臺北市南港區興中路29號

時間:2015/11/7 星期六,13:00~16:00,12:30 可入場

主辦單位:臺北市立南港高級工業職業學校翰尼斯企業有限公司

執行單位:CAVEDU 教育團隊

協辦單位:台灣嵌入式暨單晶片系統發展協會

媒體協辦:馥林文化MakerPRO

請點我報名

內容:

  1. 介紹市面上有哪些物聯網開發板、彼此的異同以及各種教學應用 –
  2. 各類物聯網開發板實品與專題展示,包含:
  3. 交流分享

[LA計畫] App Inventor 接收 LinkIt ONE 兩筆可變電阻值,還可做磁力畫板

本文介紹如何使用 App Inventor 擷取 LinkIt ONE 上的兩筆可變電阻資料,作法與 [雙A計畫]Part6:Arduino 傳兩筆資料到 Android 手機 是一樣的,只是 LinkIt ONE 在藍牙設定上有一點點不一樣,因此寫一篇分享一下。

除了可在Android 手機畫面上看到 LinkIt ONE 兩個類比腳位變化之外,還可畫線,類似小時候的磁力畫板(啊,暴露年紀…)

本文感謝 CAVEDU 實習生施力維完成

檔案請點我下載


 

 

 

 

 

 

延伸閱讀

[雙A計畫] 常見問題整理

[雙A計劃] Part0:App Inventor 透過藍牙傳送訊號給 Arduino

[雙A計劃] Part1:App Inventor 經由藍牙控制 Arduino LED 亮滅

[雙A計劃] Part2:App Inventor 經由藍牙控制 Arduino LED 漸明漸暗

[雙A計劃] Part4:App Inventor 藍牙遙控 Arduino 雙輪機器人

[雙A計劃] Part5:Paperduino 藍牙控制 LED 閃爍

[雙A計畫]Part6:Arduino 傳兩筆資料到 Android 手機


 

 

 

程式說明

在此只列出 Clock.Timer 事件,首先送出一個 122 數字,LinkIt ONE接收到之後就會把 A0, A1 值丟給 App Inventor。變數X是 LinkIt ONE 傳來的 A0腳位值,Y則是A1.

由於 Canvas 的大小是 320  x 320,因此我們設定把 A0原本的 0~ 1023 範圍透過 map 指令轉為 0~ 320,對應到 X 軸座標。A1 則是對應到 Y 座標,最後使用 Canvas.DrawLine 指令就可以隨意畫圖囉!

01

對應的片段如下

if(LBTServer.connected()){
      a1 = analogRead(A0);
      a2 = analogRead(A1);
      a1 = map(a1,0,1023,0,320);
      a2 = map(a2,0,1023,0,320);
      Serial.printf("%d\t%d\n",a1,a2);
      if(LBTServer.read() == 122){
        BTwrite = LBTServer.write('j');
        BTwrite = LBTServer.write(a1/256);
        BTwrite = LBTServer.write(a1%256);
        BTwrite = LBTServer.write(a2/256);
        BTwrite = LBTServer.write(a2%256);
      }
      delay(10);
  }
LinkIt ONE 端透過 LBTServer 將 A0, A1 依序送出

 

 


 

 

LinkIt ONE 端完整程式

#include <LBT.h>
#include <LBTServer.h>
#define serverName "BTserverTest"
#define serverWaitTime 5

char BTwrite;
void setup() {
  Serial.begin(115200);
  while (!Serial);
  LBTServer.begin((uint8_t*)serverName);
  Serial.printf("[%s] is waiting for any client...\n",serverName);
  
  while(!LBTServer.accept(serverWaitTime)){
    Serial.println(" ... ");
  }
  Serial.println("===Connected!===");
}
int a1,a2;
void loop() {
  if(LBTServer.connected()){
      a1 = analogRead(A0);
      a2 = analogRead(A1);
      a1 = map(a1,0,1023,0,320);
      a2 = map(a2,0,1023,0,320);
      Serial.printf("%d\t%d\n",a1,a2);
      if(LBTServer.read() == 122){
        BTwrite = LBTServer.write('j');
        BTwrite = LBTServer.write(a1/256);
        BTwrite = LBTServer.write(a1%256);
        BTwrite = LBTServer.write(a2/256);
        BTwrite = LBTServer.write(a2%256);
      }
      delay(10);
  }
  else{
    Serial.println("===Disconnected!===");
    Serial.printf("[%s] is waiting for any client...\n",serverName);
    while(!LBTServer.accept(serverWaitTime)){
      Serial.println(" ... ");
    }
    Serial.println("===Connected!===");
  }
}
LinkIt ONE 送出 A0 , A1 類比腳位給 App Inventor

 

執行畫面

從 Serial Monitor 可以看到 A0, A1 目前的狀態

11713381_783552385096897_1979904894_n

轉動 A0, A1 的可變電阻就可以畫出隨意線條,是不是和磁力畫板很像呢?左側是 A0 數值,右側是 A1

 

11739516_783552328430236_792456203_n 11668094_783552338430235_89140845_n

 

150712 漫談 DIY 二輪平衡車 @FutureWard 未來產房

還記得 Maker Faire Taipei 的二輪平衡車大賽嗎?本活動將請到開發團隊與您分享開發秘辛,介紹如何採買零件、製作組裝與編寫關鍵的自平衡程式。呼呼,多少燒焦的血淚啊~  到場的三個團隊分別使用不同的開發板,也是很有趣的現象喔( Arduino 、Raspberry Pi 與 LinkIt ONE)

時間:7/12 13:00~ 16:00

地點:FutureWard 未來產房 (大同大學進校門走路約 3 分鐘)

參與講者:Maker Faire 二輪平衡車大賽參賽團隊:MediaTek Labs、馥林文化、CAVEDU

請直接到 Facebook 活動頁面報名,免費參加喔!

1300-1330:開場

1330-1500:開發團隊分享會

1500-1600:交流與體驗

IMG_1176  IMG_1108IMG_1193   IMG_1115

 

神秘出場:大腳二輪平衡車(桌上型,不能載人喔!

11655454_10205894993151817_451672063_n

150617 大專教師物聯網(北區)師資培訓 – 使用 LinkIt ONE

IMG_1662

6/17   星期三是北區的大專教師物聯網師資培訓,經費感謝經濟部通推小組補助,每位老師都有一片 LinkIt ONE 開發板、一盒電子材料與咱們所出版的 [LinkIt ONE 物聯網實作入門]。希望參加的老師們能夠帶學生參加 2015通訊大賽的[聯發科技物聯網/穿戴式創客競賽]這一組,當然別組也很歡迎喔。

報名日期到 7/8,請注意時間喔

IMG_1638

課程內容以通訊方面為主,所以早上的課程在安裝完 SDK 之後就進入 WiFi 擷取網頁內容。會介紹如何在程式碼中設定 WiFi AP, 密碼與指定 URL。

最近 LinkIt ONE 更新了SDK到1.1.09,可以自動切換 port number,這也是 LinkIt ONE 與 Arduino 最不同的地方。

不過當天現場網路不太穩定,還請大家見諒。

IMG_1639

IMG_1643

中午時間科技部林一平政務次長到場與各位老師一起用餐,也聽聽各位老師在第一線教學方面的需求。(當然很大一部分就是$$啦)

IMG_1648

IMG_1645  下午開始進入 LinkIt ONE 的藍牙通訊,另一端使用 App Inventor 來編寫簡單的 Android 應用程式。

IMG_1653

最後當然就是重點:MediaTek Cloud Sandbox,學員們會認識如何在 MCS 上建立原型(prototype)、資料通道(data channel),我們會根據不同的需求來建立不同型態的資料通道,最後則是建立測試裝置(test device)。操作時可以同時在多個終端(網頁或Android app,iOS裝置當然也可以直接開 MCS網頁) 來操作您的 LinkIt ONE板子

MCS 也在上個月推出了正體中文的頁面,教學上方便多了。

4-13

經濟部施經理詳細說明競賽項目與各重要時程

IMG_1660