步驟1:這是工作原理
GPS衛星每天在非常精確的軌道上繞地球兩次并將信號信息傳輸到地球。 GPS接收器獲取此信息,并使用三邊測量法計算用戶的確切位置。本質上,GPS接收器將衛星發送信號的時間與接收信號的時間進行比較。時間差告訴GPS接收器衛星有多遠。現在,通過再測量幾顆衛星的距離,接收器就可以確定用戶的位置并將其顯示在設備的電子地圖上。
GPS接收器必須鎖定至少3顆衛星的信號才能計算二維位置(經度和緯度)并跟蹤運動。在看到四個或更多衛星的情況下,接收器可以確定用戶的3-D位置(緯度,經度和高度)。一旦確定了用戶的位置,GPS單元就可以計算其他信息,例如速度,方位,軌道,行進距離,到目的地的距離,日出和日落時間等等。
GPS衛星系統:
* *構成GPS空間部分的24顆衛星在環繞我們12,000英里的地球上運行。它們不斷移動,在不到24小時的時間內完成了兩個完整的軌道。這些衛星以每小時約7,000英里的速度飛行。
* GPS衛星由太陽能提供動力。他們在船上配有備用電池,可以在沒有太陽能的情況下在日食發生時保持運行。每個衛星上的小型火箭助推器都能使它們沿正確的路徑飛行。
什么是信號?
GPS衛星發送兩個稱為L1和L2的低功率無線電信號。民用GPS在UHF頻帶中使用1575.42 MHz的L1頻率。信號通過視線傳播,這意味著它們將穿過云層,玻璃和塑料,但不會穿過大多數固體物體,例如建筑物和山脈。GPS信號包含3個不同的信息位-偽隨機碼,星歷表數據和年歷數據。偽隨機碼只是一個I.D.標識哪個衛星正在發送信息的代碼。每個衛星不斷發送的星歷數據包含有關衛星狀態(健康或不健康),當前日期和時間的重要信息。信號的這一部分對于確定位置至關重要。年歷數據會告訴GPS接收器一天中任何時候都應將每顆GPS衛星放在哪里。每顆衛星發送的年歷數據均顯示該衛星以及系統中其他所有衛星的軌道信息。
步驟2:硬件
鏈接到部件:
Arduino Uno(克隆正常)
Adafruit FONA 808分支板
跳線
面包板
SMA或uFl天線(取決于您的板版本,一切工作都很好)
LED(綠色/紅色)
330歐姆電阻器
壓電蜂鳴器
3.7V鋰電池
2G Sim (重要)
工具:
FONA的烙鐵
松香芯
板上,您將需要一組附加組件:GSM天線,以及GPS天線。您還需要一個工作的GPRS SIM卡,上面帶有一些數據信用,需要將其放置在FONA 808分支板上。您還需要一個3.7V的LiPo電池為分支板供電。您可以得到1200 mAh的電池。
FONA有兩種版本,一種是SMA版本,另一種是uFl版本。具有相同功能的唯一區別是它們的天線。但是對于今天的項目,我將使用SMA版本。
對于“警報”部分,您將需要一個簡單的紅色或綠色LED(330歐姆)電阻和壓電蜂鳴器。
如果您想要附加版本,可以購買FONA 808,該模塊可以堆疊在UNO的頂部,而無需進行任何布線,只需焊接接頭即可固定并連接天線和SIM卡。然后上傳代碼。但是由于我沒有該版本,所以我打算將其800版本用于今天的項目。
步驟3:Fona庫
以下是FONA的庫。如果要測試FONA,請
轉到:
Arduino IDE》 File》 SketchBook》 Libraries》 Fona Lib 。.》 Fona Test
以下連接是不同的,并且已在代碼中進行了編輯。
從電池電壓到查詢,GPS定位,呼叫有多種選項可供選擇和短信。
第4步:組裝
如果使用FONA 808屏蔽,只需將其插入即可。對于分線,需要少量布線。首先,將電源連接到實驗板上:
將 5V 引腳從 Arduino 板上連接至紅色電源線/面包板上的正極
GND 引腳到藍色電源線/負極。
您可能必須將排針正確焊接到分支板上,或者可能沒有適當的導電性。
焊接后,將FONA 808分支放在面包板上。
將 VIO 引腳連接到紅色電源線
GND &鍵引腳連接到藍色電源線。
然后,
將FONA的 RST 引腳連接到Arduino引腳 4 ,
FONA TX 至Arduino引腳 3
RX 到Arduino引腳 2
,還將3.7V LiPo電池,GPS天線和GSM天線連接到FONA 8 08屏蔽或突破。
還要將LED與330-1K歐姆電阻串聯在面包板上。將其連接到Arduino板的引腳編號 6 ,并將另一端連接到地面。
這是完全組裝的項目的外觀(在上方查看圖片)
第5步:Adafruit IO
使用相同的硬件并將其與Adafruit IO集成。我們將使用Adafruit IO在地圖上實時顯示項目的位置,并在圍欄被破壞的情況下顯示警報。
要使用Adafruit IO,您應該擁有一個Adafruit帳戶a,您必須注冊邀請名稱,然后才能使用Adafruit IO。完成所有這些之后,可能需要一兩個星期才能獲得Adafruit IO。
步驟6:跟蹤和警報
在此第一個項目中,我們將連續檢查項目的位置,并查看如果超出了我們在草圖中設置的給定距離。
如果是這樣,我們將使LED閃爍,并使蜂鳴器發出聲音。
我們首先為警報聲明一些常量和變量:
// LED & Buzzer pins
const int ledPin = 6;
const int buzzerPin = 9; // Alarm
int counter = 0;
bool alarm = false;
然后,我們設置項目在不提高報警范圍的情況下可以走的最大距離。報警。請注意,像這樣的民用GPS的精度約為10米,因此我真的建議您設置一個優于20米左右的值:
const float maxDistance = 100;
兩個變量將包含項目的初始位置:
float initialLatitude;
float initialLongitude;
默認情況下,我們將警報設置為false:
alarm = false;
在草圖的setup()函數中,我們獲得了GPS修復程序來設置項目的初始位置:
bool gpsFix = fona.getGPS(&latitude, &longitude, &speed_kph, &heading, &altitude);
initialLatitude = latitude; initialLongitude = longitude; In the loop() function of the sketch, we constantly get the current GPS location, and then calculate the difference between this & the initial location: float distance = distanceCoordinates(latitude, longitude, initialLatitude, initialLongitude); we also print this distance inside the Serial monitor: Serial.print(“Distance: ”);
printFloat(distance, 5);
Serial.println(“”); If the measured distance exceeded the maximum distance we allowed, we also set the alarm on: if (distance 》 maxDistance) {
alarm = true;
}
之后,我們檢查是否是否處于警報模式,并相應地對LED和壓電蜂鳴器進行操作:
if (alarm == false) {
if (millis() - counter 》 5000) {
digitalWrite(ledPin, HIGH);
} if (millis() - counter 》 5100) {
digitalWrite(ledPin, LOW);
counter = millis();
} noTone(buzzerPin);
現在是時候測試項目了!將代碼上傳到Arduino開發板,然后打開串行監視器。您應該看到,最初的距離等于零,或者是一個很小的值。
實際上,請注意GPS的精度約為10米,因此兩次測量之間的位置會略有變化。您也可以走出設置的邊界,然后步行片刻,看看它是否會發出警報!
最好的事情是它留下了點,換句話說,它是最后找到的點
第7步:資源
您可以參考以下鏈接,獲取有關以下方面的任何信息:對于您的疑問或下一個項目,請使用SIM800。
SIM800命令手冊
SIM800 FM應用說明
SIM800 IP應用說明
SIM800 GSM位置應用筆記
SIM800嵌入式AT應用筆記
步驟8:電池消耗
我們還沒有談到的其他方面這是功耗。可以肯定地假設,如果您正在構建蜂窩跟蹤器,則需要將其放在可移動的物體上,這意味著它將需要偏離我們世界的電源插座/USB端口。這意味著電池電量,這意味著測量功率消耗并計算電池壽命等。
蜂窩式設備因耗電量大而享有盛譽。 Adafruit說,此模塊可在短時間內產生2安培(!!)的電流。但是,按照我們的使用方式,它會花費大部分時間關閉電源,消耗很少。
我測量了正常使用期間電池的功耗。
上電:?25mA
獲取請求:峰值持續時間在150-200mA
一個完整的位置請求和發送GET請求的周期消耗約7.47焦耳
53.4 mA的平均電流持續35秒
關閉電源:約150μA靜態功耗
如果我們使用容量為1200mAH的電池,則在發出電池之前,我們可以在15分鐘的間隔內獲得約12天的發送位置。 (從理論上講,沒有考慮Arduino的功耗)。
責任編輯:wv
-
Arduino
+關注
關注
190文章
6498瀏覽量
192181
發布評論請先 登錄
Analog Devices Inc. EV-CATTLETAG-ARDZ Arduino板特性/應用/系統框架

《ESP32S3 Arduino開發指南》第二章 Arduino基礎知識
IMXRT1170-EVK如何使用J-Trace探針啟用指令跟蹤?
通過Arduino Nano Matter開發板構建智能卷簾系統

嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-本地倉庫管理之當前分支內的操作
飛凌嵌入式ElfBoard ELF 1板卡-本地倉庫管理之分支間的操作
飛凌嵌入式ElfBoard ELF 1板卡-本地倉庫管理之當前分支內的操作
開源項目!打造一款FPV頭部追蹤相機,讓你仿佛置身遙控車之中!
開源項目!基于 Arduino 的 MIDI 架子鼓
基于Arduino的串口通信項目
三格電子新品上市—EtherCAT分支器

開源項目!基于Arduino做的“魷魚游戲”BOSS面具,支持動作檢測
抖動跟蹤不丟失 慧視圖像跟蹤板和自研算法強勢升級

評論