在之前的教程中,我們已經了解了如何將GPS模塊與計算機連接以及如何使用GSM和GPS跟蹤車輛。我們還使用Arduino和加速度計制作了車輛事故警報系統。在本篇文章中,我們再次制作相同的項目,但這次將使用MSP430 Launchpad開發板和振動傳感器來檢測車輛事故。因此,該項目還將介紹振動傳感器與MSP430的連接。
振動傳感器模塊檢測車輛的振動并向MSP430 Launchpad發送信號。然后MSP430從GPS模塊獲取數據,使用GSM模塊通過SMS將其發送到用戶移動電話。同時LED也會發出事故警報信號,這個LED可以使用其他一些警報設備取代。事故地點以谷歌地圖鏈接的形式發送,源自GPS模塊的緯度和經度。
需要的組件
● MSP430 Launchpad開發板
● GSM模塊
● GPS模塊
● 振動傳感器模塊
● 1602液晶顯示屏
● 電源
● 連接導線
● 10K電位器
● 面包板
在開始制作之前,我們將先討論GPS、GSM和振動傳感器。
GPS模塊及其工作原理
GPS(Global Positioning System),中文全稱全球定位系統,用于檢測地球上任何位置的緯度和經度,具有精確的UTC時間(協調世界時)。 GPS模塊用于跟蹤項目中事故的位置。該設備每時每秒接收衛星的坐標,包括時間和日期。我們之前在車輛跟蹤系統中提取了$ GPGGA字符串,以查找緯度和經度坐標。
GPS模塊實時發送與跟蹤位置相關的數據,并以NMEA格式發送大量數據(參見下面的屏幕截圖)。 NMEA格式包含幾個句子,我們只需要一個句子。這句話從$ GPGGA開始,包含坐標、時間和其他有用信息。該GPGGA被稱為全球定位系統修復數據。
我們可以通過計算字符串中的逗號來從$ GPGGA字符串中提取坐標。假設您找到$ GPGGA字符串并將其存儲在數組中,則可以在兩個逗號后找到Latitude,并且可以在四個逗號后找到Longitude。現在,這個緯度和經度可以放在其他數組中。
下面是$ GPGGA字符串及其描述:
$GPGGA,104534.000,7791.0381,N,06727.4434,E,1,08,0.9,510.4,M,43.9,M,,*47
$GPGGA,HHMMSS.SSS,latitude,N,longitude,E,FQ,NOS,HDP,altitude,M,height,M,,checksum data
復制代碼
GSM模塊
SIM900是一個完整的四頻GSM / GPRS模塊,可以輕松嵌入客戶或業余愛好者使用。 SIM900 GSM模塊提供行業標準接口。 SIM900為語音、短信、數據提供GSM / GPRS 850/900/1800 / 1900MHz性能,功耗極低。它很容易在市場上買到。
? SIM900采用集成AMR926EJ-S內核的單芯片處理器設計
? 小型GSM / GPRS四頻模塊。
? GPRS已啟用
AT命令
AT表示ATTENTION。該命令用于控制GSM模塊。為了測試GSM模塊,我們使用AT命令。收到AT命令后,GSM模塊響應OK。這意味著GSM模塊工作正常。下面是我們在這個項目中使用的一些AT命令:
● ATE0用于回聲
● AT + CNMI = 2,2,0,0,0 ● ATD <手機號碼>; ● ● AT + CMGF = 1 ● AT + CMGS =“手機號碼” >>現在我們可以寫下我們的信息 >>寫完信息后 ● Ctrl + Z發送消息命令(十進制26)。 ● HEX中的ENTER = 0x0d 振動傳感器模塊 在這個MSP430事故警報系統項目中,我們使用了一個振動傳感器模塊來檢測振動或突然調制。振動傳感器模塊根據模塊提供數字輸出HIGH / LOW邏輯。在我們的例子中,我們使用了一個有源HIGH邏輯振動傳感器模塊。這意味著每當振動傳感器檢測到振動時,它將為微控制器提供高邏輯。 電路說明 該車輛事故警報系統項目的電路連接非常簡單。這里GPS模塊的Tx引腳直接連接到MSP430 Launchpad(硬件串口)的數字引腳號P1_1,5v用于為GPS模塊供電。通過在此使用軟件串行庫,我們允許在引腳P_6和P1_7上進行串行通信,并分別使它們成為Rx和Tx并連接到GSM模塊。 12伏電源用于為GSM模塊供電。振動傳感器連接在P1_3。 LED也用于指示事故檢測。其余連接顯示在電路圖中。 編程說明 除GPS部分外,該項目的編程很簡單。完成代碼在本文結尾處給出。要在MSP430中編寫或編譯代碼,我們使用了與Arduino兼容的Energia IDE。大多數Arduino IDE功能都可以直接在這個Energia IDE中使用。 首先,我們包含了一個必需的庫,以及聲明一些引腳和變量。 #include SoftwareSerial GSM(P1_6, P1_7); // RX, TX float latitude=0; float logitude=0; #define led P1_0 const int vibrationSensor=PUSH2; int i=0; 以下函數用于讀取振動傳感器信號。 該函數也可以過濾小的或錯誤的振動。 #define count_max 25 char SensorRead(int pin) // read sw with debounce { char count_low=0,count_high = 0; do { delay(1); if (digitalRead(pin) == HIGH) { count_high++; count_low = 0; } else { count_high = 0; count_low++; } }while(count_low< count_max && count_high < count_max); if (count_low >= count_max) return LOW; else return HIGH; } 下面的函數檢測振動并調用gpsEvent()函數獲取GPS坐標,最后調用Send()函數發送短信。 void loop() { if(SensorRead(vibrationSensor) == HIGH) { digitalWrite(led, HIGH); gpsEvent(); Send(); digitalWrite(led, LOW); delay(2000); } } 以下函數負責從GPS模塊獲取GPS字符串,從中提取坐標并以十進制格式轉換它們。 void gpsEvent() { char gpsString[55]; char test[]="RMC"; i=0; while(1) { while (Serial.available()) //Serial incomming data from GPS { char inChar = (char)Serial.read(); gpsString[i]=inChar; //store incomming data from GPS to temparary string str[] i++; if (i < 4) { if(gpsString[i-1] != test[i-1]) //check for right string i=0; } 最后,Send()函數用于將SMS發送到此部分代碼中插入的用戶號碼。 void Send() { GSM.print("AT+CMGS="); GSM.print('"'); GSM.print("961****059"); // enter your Mobile number GSM.println('"'); delay(500); // GSM.print("Latitude:"); // GSM.println(latitude); GSM.println("Accident Happned"); delay(500); // GSM.print(" longitude:"); // GSM.println(logitude); GSM.println("Click On link to see Location"); GSM.print("http://maps.google.com/maps?&z=15&mrt=yp&t=k&q="); GSM.print(latitude,6); GSM.print("+"); GSM.print(logitude,6); GSM.write(26); delay(4000); }
上一篇:使用MSP430G2 LaunchPad開發板連接步進電機的方法
下一篇:使用MSP430 LaunchPad開發板制作一個激光絆線報警器
推薦閱讀
史海拾趣
為了進一步拓展國際市場,CMDS積極尋求與國外企業的合作。通過與國際知名電子企業建立戰略合作關系,CMDS不僅獲得了先進的技術支持和市場資源,還成功將其產品打入國際市場。同時,公司還積極參加國際展會和交流活動,與全球同行建立了廣泛的聯系和合作網絡。這些國際合作不僅為CMDS帶來了更多的商業機會,也提升了其在國際市場上的知名度和影響力。
EMC Technology RF Labs成立于XXXX年,作為EMC Technology公司的一個專門研究射頻(RF)技術的實驗室。創立之初,RF Labs的目標是為電子通信行業提供高質量的射頻元件和解決方案。公司聚集了一批在射頻技術領域具有豐富經驗和專業知識的工程師,開始了對射頻技術的深入研究和探索。
經過多年的努力和發展,承興公司已經成為一家具有全球影響力的電子企業。除了在中國市場保持領先地位外,承興還積極拓展海外市場,并在美國、新加坡等地設立了分公司和研發中心。通過與全球合作伙伴的緊密合作和資源共享,承興不斷提升其全球競爭力,并努力實現國際化的發展目標。
請注意,由于承興(CX)公司的具體發展歷程和細節可能因時間和市場變化而有所不同,以上故事僅為虛構示例,旨在展示承興公司在電子行業中的發展脈絡和關鍵事件。
1996年,承興公司在香港成立,并迅速設立了亞洲總部。起初,公司專注于電子產品的代理和銷售,憑借其敏銳的市場洞察力和高效的供應鏈管理能力,承興逐漸在亞洲市場嶄露頭角。通過與寶潔中國、百事中國等知名品牌建立合作關系,承興獲得了穩定的供應鏈資源和市場份額。
固得沃克始終關注市場需求的變化,不斷拓展產品線以滿足不同客戶的需求。公司從最初的二極管生產,逐步擴展到三極管、整流橋堆、TVS管、MOS管等多個領域,并實現了全面自主研發、生產和銷售。此外,固得沃克還提供定制化服務,根據客戶的具體需求提供個性化的解決方案。這種靈活多變的產品策略和服務模式,使公司在激烈的市場競爭中保持了競爭優勢。
問ad9833能產生方波嗎?看了它的控制寄存器功能表,好像不能直接產生方波啊,而且框圖里面也沒有比較器嘛,但看關于它的主要特點,都說可以直接產生正弦、三角、方波三種波形 懇請賜教… 查看全部問答∨ |
|
tlc555頻率測量時,如果選取C=180PF,要求輸出為20KHZ左右,匹配R1,R2時該注意什么,為什么我選取R1=18K,R2=110K,按照如下公式計算: 上升時間 (T1) = 0.693 * (R1+R2) * C 下降時間(T2) = 0.693 * R2 * C 頻率 = 1.44 / ( (R1+R2+R2) * C) ...… 查看全部問答∨ |
|
求購 S3C4510B 的開發板,最好微芯力的 最近找了份4510b的資料,看著不錯可惜沒有板子練。真是郁悶啊!不知道哪為高手還有收藏! 有的話留個言! 電話:13141280460 qq:406672875… 查看全部問答∨ |
我調試wince的時候使用ActiveSync進行連接 有時候調試到一般,連接突然中斷,但是電腦右下腳的小圖標仍然是綠色,這個時候我一拔出USB電纜,電腦就會死機 這個問題困擾了我很久 希望有人能幫我解決,謝謝!… 查看全部問答∨ |
H3C公司2003年11月成立,最初由華為和3COM合資組建,2006年11月由3COM公司全資收購。 目前公司正在全力投入高端路由器產品的開發,急需大量軟件開發、測試人員。 地點:杭州 職責: 1、負責H3C高端路由器產品軟件開發工作,完成相關的設計文檔、 ...… 查看全部問答∨ |
|
原固件庫中的例子FWLibexamplesTIMOCToggle使用TIM2,無問題。將其中的TIM2改為TIM1,并修改了相應的設置(如下),發現可進中斷,但各輸出管腳(pin8、9、10、11)一直為低電平,不能翻轉,不知何故?請指教。改為tim1后的main.c/*********** ...… 查看全部問答∨ |
顯示負載電流大小顯示燈電路圖 圖中LED的發光強度與負載電流成正比,該電路的設計目的是提供一個非常緊湊的電路來替代某些天文學設備中12V電源線上的電表。這種設備包含工作狀況不可視的小功率加熱元件(防露元件)。不過,當加熱器接 ...… 查看全部問答∨ |