資料介紹
描述
概述
父母總是擔(dān)心他們的孩子。父母希望他們的孩子準時到校,按時回家,走指定的路。
SmartWay 旨在消除父母日常生活中的這種擔(dān)憂。SmartWay 將在您的孩子上下學(xué)時監(jiān)控他/她,確保您的孩子始終采取適當(dāng)?shù)穆窂降竭_他/她的目的地學(xué)校。
SWay 將使用 GPS 監(jiān)控您孩子的地理位置,如果孩子偏離您分配給他/她的路徑,將立即向家長發(fā)送電子郵件。當(dāng)孩子到家或上學(xué)時,SmartWay 還會向家長發(fā)送一封電子郵件,并在孩子遲到時通知他們。通過這種方式,父母可以坐下來享受他們的咖啡,因為他們知道他們的孩子安全到達學(xué)校和家。
功能性
SmartWay 將持續(xù)監(jiān)控您孩子從醒來到回家的地理位置。該設(shè)備還配備了一個 RGB LED 和一個振動電機,如果您的孩子沒有采取正確的上學(xué)方式或遲到了,它會警告您的孩子,并在他/她到達學(xué)校時向他/她表示祝賀。
該設(shè)備通過許多功能工作,以確保您的孩子是安全的。
-
第一個循環(huán)
if(off track)
檢測孩子是否偏離了指定的路徑,設(shè)備有一個系統(tǒng)來檢測這種情況發(fā)生的次數(shù);如果您的孩子第一次偏離航向,設(shè)備將通過將 LED 變?yōu)榧t色并振動電機來警告他/她,然后孩子將有兩分鐘的時間回到航向。如果孩子繼續(xù)偏離航線兩分鐘,家長將收到一封電子郵件,警告他們的孩子偏離航線以及他/她的地理位置,電子郵件將每隔 2 分鐘發(fā)送一次,直到孩子到達在家或在學(xué)校。 -
if(school time)
并if(home time)
循環(huán)檢測是否到了上學(xué)和回家的時間,然后設(shè)備檢查孩子是否到?;蚧丶?,如果他/她及時到達,LED 將變?yōu)榫G色,并且設(shè)備將向家長發(fā)送一封電子郵件,通知他們他們的孩子連同到達時間一起到達了他/她的目的地。否則,如果到了開學(xué)時間而孩子不上學(xué),它也會
設(shè)備只能發(fā)送 12 個字節(jié)的信息,因此發(fā)送時需要壓縮包。其他變量將在 SigFox 后端配置。
設(shè)備可以發(fā)送四個數(shù)據(jù)包
- child is off course - ("off course")
- 孩子到家了——(“在家”)
- 孩子到學(xué)校 - (“在學(xué)?!保?/font>
- 孩子遲到 - (“遲到”)
預(yù)警系統(tǒng)
佩戴設(shè)備的孩子在到達學(xué)校、到家、到達目的地遲到或偏離路線時都會收到提醒
設(shè)備在行動
好處
使用此設(shè)備的家長將受益于:
- 確保他們的孩子安全往返學(xué)校
- 確保他們的孩子準時到達這些地點
- 確保他們的孩子不會偏離路線
- 節(jié)能和低成本 - 長效電池
建設(shè)項目
第 1 步:所需設(shè)備
要開始制作這個項目,我們需要收集材料。對于這個項目,您將需要:
- 跳線
- 1、NPN晶體管
- 1、陶瓷電容(0.1μF)
- 3、電阻器(220Ω)
- 1、電阻(1KΩ)
- 1、RGB LED
- 1、GPS模塊
- 1、振動電機單元
- 1、Arduino MKR1200狐貍
- 1、2x AAA/ AA 電池盒
- 2、AA電池
第 2 步:連接電路
下一步是連接電路;下面的 Fritzing 圖像將說明這是如何完成的。布線有多個部分,因此它們被分成不同的圖像。
第 3 步:確認代碼
代碼由多個函數(shù)組成,每個函數(shù)在項目的構(gòu)成中發(fā)揮特定的作用。
- 警告系統(tǒng)
- 獲取 GPS
- 同步實時時鐘
- 工藝位置
- 發(fā)送包裹
- 做動作
下面對這些部分進行說明。
- 警告系統(tǒng)
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
文件中找到。該代碼將通知孩子在當(dāng)前狀態(tài)下佩戴該設(shè)備。總的來說,這些回路控制 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) {};
}
}
這是負責(zé)從 GPS 模塊接收位置和時間的循環(huán)。這個循環(huán)做了 3 件事,它用于setup loop
同步 GPS,然后用于將板載 RTC 與 GPS 同步,并在主循環(huán)中用于獲取設(shè)備的地理位置。
- 同步實時時鐘
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 模塊讀取數(shù)據(jù)然后對其進行處理。然后循環(huán)將板載 RTC 的當(dāng)前時間設(shè)置為接收到的時間并啟動 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");
}
}
}
該循環(huán)將處理設(shè)備的位置并將其與當(dāng)前時間進行比較,以查看此時孩子應(yīng)該在哪里。然后它將根據(jù)結(jié)果執(zhí)行適當(dāng)?shù)牟僮鳌?/font>
- 做動作
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;
}
};
調(diào)用此結(jié)構(gòu)以對Process Location給出的響應(yīng)采取行動,它會警告孩子切換 RGB LED 和振動電機單元。如有必要,它還會向 SigFox 發(fā)送一個包。
- 發(fā)送包裹
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();
}
該函數(shù)將數(shù)據(jù)發(fā)送到 SigFox,開始發(fā)送數(shù)據(jù)包,然后解析適當(dāng)?shù)闹怠?/font>
設(shè)置變量
代碼將包含多個變量,TODO 寫在它們之后作為注釋,這些變量必須自定義以適合客戶端,客戶端將被要求設(shè)置
- 上學(xué)時間
- 孩子旅行的時間
- 學(xué)校結(jié)束的時間
- 調(diào)試?
- 學(xué)校地理位置(LAT、LNG);
- 家庭地理定位(LAT、LNG);
下面的指南將指導(dǎo)您設(shè)置變量。
圖書館
SigFox - 版權(quán)所有 (c) 2016 Arduino LLC GNU Lesser General Public License 此庫屬于公共領(lǐng)域
ctype - GNU 通用公共許可證下的版權(quán) (c) 2006 自由軟件基金會,該庫屬于公共領(lǐng)域
RTCZero - GNU Lesser General Public License 下的版權(quán) (c) 2015 Arduino LLC,該庫屬于公共領(lǐng)域
字符串 - 版權(quán)所有 (c) 2009-10 Hernando Barragan,版權(quán) (c) 2011 Paul Stoffrengen 在 GNU Lesser General Public License 下,該庫屬于公共領(lǐng)域
TinyGPS++ - 版權(quán)所有 (c) 2008-13 Mikal Hart 在 GNU Lesser General Public License 下,該庫屬于公共領(lǐng)域
設(shè)置
確保電路接線正確。有關(guān)設(shè)置 MKR fox 的詳細信息,請單擊此處查看Arduino 教程。如果您想了解有關(guān) Arduino SigFox 庫的更多信息,請單擊此處。
后端程序
您必須擁有注冊的 Arduino MKR1200 狐貍才能對后端進行編程。
- 步驟1
打開SigFox 后端并登錄您的 SigFox 帳戶。
- 第2步
點擊頁面頂部下拉菜單中的“設(shè)備類型”
- 第 3 步:
選擇您的 Arduino MKRfox 并單擊編輯
- 第4步:
從左側(cè)菜單中選擇回調(diào),然后導(dǎo)航到右上角的“新建”按鈕。
- 第 5 步:
單擊新建后,您將看到一些回調(diào)配置選項,單擊自定義回調(diào)
接下來將打開一個窗口,您必須填寫給定的表格來創(chuàng)建您的回調(diào)
將類型設(shè)置為數(shù)據(jù)、上行鏈路
將頻道設(shè)置為電子郵件
自定義有效負載將讀取板發(fā)送的數(shù)據(jù)然后對其進行格式化,在我們的例子中,您必須聲明一個變量str
,::
然后是變量類型char
和該變量占用的字符數(shù)10
。最后你應(yīng)該有這樣的東西str::char:10
將收件人設(shè)置為數(shù)據(jù)將發(fā)送到的電子郵件地址。
根據(jù)需要設(shè)置電子郵件的主題。
在消息字段中,您可以默認使用多個變量,無需從您的設(shè)備發(fā)送它們,我們將使用{device}
(設(shè)備 ID)、{lat}
(模塊的緯度)和{lng}
(模塊的經(jīng)度),這些變量將自動發(fā)送到 SigFox到 12 個字節(jié)的有效負載中,因此您可以使用它們而無需專門從您的設(shè)備發(fā)送這些字符串。我們還將使用{customData#str}
這個變量來保存 Arduino MKR1200 fox 發(fā)送的數(shù)據(jù),customData
指的是設(shè)備發(fā)送的個性化數(shù)據(jù)#str
表明設(shè)備將讀取設(shè)備str
發(fā)送的字符串。
我們還將添加一個網(wǎng)站來檢查接收到的坐標(biāo),使用谷歌地圖,我們可以在地圖上精確定位接收到的數(shù)據(jù)。這是 url https://www.google.com/maps/?q={lat},{lng}
, lat 和 lng 將自動更改為緯度和經(jīng)度變量。
最后,您的消息應(yīng)如下所示:
現(xiàn)在單擊確定,一切就緒。
最后
您需要做的最后一件事是上傳下面的代碼,確保您已根據(jù)自己的喜好自定義了標(biāo)有“TODO”的變量,等待 GOS 模塊上的藍燈閃爍,然后斷開微控制器與計算機的連接,然后將電池放入電池盒中。你都準備好了。
我設(shè)計了一個外殼來保證設(shè)備的安全并使其看起來更有吸引力,我使用了兩塊丙烯酸并將邊緣熔化成 90 度彎曲。我把所有的電路放在里面,把電池盒放在它們下面,然后用兩條電纜扎帶把塑料片綁在一起。
最后,我覆蓋了一塊頂部(透明蓋)以隱藏所有電線,只讓項目的大腦可見。
背景
我個人知道執(zhí)行送孩子上學(xué)的簡單任務(wù)會有多大壓力,每個人都擔(dān)心孩子上學(xué)時可能發(fā)生的所有事情。
該項目面向所有在送孩子上學(xué)時感到壓力的人。SWay 會讓您放松,因為您知道您的孩子會安全到達學(xué)校。
?
- 通過使用地理圍欄和位置監(jiān)控來保證安全
- 空間位置耦合的地理社交網(wǎng)絡(luò)可視化布局 4次下載
- 一種門控循環(huán)單元興趣點推薦算法 6次下載
- 空間位置耦合的地理社交網(wǎng)絡(luò)力引導(dǎo)算法SCFDA 5次下載
- 跳頻技術(shù)在GPS移動車輛監(jiān)控系統(tǒng)中的應(yīng)用分析 0次下載
- Android取證中地理位置信息提取分析實現(xiàn) 0次下載
- GPS車載定位裝置設(shè)計 9次下載
- 低功耗群組電臺的地理位置應(yīng)用 0次下載
- 使用GSM的GPS車輛定位監(jiān)控系統(tǒng)的應(yīng)用 3次下載
- GPS與GPRS在車載無線監(jiān)測系統(tǒng)應(yīng)用 71次下載
- 近海船舶設(shè)備遠程監(jiān)控系統(tǒng) 28次下載
- 基于地理位置的無線傳感器網(wǎng)絡(luò)路由協(xié)議研究進展
- 基于GPRS的GPS車輛定位監(jiān)控系統(tǒng)
- 基于MapX的客車監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)
- GPS物流監(jiān)控系統(tǒng)的增值應(yīng)用
- 利用自定義數(shù)據(jù)傳輸在機智云上實現(xiàn)GPS定位數(shù)據(jù)的傳輸 289次閱讀
- GIS可處理非地理空間數(shù)據(jù)嗎 388次閱讀
- arcmap如何設(shè)置地理坐標(biāo)系 2817次閱讀
- 什么是gps定位? gps定位放線的步驟有哪些 4523次閱讀
- bds是什么地理技術(shù) BDS與GPS的區(qū)別 1.5w次閱讀
- 基于LPC2210芯片和uClinux實現(xiàn)導(dǎo)航定位信息獲取模塊的設(shè)計 1707次閱讀
- 簡易GPS車輛跟蹤系統(tǒng)的工作原理、組成及應(yīng)用設(shè)計 3583次閱讀
- 基于LPC2210微控制器和衛(wèi)星定位實現(xiàn)地面目標(biāo)跟蹤和報警系統(tǒng)的設(shè)計 2133次閱讀
- GPS定位誤差是怎么產(chǎn)生的 1.8w次閱讀
- 云計算與數(shù)據(jù)存儲的混亂怎么樣來處理 346次閱讀
- 基于ARM920處理器和嵌入式Linux操作系統(tǒng)的GPS智能終端設(shè)計解析 1670次閱讀
- GPS定位技術(shù)中的GPS模塊 4083次閱讀
- 三分鐘深入了解嵌入式無線遠程監(jiān)控系統(tǒng) 2712次閱讀
- 智能交通GPS定位客車視頻監(jiān)控系統(tǒng)應(yīng)用研究 996次閱讀
- 基于GPS/北斗衛(wèi)星技術(shù)的無盲區(qū)車輛調(diào)度系統(tǒng) 1565次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多