精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>SWay使用GPS監控孩子的地理位置

SWay使用GPS監控孩子的地理位置

2022-11-01 | zip | 0.41 MB | 次下載 | 2積分

資料介紹

描述

概述

父母總是擔心他們的孩子。父母希望他們的孩子準時到校,按時回家,走指定的路。

SmartWay 旨在消除父母日常生活中的這種擔憂。SmartWay 將在您的孩子上下學時監控他/她,確保您的孩子始終采取適當的路徑到達他/她的目的地學校。

SWay 將使用 GPS 監控您孩子的地理位置,如果孩子偏離您分配給他/她的路徑,將立即向家長發送電子郵件。當孩子到家或上學時,SmartWay 還會向家長發送一封電子郵件,并在孩子遲到時通知他們。通過這種方式,父母可以坐下來享受他們的咖啡,因為他們知道他們的孩子安全到達學校和家。

功能性

SmartWay 將持續監控您孩子從醒來到回家的地理位置。該設備還配備了一個 RGB LED 和一個振動電機,如果您的孩子沒有采取正確的上學方式或遲到了,它會警告您的孩子,并在他/她到達學校時向他/她表示祝賀。

該設備通過許多功能工作,以確保您的孩子是安全的。

?
?
?
?
pYYBAGNfLiGAFPABAADJAIoLeYk384.png
?
1 / 2 ?檢測孩子是否偏離路線
?
  • 第一個循環if(off track)檢測孩子是否偏離了指定的路徑,設備有一個系統來檢測這種情況發生的次數;如果您的孩子第一次偏離航向,設備將通過將 LED 變為紅色并振動電機來警告他/她,然后孩子將有兩分鐘的時間回到航向。如果孩子繼續偏離航線兩分鐘,家長將收到一封電子郵件,警告他們的孩子偏離航線以及他/她的地理位置,電子郵件將每隔 2 分鐘發送一次,直到孩子到達在家或在學校。
  • if(school time)if(home time)循環檢測是否到了上學和回家的時間,然后設備檢查孩子是否到校或回家,如果他/她及時到達,LED 將變為綠色,并且設備將向家長發送一封電子郵件,通知他們他們的孩子連同到達時間一起到達了他/她的目的地。否則,如果到了開學時間而孩子不上學,它也會

設備只能發送 12 個字節的信息,因此發送時需要壓縮包。其他變量將在 SigFox 后端配置。

?
?
?
?
pYYBAGNfLiSAA8aHAACBZQ7VZSc016.png
?
1 / 3 ?數據包配置(“偏離路線”)
?

設備可以發送四個數據包

  • child is off course - ("off course")
  • 孩子到家了——(“在家”)
  • 孩子到學校 - (“在學校”)
  • 孩子遲到 - (“遲到”)

預警系統

佩戴設備的孩子在到達學校、到家、到達目的地遲到或偏離路線時都會收到提醒

?
?
?
?
pYYBAGNfLjSAOMa5AAptjqShCeE761.jpg
?
1 / 3 ?遲到(LED 橙色)
?

設備在行動

好處

使用此設備的家長將受益于:

  • 確保他們的孩子安全往返學校
  • 確保他們的孩子準時到達這些地點
  • 確保他們的孩子不會偏離路線
  • 節能和低成本 - 長效電池

建設項目

第 1 步:所需設備

要開始制作這個項目,我們需要收集材料。對于這個項目,您將需要:

?
poYBAGNfLlKADq14AAm8QA-1DrI182.jpg
所有組件
?

第 2 步:連接電路

下一步是連接電路;下面的 Fritzing 圖像將說明這是如何完成的。布線有多個部分,因此它們被分成不同的圖像。

?
poYBAGNfLlWAOXi2AAMNulsOANM520.png
原理圖
?

第 3 步:確認代碼

代碼由多個函數組成,每個函數在項目的構成中發揮特定的作用。

  • 警告系統
  • 獲取 GPS
  • 同步實時時鐘
  • 工藝位置
  • 發送包裹
  • 做動作

下面對這些部分進行說明。

  • 警告系統
void setOutputs()
{
 pinMode(R, OUTPUT);
 pinMode(G, OUTPUT);
 pinMode(B, OUTPUT);
 pinMode(motorPin, OUTPUT);
}
void vibrateMotor() // vibrate the motor cell
{
 digitalWrite(motorPin, HIGH);
 delay(1000);
 digitalWrite(motorPin, LOW);
}
void ledGreen() // LED, Green
{
 analogWrite(R, 0);
 analogWrite(G, 255);
 analogWrite(B, 0);
}
void ledOrange() // LED, Orange
{
 analogWrite(R, 255);
 analogWrite(G, 45);
 analogWrite(B, 0);
}
void ledRed() // LED, Red
{
 analogWrite(R, 255);
 analogWrite(G, 0);
 analogWrite(B, 0);
}
void resetLED() // Turn off LED
{
 analogWrite(R, 0);
 analogWrite(G, 0);
 analogWrite(B, 0);
}

這部分代碼可以在functions.h文件中找到。該代碼將通知孩子在當前狀態下佩戴該設備。總的來說,這些回路控制 RGB LED 和振動電機單元。

  • 獲取 GPS
bool getGPS(int run)
{
 while(Serial1.available() > 0)
 {
   if(gps.encode(Serial1.read()))
   {
     if(run == 1)
     {
       processData();
     }
     else if(run == 2)
     {
       synchRTC();
     }
     if(gps.location.isValid() && gps.time.isValid() && gps.date.isValid())
     {
       return true;
     }
     else
     {
       return false;
     }
   }
 }
 if(millis() > 10000 && gps.charsProcessed() < 10)
 {
   Serial.println("Error - GPS Module Responded with Error");
   Serial.println("  Terminating Code");
   Serial.println("________________________________________");
   while(1) {};
 }
}

這是負責從 GPS 模塊接收位置和時間的循環。這個循環做了 3 件事,它用于setup loop同步 GPS,然后用于將板載 RTC 與 GPS 同步,并在主循環中用于獲取設備的地理位置。

  • 同步實時時鐘
void synchRTC()
{
 Serial.println("Synching RTC");
 Serial.println("________________________________________");
 Serial.println("  OK - Initialising RTC");
 rtc.begin();
 Serial.println("  OK - Synching Time");
 // we have to trim the variable's first 2 digits (2018 -> 18)
 uint16_t yearRAW = gps.date.year();
 String yearString = String(yearRAW);
 yearString.remove(0,1);
 uint16_t year = yearString.toInt();
 rtc.setTime(gps.time.hour(), gps.time.minute(), gps.time.second());
 rtc.setDate(gps.date.day(), gps.date.month(), year);
 Serial.println("  Success - RTC Synched");
 Serial.println("________________________________________");
 Serial.println("");
 Serial.println("");
 Serial.println("");
}

這部分代碼將板載 RTC 與從 GPS 模塊接收到的時間同步,它首先從 GPS 模塊讀取數據然后對其進行處理。然后循環將板載 RTC 的當前時間設置為接收到的時間并啟動 RTC。

  • 工藝位置
bool processData()
{
 if(gps.location.isValid())
 {
   latitude = gps.location.lat();
   longitude = gps.location.lng();
   latitude = 53.355504;
   longitude = -6.258452;
   if(check.isOut())
   {
     if(check.track())
     {
       Serial.println("OUT OF BOUNDS");
       warn.offTrackLoop();
     }
   }
   if(check.isHomeTime() && arrivedSchool)
   {
     if(check.isHome())
     {
       Serial.println("AT HOME");
       warn.arrivedHomeLoop();
     }
     else
     {
       Serial.println("LATE -> HOME");
       warn.lateLoop();
     }
   }
   else if(check.isSchoolTime() && arrivedHome)
   {
     Serial.println(".");
     if(check.isSchool())
     {
       Serial.println("AT SCHOOL");
       warn.arrivedSchoolLoop();
     }
     else
     {
       Serial.println("LATE -> SCHOOL");
       warn.lateLoop();
     }
   }
   else
   {
     Serial.println("ON WAY");
   }
 }
}

該循環將處理設備的位置并將其與當前時間進行比較,以查看此時孩子應該在哪里。然后它將根據結果執行適當的操作。

  • 動作
struct Do
{
 void offTrackLoop()
 {
   if(offTrackVar)
   {
     parseData(0);
   }
   vibrateMotor();
   ledRed();
   delay(1000);
   vibrateMotor();
   resetLED();
   offTrackVar = true;
   delay(120000);
 }
 void lateLoop()
 {
   if(!lateVar)
   {
     parseData(1);
   }
   vibrateMotor();
   ledOrange();
   delay(1000);
   resetLED();
   lateVar = true;
 }
 void arrivedHomeLoop()
 {
   lateVar = false;
   offTrackVar = false;
   vibrateMotor();
   ledGreen();
   delay(1000);
   resetLED();
   parseData(2);
   arrivedHome = true;
   arrivedSchool = false;
 }
 void arrivedSchoolLoop()
 {
   lateVar = false;
   offTrackVar = false;
   vibrateMotor();
   ledGreen();
   delay(1000);
   resetLED();
   parseData(3);
   arrivedHome = false;
   arrivedSchool = true;
 }
};

調用此結構以對Process Location給出的響應采取行動,它會警告孩子切換 RGB LED 和振動電機單元。如有必要,它還會向 SigFox 發送一個包。

  • 發送包裹
void parseData(int state)
{
 SigFox.beginPacket(); // begin the message sending process
 if(state == 0) // off track
 {
   SigFox.print("off track"); // send the message
 }
 else if(state == 1) // late
 {
   SigFox.print("late"); // send the message
 }
 else if(state == 2) // arrived home
 {
   SigFox.print("at home"); // send the message
 }
 else // arrived school
 {
   SigFox.print("at school"); // send the message
 }
 SigFox.endPacket();
}

該函數將數據發送到 SigFox,開始發送數據包,然后解析適當的值。

設置變量

代碼將包含多個變量,TODO 寫在它們之后作為注釋,這些變量必須自定義以適合客戶端,客戶端將被要求設置

  • 上學時間
  • 孩子旅行的時間
  • 學校結束的時間
  • 調試?
  • 學校地理位置(LAT、LNG);
  • 家庭地理定位(LAT、LNG);

下面的指南將指導您設置變量。

?
?
?
?
poYBAGNfLleAd2JGAAGtXGQxm2E218.png
?
1 / 11 ?第一步是打開項目的代碼
?

圖書館

SigFox - 版權所有 (c) 2016 Arduino LLC GNU Lesser General Public License 此庫屬于公共領域

ctype - GNU 通用公共許可證下的版權 (c) 2006 自由軟件基金會,該庫屬于公共領域

RTCZero - GNU Lesser General Public License 下的版權 (c) 2015 Arduino LLC,該庫屬于公共領域

字符串 - 版權所有 (c) 2009-10 Hernando Barragan,版權 (c) 2011 Paul Stoffrengen 在 GNU Lesser General Public License 下,該庫屬于公共領域

TinyGPS++ - 版權所有 (c) 2008-13 Mikal Hart 在 GNU Lesser General Public License 下,該庫屬于公共領域

設置

確保電路接線正確。有關設置 MKR fox 的詳細信息,請單擊此處查看Arduino 教程如果您想了解有關 Arduino SigFox 庫的更多信息,請單擊此處

后端程序

您必須擁有注冊的 Arduino MKR1200 狐貍才能對后端進行編程

  • 步驟1

打開SigFox 后端并登錄您的 SigFox 帳戶。

  • 第2步

點擊頁面頂部下拉菜單中的“設備類型”

?
pYYBAGNfLlqAJu5JAAKbJ0bvTO0499.png
單擊設備類型
?
  • 第 3 步:

選擇您的 Arduino MKRfox 并單擊編輯

?
poYBAGNfLl2ARp5oAAHDSbOhzU8471.png
選擇您的板并單擊編輯
?
  • 第4步:

從左側菜單中選擇回調,然后導航到右上角的“新建”按鈕。

?
pYYBAGNfLmCABJlhAAHs3d4Kb8A076.png
選擇回調并單擊新建
?
  • 第 5 步:

單擊新建后,您將看到一些回調配置選項,單擊自定義回調

?
poYBAGNfLmOAZjMZAANbJ5Rg2jI187.png
?

接下來將打開一個窗口,您必須填寫給定的表格來創建您的回調

將類型設置為數據、上行鏈路
將頻道設置為電子郵件
自定義有效負載將讀取板發送的數據然后對其進行格式化,在我們的例子中,您必須聲明一個變量str:: 然后是變量類型char 和該變量占用的字符數10最后你應該有這樣的東西str::char:10
將收件人設置為數據將發送到的電子郵件地址。
根據需要設置電子郵件的主題。
在消息字段中,您可以默認使用多個變量,無需從您的設備發送它們,我們將使用{device} (設備 ID)、{lat} (模塊的緯度)和{lng} (模塊的經度),這些變量將自動發送到 SigFox到 12 個字節的有效負載中,因此您可以使用它們而無需專門從您的設備發送這些字符串。我們還將使用{customData#str} 這個變量來保存 Arduino MKR1200 fox 發送的數據,customData 指的是設備發送的個性化數據#str 表明設備將讀取設備str 發送的字符串。
我們還將添加一個網站來檢查接收到的坐標,使用谷歌地圖,我們可以在地圖上精確定位接收到的數據。這是 url https://www.google.com/maps/?q={lat},{lng} , lat 和 lng 將自動更改為緯度和經度變量。

最后,您的消息應如下所示:

?
poYBAGNfLmaAeUFuAAJjTgh-s_0357.png
回調配置
?

現在單擊確定,一切就緒。

最后

您需要做的最后一件事是上傳下面的代碼,確保您已根據自己的喜好自定義了標有“TODO”的變量,等待 GOS 模塊上的藍燈閃爍,然后斷開微控制器與計算機的連接,然后將電池放入電池盒中。你都準備好了。

我設計了一個外殼來保證設備的安全并使其看起來更有吸引力,我使用了兩塊丙烯酸并將邊緣熔化成 90 度彎曲。我把所有的電路放在里面,把電池盒放在它們下面,然后用兩條電纜扎帶把塑料片綁在一起。

?

最后,我覆蓋了一塊頂部(透明蓋)以隱藏所有電線,只讓項目的大腦可見。

背景

我個人知道執行送孩子上學的簡單任務會有多大壓力,每個人都擔心孩子上學時可能發生的所有事情。

該項目面向所有在送孩子上學時感到壓力的人。SWay 會讓您放松,因為您知道您的孩子會安全到達學校。

?
?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費