PowerPoint 簡報

Similar documents
C 1

1

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

AN INTRODUCTION TO PHYSICAL COMPUTING USING ARDUINO, GRASSHOPPER, AND FIREFLY (CHINESE EDITION ) INTERACTIVE PROTOTYPING

51 C 51 isp 10 C PCB C C C C KEIL


CC213

C/C++语言 - C/C++数据

The golden pins of the PCI card can be oxidized after months or years

C/C++ 语言 - 循环

<4D F736F F D D6D0B9FAB5D8D6CAB4F3D1A7BFC6D1D0BEADB7D1D3D0B9D8D6C6B6C82D48442E646F63>

Microsoft Word - ch04三校.doc

目录

<4D F736F F D20B9F9B0EABBCDBBAFAB48DEB3B4C1A5BDB3F8A7692E646F63>

三 紀 錄 課 堂 上 可 見 的 學 習 情 況, 無 法 紀 錄 學 生 個 別 的 學 習 歷 程 四 教 師 無 彈 性 的 不 變 的 教 學 時 間 五 以 課 本 及 課 程 指 引 作 為 教 學 的 主 要 依 據 六 教 師 主 導 學 生 的 學 習 行 為 由 教 師 解 決

C语言的应用.PDF

FY.DOC

untitled

Microsoft Word - 澎湖田調報告_璉謙組.doc

概述

2014zb9

(

中華民國山岳協會所屬隊會登山途徑說明

2009年总站工作计划-2009-0102

新・明解C言語入門編『索引』

a b c d e f g C2 C1 2

概述

<4D F736F F D20B5C2C1A6CEF7D0C2BDAEBDBBCDA8D4CBCAE4BCAFCDC5B9C9B7DDD3D0CFDEB9ABCBBECAD7B4CEB9ABBFAAB7A2D0D0B9C9C6B1D5D0B9C9CBB5C3F7CAE9A3A8C9CFBBE1B8E C4EA33D4C23235C8D5B1A8CBCDA3A92E646F63>

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc

新版 明解C++入門編

建筑学院建筑学本科专业建设发展规划.doc

untitled

untitled

BQY.PS2

Microsoft Word - 8-柯香君-原稿初修-0516.doc

书 名 : 额 尔 古 纳 河 右 岸 作 者 : 迟 子 建 出 版 社 : 北 京 十 月 文 艺 出 版 社 出 版 日 期 : 开 本 : 正 16 开 页 数 :262 ISBN:

untitled

Ps22Pdf

)001 (131 ) : ISBN / :

...T.U.p65

书 名 : 作 者 : 出 版 社 : 中 国 电 影 出 版 社 版 权 所 有 : 烨 子 工 作 室 类 别 : 中 国 传 世 情 爱 小 说 出 版 时 间 :2005 年 10 月 字 书 数 :150 千 字 号 :ISBN /B 0030

untitled

ISBN Z

untitled

Ps22Pdf

Ps22Pdf

untitled

: : ISBN /B 007 :

untitled

()001 ( 131 ) : ISBN / I1021 :7.50

untitled

untitled

Ps22Pdf

untitled

untitled

()001 ( 131 ) : ISBN / I1020 :6.50

Microsoft Word - 黃玉緞 _民間文學教案設計_民歌擬作舉隅

1

1 TPIS TPIS 2 2

an153f

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

untitled

Microsoft Word - 01.DOC

C

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1

Abstract arm linux tool-chain root NET-Start! 2

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

bingdian001.com

考 試 日 期 :2016/04/24 教 室 名 稱 :602 電 腦 教 室 考 試 時 間 :09: 二 技 企 管 一 胡 宗 兒 中 文 輸 入 四 技 企 四 甲 林 姿 瑄 中 文 輸 入 二 技 企 管 一

EK-STM32F

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023)

AL-M200 Series

CC213

科学计算的语言-FORTRAN95

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

ebook39-6

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

目 录

(Microsoft Word - \244g\246a\247B\244\275\253H\245\365\244\247\275\325\254d\254\343\250s doc)

untitled

Microsoft Word - MSP430 Launchpad 指导书.docx

untitled

Microsoft Word - 1HF12序.doc

Microsoft Word - 讀報看科普─人體篇_橫_.doc

Transcription:

Fablab Taitung Arduino 物聯網創客實戰 3 雲端照相 -GPS 衛星定位 謝明哲國立臺東大學資訊管理學系 hmz@nttu.edu.tw 2016/3/27 hmz@nttu.edu.tw 3/27/2016 1

接收 GPS 定位資料並儲存 在 SD 卡 2016/3/27 9:00-12:00 hmz@nttu.edu.tw 3/27/2016 2

認識 GPS 全球衛星定位系統 由美國研製和維護的中距離圓形軌道衛星導航系統 由 24 顆 GPS 衛星 1 個地面主控站 3 個數據注入站 5 個監測站 和用戶端 GPS 接收器組成 最少只需其中 3 顆衛星即可定位出經緯度及海拔高度 衛星數越多, 定位資料越精確 https://en.wikipedia.org/wiki/global_positioning_system 3

認識 PAM-7Q GPS 定位器 使用 u-blox 7 GPS Antenna Module 具有簡易介面 嵌入式天線 低功率消耗 雜訊抑制等優點 正常工作溫度範圍 : -40 C~85 C 符合 ISO 16750 車輛電子裝置檢測標準 可靠性及穩定性良好 hmz@nttu.edu.tw 3/27/2016 4

認識 GPS 定位原理? hmz@nttu.edu.tw 3/27/2016 5

演練 1:GPS 定位 G VS VCC TXD GND Digital PIN 8 hmz@nttu.edu.tw 3/27/2016 6

Digital PIN 8 行動電源 2A 行動電源 1A hmz@nttu.edu.tw 3/27/2016 7

綠色跳接器 OFF 行動電源 2A 行動電源 1A hmz@nttu.edu.tw 3/27/2016 8

Arduino Yún 啟動或 reset 後, 將 PIN 8 的 GPS 定位座標數位讀值傳回序列埠監控視窗 先到 PARALLAX 下載 28509-Pam-7Q-GPS- Module-Arduino-Demo-Code https://www.parallax.com/downloads/pa m-7q-gps-module-arduino-demo-code 打開 Pam7QGPS.ino, 另存新檔 Pam7QGPS01.ino TinyGPS.h TinyGPS.cpp hmz@nttu.edu.tw 3/27/2016 9

https://www.parallax.com/downloads/pam-7q-gps-module-arduino-demo-code 10

#include <Bridge.h> #include <Console.h> #include <SoftwareSerial.h> #include "TinyGPS.h" TinyGPS gps; //SoftwareSerial(rxPin, txpin, inverse_logic) // 可以用來建立 PIN 0 與 PIN 1 以外之串列通訊 // TXD to PIN 8 SoftwareSerial nss(8, 255); hmz@nttu.edu.tw 3/27/2016 11

void setup() { Bridge.begin(); Console.begin(); nss.begin(9600); // Communicate at 9600 baud // (default for PAM-7Q module) while(!console); Console.println("Reading GPS "); } hmz@nttu.edu.tw 3/27/2016 12

void loop() { bool newdata = false; unsigned long start = millis(); // Update every 5 seconds while (millis() - start < 5000) { if (feedgps()) newdata = true; } if (newdata) gpsdump(gps); } hmz@nttu.edu.tw 3/27/2016 13

// Get and process GPS data void gpsdump(tinygps &gps) { float flat, flon; unsigned long age; gps.f_get_position(&flat, &flon, &age); Console.print(flat, 4); Console.print(", "); Console.println(flon, 4); } hmz@nttu.edu.tw 3/27/2016 14

// Feed data as it becomes available bool feedgps() { while (nss.available()) { if (gps.encode( nss.read() )) return true; } return false; } hmz@nttu.edu.tw 3/27/2016 15

hmz@nttu.edu.tw 3/27/2016 16

hmz@nttu.edu.tw 3/27/2016 17

演練 2: 加入 SD 卡存取 hmz@nttu.edu.tw 3/27/2016 18

#include <Bridge.h> #include <Console.h> #include <SoftwareSerial.h> #include <FileIO.h> #include "TinyGPS.h" TinyGPS gps; //SoftwareSerial(rxPin, txpin, inverse_logic) // 可以用來建立 PIN 0 與 PIN 1 以外之串列通訊 // TXD to PIN 8 SoftwareSerial nss(8, 255); File gpslog; hmz@nttu.edu.tw 3/27/2016 19

void setup() { Bridge.begin(); Console.begin(); nss.begin(9600); // Communicate at 9600 baud // (default for PAM-7Q module) FileSystem.begin(); while(!console); Console.println("Filesystem datalogger"); Console.println("Reading GPS "); } hmz@nttu.edu.tw 3/27/2016 20

void loop() { bool newdata = false; unsigned long start = millis(); // Update every 5 seconds while (millis() - start < 5000) { if (feedgps()) newdata = true; } if (newdata) gpsdump(gps); } hmz@nttu.edu.tw 3/27/2016 21

// Get and process GPS data void gpsdump(tinygps &gps) { float flat, flon; unsigned long age; gps.f_get_position(&flat, &flon, &age); Console.print(flat, 4); Console.print(", "); Console.println(flon, 4); hmz@nttu.edu.tw 3/27/2016 22

File gpslogfile = FileSystem.open("/mnt/sda1/gpslog.txt",FILE_APPEND); if (gpslogfile) { gpslogfile.print(flat, 4); gpslogfile.print(", "); gpslogfile.println(flon, 4); gpslogfile.close(); } else Console.println("error opening gpslog.txt"); } // end of gpsdump() hmz@nttu.edu.tw 3/27/2016 23

// Feed data as it becomes available bool feedgps() { while (nss.available()) { if (gps.encode( nss.read() )) return true; } return false; } hmz@nttu.edu.tw 3/27/2016 24

hmz@nttu.edu.tw 3/27/2016 25

hmz@nttu.edu.tw 3/27/2016 26

SD 卡存取 2-1. 使用 PieTTY 透過 TCP/IP 通訊埠連線 YBB Car hmz@nttu.edu.tw 3/27/2016 27

2-2. 以 root 帳號登入 hmz@nttu.edu.tw 3/27/2016 28

2-3. 登入成功後顯示 Linux 終端機及工作目錄 hmz@nttu.edu.tw 3/27/2016 29

2-4. 輸入 dmesg 指令查看裝置訊息 2-5. 確認 SD 卡已正常掛載 :sda1 hmz@nttu.edu.tw 3/27/2016 30

2-6. 將工作目錄切換到 :/mnt/sda1 hmz@nttu.edu.tw 3/27/2016 31

2-7. 查看 GPS 定位紀錄檔 hmz@nttu.edu.tw 3/27/2016 32

將 GPS 定位座標上傳到 Google 地圖 2016/3/27 13:30-15:30 hmz@nttu.edu.tw 3/27/2016 33

演練 3. Arduino Yún 啟動或 reset 後, 將 GPS 定位座標上傳到 Goodle 雲端硬碟試算表 另存新檔建立 Pam7QGPS03 專案 將之前在 Arduino 物聯網創客實戰 2_ 雲端環境監測步驟 3-5 完成的 TembooAccount.h 加入 hmz@nttu.edu.tw 3/27/2016 34

#include <Temboo.h> #include "TembooAccount.h" #include <Bridge.h> #include <Console.h> #include <SoftwareSerial.h> #include <FileIO.h> #include "TinyGPS.h" hmz@nttu.edu.tw 3/27/2016 35

TinyGPS gps; //SoftwareSerial(rxPin, txpin, inverse_logic) // 可以用來建立 PIN 0 與 PIN 1 以外之串列通訊 // TXD to PIN 8 SoftwareSerial nss(8, 255); File gpslog; int numruns = 1; int maxruns = 10; String rowdata = ""; hmz@nttu.edu.tw 3/27/2016 36

void setup() { Bridge.begin(); Console.begin(); nss.begin(9600); FileSystem.begin(); delay(4000); while(!console); pinmode(13, OUTPUT); digitalwrite(13, LOW); Console.println("Filesystem datalogger"); Console.println("Reading GPS "); } hmz@nttu.edu.tw 3/27/2016 37

void loop() { bool newdata = false; unsigned long start = millis(); // Update every 5 seconds while (millis() - start < 5000) { if (feedgps()) newdata = true; } hmz@nttu.edu.tw 3/27/2016 38

if (newdata) { digitalwrite(13, HIGH); if (numruns <= maxruns) { gpsdump(gps); temboo(); numruns++; digitalwrite(13, LOW); } } } // end of loop() hmz@nttu.edu.tw 3/27/2016 39

// Get and process GPS data void gpsdump(tinygps &gps) { float flat, flon; unsigned long age; gps.f_get_position(&flat, &flon, &age); rowdata = String(numRuns) + "," + String(flat,4)+ "," + String(flon,4); Console.print(flat, 4); Console.print(", "); Console.println(flon, 4); hmz@nttu.edu.tw 3/27/2016 40

File gpslogfile = FileSystem.open("/mnt/sda1/gpslog.txt",FILE_APPEND); if (gpslogfile) { gpslogfile.print(flat, 4); gpslogfile.print(", "); gpslogfile.println(flon, 4); gpslogfile.close(); } else Console.println("error opening gpslog.txt"); } // end of gpsdump() hmz@nttu.edu.tw 3/27/2016 41

// Feed data as it becomes available bool feedgps() { while (nss.available()) { if (gps.encode( nss.read() )) return true; } return false; } hmz@nttu.edu.tw 3/27/2016 42

void temboo() { TembooChoreo AppendRowChoreo; AppendRowChoreo.begin(); AppendRowChoreo.setAccountName(TEMBOO_ACCOUNT); AppendRowChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME); AppendRowChoreo.setAppKey(TEMBOO_APP_KEY); AppendRowChoreo.addInput("RowData", rowdata); AppendRowChoreo.addInput("SpreadsheetTitle", "map"); AppendRowChoreo.addInput("RefreshToken", "XXXXX"); AppendRowChoreo.addInput("ClientSecret", "XXXXX ); AppendRowChoreo.addInput("ClientID", "XXXXX"); hmz@nttu.edu.tw 3/27/2016 43

// Identify the Choreo to run AppendRowChoreo.setChoreo( "/Library/Google/Spreadsheets/AppendRow"); // Run the Choreo; when results are available, print them to serial AppendRowChoreo.run(); while(appendrowchoreo.available()) { } char c = AppendRowChoreo.read(); Console.print(c); AppendRowChoreo.close(); } hmz@nttu.edu.tw 3/27/2016 44

hmz@nttu.edu.tw 3/27/2016 45

hmz@nttu.edu.tw 3/27/2016 46

hmz@nttu.edu.tw 3/27/2016 47

hmz@nttu.edu.tw 3/27/2016 48

hmz@nttu.edu.tw 3/27/2016 49

hmz@nttu.edu.tw 3/27/2016 50

hmz@nttu.edu.tw 3/27/2016 51

hmz@nttu.edu.tw 3/27/2016 52

hmz@nttu.edu.tw 3/27/2016 53

hmz@nttu.edu.tw 3/27/2016 54

hmz@nttu.edu.tw 3/27/2016 55

hmz@nttu.edu.tw 3/27/2016 56

參考資料 飆機器人 Arduino 入門學習套件 : 輕鬆上手 18+1 堂課 普特企業有限公司 2015 http://www.playrobot.com 飆機器人 雲端物聯網 (IOT) 實務教學平台 :Arduino YUN (YBB Car) 普特企業有限公司 2015 http://www.playrobot.com 葉難 Arduino 輕鬆入門 : 範例分析與實作設計 台北 : 博碩文化 2014 ISBN: 978-986-201-870-5 施瓦兹 (Schwartz, Marco) 曾吉弘 CAVEDU 教育團隊 實戰物聯網開發 : 使用 Arduino Yún 台北 : 碁峰資訊 2014 ISBN: 978-986-347-339-8 Global Positioning System, March 2016. (Available at: https://en.wikipedia.org/wiki/global_positioning_system) u-blox. PAM-7Q: u-blox 7 GPS Antenna Module Data Sheet, March 2016. (Available at: http://www.u-blox.com) hmz@nttu.edu.tw 3/27/2016 57