知慧華雲:2019 モノのインターネット (IoT) のフロントエンド戦略計画

知慧華雲:2019 モノのインターネット (IoT) のフロントエンド戦略計画

[[261992]]

モノのインターネットは、インテリジェント知覚、認識技術、ユビキタスコンピューティングなどの通信知覚技術を通じてネットワーク統合に広く使用されています。そのため、コンピュータとインターネットに続く世界の情報産業の発展の第三の波と呼ばれています。 Huayun Dataの「Smart Huayun」コラムでは、「2019年最前線戦略計画」に関する連載記事をお届けします。今号では、2019 年のフロントエンド戦略計画におけるモノのインターネット (IOT) について説明します。

基礎: IoT の 3 つのレイヤー

始める前に、モノのインターネットの基本について簡単に紹介しましょう。 Web 開発の経験がある方であれば、次の図が CS アーキテクチャであることをご存知でしょう。

IoT システムと比較すると、これは追加のハードウェア レイヤーとオプションの調整レイヤーにすぎません。

このハードウェア レイヤーは、IoT アプリケーションが Web アプリケーションよりも複雑であると判断します。ほとんどの Web アプリケーションの場合、クライアントは携帯電話、コンピューター、タブレットなどのデバイスであり、強力な処理能力を備えているため、追加の要素を考慮する必要はありません。

IoT アプリケーションでは、デバイス上の MCU の処理能力を考慮し、その処理能力と使用環境に応じて異なる通信プロトコルを使用する必要があります。たとえば、一部のデバイスでは CoAP プロトコルを使用する必要があります。一部のデバイスにはネットワーク機能が搭載されていないため、インターネットに接続できる補助レイヤーの使用を検討したり、低電力 Bluetooth、赤外線、Zigbee などの短距離無線伝送プロトコルを使用したりする必要があります。

モノのインターネット分野におけるJavaScriptの発展

2年前、NodeJS はすでに IoT アプリケーションを実現する可能性を秘めていました。当時、IoT プロトコル MQTT と CoAP 用のライブラリはすでに存在していました。当時は大規模なアプリケーション向けの開発標準が不足していたため、あまり良いものではなかったのですが、この点で JavaScript の将来性はすでに見えていました。

[[261994]]

1 年以上前、Ionic がまだ正式にリリースされていなかった頃、このフレームワークは本当に優れていました。一連の UI が付属し、NgCordova を使用して一連の Cordova プラグインが統合されていました。このフレームワークを IoT アプリケーション開発に使用するには、BLE や MQTT などのネイティブ プラグインも必要です。

その後、ARM プロセッサ上で Node.js を実行するために Node.js をコンパイルする必要がなくなりました。また、JavaScript を直接実行できる Tessel、Espruino、Kinoma Create、Ruff などの開発ボードもすでにあります。 Samsung はまた、より多くの組み込みデバイスが JavaScript を開発言語として使用できるようにする iot.js もリリースしました。

ハードウェア上で JavaScript が使用され始めたのには、Web の開発者が最も多く、JavaScript は簡単に始められるという事実など、さまざまな理由があります。

さて、今回は 1 つの言語だけで、3 つのレベルすべてで JavaScript を使用できるようになりました。

1つの言語でIoTアプリケーションを開発: JavaScript

Node.js + Node-CoAP + MQTT.js + MongoDB + Express を使用して、複数のプロトコルをサポートする IoT を構築します。

ただし、上の写真は IoT の完全版であり、コードは当然 GitHub: Lan にあります。サーバーとしての Node.js の能力は実証されています。ハイブリッド アプリケーションでも、テストに耐えることができます。ハイブリッド アプリケーションを使用すると、携帯電話でグラフを作成するのは簡単です (データを取得して表示するだけです)。

デモ

Raspberry Pi はシリアルポートを介して PM2.5 センサーデータを受信し、IO を介してブザーとモーターを制御し、MQTT を介してクラウドサーバーと対話します。 wiring-pi、serialpor、MQTT ライブラリに依存します。

  1. 定数 COM = require('serialport');
  2. const port = new COM('/dev/ttyAMAO', { ボーレート: 9600 });
  3.  
  4. ポート。 on ('データ'、関数(データ) {
  5. データハンドラ(データ);
  6. }

このコードは非常にシンプルです。シリアル ポート ライブラリを導入してシリアル ポートにバインドし、両側のボー レートが一致していることを確認します。次に、データが到着するとポートにイベントが発生し、データが処理されます。また、データ損失の問題を考慮する必要があります。この問題は現実に頻繁に発生しており、ハードウェアに携わる人であればこの問題について深く理解しているかもしれません。

  1. const wpi = require('wiring-pi')
  2. ブザー = 7;
  3. wpi.setup('wpi')
  4.  
  5. wpi.pinMode(BUZZER、 wpi.OUTPUT );
  6. wpi.digitalWrite(ブザー、wpi.HIGH);
  7. wpi.digitalWrite(ブザー、wpi.LOW);
  8. wpi.digitalRead(ブザー);

上記のコードは、通常、ハードウェア開発者がコードを記述する方法です。まず動作モードを設定し、デジタルデータの書き込みと読み取りを行います。 js を使用してデバイス側のコードを記述するには、ハードウェアに関する知識がまだ必要であり、そうでないと効率は高くなりません。

  1. 定数 mqtt = require('mqtt')
  2. const クライアント = mqtt。 connect ('mqtt://<ip:port>');
  3.  
  4. クライアントをサブスクライブします('/car');
  5. client.on ('message',関数(トピック, メッセージ){
  6. if(トピック === '/car') {
  7. メッセージハンドラ(message.toString());
  8. }
  9. });

MQTT 部分については、パッケージをインポートし、MQTT プロキシ アドレスと IP ポートを入力するだけです。車の制御指示を知るには、車に関連するすべてのイベントを登録するだけで済みます。誰かがプロキシに指示を送信すると、プロキシはそれを自動的に転送します。

使用されるクラウド サーバーは ECS であり、利便性を高めるために追加のパブリック IP が備わっています。データ転送にはMQTTを使用します。データストレージでは、MySQL、MongoDB、Redis など、データの種類に応じてさまざまなデータベースを選択できます。フロントエンドの表示は高速です。主に mosca、mysql、mongo、redis、express に依存しており、タイプに応じてストレージに異なるデータベースを選択します。

ヒント

ハードウェア製品を作る場合、それが品質の高い製品となるためには長い時間がかかります。まず、市場に行ってモデルを選択する必要があり、その後の購入サイクルは注文数量に応じて決定されます。センサーのサプライヤーは多くありません。比較したい場合は、それらを購入し、検証とテストに多くの時間を費やす必要があり、これは長いプロセスです。製品が完成した後は、評価、認証、テストを繰り返す必要があり、長い時間がかかります。このプロセス全体により、ハードウェア開発サイクルは非常に長くなります。

MagicLight は、Amazon で非常によく売れている Wi-Fi 制御のランプです。しかし、このランプには欠点があると思います。それは、携帯電話でしか制御できず、壁のスイッチでは制御できないことです。これはユーザーエクスペリエンスにおける大きな問題です。スイッチと携帯電話の両方を制御したい場合は、リンクを作成する必要があります。

そこで、物理的な構造を維持しながら携帯電話で制御できるスイッチを作った人がいました。しかし、WiFi 部分を動作させ続けるには、電流が流れ、ループが必要です。つまり、ライトがオフになっている場合でも、電流は流れ続けるため、Wi-Fi の制御回路は通過できます。これは、単線活線スイッチの問題であり、現時点では解決できません。

IoT アプリケーションにおけるもう 1 つの非常に重要なポイントは、ユーザーのニーズを満たすことです。経験上の問題を解決するためであろうと、何らかの利益をもたらすためであろうと、業界の問題点を解決することは有意義です。

<<:  大手企業はクラウドコンピューティング業界での競争に力を入れている

>>:  SDN技術の主な応用シナリオ

推薦する

ウェブマスターは障壁を巧みに越えて優れた仮想ホストを選択する

ウェブサイトの構築には多くの障壁があります。プログラムの選択、ウェブサイトのデザイン、ページレイアウ...

インテリジェントな変革を進めている企業は、将来に向けて新たなハイブリッド クラウド IT の勢いをどのように構築できるでしょうか?

デジタル経済の台頭、インターネットビジネスモデルの変革、そして現在の経済環境の複雑化により、伝統的な...

DevOps とクラウド コンピューティングが共に重要な理由

ソフトウェアの特徴は、ソフトであることです。たとえば、折りたたみ式の携帯電話とスマートフォンを比較し...

US クラウド サーバー\US VPS 推奨「トップ」マーチャント「kryptcloud」

Kryptcloudは、1998年に米国ロサンゼルスで設立されたKrypt直系のクラウドサーバーブラ...

簡単な議論: タレントウェブサイトの革新的な収益モデル

タレントサイトといえば、現在多くの個人ウェブマスターが管理が難しいと語っています。タレントサイトを収...

Google翻訳はまもなく絵文字翻訳をサポートする予定

Google は本日、Google 翻訳が絵文字翻訳をサポートすることを発表しましたが、この機能は現...

中国ブログネットワークは無料ユーザーデータをすべて削除し、一定期間お別れを告げる

BlogCN無料ブログのデータが削除され、ネットユーザーは懐かしむ新快報記者 唐培陽中国のブログネッ...

anynode - 月額 4 ドル / 2 IP / 1 GB メモリ / 60 GB ハードディスク / 1.5 TB トラフィック

anynode は年末に設立され、今年前半に業務を開始しました。独自の ASN を持ち、Active...

エッジコンピューティングによってもたらされる新たなセキュリティリスクを排除する方法

現在、エッジコンピューティングの適用範囲はますます広がっています。エッジ コンピューティング アプリ...

Baidu の発表に疑問:Baidu が公開したアルゴリズムはどの程度真実なのか?

みなさんこんにちは。私はMuzi Chengzhouです。 SEO を行う際、SEO をうまく行うに...

「Baidu ジャンプリンクを使用してブラックリンクを吊るすことに関する声明」からの考察

百度は18日、「百度のジャンプリンクを利用してブラックリンクを掛ける問題についての声明」という記事を...

domain.com、ドメイン名5ドル/年、長年登録可能.comと.net

低価格の .com および .net ドメイン名を登録したい方へ: EIG グループ傘下の doma...

DigitalOcean アカウントの削除に関する注意事項

私は11か月間、何の問題もなくデジタルオーシャンを使用しており、多くの友人に購入を勧めました。問題が...

JVM クラスロードメカニズムについて話す [非専門家]

[[396813]]クラスローディングメカニズムクラスは、一度にすべてのクラスをロードするのではなく...

ブロックチェーンと統合されたエッジコンピューティング: モノのインターネットの次のトレンド?

[[280867]]エッジコンピューティングとは、分散コンピューティング技術の一種で、IoTデバイス...