工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Track ME

コンポーネントと消耗品

>
Arduino Mega 2560
× 1
NEO 6 GPS
× 1
AdafruitSDカードシールド
× 1
AdafruitSDカードシールド
× 1
SeeedstudiogprsシールドV2.0
× 1
Seeed GPRS Shield V2.0
× 1
ジャンパー線(汎用)
× 1
9Vバッテリー(汎用)
× 1
ボックス
× 1
ボックス
× 1

このプロジェクトについて

しばらく前に、Car / Personalトラッカーを作成することにしました。

これは、この方向での私の最初のプロトタイプでした。


システム自体は非常にシンプルです。 Arduino Mega、GPS、GPRSシールド、SDカードだけです。これはオプションですが、Facebookで友達にチャレンジを開始する際に、友達がシステムに電話をかけて、自分の位置または最後の既知の位置を含むSMSを受け取ると思ったので含めました。


システムは常に実際の位置を検索しています。誰かがSIMカードの番号に電話をかけると、システムは実際の位置とGoogleマップへのリンクを含むSMSを送信します。例:


Hugoの場所は現在:Lat:54.315010、Log:10.130997です。 http://maps.google.com/maps?q=54.315010,+10.130997


GPSが位置を受信して​​いない場合、システムは最後の既知の位置を送信します。例:


ヒューゴが見つからないようです。前回彼に会ったのは、Lat:54.315010、Log:10.130997でした。 http://maps.google.com/maps?q=54.315010,+10.130997


日付、時刻、位置、SMSステータスがSDカードに保存されます。


コンポーネント

使用したもの:


1x Arduino MEGA

1x GPRSシールド(市場で入手可能な他のGSMシールドを使用することも可能です)

1x GPS(eBayで非常に人気のあるNEO 6を使用しました)

1xSDカードシールド

1x9Vバッテリー

1xプラスチックボックス

いくつかのワイヤー


コンポーネントを接続する


Arduino Megaは別のピン配置を使用しているため、再配線が必要です。

まず、Arduino Uno用に設計されたSDカードシールドは、SPI用にピン10〜13を使用するため、これをMegaで機能させるには、MEGAのSPIピンに「渡す」必要があります。

Arduino UNOSPIピン-ArduinoMEGASPIピン

MOSI-11から51

MISO-12から50

SCK-13から52

SS-10から53

GPRSでは、シールドのJ7ジャンパーでソフトウェアシリアルへの通信ピンを設定するために、最初にシールドが必要です。

次に、いくつかのワイヤーを使用して、GPRSシールドのピン7と8をシリアル1ポート(Arduino Megaのピン18と19)に接続しました。

GPRSシールドでSIMカードを接続する方法の詳細については、ハックスターの他のプロジェクトをご覧ください。


GPSはArduinoMegaのシリアル2ポート(ピン16と17)に接続されています。

また、GPSに必要な電力はSDカードの5VピンとGNDピンから取り出されます。


9V電池は、Vinピンまたは電源ジャックプラグに接続できます。

ボックスを閉じてフィールドテストを行う準備をしています。

コード


ここにコードに関する簡単なメモを残します。


このライブラリをGPRSシールドに使用しました。

Arduino Megaを使用するには、いくつかの変更を行う必要があります:


1)GSM.hを開き、コメント-以下のように適切な行をコメント解除します。 Arduino Megaの場合:

//#define UNO

#define MEGA


2)HWSerial.hで、メガ定義の行を削除します。 Arduino Megaの場合:

#define MEGA


GPSの場合、このライブラリを使用しています。


それ自体が実行するプログラムは非常に簡単です。すべての起動ルーチン(GPRS、GPS、SDカードの初期化)の後、GPSは、利用可能な衛星の数と有効なGPS座標ポイントを決定しようとします。

この期間中に電話がかけられた場合、電話は自動的に拒否され、何も起こりません。

GPSに有効な位置があり、3つ以上の衛星を検出している場合(GPSの受信状態が良好であると想定しています)、電話がかけられると、システムは私の位置を示すSMSを電話番号に送信します。これらのデータはすべてSDカードに保存されます。

GPSの衛星が3つ未満の場合、有効な位置を取得できません。そのため、電話をかけると、電話番号は私の最後の既知の位置を含むSMSを受信します。この場合も、すべてのデータはSDカードに保存されます。


長所と短所


これはプロトタイプなので、うまくいかなかったことがたくさんあります。しかし、目的は常に改善することです。

まず、バッテリーは1時間しか持続しません!!ソフトウェアに省エネメカニズムを実装していません。したがって、将来の改善には「スリープモード」が必須です。

サイズも見直して、完全に新しいボードをデザインしました。一見するとこれです:

間違いを見つけた場合、または提案/改善や質問がある場合は、私に書いてください。

読んでくれてありがとう。

ヒューゴゴメス

コード

  • コード
コード Arduino
 #include "SIM900.h" #include  #include "sms.h" #include "call.h" #include  //ソフトウェア/ハードウェアシリアルのピンを変更するには、 GSM.cppの27、28行// ArduinoMegaを使用するには、GSM.hの5行目にMEGAを定義してください。#include  #include  // Mega CS pinconst int chipSelect =53; // SMSとcallsのクラスを作成する必要があります。CallGSMcall; SMSGSM sms; char number [20]; byte stat =0; int value =0; char value_str [5]; // GPS Variable // TinyGPS ++ objectTinyGPSPlus gps; const char * googlePrefix ="http://maps.google.com/maps?q=";double Lat; double Long; int day、month、year; int hour、minute、second; int num_sat; boolean one_point_true =false; void setup(){//シリアル接続。 Serial.begin(9600); // GPRS接続Serial.print(F( "Starting GSM ...")); //ボーレートでシールドの構成を開始します。 if(gsm.begin(9600))Serial.println(F( "READY")); else Serial.println(F( "IDLE")); // GPS接続Serial.println(F( "Starting GPS")); // GPS comポートSerial2.begin(9600); // SDカードの開始Serial.print(F( "Initializing SD card ...")); //使用しない場合でも、デフォルトのチップセレクトピンが//出力に設定されていることを確認します。pinMode(53、OUTPUT); //カードが存在し、初期化できるかどうかを確認します:if(!SD.begin(chipSelect)){Serial.println(F( "Card failed、or not present")); //これ以上何もしません:return; } Serial.println(F( "カードが初期化されました。"));} // ******************************** ********************************************** //メインloopvoid loop(){Get_GPS(); //位置を取得しますCheck_call(); //誰かが電話をかけているかどうかを確認します}; ///////////////////////////////////////// ///////////////////////////////////////// ********* ************************************************** ******************* // GPSvoid Get_GPS(){while(Serial2.available()> 0)if(gps.encode(Serial2.read ()))num_sat =gps.satellites.value(); //Serial.println(num_sat); if(gps.location.isValid()==1){Lat =gps.location.lat(); Long =gps.location.lng(); if(Lat!=0 &&Long!=0)one_point_true =true; } if(gps.date.isValid()){day =gps.date.day();月=gps.date.month();年=gps.date.year(); } if(gps.time.isValid()){時間=gps.time.hour();分=gps.time.minute();秒=gps.time.second(); } smartDelay(500); if(millis()> 5000 &&gps.charsProcessed()<10){Serial.println(F( "GPSが検出されませんでした:配線を確認してください。")); while(true); }} // ********************************************** ******************************** //このカスタムバージョンのdelay()は、gpsオブジェクト//が"fed" .static void smartDelay(unsigned long ms){unsigned long start =millis(); do {while(Serial2.available())gps.encode(Serial2.read()); } while(millis()-start  =3 &&one_point_true ==true){char sms_OK [160]; sprintf(sms_OK、 "Hugoの場所は現在:Lat:%s、Log:%s。%s%s、+%s \ n"、lat_print、Long_print、googlePrefix、lat_print、Long_print); Serial.println(sms_OK);エラー=sms.SendSMS(number、sms_OK); delay(500); if(error ==0)//ステータスを確認{Serial.println(F( "SMS ERROR")); } else {Serial.println(F( "SMS OK")); }} else if(num_sat <3 &&one_point_true ==true){char sms_NOK [150]; sprintf(sms_NOK、 "ヒューゴを見つけることができません。前回彼に会ったのは次の場所でした:Lat:%s、Log:%s。%s%s、+%s \ n"、lat_print、Long_print 、googlePrefix、lat_print、Long_print); Serial.println(sms_NOK); intエラー=sms.SendSMS(number、sms_NOK); if(error ==0)//ステータスを確認{Serial.println(F( "SMS ERROR")); } else {Serial.println(F( "SMS OK")); }} else if(one_point_true ==false){Serial.println(F( "有効なGPSポイントがありません")); } // SDカードファイルにすべてを保存するdataFile =SD.open( "datalog.txt"、FILE_WRITE); //ファイルが利用可能な場合は、次のように書き込みます。if(dataFile){dataFile.print(Date); dataFile.print( ""); dataFile.print(time1); dataFile.print( ""); dataFile.print(number); dataFile.print( ""); dataFile.print(lat_print); dataFile.print( "、"); dataFile.print(Long_print); dataFile.print( ""); dataFile.print(error); dataFile.println(); dataFile.close(); } //ファイルが開いていない場合は、エラーをポップアップします。else{Serial.println(F( "erroropening datalog.txt")); }} //////////////////////////////////////////////// /////////////////////////////// 

回路図


製造プロセス

  1. ラズベリーパイとブリッジシールドを使用したロボット
  2. Web操作のDMXコントローラー
  3. Arduino Spybot
  4. UnifiedWater v1
  5. HSVClock
  6. SnowPlow Robot
  7. モバイル投票ボックス
  8. モグラたたき(ボタン版)
  9. モダンジュークボックス
  10. Arduino Apple Watch
  11. すべての礼儀正しいドライバーに感謝します