これは非常に広い質問ですが、他の人やあなたにも役立つことを期待して、いくつかの一般的な指針を示します(したがって、すでに知っていることを投稿した場合は、私の謝罪を受け入れてください)。
センサーの読み取りについて質問している場合、これはテレメトリであり、必ずしもIoTではありません。スタンドアロンPCが測定値を読み取って表示する多くのプロジェクトをコーディングしました。
接続されたハードウェアも制御したい場合、これはSCADAです。ここでも、必ずしもインターネットに接続する必要はありません。
これは、一般的なIoTに非常に良い感触を与えるSCADAの図です。図のPLCは、IoT対応デバイスのセンサーと制御であることに注意してください。
ハードウェアの推奨事項で、センサーとコントローラーのハードウェア表彰を依頼できます。
また、コードを取得すると、Stack Overflowで問題に関するアドバイスを得ることができます。
一般的に、業界向けのIoTにはクライアント/サーバーモデルが含まれ、クライアントはハードウェアデバイスを測定/制御し、サーバーにコマンドを報告/受信します。また、サーバーには通常データベースがあり、管理とアラームのレポートを生成できます(受信したデータに基づいてリモートハードウェアに再構成/シャットダウンを指示する場合もあります)。
ふew!それは邪魔にならないイントロです。次に、手を汚します。
コーディングの要点を知りたい場合は、ソケットを調べて、TCPとUDPの違いを理解してください。
幸いなことに、何十年もの間、よりトリッキーなもののほとんどがライブラリにラップされており、RESTfulサービスについて読むことをお勧めします。言語に応じて、無料のオンラインチュートリアル、コース、ビデオが多数あります。Cは従来の埋め込み言語であり、一部はC ++を使用していますが、もちろん、知っている/使い慣れたものを使用してください。Pythonは非常に人気があり、習得が簡単であるだけでなく、Raspberry Piの推奨言語でもあります。
個人的には、バグを簡単に取り除くことができるため、コンパイルされた言語をインタープリターよりも優先しますが、選択は完全にあなた次第です。USB、イーサネット、および業界では非常に一般的なシリアルポートを介して周辺機器にアクセスできることを確認してください。
サーバー側では、世界のサーバーの90%以上がまだPHPで実行されています。ただし、NodeJSの使用は主にブラウザーアプリをコーディングする人々から取り入れられており、現在JavaScriptでしか実行できず、2つの言語を学習したくありません。ファイルシステムと周辺機器にアクセスするブラウザーコードに制限があるため、ブラウザーベースのIoTアプリの開発はお勧めしません(ただし、スマートフォン向けに開発する場合は、Cordovaのようなものについて言及します)。
開始するには、Raspberry Pi(PythonまたはCでコーディング)をお勧めします。
そして、私は*非常に*センサーハットをお勧めします。これはほんの一例ですが、高価ではなく、
- ジャイロスコープ–角速度センサー:+/- 245/500 / 2000dps加速度計
- 線形加速度センサー:+/- 2/4/8/16 g
- 磁力計-磁気センサー:+/- 4/8/12/16
- ガウス気圧計:260〜1260 hPaの絶対範囲(精度は温度と圧力に依存し、通常の状態では+/- 0.1 hPa)
- 温度センサー(0〜65℃の範囲で+/- 2℃まで正確な温度)
- 相対湿度センサー(20-80%rH範囲で+/- 4.5%の精度、15-40 degC範囲で+/- 0.5 degCの精度)
- 8x8 RGB LEDマトリクスディスプレイ
- 小さな5ボタンジョイスティック
これにより、データを収集してサーバーに報告できます。データを受信して表示するための無料サービスをオンラインで見つけることができる場合があります。私は他のSOサイトでいくつか見ましたが、どこを忘れてしまいました。
しかし、おそらく独自のサーバーをコーディングする必要があります。プログラミング言語としてPHPをお勧めします。Linuxの場合、LAMP(Linux、Apache、Mysql、PHP)が十分に提供されています。Windowsの場合、WAMP(Windows…など)をインストールする必要があります。
あなたが選ぶことができます。私が使用しているXAMPPを 10年以上にわたって産業用アプリケーションで。Mysqlを使用する必要はありません。Sqliteも同様に機能します(6年前の私自身のSOの質問、「SqliteまたはMySql?どうやって決定するのですか?」)のシャレスプラグ。CRUDについても学ぶ必要があります。
クライアント/センサーから受信したデータに基づいて、単純なもの(表示:「温度が高すぎる」、これは産業システムのバルブを閉じることになるかもしれません)でも、コマンドを送り返すことができます。
アラームをリアルタイムで発生させたい場合があります(温度が高すぎることを知らせるメールを送信します)。
また、レポートの生成についても検討する必要があります。受信したデータを示す表から始めます。チャート、または何かより凝ったものを検討してください。カンマ区切り値(CSV)にエクスポートするオプションを追加して、エンドユーザーがデータをスプレッドシートにインポートして、さらに分析および操作できるようにします。
手の込んだレポートが必要だと判断した場合は、PHPでそれを行うことができますが、それから数十年後、私は今、クライアント側のレポートに関する多くのことをブラウザで行うようになりました。
一般的な原則については、単一ページアプリケーションとAJAXの概要を理解して ください。私は個人的に多くの調査を行い、プログラミング言語としてGoogleのAngularJSを選択しました(多くのチュートリアルと優れたサポートがあります)が、プレーンなJS、Jqueryなどを自由に使用できます。
ブラウザーのものもコーディングすることに決めた場合、サーバー側でNodeJを使用することもできるので、新しいプログラミング言語を1つ習得するだけで済みます。
選択肢が多すぎますか?ごめんなさい :-(
これでアドバイスが得られたことを願っていますが、お気軽に質問して、ここに一般的なアドバイスがない場合はお知らせください。