Loading [MathJax]/extensions/MathZoom.js

0

0
0

文字

分享

0
0
0

穿戴式裝置與物聯網應用:LinkIt ONE 的Wi-Fi 無線網路功能

馥林文化_96
・2015/08/14 ・1757字 ・閱讀時間約 3 分鐘 ・SR值 509 ・六年級
相關標籤: LinkIt ONE (7)

-----廣告,請繼續往下閱讀-----

文/CAVEDU教育團隊

各位讀者,本系列專欄要介紹如何使用LinkIt ONE 這塊Arduino 相容板來嘗試製作各種穿戴式裝置與物聯網專題,歡迎和我們一起動手做。不過只把LinkIt ONE 當作Arduino 來用的話就太可惜了,因此我們會直接切入它的聯網功能,之後再回頭結合各種電子元件,讓製作各種物聯網專題更輕鬆。

LinkIt ONE 的聯網功能

LinkIt ONE 的聯網功能共有Wi-Fi、GPRS 行動網路、藍牙與GPS 等。本篇先從由Wi-Fi 取得指定網頁字元開始。LinkIt ONE 的Wi-Fi 是基於MT5931 這顆晶片,加上盒裝內附的天線會有比較好的通訊效果(不安裝也可以)。另ㄧ 方面,Wi-Fi 會有認證問題,請勿使用像是學校這類型的兩階段認證系統。或者如果您的手機門號是無限上網的話,也可以使用您的手機做為LinkIt ONE 的專屬網路熱點。準備硬體時, 請將Wi-Fi / 藍牙天線( 圖1) 接到 LinkIt ONE 背面的Wi-Fi 接點。雖然晶片是整合在板子上,所以未連接也可以進行通訊,但連接後可以得到比較好的通訊效果。板子上有標示天線要接在哪,在這裡請注意別接錯了(圖2)。

圖1
圖1 Wi-Fi /藍牙天線。
圖2
圖2 在LinkIt ONE 上安裝Wi-Fi 天線。

所需零件:
• LinkIt ONE 開發板
• Wi-Fi/藍牙天線

-----廣告,請繼續往下閱讀-----

擷取網頁字元

本範例可以擷取指定網頁的字元,您可以以此範例為基礎,完成各種簡易的網路爬蟲程式。執行畫面如圖3。

圖3
圖3 擷取網頁字元於Serial Monitor 。

本程式的流程如下: 首先連上指定的Wi-Fi AP , 在此需輸入正確的AP 名稱、密碼與認證方式。成功之後會對指定網站(本範例使用www.cavedu.com , 您可以自行更改為其他的網站) 發送一個HTTP GET 需求,也就是程式的第27 ∼ 30 列。接著就會將網頁字元一個一個讀回來,並顯示於Serial Monitor 中。

接著介紹程式中幾個比較重要的指令:

  1. #include <LWiFi.h> / #include<LWiFiClient.h>匯入Wi-Fi所需的函式庫。
  2. #define SITE_URL “www.cavedu.com”要取得字元的網站。
  3. #define WIFI_AP “Name_of_your_AP”要連接的無線網路名稱。
  4. #define WIFI_PWD “Password_of_your_AP”無線網路密碼。
  5. LWiFiClient c;初始化一個名為 client的LWiFiClient物件,之後會用它來連上網站並取得網站內容。
  6. LWiFi.begin();開始Wi-Fi相關作業。
  7. 連上無線網路點:使用LWiFi.connectWEP(WIFI_AP,WIFI_PASSWORD)指令來連上指定無線網路,您可以看到該指令中必須填入WIFI_AP 與WIFI_PASSWORD。如果連線成功就會開始取得網頁字元,反之失敗的話就會顯示錯誤訊息「Fail to connect AP!」。i f ( LWiFi . connectWEP (WIFI_AP,WIFI_PASSWORD)<0){
    Serial.println(“Fail to connect AP!”);return;
    }
  8. 檢查是否連上指定網站:使用c.connect(SITE_URL, 80))指令來連線至指定網站(本範例為www.cavedu.com)與預設的http埠號80 。如果連線失敗, 就會顯示錯誤訊息「Fail to connectwebsite!」。if(!c.connect(SITE_URL, 80)){Serial.println(“Fail toconnect website!”);return;

    }

  9. 發送HTTP指令與讀取網頁字元

透過client.println()指令對指定網站發送GET指令, 並進到loop()函式中不斷讀取網頁字元,再顯示於Serial Monitor中。做到這裡就算是完成了。執行程式時, 會在Serial Monitor中看到一個個字元飛快地跳出來。當
您有移動需求, 又沒辦法幫 LinkIt ONE 準備一張可行動上網的SIM卡的話,可以讓LinkIt ONE 藉由智慧型
手機的無線網路熱點功能來上網。完整程式碼請參考本文末。

小訣竅:活用Serial Monitor

在上述步驟7 與8 中,您有看到我們運用Serial Monitor 來顯示錯誤訊息嗎?這是一個非常重要的技能,因為在沒有外接顯示或發音裝置的情況下,您幾乎無法從LinkIt ONE 看出發生了什麼事情。當程式愈來愈大的時候, 我們需要知道「錯在哪裡」, 因此如果您看到的錯誤訊息是「Fail to connect AP!」,代表現在板子完全無法連上無線網路存取點,必須檢查AP名稱與密碼有無輸入錯誤。

-----廣告,請繼續往下閱讀-----

換而言之, 如果錯誤訊息是「Fail to connect website!」的話, 就必須檢查網站名稱是否正確。

如果希望讓LinkIt ONE 變成一臺獨立裝置,就不會將LinkIt ONE 連接上電腦。在這樣的情況下想要得知板子狀態的話,您可以考慮加裝2×16的LCD 模組,就能看到相關的錯誤訊息。簡陋一點的話,可使用LED 或是蜂鳴器,藉由燈號或聲響來得知開發板的狀態。

#include <LWiFi.h>
#include <LWiFiClient.h>
#define SITE_URL "www.mediatek.com"
#define WIFI_AP "Name_of_your_AP" // 請換成您的Wi-Fi AP 名稱
#define WIFI_PWD "Password_of_your_AP" // 請換成您的Wi-Fi 密碼
LWiFiClient c;
void setup() {
 Serial.begin(9600);
 LWiFi.begin();
 Serial.println();
 Serial.print("Connecting to AP...");
 if(LWiFi.connectWEP(WIFI_AP, WIFI_PASSWORD) < 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); // 將讀取到的字元顯示於Serial Monitor
 }
 delay(100);
}

 

參考資料:

文章原文刊載於《ROBOCON》國際中文版2015/7月號

-----廣告,請繼續往下閱讀-----
-----廣告,請繼續往下閱讀-----
文章難易度
馥林文化_96
54 篇文章 ・ 5 位粉絲
馥林文化是由泰電電業股份有限公司於2002年成立的出版部門,有鑒於21世紀將是數位、科技、人文融合互動的世代,馥林亦出版科技機械類雜誌及相關書籍。馥林文化出版書籍http://www.fullon.com.tw/

0

0
0

文字

分享

0
0
0
純淨之水的追尋—濾水技術如何改變我們的生活?
鳥苷三磷酸 (PanSci Promo)_96
・2025/04/17 ・3142字 ・閱讀時間約 6 分鐘

-----廣告,請繼續往下閱讀-----

本文與 BRITA 合作,泛科學企劃執行。

你確定你喝的水真的乾淨嗎?

如果你回到兩百年前,試圖喝一口當時世界上最大城市的飲用水,可能會立刻放下杯子——那水的顏色帶點黃褐,氣味刺鼻,甚至還飄著肉眼可見的雜質。十九世紀倫敦泰晤士河的水,被戲稱為「流動的污水」,當時的人們雖然知道水不乾淨,但卻無力改變,導致霍亂和傷寒等疾病肆虐。

十九世紀倫敦泰晤士河的水,被戲稱為「流動的污水」(圖片來源 / freepik)

幸運的是,現代自來水處理系統已經讓我們喝不到這種「肉眼可見」的污染物,但問題可還沒徹底解決。面對 21 世紀的飲水挑戰,哪些技術真正有效?

-----廣告,請繼續往下閱讀-----

19 世紀的歐洲因為城市人口膨脹與工業發展,面臨了前所未有的水污染挑戰。當時多數城市的供水系統仍然依賴河流、湖泊,甚至未經處理的地下水,導致傳染病肆虐。

1854 年,英國醫生約翰·斯諾(John Snow)透過流行病學調查,發現倫敦某口公共水井與霍亂爆發直接相關,這是歷史上首次確立「飲水與疾病傳播的關聯」。這項發現徹底改變了各國政府對供水系統的態度,促使公衛政策改革,加速了濾水與消毒技術的發展。到了 20 世紀初,英國、美國等國開始在自來水中加入氯消毒,成功降低霍亂、傷寒等水媒傳染病的發生率,這一技術迅速普及,成為現代供水安全的基石。    

 19 世紀末的台灣同樣深受傳染病困擾,尤其是鼠疫肆虐。1895 年割讓給日本後,惡劣的衛生條件成為殖民政府最棘手的問題之一。1896 年,後藤新平出任民政長官,他本人曾參與東京自來水與下水道系統的規劃建設,對公共衛生系統有深厚理解。為改善台灣水源與防疫問題,他邀請了曾參與東京水道工程的英籍技師 W.K. 巴爾頓(William Kinnimond Burton) 來台,規劃現代化的供水設施。在雙方合作下,台灣陸續建立起結合過濾、消毒、儲水與送水功能的設施。到 1917 年,全台已有 16 座現代水廠,有效改善公共衛生,為台灣城市化奠定關鍵基礎。

-----廣告,請繼續往下閱讀-----
圖片來源/BRITA

進入 20 世紀,人們已經可以喝到看起來乾淨的水,但問題真的解決了嗎? 科學家如今發現,水裡仍然可能殘留奈米塑膠、重金屬、農藥、藥物代謝物,甚至微量的內分泌干擾物,這些看不見、嚐不出的隱形污染,正在成為21世紀的飲水挑戰。也因此,濾水技術迎來了一波科技革新,活性碳吸附、離子交換樹脂、微濾、逆滲透(RO)等技術相繼問世,各有其專長:

活性碳吸附:去除氯氣、異味與部分有機污染物

離子交換樹脂:軟化水質,去除鈣鎂離子,減少水垢

微濾技術逆滲透(RO)技術:攔截細菌與部分微生物,過濾重金屬與污染物等

-----廣告,請繼續往下閱讀-----

這些技術相互搭配,能夠大幅提升飲水安全,然而,無論技術如何進步,濾芯始終是濾水設備的核心。一個設計優良的濾芯,決定了水質能否真正被淨化,而現代濾水器的競爭,正是圍繞著「如何打造更高效、更耐用、更智能的濾芯」展開的。於是,最關鍵的問題就在於到底該如何確保濾芯的效能?

濾芯的壽命與更換頻率:濾水效能的關鍵時刻濾芯,雖然是濾水器中看不見的內部構件,卻是決定水質純淨度的核心。以德國濾水品牌 BRITA 為例,其濾芯技術結合椰殼活性碳和離子交換樹脂,能有效去除水中的氯、除草劑、殺蟲劑及藥物殘留等化學物質,並過濾鉛、銅等重金屬,同時軟化水質,提升口感。

然而,隨著市場需求的增長,非原廠濾芯也悄然湧現,這不僅影響濾水效果,更可能帶來健康風險。據消費者反映,同一網路賣場內便可輕易購得真假 BRITA 濾芯,顯示問題日益嚴重。為確保飲水安全,建議消費者僅在實體官方授權通路或網路官方直營旗艦店購買濾芯,避免誤用來路不明的濾芯產品讓自己的身體當過濾器。

辨識濾芯其實並不難——正品 BRITA 濾芯的紙盒下方應有「台灣碧然德」的進口商貼紙,正面則可看到 BRITA 商標,以及「4週換放芯喝」的標誌。塑膠袋外包裝上同樣印有 BRITA 商標。濾芯本體的上方會有兩個浮雕的 BRITA 字樣,並且沒有拉環設計,底部則標示著創新科技過濾結構。購買時仔細留意這些細節,才能確保濾芯發揮最佳過濾效果,讓每一口水都能保證潔淨安全。

-----廣告,請繼續往下閱讀-----
濾芯本體的上方會有兩個浮雕的 BRITA 字樣,並且沒有拉環設計 (圖片來源 / BRITA)

不過,即便是正品濾芯,其效能也非永久不變。隨著使用時間增加,濾芯的孔隙會逐漸被污染物堵塞,導致過濾效果減弱,濾水速度也可能變慢。而且,濾芯在拆封後便接觸到空氣,潮濕的環境可能會成為細菌滋生的溫床。如果長期不更換濾芯,不僅會影響過濾效能,還可能讓積累的微小污染物反過來影響水質,形成「過濾器悖論」(Filter Paradox):本應淨化水質的裝置,反而成為污染源。為此,BRITA 建議每四週更換一次濾芯,以維持穩定的濾水效果。

為了解決使用者容易忽略更換時機的問題,BRITA 推出了三大智慧提醒機制,確保濾芯不會因過期使用而影響水質:

1. Memo 或 LED 智慧濾芯指示燈:即時監測濾芯狀況,顯示剩餘效能,讓使用者掌握最佳更換時間。

2. QR Code 掃碼電子日曆提醒:掃描包裝外盒上的 QR Code 記錄濾芯的使用時間,自動提醒何時該更換,減少遺漏。

-----廣告,請繼續往下閱讀-----

3. LINE 官方帳號自動通知:透過 LINE 推送更換提醒,確保用戶不會因忙碌而錯過更換時機。

在濾水技術日新月異的今天,濾芯已不僅僅是過濾裝置,更是智慧監控的一部分。如何挑選最適合自己需求的濾水設備,成為了健康生活的關鍵。

人類對潔淨飲用水的追求,從未停止。19世紀,隨著城市化與工業化發展,水污染問題加劇並引發霍亂等疾病,促使濾水技術迅速發展。20世紀,氯消毒技術普及,進一步保障了水質安全。隨著科技進步,現代濾水技術透過活性碳、離子交換等技術,去除水中的污染物,讓每一口水更加潔淨與安全。

-----廣告,請繼續往下閱讀-----
(圖片來源 / BRITA)

今天,消費者不再單純依賴公共供水系統,而是能根據自身需求選擇適合的濾水設備。例如,BRITA 提供的「純淨全效型濾芯」與「去水垢專家濾芯」可針對不同需求,從去除餘氯、過濾重金屬到改善水質硬度等問題,去水垢專家濾芯的去水垢能力較純淨全效型濾芯提升50%,並通過 SGS 檢測,通過國家標準水質檢測「可生飲」,讓消費者能安心直飲。

然而,隨著環境污染問題的加劇,真正的挑戰在於如何減少水污染,並確保每個人都能擁有乾淨水源。科技不僅是解決問題的工具,更應該成為守護未來的承諾。濾水器不僅是家用設備,它象徵著人類與自然的對話,提醒我們水的純淨不僅是技術的勝利,更是社會的責任和對未來世代的承諾。

*符合濾(淨)水器飲用水水質檢測技術規範所列9項「金屬元素」及15項「揮發性有機物」測試
*僅限使用合格自來水源,且住宅之儲水設備至少每6-12個月標準清洗且無受汙染之虞

-----廣告,請繼續往下閱讀-----
文章難易度

討論功能關閉中。

0

0
0

文字

分享

0
0
0
LinkIt ONE穿戴式裝置與物聯網應用卷七【雲端氣象站(上)︰上傳資料到Media Tek Sandbox】
馥林文化_96
・2016/03/18 ・2170字 ・閱讀時間約 4 分鐘 ・SR值 535 ・七年級
相關標籤: LinkIt ONE (7)

-----廣告,請繼續往下閱讀-----

文/CAVEDU教育團隊

各位讀者好, 認識了如何用MCS來控制LinkIt ONE 的腳位狀態之後,接下來兩期會帶領您實作雲端氣象站專題。本期要介紹的是智慧居家或植物照護系統中常用的溫濕度感測模組,也會告訴您如何將感測器讀取到的溫度與濕度變化顯示於Arduino IDE 的Serial Monitor 中。到了下一期,就要把資料上傳到MCS 雲服務上囉。想像一下,走到哪裡都可以監控家裡的狀況,這樣也會心安一點吧。本專題可以在MCS 上檢視家中溫度、濕度與氣壓的變化。您可以根據這樣的架構加裝更多您想要的感測器與受控裝置。
MCS 也一併提供了Android 應用程式, 請由此連結(https://mcs.mediatek.com/v2console/supports/
mobile_application)或在Google Play搜尋「 MediaTek Cloud Sandbox」,接著安裝到您的Android 裝置上。開啟程式後只要登入您先前所註冊的MediaTek Labs 帳號, 就能在手機端即時檢視或控制開發板的狀態。
所需零件:
• LinkIt ONE開發板,1片
• Wi-Fi/藍牙天線,1組
• Grove溫濕度感測器模組(Grove – Temperature and Humidity Sensor Pro)
• DHT11/22溫濕度感測模組(根據上一零件選用)
• Base Shield擴充板
• 麵包板與線材(根據上一零件選用)

Grove 溫濕度感測器模組
本專題會在LinkIt ONE 上加裝一個Grove 溫濕度感測器( 圖1a) 來量測溫度與濕度的變化。其中的Grove溫濕度感測器, 實際上就是整合了DHT11 溫濕度感測器( 圖1b) 的模組。請注意, 如果您是自行購買DHT11 溫濕度感測器的話, 需要匯入DHT 函式庫(http://playground.arduino.cc/Main/DHTLib)。另一方面,由於Grove 溫濕度感測器模組有針對LinkIt ONE 進行最佳化, 也有自己的函式庫(https://github.com/Seeed-Studio/Grove_Temperature_
And_Humidity_Sensor),您如果直接在LinkIt ONE 上使用DHT11 感測器時,有時候讀到的數值會不規則跳動。

^93599F3BC0ECC3A586496AE45E6E664E4699CB01882A58E5A2^pimgpsh_fullsize_distr

圖1a Grove 溫濕度感測器。

-----廣告,請繼續往下閱讀-----

^FA20E64DF17E62428DDD287FCCFBF3F154FAA451E5C14DD29D^pimgpsh_fullsize_distr

圖1b D H T 1 1溫濕度感測器。

擷取1

表1 Grove 溫濕度模組規格

硬體接線

請將Grove 溫濕度感測器接到Base Shield 上標示A0 的Grove 接頭,如下圖:

-----廣告,請繼續往下閱讀-----

^3BCEA6FAA4894F7FFC855619BE4771F67F4F20BE084E99BDF6^pimgpsh_fullsize_distr

圖2 將溫濕度感測器裝在A0 的Grove 接頭。

如果您自行購買DHT11 感測器的話, 請將左側1 號腳位接5V ,2 號腳位串聯一個4.7KΩ 電阻之後接到LinkIt ONE 的數位腳位, 如圖2 的D6 腳位。請注意, 使用獨立的DHT模組時需連接到開發板的數位腳位,但使用Grove 溫濕度感測模組則是連到類比腳位,例如本範例的A0。這是兩者的主要差異所在。

^0EA09AC0153837F080D0DB4B993ECEA280EB66FC9919AA371E^pimgpsh_fullsize_distr

圖3 連接DHT11 與開發板。

擷取2

表1 溫濕度感測器範例

-----廣告,請繼續往下閱讀-----

單機版程式

本範例首先要透過MCS 來切換一個連接到繼電器模組的家電裝置(例如檯燈或風扇)。在此需要一個Data Channel , 請依照表2 的說明新增Data Channel ,完成如圖3。

以下是重要程式解說:

• 宣告DHT類型

-----廣告,請繼續往下閱讀-----

06 行的語法代表我們要使用的溫濕
度感測模組為DHT22 , 請根據您所
使用的模組來修改此處。

擷取3

• 宣告DHT物件

程式中必須先宣告一個DHT 物件才能進行後續的讀取感測器值操作,由以下指令可以看到我們宣告了一個名為DHT 的dht 物件,同時要指定連接腳位DHTPIN , 也就是03 行的A0 ,以及指定DHTTYPE。

擷取4

• 讀取溫度與濕度

-----廣告,請繼續往下閱讀-----

宣告之後,就可以透過以下語法來分別讀取濕度與溫度,由以下指令可看到回傳值為浮點數。

擷取5

• 錯誤檢查

使用if 搭配 isnan 語法來檢查t 與h 是否有效,如果並非數字就表示有地方出錯, 會在Serial Monitor 顯示
錯誤訊息。

擷取6

• 顯示於Serial Monitor

-----廣告,請繼續往下閱讀-----

如果一切OK 的話,就透過Serial.print(h); 與Serial.print(t); 在Serial Monitor 顯示濕度與溫度。請注意在39 行,我們使用delay(5000); 讓程式每5 秒鐘循環一次,畢竟溫度與濕度不會在短時間大幅度變化,因此不需要頻繁更新。

操作

執行時, 將可在Arduino IDE 的Serial Monitor 視窗中看到溫度與濕度的變化(圖4),在此為每5 秒鐘更新一次,因為這兩個物理量不會變化太快。您可以對它用嘴呵氣,或用手指輕輕捏住感測器本體,來看看濕度與溫度的變化。

^5BE3B74DC4B8F4A6DC99AA3468DA373296558F217BBE886D55^pimgpsh_fullsize_distr

圖4 顯示溫度與濕度資訊於Serial Monitor 。

-----廣告,請繼續往下閱讀-----

本期介紹了如何讓LinkIt ONE 開發板藉由Grove 溫濕度感測器模組來讀取環境中的溫濕度變化,下一期將會把這些資料上傳到MCS 雲服務, 期待您與我們一起動手製作有趣的物聯網專題。

參考資料:

Seeed Studio 溫濕度感測器函式庫與範例程式載點:
https://github.com/Seeed-Studio/

MediaTek Labs
http://labs.mediatek.com

Seeed Studio Wiki
http://www.seeedstudio.com/wiki/LinkIt_ONE

CAVEDU LinkIt ONE 教學
http://blog.cavedu.com 搜尋linkit

文章原文刊載於《ROBOCON》國際中文版2016/5月號

-----廣告,請繼續往下閱讀-----
馥林文化_96
54 篇文章 ・ 5 位粉絲
馥林文化是由泰電電業股份有限公司於2002年成立的出版部門,有鑒於21世紀將是數位、科技、人文融合互動的世代,馥林亦出版科技機械類雜誌及相關書籍。馥林文化出版書籍http://www.fullon.com.tw/

0

0
1

文字

分享

0
0
1
如何避免無人機自殺攻擊事件?Linkit One讓無人機不再亂亂飛!
鳥苷三磷酸 (PanSci Promo)_96
・2016/01/26 ・2675字 ・閱讀時間約 5 分鐘 ・SR值 536 ・七年級

-----廣告,請繼續往下閱讀-----

本篇文章由 聯發科技創意實驗室 (MediaTek Labs) 贊助,泛科學策畫執行。

2015年是無人機蓬勃發展的一年,同時也是各種無人機自殺攻擊事件頻傳的一年,如果有個恐怖組織名稱叫做「無人機」,ISIS大概可以收一收了,因為無人機的戰力實在太強大啦!這一年來無人機陸續攻擊了台北 101、美國白宮、日本首相官邸與世界文化遺產姬路城,並且差點擊中正在參加高山滑雪世界盃競賽的選手,這一連串的意外凸顯出無人機的安全問題,目前世界各國與企業都在從技術與法規面著手,確保未來世界可以享受無人機帶來的便利,又不會三不五時就被暴走的無人機攻擊。

201512231318410thumb
在意大利舉行的高山滑雪世界盃比賽中發生了無人機墜毀,險些砸中參賽選手的意外狀況。

在 2015年的世界通訊大賽物聯網及穿戴式組的冠軍,正是由來自南台灣的學生團隊所研發出的無人機飛行安全監控平台,這支名為 Sky Sentry的團隊,年紀雖然不輕,但是創意完全不輸年輕人,加上多年的實戰經驗,開發出來這套平台,獲得評審們的一致好評,而開發的靈感其實是來自於團員的切身之痛。

-----廣告,請繼續往下閱讀-----

LinkitOne開發板威力無窮

目前就讀南台科技大學電子工程系博士班的蔡博智,最近幾年開始接觸無人機,但是已經走失了兩台;他的朋友更慘,買了一台 36,000元的無人機後,第一次升空拍了一張照片,就再也不見蹤影。

「問題出在連線的方式,無人機與控制器之間的連線就像紅外線或 Wi-Fi,以點對點的方式連接,一旦飛行超過連線距離,或是被建築物干擾訊號,無人機就會開始迷航。」蔡博智說,在都市裡面更容易因為玻璃帷幕的反射,造成訊號混亂而失控。

團隊想出來的解決方法就是,讓無人機擁有跟手機一樣的訊號,透過 GPRS或 3G連線接上 Internet,即使短暫失聯,只要附近有基地台就可以恢復連線,找到回家的路,從這個概念出發,他們開始著手設計這個飛行監控平台。

實際製作時,他們在硬體設計上,先比較了 Arduino和 LinktOne兩塊開發板。而 LinkitOne的強項在於內建了完整功能,不僅有 GPRS連線功能,還有 GPS、藍牙與 micro-SD卡,只要在無人機上加裝這塊板子,與飛行控制系統結合,就可以大幅強化無人機的通訊能力,如果失蹤墜落,還可以透過藍牙訊號搜救,micro-SD卡還能儲存飛行紀錄,就像是大型飛機的黑盒子一樣,可以判斷飛行過程中發生了什麼問題來進行調整。

-----廣告,請繼續往下閱讀-----

「實際操作上,LinkitOne還有兩個巨大的優勢,便宜跟重量較輕。」蔡博智說,無人機體積小、重量輕,對於重量必須斤斤計較,要加裝在上面的開發板必須要夠輕巧;而 LinkitOne的價格也許比陽春版的 Arduino開發板貴,但是 Arduino要加裝各種元件才能達到 LinkitOne的功能,價格卻遠遠超過 LinkitOne,這樣一比 LinkitOne的 CP其實蠻高的。

00185774.201512230129M
蔡博智設計的飛行監控平台使用LinkIt One為主要開發版,並與無人機之飛行控制板進行連結。

飛行監控平台:後台雲端運算+資料庫

帶領團隊的李志清老師任教於南台科大電子工程系,這次他將自己在航太技術及系統整合十多年的經驗,結合即時監控及無人機通訊與控制技術,與學生們合作開發,完成了這套國內首創的無人機飛行安全監控平台。

這一套飛行監控平台除了透過 LinkitOne來溝通、控制無人機之外,更關鍵的是後台的運算與資料庫系統。這套平台主要有三個重點功能,首先是透過系統設定座標,將某些區域設定為禁航區,無人機便不能在區域內起飛或飛進此區域,以此避免撞建築物或飛進人群密集處造成安全隱憂。台灣政府若採用這套系統來管控全台的無人機,只要將機場、軍事禁區、建物密集區等高敏感地帶設定為禁航區,內建在雲端資料庫裡,只要無人機連上這個資料庫便能辨識出禁航區的位置,就可以輕鬆減少誤闖禁區的意外。

-----廣告,請繼續往下閱讀-----

drone-905955_960_720

第二,設置電子圍籬,限定無人機只能在某一個範圍內飛行,一旦飛出這個範圍,就會強制返航,如此便能解決迷航亂飛的問題。電子圍籬非常適合新手們試飛,也很適合開發者實驗新機器,只要碰觸到電子圍籬的訊號範圍,無人機就會收到返航訊號,接著拉升高度後,返航並自動降落到指定的位置。

第三,萬一無人機迷航或墜落在視線外,也可以透過這個平台尋找,只要透過 LinkitOne上的 GPS、GPRS和藍芽訊號,就能夠幫助使用者找回無人機。LinkitOne內建的 GPRS可以直接連網回報位置,若是掉落在沒有基地台的地方,也可以透過藍牙訊號(除非像電影一樣,在墜落時就把所有通訊功能都摔壞)慢慢逼近位置,縮小搜索範圍。

雖然整個監控平台是基於 LinkitOne開發板的功能來設計,不過未來,即使無人機上沒有安裝 LinkiOne開發板,團隊也將 API完全開放,無人機使用者、開發商或玩家,都可以自行運用,讓自己的無人機(必須具備連接 internet功能)也能配合這個雲端判別系統與資料庫,來確保安全。團隊也有提供包套式的服務,協助安裝 LinkitOne開發板,讓幾乎所有的無人機都可以使用這套系統。

「我們準備好了!」

目前世界各國都在摸索一套無人機的監控方案,希望在開放與安全間取得平衡。美國 FAA去年中推出了一套法案,針對無人機的飛行高度、速度與重量都設定限制,操作者必須年滿 17歲,且只能在白天於可目視範圍內操作。台灣也正在修訂《民用航空法》,設下種種限制,包括:必須以目視方式操作且高度不得超過 400呎(約 40層樓高),須在白天操作,不得在禁航區、限航區及航空站與飛行場四周作業,且不得在露天集會遊行人群上空(商用無人機的專業空拍,可以提出申請即可在夜間、露天集會人群上空拍攝)。

-----廣告,請繼續往下閱讀-----

然而這些規定如何落實執行?日本去年推出無人機獵捕系統,由一組攜帶網子的無人機,在空中搜捕違規飛行的無人機,這樣的作法顯然只能應急,而且聽起來非常不高科技。

日本的無人機
日本的無人機獵捕系統是用網子捕捉違規的無人機。

從訊號端進行控制,讓無人機都能乖巧聽話才是真正治本之道。無人機大廠 DJI大疆已經陸續推出一系列的安全措施,來回應這些需求,不過台灣團隊的成果,顯然是最超值又能達成目標的極佳選擇。

「這套系統能得獎的一大原因是,我們已經完全 ready了。」蔡博智說,現在整套系統的功能已經完備,只差使用者介面與網頁的優化,只要未來無人機管制法案通過後,無人機將會需要登記註冊才能起飛,登記時,可能就必須要包含這套飛安平台的註冊證明,因此無人機的市場有多大,這套系統的商機就有多大。

-----廣告,請繼續往下閱讀-----

蔡博智(右)認為他們獲獎的原因在於:整套系統的功能已經完備了。

-----廣告,請繼續往下閱讀-----

0

0
0

文字

分享

0
0
0
穿戴式裝置與物聯網應用:LinkIt ONE 的Wi-Fi 無線網路功能
馥林文化_96
・2015/08/14 ・1757字 ・閱讀時間約 3 分鐘 ・SR值 509 ・六年級
相關標籤: LinkIt ONE (7)

-----廣告,請繼續往下閱讀-----

文/CAVEDU教育團隊

各位讀者,本系列專欄要介紹如何使用LinkIt ONE 這塊Arduino 相容板來嘗試製作各種穿戴式裝置與物聯網專題,歡迎和我們一起動手做。不過只把LinkIt ONE 當作Arduino 來用的話就太可惜了,因此我們會直接切入它的聯網功能,之後再回頭結合各種電子元件,讓製作各種物聯網專題更輕鬆。

LinkIt ONE 的聯網功能

LinkIt ONE 的聯網功能共有Wi-Fi、GPRS 行動網路、藍牙與GPS 等。本篇先從由Wi-Fi 取得指定網頁字元開始。LinkIt ONE 的Wi-Fi 是基於MT5931 這顆晶片,加上盒裝內附的天線會有比較好的通訊效果(不安裝也可以)。另ㄧ 方面,Wi-Fi 會有認證問題,請勿使用像是學校這類型的兩階段認證系統。或者如果您的手機門號是無限上網的話,也可以使用您的手機做為LinkIt ONE 的專屬網路熱點。準備硬體時, 請將Wi-Fi / 藍牙天線( 圖1) 接到 LinkIt ONE 背面的Wi-Fi 接點。雖然晶片是整合在板子上,所以未連接也可以進行通訊,但連接後可以得到比較好的通訊效果。板子上有標示天線要接在哪,在這裡請注意別接錯了(圖2)。

圖1
圖1 Wi-Fi /藍牙天線。

-----廣告,請繼續往下閱讀-----

圖2
圖2 在LinkIt ONE 上安裝Wi-Fi 天線。

所需零件:
• LinkIt ONE 開發板
• Wi-Fi/藍牙天線

擷取網頁字元

本範例可以擷取指定網頁的字元,您可以以此範例為基礎,完成各種簡易的網路爬蟲程式。執行畫面如圖3。

圖3
圖3 擷取網頁字元於Serial Monitor 。

-----廣告,請繼續往下閱讀-----

本程式的流程如下: 首先連上指定的Wi-Fi AP , 在此需輸入正確的AP 名稱、密碼與認證方式。成功之後會對指定網站(本範例使用www.cavedu.com , 您可以自行更改為其他的網站) 發送一個HTTP GET 需求,也就是程式的第27 ∼ 30 列。接著就會將網頁字元一個一個讀回來,並顯示於Serial Monitor 中。

接著介紹程式中幾個比較重要的指令:

  1. #include <LWiFi.h> / #include<LWiFiClient.h>匯入Wi-Fi所需的函式庫。
  2. #define SITE_URL “www.cavedu.com”要取得字元的網站。
  3. #define WIFI_AP “Name_of_your_AP”要連接的無線網路名稱。
  4. #define WIFI_PWD “Password_of_your_AP”無線網路密碼。
  5. LWiFiClient c;初始化一個名為 client的LWiFiClient物件,之後會用它來連上網站並取得網站內容。
  6. LWiFi.begin();開始Wi-Fi相關作業。
  7. 連上無線網路點:使用LWiFi.connectWEP(WIFI_AP,WIFI_PASSWORD)指令來連上指定無線網路,您可以看到該指令中必須填入WIFI_AP 與WIFI_PASSWORD。如果連線成功就會開始取得網頁字元,反之失敗的話就會顯示錯誤訊息「Fail to connect AP!」。i f ( LWiFi . connectWEP (WIFI_AP,WIFI_PASSWORD)<0){
    Serial.println(“Fail to connect AP!”);return;
    }
  8. 檢查是否連上指定網站:使用c.connect(SITE_URL, 80))指令來連線至指定網站(本範例為www.cavedu.com)與預設的http埠號80 。如果連線失敗, 就會顯示錯誤訊息「Fail to connectwebsite!」。if(!c.connect(SITE_URL, 80)){Serial.println(“Fail toconnect website!”);return;

    }

  9. 發送HTTP指令與讀取網頁字元

透過client.println()指令對指定網站發送GET指令, 並進到loop()函式中不斷讀取網頁字元,再顯示於Serial Monitor中。做到這裡就算是完成了。執行程式時, 會在Serial Monitor中看到一個個字元飛快地跳出來。當
您有移動需求, 又沒辦法幫 LinkIt ONE 準備一張可行動上網的SIM卡的話,可以讓LinkIt ONE 藉由智慧型
手機的無線網路熱點功能來上網。完整程式碼請參考本文末。

小訣竅:活用Serial Monitor

在上述步驟7 與8 中,您有看到我們運用Serial Monitor 來顯示錯誤訊息嗎?這是一個非常重要的技能,因為在沒有外接顯示或發音裝置的情況下,您幾乎無法從LinkIt ONE 看出發生了什麼事情。當程式愈來愈大的時候, 我們需要知道「錯在哪裡」, 因此如果您看到的錯誤訊息是「Fail to connect AP!」,代表現在板子完全無法連上無線網路存取點,必須檢查AP名稱與密碼有無輸入錯誤。

換而言之, 如果錯誤訊息是「Fail to connect website!」的話, 就必須檢查網站名稱是否正確。

-----廣告,請繼續往下閱讀-----

如果希望讓LinkIt ONE 變成一臺獨立裝置,就不會將LinkIt ONE 連接上電腦。在這樣的情況下想要得知板子狀態的話,您可以考慮加裝2×16的LCD 模組,就能看到相關的錯誤訊息。簡陋一點的話,可使用LED 或是蜂鳴器,藉由燈號或聲響來得知開發板的狀態。

#include <LWiFi.h>
#include <LWiFiClient.h>
#define SITE_URL "www.mediatek.com"
#define WIFI_AP "Name_of_your_AP" // 請換成您的Wi-Fi AP 名稱
#define WIFI_PWD "Password_of_your_AP" // 請換成您的Wi-Fi 密碼
LWiFiClient c;
void setup() {
 Serial.begin(9600);
 LWiFi.begin();
 Serial.println();
 Serial.print("Connecting to AP...");
 if(LWiFi.connectWEP(WIFI_AP, WIFI_PASSWORD) < 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); // 將讀取到的字元顯示於Serial Monitor
 }
 delay(100);
}

 

參考資料:

文章原文刊載於《ROBOCON》國際中文版2015/7月號

-----廣告,請繼續往下閱讀-----
文章難易度
馥林文化_96
54 篇文章 ・ 5 位粉絲
馥林文化是由泰電電業股份有限公司於2002年成立的出版部門,有鑒於21世紀將是數位、科技、人文融合互動的世代,馥林亦出版科技機械類雜誌及相關書籍。馥林文化出版書籍http://www.fullon.com.tw/