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

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

3天內(nèi)不再提示

如何使用MSP430和GPS模塊制作汽車事故警報系統(tǒng)

科技觀察員 ? 來源:circuitdigest ? 作者:薩達姆 ? 2022-09-21 15:35 ? 次閱讀

在這里,我們再次構(gòu)建相同的項目,但這次將使用MSP430 發(fā)射臺和振動傳感器檢測車輛事故。因此,該項目還將介紹振動傳感器與 MSP430 啟動板的接口。

此處振動傳感器模塊檢測車輛的振動并向 MSP430 Launchpad 發(fā)送信號。然后 MSP430 從 GPS 模塊獲取數(shù)據(jù)并使用 GSM 模塊通過 SMS 將其發(fā)送到用戶手機。一個 LED 也會作為事故警報信號發(fā)光,這個 LED 可以用一些警報代替。事故位置以Google Map 鏈接的形式發(fā)送,來自 GPS 模塊的緯度和經(jīng)度。

pYYBAGMqvMeAKsG8AAJO_sP3ixw139.png

所需組件

MSP430 啟動板

SIM900 GSM 模塊

Ublox NEO-6M GPS 模塊

振動傳感器模塊

16x2 液晶

電源

連接電線

10 K-POT

面包板或PCB

電源 12v 1amp

3.3v電源

5v電源

在進入項目之前,我們將討論 GPS、GSM 和振動傳感器。

GPS模塊及其工作:

GPS代表全球定位系統(tǒng) ,用于檢測地球上任何位置的緯度和經(jīng)度,具有精確的UTC時間(協(xié)調(diào)世界時)。GPS模塊用于跟蹤我們項目中的事故位置。該設(shè)備每秒接收來自衛(wèi)星的坐標,包括時間和日期。我們之前 在Vehicle Tracking System中提取了 $GPGGA 字符串 來查找緯度和經(jīng)度坐標。

poYBAGMqvQWAQqEuAAS1e8eg9-I793.png

GPS模塊 實時發(fā)送與跟蹤位置相關(guān)的數(shù)據(jù),它以NMEA格式發(fā)送大量數(shù)據(jù)(見下面的截圖)。NMEA 格式由幾個句子組成,其中我們只需要一個句子。這句話從 $GPGGA開始 ,包含坐標、時間和其他有用的信息。此 GPGGA 稱為 全球定位系統(tǒng)修復數(shù)據(jù)。

我們可以通過計算字符串中的逗號來從 $GPGGA 字符串中提取坐標。假設(shè)你找到 $GPGGA 字符串并將其存儲在一個數(shù)組中,那么在兩個逗號后可以找到緯度,在四個逗號后可以找到經(jīng)度。現(xiàn)在,這個緯度和經(jīng)度可以放在其他數(shù)組中。

poYBAGMqvQyANPwNAAFaO5STm38033.png

下面是$GPGGA字符串及其描述:

$GPGGA,104534.000,7791.0381,N,06727.4434,E,1,08,0.9,510.4,M,43.9,M,,*47

$GPGGA,HHMMSS.SSS,緯度,N,經(jīng)度,E,F(xiàn)Q,NOS,HDP ,高度,M,高度,M,,校驗和數(shù)據(jù)

poYBAGMqvRKAa2EBAAAtrSCr4eg996.png

GSM模塊

SIM900 是一個完整的四頻 GSM/GPRS 模塊,可以被客戶或愛好者輕松嵌入使用。SIM900 GSM 模塊提供行業(yè)標準接口。SIM900 以低功耗提供 GSM/GPRS 850/900/1800/1900MHz 的語音、SMS、數(shù)據(jù)性能。它在市場上很容易買到。

SIM900采用集成AMR926EJ-S內(nèi)核的單片機處理器設(shè)計

小尺寸的四頻 GSM/GPRS 模塊。

啟用 GPRS

pYYBAGMqvRiAeD9TAAXDfdLhfWU479.png

AT 命令

AT 表示注意。該命令用于控制 GSM 模塊。為了測試 GSM 模塊,我們使用了 AT 命令。接收到 AT 命令后,GSM 模塊回復 OK。這意味著 GSM 模塊工作正常。下面是 我們在這個項目中使用的一些 AT 命令:

ATE0 用于關(guān)閉回聲

AT+CNMI=2,2,0,0,0 《ENTER》 自動打開消息接收。(無需打開消息)

ATD《手機號碼》;《ENTER》 撥打電話 (ATD+919610126059;\r\n)

AT+CMGF=1 《ENTER》 選擇文本模式

AT+CMGS=”Mobile Number” 《ENTER》 分配收款人的手機號碼

》》現(xiàn)在我們可以寫我們的信息了

》》寫完留言后

Ctrl+Z 發(fā)送消息命令(十進制的 26)。

ENTER=0x0d 十六進制

振動傳感器模塊

在這個MSP430 事故警報系統(tǒng)項目中,我們使用了一個振動傳感器模塊來檢測振動或突然的調(diào)制。振動傳感器模塊根據(jù)模塊提供數(shù)字輸出高/低邏輯。在我們的案例中,我們使用了一個有源 HIGH 邏輯振動傳感器模塊。這意味著每當振動傳感器檢測到振動時,它都會為微控制器提供高邏輯。

poYBAGMqvR6AZj-bAAJktuf7XxE888.png

電路說明

該車輛事故警報系統(tǒng)項目的電路連接 很簡單。這里GPS 模塊的Tx 引腳 直接連接到 MSP430 Launchpad(硬件串行)的數(shù)字引腳號 P1_1,5v 用于為 GPS 模塊供電。通過這里使用 軟件串行庫 ,我們允許引腳 P_6 和 P1_7 上的串行通信,并分別使它們成為 Rx 和 Tx 并連接到GSM 模塊。12 伏電源用于為 GSM 模塊供電。振動傳感器連接在 P1_3 。LED 也用于指示事故檢測。其余連接顯示在電路圖中。

poYBAGMqvSKATOkhAAFApAVp3GI921.png

poYBAGMqvSiAfWjNAAblkntWh9A636.png

編程說明

除了 GPS 部分外,該項目的編程很容易。完整的代碼在項目結(jié)??束時給出。為了在 MSP430 中編寫或編譯代碼,我們使用了與 Arduino 兼容的 Energia IDE。大多數(shù) Arduino IDE 功能都可以直接在這個 Energia IDE 中使用。

所以首先我們已經(jīng)包含了一個必需的庫和聲明的引腳和變量。

#include
SoftwareSerial GSM(P1_6, P1_7); // 接收,發(fā)送

浮動緯度=0;
浮動對數(shù)=0;

#define led P1_0
const intvibrationSensor=PUSH2;
詮釋我=0;
給定函數(shù)用于讀取振動傳感器信號。此功能還將過濾小振動或虛假振動。

#define count_max 25
char SensorRead(int pin) // 讀sw with debounce
{
char count_low=0,count_high = 0;

{
延遲(1);
if (digitalRead(pin) == HIGH)
{
count_high++;
計數(shù)低 = 0;
}

否則
{
count_high = 0;
計數(shù)低++;
}
}while(count_low< count_max && count_high < count_max);

如果(count_low >= count_max)
返回低;
否則
返回高;
}
下面的函數(shù)檢測振動并調(diào)用gpsEvent()函數(shù)獲取 GPS 坐標,最后調(diào)用Send()函數(shù)發(fā)送短信。

無效循環(huán)()
{
如果(傳感器讀取(振動傳感器)==高)
{
數(shù)字寫入(領(lǐng)導,高);
全球定位系統(tǒng)事件();
發(fā)送();
數(shù)字寫入(領(lǐng)導,低);
延遲(2000);
}
}
Given Function 負責從 GPS 模塊中獲取 GPS 字符串,從中提取坐標并將其轉(zhuǎn)換為度數(shù)十進制格式。

無效 gpsEvent()
{
字符 gpsString[55];
字符測試[]="RMC";
我=0;
while(1)
{
while (Serial.available()) //來自 GPS 的串行傳入數(shù)據(jù)
{
char inChar = (char)Serial.read();
gpsString[i]=inChar; //將來自 GPS 的傳入數(shù)據(jù)存儲到臨時字符串 str[]
i++;
if (i < 4)
{
if(gpsString[i-1] != test[i-1]) //檢查正確的字符串
i=0;
}

國際度=0;
度=gpsString[16]-48;
度*=10;
度+=gpsString[17]-48;
int minut_int=0;
minut_int=gpsString[18]-48;
minut_int*=10;
minut_int+=gpsString[19]-48;

int minut_dec=0;
minut_dec+= (gpsString[21]-48)*10000;
minut_dec+= (gpsString[22]-48)*1000;
minut_dec+= (gpsString[23]-48)*100;
minut_dec+= (gpsString[24]-48)*10;
minut_dec+= (gpsString[25]-48);

float minut= ((float)minut_int + ((float)minut_dec/100000.0))/60.0;
緯度=((浮點)度+分鐘);
最后,Send()函數(shù)用于將 SMS 發(fā)送到插入在這部分代碼中的用戶號碼。

無效發(fā)送()
{
GSM.print("AT+CMGS=");
GSM.print('"');
GSM.print("961****059"); // 輸入你的手機號碼
GSM.println('"');
延遲(500);
// GSM.print("緯度:");
// GSM.println(緯度);
GSM.println("事故發(fā)生");
延遲(500);
// GSM.print("經(jīng)度:");
// GSM.println(logitude);
GSM.println("點擊鏈接查看位置");
GSM.print("http://maps.google.com/maps?&z=15&mrt=yp&t=k&q=");
GSM.print(緯度,6);
GSM.print("+");
GSM.print(logitude,6);
GSM.write(26);
延遲(4000);
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • msp430
    +關(guān)注

    關(guān)注

    180

    文章

    2330

    瀏覽量

    229006
  • 振動傳感器
    +關(guān)注

    關(guān)注

    2

    文章

    318

    瀏覽量

    19723
  • GPS模塊
    +關(guān)注

    關(guān)注

    0

    文章

    87

    瀏覽量

    16329
  • 警報系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    54

    瀏覽量

    4847
收藏 人收藏

    評論

    相關(guān)推薦

    通過RTC模塊DS3231與MSP430連接來制作數(shù)字時鐘

    在本教程中,我們將通過RTC模塊DS3231與MSP430連接來制作數(shù)字時鐘,并在16x2 LCD上顯示時間和日期。MSP-EXP430G2 是德州儀器提供的開發(fā)工具,又名 Launc
    的頭像 發(fā)表于 11-11 16:55 ?2474次閱讀
    通過RTC<b class='flag-5'>模塊</b>DS3231與<b class='flag-5'>MSP430</b>連接來<b class='flag-5'>制作</b>數(shù)字時鐘

    MSP430單片機與GPS模塊接口在便攜式導航系統(tǒng)中的設(shè)計應(yīng)

    MSP430單片機與GPS模塊接口在便攜式導航系統(tǒng)中的設(shè)計應(yīng)用 GPS 是全球定位系統(tǒng)的簡稱,
    發(fā)表于 03-05 11:03 ?100次下載

    基于GPS/GSM和MSP430的巡檢手持終端的設(shè)計與實現(xiàn)

    基于GPS/GSM和MSP430的巡檢手持終端的設(shè)計與實現(xiàn)。
    發(fā)表于 02-17 09:48 ?29次下載

    基于MSP430的可便攜車載GPS智能終端的設(shè)計

    基于MSP430的可便攜車載GPS智能終端的設(shè)計。
    發(fā)表于 02-17 09:51 ?36次下載

    基于MSP430單芯片的倒車雷達模塊設(shè)計環(huán)翾

    基于MSP430單芯片的倒車雷達模塊設(shè)計_環(huán)翾
    發(fā)表于 03-17 08:00 ?7次下載

    MSP430教程14:MSP430單片機ADC12模塊

    MSP430教程14:MSP430單片機ADC12模塊
    發(fā)表于 10-12 09:03 ?55次下載
    <b class='flag-5'>MSP430</b>教程14:<b class='flag-5'>MSP430</b>單片機ADC12<b class='flag-5'>模塊</b>

    基于MSP430功能模塊詳解系列之——TimerA

    基于MSP430功能模塊詳解系列之——TimerA
    發(fā)表于 10-12 15:32 ?2次下載
    基于<b class='flag-5'>MSP430</b>功能<b class='flag-5'>模塊</b>詳解系列之——TimerA

    MSP430新型的高性能雙通信模塊

    MSP430新型的高性能雙通信模塊
    發(fā)表于 10-12 17:17 ?6次下載
    <b class='flag-5'>MSP430</b>新型的高性能雙通信<b class='flag-5'>模塊</b>

    基于MSP430外圍模塊功能簡介

    基于MSP430外圍模塊功能簡介
    發(fā)表于 10-12 17:21 ?7次下載
    基于<b class='flag-5'>MSP430</b>外圍<b class='flag-5'>模塊</b>功能簡介

    基于MSP430單片機的GPS定位系統(tǒng)設(shè)計

    基于MSP430單片機的GPS定位系統(tǒng)設(shè)計
    發(fā)表于 10-13 08:43 ?22次下載

    介紹 MSP430 的外圍模塊

    MSP430的外圍模塊介紹
    的頭像 發(fā)表于 06-13 01:47 ?4997次閱讀
    介紹 <b class='flag-5'>MSP430</b> 的外圍<b class='flag-5'>模塊</b>

    MSP430F5529 單片機 倒車雷達 倒車警報系統(tǒng) 超聲波

    MSP430F5529 單片機 倒車雷達 倒車警報系統(tǒng) 超聲波
    發(fā)表于 11-15 15:06 ?18次下載
    <b class='flag-5'>MSP430</b>F5529 單片機 倒車雷達 倒車<b class='flag-5'>警報系統(tǒng)</b> 超聲波

    MSP430學習筆記-時鐘篇

    在前一篇學習筆記架構(gòu)篇中,我們將整個MSP430的總體架構(gòu)嘮嗑了一遍,今天我們繼續(xù)來聊聊MSP430的時鐘。對于時鐘模塊,我們要了解兩件事:時鐘架構(gòu)與時鐘配置寄存器。一、時鐘架構(gòu)下面我們從
    發(fā)表于 12-16 16:55 ?27次下載
    <b class='flag-5'>MSP430</b>學習筆記-時鐘篇

    Arduino嬰兒汽車警報系統(tǒng)(iCAS)

    電子發(fā)燒友網(wǎng)站提供《Arduino嬰兒汽車警報系統(tǒng)(iCAS).zip》資料免費下載
    發(fā)表于 01-05 09:52 ?0次下載
    Arduino嬰兒<b class='flag-5'>汽車</b><b class='flag-5'>警報系統(tǒng)</b>(iCAS)

    多功能汽車警報系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《多功能汽車警報系統(tǒng).pdf》資料免費下載
    發(fā)表于 11-06 14:16 ?1次下載
    多功能<b class='flag-5'>汽車</b><b class='flag-5'>警報系統(tǒng)</b>