Tag Archives: 物聯網

[python] JSON 與 Facebook 取讚,可以直接執行在 Arduino Yun 的 Linux 中喔!

各個版本的 Facebook 取讚都玩過了,想不到用 python 居然只要… 不到10行啊…

螢幕截圖使用 Coding Ground (大推的線上程式編譯網站,超多程式可以玩),本份 code 可以直接執行在 Arduino Yun 的 Linux 中喔!

歡迎回顧一下我們 Arduino Yun 的相關文章 與 App Inventor 的 Web 元件教學1234

import urllib2
import json

req = urllib2.Request('http://graph.facebook.com/CAVEEducation')
response = urllib2.urlopen(req)             
html = response.read()                      

data = json.loads(str(html))
print('# of CAVEDU FB fanpage likes:',data['likes'])
python to retrieve FB fanpage # of likes

Arduino Yun 使用 Temboo 服務發布 Facebook 動態

本文要告訴大家如何使用 Temboo 服務來發布 Facebook 狀態。請先到 Temboo 網站註冊一個帳號。按著本篇操作您就能讓您的 Arduino yun (其他可上網的 Arduino 也可以)自動發布 Facebook 狀態喔!

咱們的 Arduino Yun 系列文章請點我

1. Temboo 網站左側的 Facebook 選單中找到 / Publishing/SetStatus,我們可由此一步步操作完成。

yun_FB_001

2.  目標:先取得 OAuth Tokens 再取得 AccessToken。由於像 Facebook 或 Twitter 這類社群網站是代表您個人,所以對於外部程式的連結要求一定會更嚴格,請耐心操作喔。

yun_FB_002

3. 在頁面上方記得開 IoT Mode / Arduino Yun。在此的開發板選項有

  • Arduino + 網路擴充板
  • Arduino Yun
  • 德儀 LaunchPad

yun_FB_003

4. 這時 Temboo 會要求您在Facebook Developer建立一個app,用您原本的帳號登入即可。您可以能需要透過簡訊才能認證完成。

yun_FB_004

5. 在 Facebook 開發者頁面中,建立一個app。並在左側的 Settings 選單中點選下方的 + Add platform ,並選擇 Website。在 Site URL欄位中填入 https://www.temboo.com/oauth_helpers/confirm_facebook/  。我們實際上是讓 Temboo 透過 App ID 與 App Secret 去連結到您的這個 Facebook app 才能進行 Facebook 的相關動作。我這個 Facebook app 叫做 caveyun

完成如下圖。接著回到 Temboo 網站按 NEXT

yun_FB_005

6. 填入您的 Facebook App IDApp Secret 。

yun_FB_006

7.  啟動認證 – 同意外部連結。點選畫面中的 LUANCH AUTHORIZATION 會跳到 Facebook 的同意畫面,請點選同意。由於本範例會發布動態,請決定這個app 的動態的檢視權限(所有人、朋友或您自己)。否則太過頻繁發文,朋友會以為您被盜帳號啦!

yun_FB_007

8. 歷經千辛萬苦終於取得 AccessToken…  請點選 USE THESE VALUES 會直接帶到下一個畫面。

yun_FB_008

9.  可看到 AccessToken 已經自動帶入,請在 Message 欄位填入您想要發表的內容。按下右下角的 Run 就會發布動態。

yun_FB_009

10. 這是 Facebook 的回應,預設為 JSON 格式。畫面下方會帶出範例程式,請複製這份程式到您的 Arduino IDE 中並執行,應該也是一樣能發布 Facebook 狀態喔!

yun_FB_010

 

11. 回到您的頁面看看,順利發布完成囉!!您可以看到是透過 caveyun 這個 app 來發佈的。

yun_FB_011

[LinkIt One 教學] LinkIt One 紀錄 GPS 點於 MediaTek Sandbox (實測於台北 – 武陵農場來回)

為了測試 LinkIt One 的 GPRS 行動網路功能以及電池續航力,決定去一趟武陵農場走走(想玩就說一聲啦!)

早上6:00從台北出發, LinkIt One 插上 3G行動網路預付卡以及 GPS 與 GPRS 天線,希望能順利把GPS座標上傳到 MediaTek Cloud Sandbox 雲端服務。

我們正在與聯發科規劃一系列的 LinkIt One 研習,到時候您也能體驗這項雲端服務喔!

2015-01-23 06.06.08

連 beta 版都算不上的行動版,之後要加裝外殼、燈號/聲音來確認資料是否順利寫入(前一天晚上還在確認啊…)

2015-01-23 06.06.15

來看看,這是從台北走國道五號到宜蘭市的座標軌跡,中間缺一段應該是在雪隧。

2015-01-23 07.12.45

這一段就是走台七甲線到武陵農場,好遠的一段路啊。

2015-01-23 09.02.32

武陵農場內的七家灣溪旁,就是櫻花鉤吻鮭培育中心那邊喔

2015-01-23 13.00.19

 

最後是福利時間,來看看美麗的櫻花與梅花吧!

150208 物聯網 IoT 研習營 (使用Electric Imp 小惡魔)

讓您親身體驗時下最夯的科技議題「物聯網」(Internet of Things),從架構到基本使用,再到創作運用,讓您充分掌握物聯網的脈動。

Electric Imp 是一片專為物聯網運用的微型原型開發板, 使用專屬的雲端開發環境就能輕鬆完成諸多網路通訊應用. 本次三小時體驗營, 歡迎您一同進入物聯網的世界!
主辦單位:CAVEDU 教育團隊、翰尼斯企業有限公司
協辦單位:台灣發展研究院 智能機器人研究所、《Make》國際中文版

時間 : 104年2月8日星期日 13:30~16:30

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

備註: 請自行攜帶筆記型電腦,以便實際操作

收費:2,000 元。名額有限,請儘早報名

報名請點我

付款方式:
1.匯款:
銀行名稱 :華南商業銀行 雙園分行
戶名 :翰尼斯企業有限公司
銀行代號 :008
帳號 :122-10-015315-3
2.來店付款
翰尼斯企業有限公司
台北市中正區中華路二段165號1樓
3. 線上付款
機器人王國網路商城
http://shop.robotkingdom.com.tw/electric-imp-651.html

超級好禮相贈:
1. Eletric Imp一組(包括Electric Imp 開發板與 April 分接板)

注意事項:
參加者須自備可無線上網的筆記型電腦。

活動議程:
13:30 CAVEDU 教育團隊簡介

13:50 什麼是物聯網?
註冊 Electric Imp 帳號
線上開發環境 安裝手機端app

14:20 第一支 Electric Imp 程式 – helloWorld

15:00 雲端控制 LED 亮滅與取得開發板感測器數值

15:30 網頁爬資料範例 – 取得 Facebook 粉絲頁指定欄位內容 – JSON parser

16:20 結語、賦歸

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

服務電話:02-23062900
service@cavedu.com

Broadcom WICED Sense – Bluetooth Smart Sensor Tag 開發環境建置

Broadcom 公司推出的 WICED Sense – Bluetooth Smart Sensor Tag 最近在各大社群討論的相當熱烈。本文要介紹如何安裝其驅動程式,以及安裝 IDE 並燒錄第一支程式。定價19.99 美元,上面就有陀螺儀、加速度計、電子指南針、氣壓、濕度與溫度感測器,超值超值~

只當做終端商品就太可惜了,因此Broadcom 公司也推出了開發環境與範例程式,讓您可以把 WICED Sense 與您的系統進行整合。

2015-01-09 18.44.39

請先在 Broadcom WICDE 網頁 註冊一個帳號之後就可以下載相關的檔案。總共需要兩個檔案:

  • CP210x_Windows.exe – 裝置驅動程式
  • WICED-Smart-SDK-2.2.0-IDE-Installer.exe – 開發環境 (掛在 Eclipse 下)

請注意 WICED Sense能夠做程式燒入的時間大概只有在開機前10幾秒,一旦裝置上電太久,WICED Sense就會開始執行內部程式。另外,WICED Sense 的 RESET 鍵是做在殼的內部,外面兩個按鈕是從MCU的GPIO拉出來。因此如果要讓WICED Sense重新開機的話:

1.      首先要先把電池拔掉(USB也是)
2.      先將遇燒入的程式準備好
3.      插上USB接頭後馬上按下燒錄鈕

接下來請開啟 WICED 開發環境,有使用過 Eclispe 的朋友應該會感到很熟悉囉。

0002

展開來可以看到許多範例

WICED Sense 提供了相當多的範例程式,在 IDE 右側可以找到幾個可以直接用於 WICED Sense 的 Make Target,在此先利用 pwm_tones-BCM920737TAG_Q32 download 做示範:

1.      將電池取出
2.      插上USB線後馬上點兩下pwm_tones-BCM920737TAG_Q32 download
3.      如果下方”Console”出現如下圖的畫面就代表程式燒錄成功。之後每次開機就會直接執行這個程式。

0001

燒入完之後,這隻程式會讓 WICED Sense 發生嗶嗶聲,按下側邊的按鈕還可以改變聲音頻率。

141209 Arduino Yun 物聯網結訓囉 @FutureWard 未來產房

為期四周的 Arduino Yun 物聯網課程結訓囉,大家應該都被折磨的很徹底才對。Arduino Yun 的強項當然在於聯網,不過要連怎樣的網頁甚至是網路服務,這就需要一些額外的申請步驟與認證手續。不會很難,只是麻煩點就是了。

我們四次上課的內容如下:

1. Arduino yun 硬體介紹、環境設定與無線網路設定(可透過無線網路來燒錄 Arduino 程式)。

2. 認識 REST API,能藉由瀏覽器指令(例如 http://arduino.local/arduino/digital/13/1 )控制或讀取腳位狀態

。藉由繼電器來控制一般家電(檯燈),並可自動寄發 Gmail(使用 Temboo 服務)

3. 使用 DHT11 溫濕度感測器,將感測器資料上傳到 Google Docs 試算表、發布訊息到 Twitter 社群網站。

4. 登入 Arduino Yun 的 Linux machine,下指令讓 Webcam拍照。藉由 PIR動作感測器來觸發拍照並上傳到 Dropbox 服務。

上課投影片請由此下載 (全部都放在 SlideShare),CAVEDU 會陸續把所有投影片上線。也歡迎大家許願告訴我們您需要哪方面的內容喔

P1300923

[LinkIt ONE 教學] 取得 Facebook 粉絲頁的 JSON 物件

各位朋友新年快樂,這篇文章要介紹如何使用 LinkIt ONE 來取得 Facebook 粉絲頁底層的 JSON 格式,您可以參考我們日前用 App Inventor 做的版本

LinkIt ONE 的 Wifi / BT 天線是整合在同一支,只要接上板子即可,如下圖。

2015-01-03 16.36.20

在程式中有一個叫做 c 的 LWiFiClient 物件,它負責管理網路相關的動作,get 與 post 等等

LWiFiClient c;

接著在 loop() 中,就透過 c.read() 把指定 URL (再次使用 CAVEDU Facebook 專頁的 open graph) 的字元逐一顯示出來。如下圖的最後一行  { “id” = …  開始就是了。有了這些資料之後就可以玩很多東西了。

while (c)
{
int v = c.read();

if (v != -1)
{
Serial.print((char)v);
}…   //以下省略

 

 

linkit_002

完整的程式碼如下,歡迎您也入手一片 LinkIt ONE 與我們互相討論喔~

/*
  Web client

 This sketch connects to a website 
 using Wi-Fi functionality on MediaTek LinkIt platform.

 Change the macro WIFI_AP, WIFI_PASSWORD, WIFI_AUTH and SITE_URL accordingly.

 created 13 July 2010
 by dlf (Metodo2 srl)
 modified 31 May 2012
 by Tom Igoe
 modified 20 Aug 2014
 by MediaTek Inc.
 */

#include <LTask.h>
#include <LWiFi.h>
#include <LWiFiClient.h>

#define WIFI_AP "XXX"   //your WIFI AP
#define WIFI_PASSWORD "YYY"  //WIFI PWD#define WIFI_AUTH LWIFI_WPA  // choose from LWIFI_OPEN, LWIFI_WPA, or LWIFI_WEP.
#define SITE_URL "graph.facebook.com"  // note that "caveeducation" is part of the HTTP request rather than host name.

LWiFiClient c;

void setup()
{
  LTask.begin();
  LWiFi.begin();
  Serial.begin(115200);
  
  while(!Serial)delay(100);

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

  // keep retrying until connected to website
  Serial.println("Connecting to WebSite");
  while (0 == c.connect(SITE_URL, 80))
  {
    Serial.println("Re-Connecting to WebSite");
    delay(1000);
  }

  // send HTTP request, ends with 2 CR/LF
  Serial.println("send HTTP GET request");
  c.println("GET /caveeducation HTTP/1.1");
  c.println("Host: " SITE_URL);
  c.println("Connection: close");
  c.println();

  // waiting for server response
  Serial.println("waiting HTTP response:");
  while (!c.available())
  {
    delay(100);
  }
}

boolean disconnectedMsg = false;

void loop()
{
  // Make sure we are connected, and dump the response content to Serial
  while (c)
  {
    int v = c.read();
    if (v != -1)
    {
      Serial.print((char)v);
    }
    else
    {
      Serial.println("no more content, disconnect");
      c.stop();
      while (1)
      {
        delay(1);
      }
    }
  }

  if (!disconnectedMsg)
  {
    Serial.println("disconnected by server");
    disconnectedMsg = true;
  }
  delay(500);
}
LinkIt ONE 取得 Facebook JSON object

[Electric Imp 物聯網小惡魔教學] 環境建置與 BlinkUp app

本文介紹如何建置 Electric Imp 的開發環境,申請帳號,以及使用  BlilnkUp app 把無線網路帳密告訴 Imp 讓它可以上網。

https://electricimp.com/docs/gettingstarted/blinkup/

申請 Electric Imp 開發者帳號

請到 Electric Imp 官網申請一個帳號,之後就能用這個帳號使用 Electric Imp IDE 來寫程式。在一個帳號中您可以加入多片 Imp ,並在 IDE 中來編寫程式並檢視它們的狀態。填妥基本資料之後,收一下確認 email 就可以開始寫程式囉。

註冊與登入畫面

下載 Electric Imp app

Electric Imp app 可讓您透過 iOS / Android 裝置來設定您的 Imp。您可以由下面來連結來下載:

下載好之後請開啟 app 吧

輸入 WiFi 資訊

請在BlinkUp app 中來選擇所要連接的無線網路,並設定其密碼。這些資料會被加密之後傳送給 Imp。app 會自動選擇該裝置已連上的無線網路,所用的標準是 2.4GHz 802.11n standard,也相容較早的 2.4GHz 802.11b/g networks。如果您的 802.11n 網路使用 5GHz 頻寬的話,imp 可能會連不上。這時請將您的網路改為 2.4GHz不然就只好連到其它網路了。

如果您沒有看到所要連的網路的話,或是您想先設定好 imp 以便稍後使用,請選擇 Other Network 選項後輸入網路名稱。

在 BlinkUp app 中輸入無線網路資訊

imp 板子本身可以判別您選定的無線網路之加密型態:WEP, WPA, WPA2 等等,所以您只要輸入密碼就好。如果您要連的是未加密網路的話,密碼欄位留空即可。

imp 不支援企業級的 WiFi 認證,就是需要使用者帳號,專屬 SSD 與密碼才能登入的這種網路。

BlinkUp

現在可以來設定 imp 了,請用 mini USB 將 imp 連上電腦或轉接器來供電。正確運作的話, imp 上的 LED 會變成橘色,代表這是一片全新的 imp,反之紅色是代表這片 imp 已經被使用過了。

連線示意圖

請在 Electric Imp app 中按下Send BlinkUp 按鈕。如果您是使用 Android,請先設定為 Legacy Mode。請確認您的 imp 已經啟動,且狀態 LED 正在閃動。這時請把 imp 上緣的光感測器對準您的行動裝置螢幕,請保持 imp 固定不要晃動,否則會傳輸失敗。

imp 上緣的光感測器,用來接收手機傳來的光編碼資料

由於 BlinkUp 是以光學方式來傳送資料,所以會受到環境光的影響,例如陽光或直射強光。我們建議:

  • 擋掉所有的直射強光,或在陰影處操作 BlinkUp
  • 操作時保持固定

連線

傳輸完成之後,您的 imp 就可用接收到的資料來上網了,隨後就會連到 Electric Imp 的伺服器。您現在可以在 IDE 來寫程式了。

imp 的狀態都是由 LED 來表示。如果一切順利的話,您會看到 LEd 在一兩秒之後閃爍綠色,代表正確連線。您的 imp 不會自動顯示於 IDE,您需要重新整理瀏覽器,應該就可以看到它了。IDE 介紹請按我

您可能會看到 LED 閃綠色變得更快,然後保持綠色常亮。這代表 imp 已經被偵測到需要更新 imp 的作業系統(或韌體):快速閃爍代表正在下載更新,綠色常亮則代表新版的韌體已經安裝好了。如果您不小心中斷了這個過程也沒關係,imp 會在下次開機時再次安裝。安裝好更新之後,它會重新啟動,您會看到它閃紅色,再來是橘色,最後在連上網路時變為綠色。

如果它沒有閃綠色的話,代表連線有問題,請看以下說明。

不管有沒有連上線,imp 會在自動關閉 LED 來節電,但它還是在運作喔

狀況排除

如果 LED 閃爍紅燈的話,代表 imp 無法讀取 BlinkUp 傳輸的資料,也許離手機螢幕太遠或是它無法用收到的資料來連線。

如果發生這種狀況的話,再試一次。這次請注意看LED,LEd閃爍的顏色與模式會告訴您哪邊出問題了,請看LED 連線顏色編碼希望一切順利喔。

141204_RaspberryPi樹莓派研習營@未來廠房

在未來廠房的樹莓派研習營,已經邁入第三週了,這週要介紹的是在樹莓派上運行 Python程式語言,在這兩個小時當中首先讓大家體驗Python的撰寫特性,

  • 使用辨識符號時只需要給它們賦一個值。不需要聲明或定義資料型別
  • 判斷式沒有大括弧與小括弧,一切以程式是否同一排為準。”縮排”(按鍵Tab)
  • 一行程式碼結束,不需要 ; 號
  • 註解為井字號

01 02

接著是Python的編譯聲明,還有Linux在檔案權限與屬性管理的解說,讓檔案能夠在Linux的環境中被執行,需要對檔案的使用權限逕行更改

03 04

 

0607

 

最後則是分享,Python建立副函式、輸入函式庫、建立函式庫的方法與注意事項

08 09

上課的時候不僅練習課程上的範例,還有學員上台分享自己使用python的經驗,連負責分享的我也長知識啦

20141204_211052 20141204_211110

 

下次上課分享的內容,在樹莓派上裝設webcam,使用Python輸入opencv視覺函式庫,

對球體以及物體的顏色進行視覺辨識,敬請期待~~~

141125 透過RESTful API與Arduino Yun互動@FutureWard

Arduino Yun 物聯網課程,今天是第二堂課。要透過瀏覽器來直接控制 Arduino Yun ,讓繼電器得以開關檯燈或其他電器。還要透過 Temboo 服務把資料送到 Google Docs 雲端試算表中。是不是很方便呢?

基礎設定請看:Arduino Yún 無線網路設定與無線上傳程式

課程分為三段:

1. 使用 REST API 從瀏覽器下指令。例如 <caveyun.local>/arduino/digital/13/1 就可以把 Arduino 的 D13 腳位設為高電位,LED 就亮起來啦

螢幕快照 2014-11-25 下午4.11.51  螢幕快照 2014-11-25 下午4.12.05

2. 上傳 Google 試算表。使用 Temboo 服務,把 Arduino 的耗電狀況(電流感測器值)上傳到 Google 試算表中。只要 Arduino 開機就會自動上傳資料,非常方便。

10353093_738626246208252_332885323332732160_n

3. 透過網路介面來控制繼電器。每次都要透過瀏覽器下指令挺麻煩,如果用網頁的話就輕鬆多了,連智慧型手機也可以用這個網頁來控制 Arduino Yun。

2014-11-25 09.06.25

YouTube 影片

阿吉老師還不小心把一個電流感測器弄爆了,火花四射…   大家在操作與電有關的東西一定要小心喔

以下是上課實況,教室快滿出來啦…   現場的網路有點不穩,再加上 Arduino Yun 啟動之後就會變成一個 AP,所以同時間有接近 40 台裝置要連網,在此向同學們致歉。

2014-11-25 19.37.12 2014-11-25 20.17.12 2014-11-25 20.17.32

 

[LinkIt ONE 教學] 透過 Wifi 取得網頁內容

LinkIt One 教學又來囉,這一次是把指定網站的字元讀回來,字元讀回來之後,後面就可以做很多事情啦~  本文參考LinkIt  One 官方使用手冊

只要把 Wifi / 藍牙二合一天線接上去就好,別接錯啊!

2014-12-01 00.50.09

本支程式有幾個重點請您注意,完整的程式碼在文末。請慢慢看完以下說明:

以下是截取 www.appinventor.tw” 的執行畫面,但經過測試,有些不是 www 開頭的網站爬不回來,還在測試中。

0001

網路設定,在此輸入無線網路帳密。

#define WIFI_AP “Name_of_your_AP”
#define WIFI_PWD “Password_of_your_AP”
LWiFi.begin();
LWiFi.connect(WIFI_AP); // if the AP is not encrypted
LWiFi.connectWEP(WIFI_AP, WIFI_PWD); // if the AP uses WEP encryption
LWiFi.connectWPA(WIFI_AP, WIFI_PWD); // if the AP uses WPA encryption

連接指定網站

#define SITE_URL “www.appinventor.tw”
LWiFiClient c; //用這個物件來執行網路動作
c.connect(SITE_URL, 80);

送出 Http request

c.println(“GET / HTTP/1.1”);
c.println(“Host: ” SITE_URL);
c.println(“Connection: close”);
c.println();

取得網站內容,透過 c 來將網頁字元逐一讀回來,並顯示於 serial monitor

int v;
while(c.available())
{
v = c.read(); // return one byte at a time
if(v < 0)
break; // no more data
}

以下為完整的 code,歡迎自己玩玩看喔!

#include <LWiFi.h>
#include <LWiFiClient.h>
#define SITE_URL "www.mediatek.com"
#define WIFI_AP "您的 AP 名稱" //請輸入所要連的AP名稱
#define WIFI_PWD "AP 密碼" // 請輸入AP 密碼
LWiFiClient c;

void setup() {
 Serial.begin(9600);
 LWiFi.begin();

 Serial.println();
 Serial.print("Connecting to AP...");
 if(LWiFi.connectWEP(WIFI_AP, WIFI_PWD) < 0)
 {
 Serial.println("FAIL!");
 return;
 }
 Serial.println("ok");
 Serial.print("Connecting to site...");
 if(!c.connect(SITE_URL, 80))
 {
 Serial.println("FAIL!");
 return;
 }
 Serial.println("ok");
 Serial.println("send HTTP GET request");
 c.println("GET / HTTP/1.1");
 c.println("Host: " SITE_URL);
 c.println("Connection: close");
 c.println();
}

void loop() {
 int v;
 while(c.available())
 {
 v = c.read();
 if(v < 0)
 break;
 Serial.print((char)v);
 }
 delay(100);
}
LinkIt One 讀取網頁

[LinkIt One教學] – 簡訊控制LED亮滅

繼續來介紹 LinkIt One的通訊功能,先從 GPRS 模組開始。

請將 SIM 卡插入 LinkIt One 背面的 SIM 卡插槽,另外還要安裝 GPRS 天線,如下圖。另外請在 pin3 接上一顆LED。操作時,請插入一張有效的 SIM 卡(大張的),對這個號碼發送 “ON” 可以點亮 LED, “OFF”則熄滅 。大小寫沒有差別,程式中都有檢查到喔。

玩一兩次就好,傳簡訊要錢…   或是您可以找一張傳簡訊不用錢的門號就可以一直玩了

2014-11-22 18.16.48

以下為程式碼說明:

重點在於 dtaget[20] 這個字元陣列(長度為20)是用來依序存放簡訊的各個字元,我們藉由檢查前兩個字元是否等於 ON 來開燈,等於 OFF 則關燈。當然囉,一封簡訊可以有許多字元,您可以使用這種方式來把各種檢查碼放入簡訊中,LinkIt One 收到之後就可以執行對應的動作,就好像解碼天書一樣呢!

#include <LTask.h>
#include <LGSM.h>
const int pinLed = 3; // LED接在 D3 腳位

void setup()
{
    Serial.begin(9600);
    while(!LSMS.ready()) //等候 SIM卡模組 ready
    {
         delay(1000);
    }

    Serial.println("GSM OK!!");
}
void loop()
{

    char p_num[20];
    int len = 0;
    char dtaget[500];

    if(LSMS.available()) // 檢查有沒有新簡訊
   {
        LSMS.remoteNumber(p_num, 20); //顯示發送者電話號碼
        Serial.println("There is new message.");

        Serial.print("Number:");
        Serial.println(p_num);
        Serial.print("Content:"); // 顯示簡訊內容

        while(true)
        {
            int v = LSMS.read();
            if(v < 0)
                break;

            dtaget[len++] = (char)v;
            Serial.print((char)v);
         }

         Serial.println();
         LSMS.flush(); // 刪除簡訊
         if((dtaget[0] == 'O' && dtaget[1] == 'N') || (dtaget[0] == 'o' && dtaget[1] == 'n'))
         {
         //檢查簡訊前兩個字元是否為 ON 或 on
         digitalWrite(pinLed, HIGH); 
         // 這不用多說了吧,亮燈!
}

        else if((dtaget[0] == 'O' && dtaget[1] == 'F' && dtaget[2] == 'F') || (dtaget[0] == 'o' && dtaget[1] == 'f' && dtaget[2] == 'f'))
         {
             digitalWrite(pinLed, LOW); 
             // 熄燈
         }
    }
}

 

141118~141209 Arduino入門與物聯網研習營@FutureWard未來產房

想學習最近超熱門的物聯網技術嗎?想知道如何讓 Arduino 連上網際網路來收發資料,以及結合各種雲端服務嗎?11/18開始連續四周的課程,會使用 Arduino Yun 這塊板子,帶領您從零開始認識 Arduino、感測器、網際網路以及像 Google Doc、Gmail、Dropbox 以及 YouTube 等雲端服務。是超級實務導向的課程喔!

2014-10-08-00.09.24

報名網址請按我

CAVEDU 關於 Arduino Yun 的文章請點我

這次的工作營,將幫助您透過親自動手創作,體驗Arduino的開發潛力與物聯網的現況與發展趨勢, 課程從基本創作工具與軟體開始介紹,涵蓋雲端工具運用、各式通訊技術及互動感測實作。讓您從新手變成可以獨當一面的科技創作者。

課程安排:

11/18(二) 19:00~22:00 第一堂:Arduino、基本電子工具與元件材料/費用
  • 介紹Arduino的發展簡史與各式Arduino版本
  • 介紹Arduino IDE 基本電子元件與工具介紹及運用:包括麵包板、焊槍、LED、開關、電阻、可變電阻、光敏電阻與其他
  • Arduino LED控制
Arduino UNO 800元
Arduino Yun 2,500元
(上述二者擇一,若要繼續上後面三堂的課程,需購買Arduino Yun)基本材料 700元
11/25(二) 19:00~21:30 第二堂:物聯網與常用通訊技術簡介
  • 讓我們為您解說, 藍牙、wifi、Zeebee、NFR這些常常出現在耳邊的通訊名詞
  •  以製作遠端家電監控器為例,體驗物聯網於生活的運用
  • 傳送資料至Google Docs
材料包 350元
自備家用市電檯燈
12/2(二) 19:00~21:30 第三堂:建置雲端氣象站
  • 使用數位溫溼度感應器,運用雲端資源,整合紀錄並分析數據
  • 建立自動電子郵件警告
材料包 50元
12/9(二) 19:00~21:30 第四堂:製作專屬的雲端照相機
  • 透過無線網路即時串流影片 定期發送圖片至Dropbox
  • 偵測到人體動作後,自動錄影
PIR動作感應器 100元
USB網路攝影機 300元
micro SD Class 10 16G 350元

可自備課程所需的材料,也可以另外向本單位訂購。

Arduino Yun_無線網路遙控車(一)

今天要使用Arduino Yun 來做一台無線網路遙控車。我們可以在網頁上製作一個遙控器,控制車體前後左右移動,還能透過超音波感測器來偵測距離,今天是要把書上的專題所提供的硬體做替換,讓車體也能順利地使用

20141109_225801

這次的專題參考的是碁峯出版:實戰物聯網開發-使用ArduinoYun

這本書是由本團隊的阿吉老師所翻譯的~~~

20141109_225818

這本專題在第四章提到使用無線網路遙控車體,使用的材料有:

  • ArduinoYun開發板
  • ArduinoUno開發板
  • DFRobot馬達擴充板:DFRduino
  • DFRobot超音波感測器:URM37
  • DFRobot:miniQ二輪平衡車機組
  • DFRobot

今天,為了增加我們入手這些裝備的方便性、減少製作成本,我們會把ArduinoUno開發板(台幣:800元)、馬達擴充板(美金10元,不含運費)、超音波感測器(美金15元,不含運費)做替換。

替換的零件為:超音波感測器HS-SR04  (台幣100元,光華商場購得)

20141110_000733

ArduinoUno + 馬達擴充板=motoduino 2.0 ,(台幣600元,官方網站購得)

20141109_225148

接下來要疊上 Arduino Yun開發板

20141109_225125

遙控車本身不一定要購入指定的車體,只要準備是左右輪胎透過獨立的直流馬達來驅動(共兩個)的車體即可。本範例為左右輪胎各一個直流馬達(miniQ二輪平衡車機組)

20141110_000701

接著開始撰寫程式了~~

如果您使用的硬體跟書中使用的硬體相同的話,範例檔案可以由此下載

如果您想使用這次分享的硬體製作的話,範例檔案可以由此下載

這是這次我所製作出來的遙控車,為了方便日後加裝其他的感測器,使用了比較高的銅柱

20141109_225032

這個遙控車與書中的遙控車有什麼地方需要注意呢?

最大的不同在於motoduino與arduinoyun接線的腳位不同,以及超音波感測器的程式碼撰寫不同

首先請到我們的檔案庫下載範例

接著將範例中的資料夾”HCSR04Ultrasonic”複製到ArduinoIDE的library當中,

請注意!ArduinoYun使用的IDE最少要1.5.6以上的版本!!

yun_sonic01

接著打開檔案”motoduino_sketch.ino”,這個檔案請燒錄在Motoduino上,畫黃線的部分是ArduinoYun與Motoduino的連接方式

還有宣告馬達的腳為5、6、7、8

yun_sonic02

圖中使用的函式庫<wire.h>是motoduino與ArduinoYun溝通(I2C)的方式

motoduino與ArduinoYun的溝通

1、將motoduino的A4腳與ArduinoYun的D2腳相連

2、將motoduino的A5腳與ArduinoYun的D3腳相連

 

Motoduino的馬達連接方式

1、將右邊馬達的正極接在M1+,負極接在M1-

2、將左邊馬達的正極接在M2+,負極接在M2-

 

接著我們來連接超音波感測器,超音波感測器的接線請接在ArduinoYun上。

首先打開檔案”HC-SR04_yun_sketch.ino”,這個檔案請燒錄在AduinoYun上,

畫黃線的部分是ArduinoYun與超音波感測器使用的函式庫、宣告的腳位為10、11

yun_sonic03

連接超音波感測器

1、感測器Vcc接腳與Yun的5V接腳相連

2、感測器Trig接腳與Yun的D10接腳相連

3、感測器Echo接腳與Yun的D11接腳相連

4、感測器GND接腳與Yun的GND接腳相連

將線連好之後,我們來測試ArduinoYun與motoduino受否能溝通成功,讓車子順利行走

將程式”HC-SR04_yun_sketch.ino”燒入ArdunioYun的程式之前,我們首先開啟測試的程式碼,

這個程式碼不需要網路連線就會對motoduino下達轉動馬達的指令

將下圖的程式碼”/*”、”*/”去除後,再進行燒入

yun_sonic04

 

燒入後你的ArduinoYun,就會一直傳送資料250,0,0,0給motoduino。

可以輸入的馬達馬力為0-255

控制馬達前進後退則為0、1

 

打開Serial monitor可以確認指令是否成功傳送

yun_sonic05

如果要確認motoduino是否有收到資料

將程式””motoduino_sketch.ino””燒入motoduino的程式之後

打開Serial monitor,就可以進行確認

yun_sonic06

超音波感測器測試

打開程式”HC-SR04_yun_sketch.ino”,接著將程式72行  //measure_distance(1);的註解刪除

yun_sonic07

接著將程式”HC-SR04_yun_sketch.ino”燒入到ArdunioYun的程式,打開Serial monitor就可以看到超音波感測器偵測時使用的時間,以及與障礙物之間的距離

yun_sonic08

今天的分享就到此為止,下篇教學將告訴您如何架設網站,透過網頁按鈕來控制這台機器人,再見囉~~~

 

 

 

第一個LinkIt One 程式,好吧,還是 Blink

今天要告訴大家如何安裝 LinkIt One 的開發環境與執行第一支程式 Blink。請看執行影片:

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

請依序操作:

1. 下載並安裝Arduino IDE 1.5.8版本 或直接下載 LinkIt-ONE-IDE (https://github.com/Seeed-Studio/LinkIt-ONE-IDE)

。兩者是一樣的東西,但是從官方網站下載的版本,在Example的部分會缺少一些範例!

01

 

2. 下載並安裝 LinkIt ONE SDK,先於Media Tek網站註冊會員(http://labs.mediatek.com/dpRegister/create),到電子信箱收註冊信並啟動你的帳號。

3. 回到網站登入帳號密碼後,下載SDK並解壓縮後安裝,記得LinkIt ONE SDK的安裝目錄要跟Arduino IDE的安裝目錄相同。 PS.紅色框框處請改成與Arduino IDE相同的安裝位置

02

03

04

 


 

第一支程式

0. 請將 LinkIt One 使用 micro USB 線接上電腦。安裝 driver 方式與Arduino相同,位於 <Arduino IDE>/drivers/mtk 之下,指定到這個資料夾即可。最後進入電腦裝置管理員中確認是否安裝 driver 完成,系統會給一片 LinkIt ONE 兩個 COM port,下圖為 19 與 18

06

1. 開啟 Arduino IDE。設定板子型號 => Tools => Board => LinkIt ONE。

05

3. 設定 port:Tools => Port => (COM 19) LinkIt ONE。COM號碼依照不同環境而異。

07

4. 第一支程式 Arduino IDE => File => Examples => Basics => Blink

08

5. 板子上記得切換成SPI Mode,Arduino IDE => Upload 上傳程式,會發現板子上LED每隔一秒閃爍一次。這也是所有 Arduino 玩家的第一個範例

10

11