LTE Arduino GPSトラッカー+ IoTダッシュボード(パート1):6つのステップ(写真あり)

LTE Arduino GPSトラッカー+ IoTダッシュボード(パート1):6つのステップ(写真あり)

目次:

Anonim

前書き

どうしたの!このInstructableはArduino用のBotletics LTE / NB-IoTシールドの使用に関する私の最初のInstructableのフォローアップです。まだシールドを使用していない場合の概要と概要。このチュートリアルでは、IoTデータロギング、具体的にはGPSと温度の追跡に焦点を当て、道路に出かけてテストするために必要なすべてのコードとガイダンスを提供します。

このInstructableは、私が個人的にデザインして構築したLTEシールドに主に焦点を当てていますが、ここでのすべて(Github Arduinoライブラリを含む)は、SIM800 / 808/900/5320のようなSIMComの2Gおよび3Gモジュールでも動作するはずです。 Adafruit FONAライブラリのバージョン。ハードウェアに関係なく、その概念はまったく同じで、センサーデータロギング、遠隔気象監視、自動盗難カルマGPS追跡などを含むこれでたくさんの素晴らしいことができます。

用品:

ステップ1:部品を集める

このリストは私の最初のチュートリアルと同じで、とても簡単です。

  • Arduino Uno、Mega、またはLeonardo。あるいは、他の3.3Vまたは5Vマイクロコントローラを使用することもできますが、ピンを外部で配線する必要があります。
  • Botletics SIM7000シールドキット(シールド、デュアルLTE / GPS uFLアンテナ、スタッキングメスヘッダが付属)あなたが適切なバージョンを選択するためにあなたがこのチュートリアルを通過することを確認してください!
  • ホログラムSIMカード最初のSIMカード( "開発者" SIMカードと呼ばれる)は完全に無料で、月に1MBのデータが付属しています。米国では、Hologram SIMカードを使用していれば、おそらくVerizonネットワークに接続しているでしょう。それがもっと便利な場合は、Botleticsシールドと一緒に拾うこともできます。
  • 3.7V LiPoバッテリー(1000mAH以上の容量を推奨)。
  • あなたのArduinoをプログラムするか、またはそれに動力を与えるためのUSBケーブル。

GPS追尾テストに!

  • 路上でシールドをテストしながら、あなたはあなたのArduinoに電力を供給するために車のUSBアダプタを使うことができます。
  • 代わりに、VINとGNDピンを介してArduinoに電力を供給するためにバッテリーパック(7-12V)を使用することができます。

ステップ2:物理的な組み立て

すべての部品が揃ったので、ハードウェアをセットアップするために必要なことを簡単に説明します。

  • スタッキングメスヘッダーをシールドにはんだ付けします。その方法についてはこのチュートリアルを参照してください。
  • シールドをArduinoに差し込み、損傷しないようにすべてのピンを揃えるようにしてください。
  • 写真のようにSIMカードを挿入します。金属製の接点が下向きになり、隅の切り込みの位置をメモします。
  • LiPoバッテリーをシールドのJSTコネクタに差し込みます
  • USBケーブルを使ってArduinoをコンピュータに接続します。シールドの緑色の電源LEDが点灯しないことに気付くかもしれません。シールドのPWRKEYピンをオンにするには、少しの間Lにパルスする必要があるため、これはまったく問題ありません。次のセクションの例のArduinoスケッチはあなたのためにそれの世話をするでしょう!
  • デュアルLTE / GPSアンテナをシールドの右端にあるuFLコネクタに取り付けます。ワイヤが交差するので、間違ったものを差し込まないでください。
  • あなたはすべてソフトウェアの準備が整いました!

ステップ3:Arduinoのセットアップとデバイステスト

Arduino IDEセットアップ

まだお持ちでない場合は、メイン製品の「Arduino IDEのセットアップ」および「Arduinoの例」の手順に従って、ボードが正しく機能していることを確認してください。これらの手順では、Githubページからライブラリをダウンロードして、サンプルコード "LTE_Demo"を開く必要があります。これらの指示に従った後、あなたはネットワーク接続、GPS、そしてdweet.ioへのデータの投稿をテストしたはずです。

IoTサンプルスケッチ

シールドのコア機能をテストしたので、Arduino IDEで "IoT_Example"スケッチを読み込みます。 Githubでもここで見つけることができます。このコードをArduinoにアップロードしてシリアルモニタを開くと、ArduinoがSIM7000モジュールを見つけ、携帯電話ネットワークに接続し、GPSを有効にして位置を特定できるまで試し続け、データをdweet.ioに送信するはずです。 LTEシールドとHologram SIMカードを使用していると仮定すると、これはすべてコード行を変更することなく実行できます。

デフォルトでは、次の行がサンプリングレートを定義しています(実際には、投稿間の遅延)。

#define samplingRate 30 //投稿間の時間(秒)

この行がコメントアウトされていない場合、Arduinoはデータの投稿、30秒の遅延、データの再投稿、繰り返しなどを行います。30秒の遅延の間、Arduinoを低電力モードにしてそのようなことをすることができます。簡単なこと操作を一時停止するには、delay()関数を使用します。この行にコメントを付けると、Arduinoはデータをポストし、Arduinoのリセットボタンを押すまで無期限に直接低電力のスリープモードに入ります。あなたが何かをテストしていて、あなたの貴重な無料データを焼きたくない(正直に言うと各記事は実際には何も使いません)あるいはArduinoをリセットする外部回路(555タイマー?RTC割り込み?加速度センサー割り込み?温度センサー)中断しますか?ボックスの外側を考えてください。実際、Burgalert 7000チュートリアルでは、PIRモーション検出器を使用してマイクロコントローラを起動する方法を示します。

次の行は、データをポストした後にシールドをオフにするか、オンのままにするかを設定します。たまにサンプリングするのであれば行のコメントを外すことで前者の選択を選ぶかもしれませんが、比較的高いサンプリングレートがある場合は、シールドをオンにしたままにしないように行をコメントアウトしたままにします。 GPRSやGPSなどを再初期化し、再度有効にします。シールドを付けたままにすると、すばやく投稿できます。

//#define turnOffShield //データの投稿後にシールドをオフにする

また、この例では、SIM7000のモジュール固有およびグローバルに固有のIMEI番号を自動的に取得し、それをdweet.ioにデータをポストするときにデバイスを識別するためのデバイスID(または必要に応じて「名前」)として使用します。 。あなたが望むならこれを変更することができます、それで私はあなたに知らせるだけだと思いました:)

データが実際にdweet.ioに送信されているかどうかを確認するには、適切な情報を入力してURLをコピーして任意のブラウザに貼り付けます。

dweet.io/get/latest/dweet/for/{deviceID}

ここで{deviceID}は、Arduinoが見つけた直後の最初の部分にシリアルモニタに表示されているIMEI番号に置き換えてください。ブラウザにそのURLを入力すると、次のようなJSONレスポンスが表示されます。

{"this": "成功しました"、 "by": "getting"、 "the": "dweets"、 "with":{"thing": "112233445566778"、 "created": "2017-12-28T23: 32:39.803Z "、"コンテンツ ":{" lat ":11.223344、" long ": - 55.667788、" speed ":10、" head ":75、" alt ":330.7、" temp ":21.2、" batt ":3630}}}

「内容」を見ると、緯度、場所の経度、あなたの速度(時速キロメートル)、方向の方位(0度、北は0度)、高度(メートル)、気温(* C)コードに変換することができます)、およびミリボルト単位の電源電圧(VBAT、バッテリの電圧)。 NMEAデータ文字列の詳細については、SIM7000 ATコマンドマニュアルの149ページを参照してください。

セットアップがデータをdweetに正常に送信していることを確認したら、ダッシュボードを設定して、すべてのデータを素敵なインターフェイスに表示しましょう。

ステップ4:Freeboard.ioの設定

このチュートリアルでは、PubNubやdweetなどの多数のクラウドプラットフォーム、およびJSONやMQTTなどの他の機能と接続できる、本当にクールなIoTダッシュボードであるfreeboard.ioを使用します。ご想像のとおり、前のセクションのコード例で使用されているdweet.ioも使用します。重要な注意として、freeboard.ioのペインのドラッグはChromeでは機能しないようであるため、代わりにFireboxまたはMicrosoft Edgeを使用してください。そうでない場合は、画面上のアイテムを並べ替えることが本当の「枠」になる可能性があります。

アカウントとデバイスの設定

  • あなたがする必要がある最初の事はfreeboard.ioホームページの赤い「今すぐ始める」ボタンをクリックしてアカウントを作成し、資格情報を入力し、そして「私のアカウントを作成」をクリックすることです。新しいアカウントを確認するEメー​​ル通知が届きます。
  • ホームページの右上にあるLoginをクリックすると、サインイン後に自分の "freeboards"が表示されます。これは、プロジェクトから設定したダッシュボードです。アカウントが新規の場合は、ここには何も表示されないので、新しいプロジェクト名を入力して右上の近くにあるCreate Newをクリックします。これで空のダッシュボードが表示され、そこで好きなようにインターフェースを設定できます。フリーボードでは、さまざまな「ペイン」を設定できます。各ペインには、データを何らかの方法で表示するグラフ、マップ、ゲージなどのような単一または複数の「ウィジェット」を含めることができます。
  • 私たちが今する必要がある最初のことはあなたのArduino + LTEシールドであるデータの実際のソースをセットアップすることです。これを行うには、データソースの右上にある追加をクリックします。次に、「Dweet.io」を選択して、「名前」フィールドに任意の名前を入力します。ただし、「Thing Name」フィールドには、任意の名前ではなくシールドのIMEI番号を入力するようにしてください。これは、freeboardがdweetからデータを取得するために使用するものだからです。
  • 保存をクリックすると、デバイスがデータソースの下に表示され、最後にデータがdweetに送信された時刻が表示されます。更新ボタンをクリックして最新の値を確認することもできますが、フリーボードは自動的に更新されるため、通常はこのボタンを使用する必要はありません。

ダッシュボード設定

それでは、実際に画面に表示したい鐘と笛を設定する方法を見てみましょう。

  • ペインを追加するには、左上のADD PANEボタンをクリックすると画面に小さなウィンドウが追加されます。ただし、ウィジェットを追加していないので、まだ何もありません。
  • ウィジェットを追加するには、ペインの小さい「+」ボタンをクリックしてください。これにより、さまざまなウィジェットオプションを含むドロップダウンメニューが表示されます。 GPSによる追跡を行うので、「Google Map」ウィジェットを選択しましょう。その後、緯度と経度という2つのフィールドが表示されます。これらを正しく記入するためには、あなたのデバイスはすでにdweetに投稿されている必要があります。それがあれば、 "+ Datasource"をクリックし、データソース( "SIM7000 GPS Tracker")をクリックし、次に "lat"をクリックすることができます。これは、dweetへの投稿時にシールドが使用する変数名です。経度フィールドについても同じ手順を繰り返し、地図上でデータポイント間に線を引いて以前の位置をマークする場合は、下部にあるスライダをクリックします。
  • 今、あなたはあなたのおおよその位置の小さな地図を見るべきです!マップが機能するかどうかをテストするには、シリアルモニタに印刷されたdweet URLの緯度/経度の値の小数点以下の最初の桁を変更して、現在のGPS緯度/経度をわずかに異なる値に変更してみます。シールドがデータを投稿したときのArduino IDE。微調整した後、URLをコピーして貼り付け、ブラウザで実行してください。

dweet.io/dweet/for/112233445566778?lat=11.223344&long=-55.667788&speed=0&head=10&alt=324.8&temp=22.88&batt=3629

  • 今すぐフリーボードに戻ると、あなたはそれがあなたの微調整された位置をグラフ化し、ポイントの間にオレンジ色の線を引いたのを見るはずです!クールなものでしょ?だから私たちはあなたがリアルタイムで、またはあなたの冒険が終わった後にあなたがフリーボードでそれを見るために私達のGPSトラッカーがdweetに位置データを送るという写真を得ると思います

補足

私たちの小さなGPSトラッカーは緯度/経度のデータだけでなく高度、速度、方位、および温度も送信するので、ダッシュボードをよりカラフルにするためにいくつかのウィジェットを追加しましょう。

  • 新しいペインを追加し、次に新しいペイン内にゲージを追加することから始めましょう。ペイン内の「+」ボタンをクリックして、「Gauge」を選択します。前と同じように、データソースを使用して、このゲージの取得に関心のあるデータとして「speed」を選択します。ダッシュボードに素晴らしいゲージが表示されるはずです。
  • 高度と気温の値に対してこれを繰り返します。
  • それでは、見出しとして、代わりに "Pointer"を追加しましょう。これは基本的にコンパスです。なぜなら、それは0度で上向き(北)を向き始め、正の向きになるように時計回りに回転するからです。完璧!
  • ペインのサイズを変更するには、マップを含むペインの上にカーソルを合わせると、右上に小さなレンチ記号が表示されます。それをクリックしてペインのタイトルを入力し、「列」の下に「2」を入力してペインの幅を広げます。
  • ペインの位置を変更するには、それらをドラッグしてください。基本的には単なる折れ線グラフである「スパークライン」を追加して実験することもできますので、最新のデータだけでなく履歴データも見ることができます。

フィールドトリップに出かける準備ができているので、楽しんでください。

ステップ5:テスト

あなたの設定をテストするために、私はあなたがより高い解像度であなたの旅を捉えることができるように10-20秒のようなより低い値にサンプリング時間を設定することを勧めます。シールドがスリープ状態にならないように、 "turnOffShield"変数もコメントアウトしたままにします。これにより、データをすばやく連続して投稿することができます。

コードをArduinoにアップロードしたら、Arduinoに電源を供給するためのバッテリーパック(7-12V)を入手するか、単に車のUSBアダプターを使用してArduinoを接続します。前述のように、シールドに3.7VのLiPoバッテリーを接続する必要もあります。上の写真に表示されているシールドは古いバージョンで、LiPoバッテリーをサポートしていませんでしたが、新しいバージョンでは必要になりました。

次に、フリーボードをどこかに開くと、戻ったときに結果が表示されます。 Arduinoを接続したら、行ってもいいですね。運転を始め、コーヒーを飲み、家に帰ると、データがフリーボードに表示されるはずです。あなたが本当に欲しいなら(私は運転中にこれをお勧めしません…)あなたの友人が車を運転しているときにリアルタイムであなたの電話でフリーボードのデータを見ることができます。楽しいもの!

ステップ6:結果

このテストのために、私の父と私はTrader Joe's(omnomnomnom …)でいくつかのチキンドラムを買いに行きました、そして我々はいくつかのかなり正確なデータを集めました。私はデバイスに10秒毎にデータを送信させました、そして旅行からの最高速度は私達がずっとスピードメーターをずっと監視していたのでかなり正確である約92khm(57mph)でした。 LTEシールドは間違いなくその仕事をきわめてうまく行い、データをクラウドに非常に迅速に送信します。ここまでは順調ですね!

しかし、おそらくそれほど良くないニュースは、フリーボード上の地図ウィジェットが私が当初考えていたほど素晴らしくないということです。それはあなたがあなたのマウスの位置を動かすことを可能にせず、それは最後の位置を中心にとどまるのでそれは車のGPSトラッカーのようなものには素晴らしいです。長い旅でした。

このチュートリアルでは、LTEシールドをGPSトラッカーおよびデータロガーとして使用する方法と、freeboard.ioでデータをすばやく表示する方法を学びました。今すぐあなたの想像力を使って、あなた自身のプロジェクトにそれを適用してください。さらにシールドを追加して、これを低電力のソーラーデータロガーに変えることもできます。 (私は実際にそれについてのチュートリアルを将来実行することを計画しているかもしれません!)フリーボードマップの制限のため、dweetからデータを取得し、Googleマップ上でトラッカーの位置をグラフで表示できるようにする、独自のAndroidアプリの作成方法に関するまったく新しいチュートリアルを作成することも計画しています。一時停止し、あなたの旅行のための機能を停止します!乞うご期待!

  • あなたがこのプロジェクトが好きなら、それを心にしてください!
  • 新しいチュートリアルに関する質問、コメント、提案がある場合、またはこのプロジェクトを自分で試した場合は、以下にコメントしてください。
  • 私の最新のArduinoプロジェクトで最新情報を入手するには、ここでInstructablesをフォローする、YouTubeチャンネルを購読する、またはTwitterでフォローする。私は私が学んだことを共有することに情熱を持っている若いエンジニアなので、もうすぐチュートリアルがあるはずです。
  • オープンソースのハードウェアを共有し、教育目的でそれらを徹底的に文書化する際に私がしていることをサポートしたい場合は、Amazon.comで独自のシールドを購入して試してみることを検討してください。