アリババクラウドHaaS100IoT開発委員会研究ノート(4)予備的なライトアプリケーション-javascriptを使用してアリババクラウドIoTプラットフォームに接続します

要約:この記事では、JavaScriptの「ライトアプリケーション」を使用してAlibaba Cloud IoTプラットフォームに接続し、データの一部を報告する方法について説明します。以前の記事の構造は、ソフトウェア環境のインストールから引き続き継続されているため、ゼロベースの学生は、この記事を読んだ後、各ステップの実行方法を知ることができます。

目次

目的

1HaaS100ライトアプリケーションファームウェアの操作手順

2. Alibaba Cloud LifeIoTプラットフォームの新しいテスト機器の手順

2.1新しいプロジェクト

2.2新製品

2.3関数の定義

2.4支払い

2.5クラウドデバイスの「3つの要素」を表示する

3.javascriptプログラムをHaaS100開発ボードに転送します

3.1アンプツールをダウンロードする

3.2USBシリアルポートモジュールを接続します

3.3app.jsファイルとapp.jsonファイルを変更します。

3.4プログラムをコンパイルする

4.IoTクラウドプラットフォームログを表示する

5。結論


 


ハードウェア:HaaS100IoT開発ボード

ソフトウェア:amp-win(コマンドラインバージョン)、aos-cube(コマンドラインバージョン)、win7x64システム

目的

「ライトアプリケーション」方式を使用して、HaaS100開発ボードをプログラムし、属性をAlibaba CloudIoTプラットフォームに報告します。次の図は、レポートが成功した後のログのスクリーンショットです。

 

1HaaS100ライトアプリケーションファームウェアの操作手順

次の6つの手順の目的は、プログラミング環境をセットアップし、「ライトアプリケーション」操作をサポートするファームウェアの書き込みを開始することです。このファームウェアは、HaaS100(ボードの左上隅にあるMicro USBインターフェイス)に付属のUSBシリアルポートを介して書き込みます。


次の手順があります。詳細については、次のリンクを参照してください。AlibabaCloud HaaS100 IoT開発ボードスタディノート(3)予備ライトアプリケーション-jsを使用してライトを点滅させる


1.1aos-cubeプログラミング環境のセットアップ

1.2ライトアプリケーションの動作モードについて学ぶ

1.3 aos-cubeを使用して、軽量アプリケーションをコンパイルし、ファームウェアを実行します

1.4HaaS100開発ボードに書き込む

 

プログラミングが成功した兆候は、GPIO47ピンを3.3Vで短絡することです。リセットボタン(短いキーハンドル)を押すと、2列インジケーターライトのLED2が断続的に点滅します。

このとき、開発委員会はjsプログラムの受信を待っている状態です。

このステップの後、クラウドプラットフォームの準備ができておらず、「クラウド」と「ボード」が正常に通信するためにいくつかの設定が必要になるため、jsプログラムの作成について心配する必要はありません。

 

2. Alibaba Cloud LifeIoTプラットフォームの新しいテスト機器の手順

新しいテストデバイスがAlibabaCloud Life Internet of Thingsプラットフォームに追加され、クラウド内のHaaS100開発ボードに対応する「thing」があります。この「thing」にはいくつかの属性があります。HaaS100開発ボードがアップロードに属性を報告する場合、クラウド内の「モノ」は対応するデータ変更を行いました。

特定の手順を見てみましょう。

2.1新しいプロジェクト

まず、「Alibaba Cloud Life Internet of Things Platform」にログインし、「haas life test」など、自分で決めた名前の新しいプロジェクトを追加します。

この記事の執筆中に、ライフIoTプラットフォームが改訂されました!アリババクラウドIoTプラットフォームと統合されているようです。

ワークベンチを選択し、IoTデバイス管理に入ります

 

2.2新製品

カテゴリ選択電気技師照明---光

ノードタイプはデバイスに直接接続され、ネットワークモードはwifiであり、データ形式はICA標準データ形式です。

確認後、デバイスを追加できることを確認します。言い換えれば、あなたはあなた自身の製品を定義しましたが、実際の製品のクラウドに「影」をまだ確立していません。

2.3関数の定義

「定義済みオブジェクトモデルに移動」を選択します。

機能の定義は、クラウド内の「モノ」に実際のIoT製品と同じ機能の説明を持たせ、各属性に名前を付けることです。たとえば、「ライト」には、モード、明るさ、タイプ、さらには色などの属性を含めることができます。

製品にさらに多くの属性と機能がある場合は、対応する機能をカスタマイズして追加できます。

この手順では、テスト目的でのみ変更は行われません。

次に、デバイスを追加します。製品で、追加するデバイスの種類を選択します。いずれかのデバイスを選択すると、このデバイスには上記の機能定義があります。

2.4支払い

各クラウドプラットフォームの「モノ」は、現実世界の「モノ」と同じように、価値属性を持っており、各「モノ」にも一定の支払いが必要です。

購入インターフェースから購入してお支払いください。大量にご利用の場合は、アリの継続的な企業割引推進活動にご参加ください。

 

 

2.5クラウドデバイスの「3つの要素」を表示する

クラウドデバイス、つまり「モノ」にはデジタル「ID」があります。この証明書には、人が住所、名前、ID番号を持っているのと同じように、ProductKey、DeviceName、DeviceSecretの3つの情報があります。ただし、通信のセキュリティのために、Internet of Thingsのデータ送信は暗号化された送信を使用し、このID番号は暗号化されています。

 

 

デバイスページの「表示」を選択すると、このIDカードの情報を表示できます。

次の3つの重要なパラメータ、つまりProductKey、DeviceName、DeviceSecretが表示されます。

この「IDカード」をAlibabaCloud IoTプラットフォームに登録すると、このIDカードを持っているデバイスのみが対応できるようになります。したがって、ある程度、Alibaba Cloud IoTプラットフォームに設定された「もの」は、実際にはクラウド内の現実世界のデバイスの「影」のようなものです。

 

この「IDカード」を覚えて、IoT開発ボード内で3つの重要な情報を書き込むと、この開発ボードは、Alibaba CloudIoTプラットフォームの「シャドウ」に対応します。

では、IDカードを開発ボードに書き込む方法は?次のステップを参照してください。

 

3.javascriptプログラムをHaaS100開発ボードに転送します

javascriptの「ライトアプリケーション」開発モデルがなくなる前に、より複雑なコンパイルおよびサポート環境を構築する必要があります。この一見単純なステップを実装するには、多くの時間と経験が必要です。


https://blog.csdn.net/youngwah292/article/details/104124314を参照して、MQTTと複雑な中間プロセスに関する知識理解できます


さて、これはすべて簡単です。

前回の記事では、コマンドラインバージョンのampツールを使用してjsプログラムを開発ボードに転送する方法について詳しく紹介しました。リンクhttps://blog.csdn.net/youngwah292/article/details/109540717を参照できます。

この記事では基本的な手順のみを紹介します。デフォルトでは、誰もがアンプツールの使用法を習得しています。

3.1アンプツールをダウンロードする

下の青いフォントをクリックしてダウンロードしてください。または、クリックして公式のAlibaba Cloudドキュメントからダウンロードし、ダウンロード後にドキュメントディレクトリに解凍します。C:\ Users \ Administrator \ amp-win

アリババクラウドは、軽量アプリケーションコマンドラインツールを公式に推奨しています

3.2USBシリアルポートモジュールを接続します

下図のように配線してください。

物理的な接続図は次のとおりです。

開発ボードを接続した後、「ライトアプリケーション」の準備作業が完了し、「ライトアプリケーション」プログラムの作成を開始します

3.3app.jsファイルとapp.jsonファイルを変更します。

「ライトアプリケーション」のソースコードは、2つのファイルで配布されています。

C:\ Users \ Administrator \ amp-win \ appディレクトリにあるApp.jsとapp.json。

このプログラムは、ネットワーキングおよびレポート属性機能を提供するためのものであり、app.jsはjavascriptソースファイルです。

app.jsファイルコードは次のとおりです

var iot = require('iot');
var network = require('network');

var net = network.openNetWorkClient();
//下面这些就是阿里云生活物联网平台注册的“灯”的“身份证”信息

var productKey = 'a19xxxxxxxx';      /* your productKey */
var deviceName = 'haas-ltv1';      /* your deviceName */
var deviceSecret = 'e22735xxxxxxxxxxxxxxxxxxxxxcc2';  /* your deviceSecret */

var device;

function createDevice() {
        device = iot.device({
        productKey: productKey,
        deviceName: deviceName,
        deviceSecret: deviceSecret,
        region: 'cn-shanghai',
        success: function () {
            console.log('iot: [success] connect');
            onConnect();
        },
        fail: function () {
            console.log('iot: [failed] connect');
        }
    });

    device.on('connect', function () {
        console.log('iot: [success] iot.on(\'connect\')');
    });
    
    /* 网络断开事件 */
    device.on('disconnect', function () {
        console.log('iot: [success] iot.on(\'disconnect\')');
    });
    
    /* 关闭连接事件 */
    device.on('close', function () {
        console.log('iot: [success] iot.on(\'close\')');
    });
    
    /* 发生错误事件 */
    device.on('error', function (err) {
        throw new Error('iot: [failed] iot.on(\'error\') ' + err);
    });
    
    /* 云端设置属性事件 */
    device.on('props', function (payload) {
        console.log('iot: [success] iot.on(\'props\'), payload: ' + JSON.stringify(payload));
    });
    
    /* 云端下发服务事件 */
    device.on('service', function (id, payload) {
        console.log('iot: [success] iot.on(\'service\'), id: ' + id + ', payload: ' + JSON.stringify(payload));
    });
}


var lightSwitch = 0;
function onConnect() {
    /** post properties */
    lightSwitch = 1 - lightSwitch;
    device.postProps({
        payload: {
            LightSwitch: 'lightSwitch'
        },
        success: function () {
            console.log('iot: [success] iot.postProps');
        },
        fail: function () {
            console.log('iot: [failed] iot.postProps');
        }
    });
    /** post events */
    device.postEvent({
        id: 'Error',
        params: {
            ErrorCode: 0
        },
        success: function () {
            console.log('iot: [success] iot.postEvent');

        },
        fail: function () {
            console.log('iot: [failed] iot.postEvent');
        }
    });
}

var status = net.getStatus();
console.log('net status is: ' + status);

if (status == 'connect') {
    createDevice();
} else {
    net.on('connect', function () {
        createDevice();
    });
}

//下面的ssid和password就是你要连接的wifi用户名和密码,手机怎么连上的,你就怎么填
net.connect({
	ssid:'TP-LINK_3XXB',
	password:'zXX000XXX'
});

ファイルの最後に独自のwifi情報を追加したので、書き込みが完了した直後にインターネットに接続できることに注意してください。

ファイルの先頭には、「IDカード」情報という3つの重要なパラメータが書き込まれます。

app.jsonファイルは比較的単純で、数文しかありません。

{
    "version": "1.0.0",
    "io": {},
    "debugLevel": "DEBUG"
}

 

3.4プログラムをコンパイルする

「ライトアプリケーション」プログラムをコンパイルするには、アンプソフトウェアが必要です。このソフトウェアは、コマンドラインを介して呼び出されます。

手順3.1で、ampツールがダウンロードされ、C:\ Users \ Administrator \ amp-winフォルダーに解凍されました。ampツールは、下の図の赤いボックスで選択されたものです。ダブルクリックで直接開くことはできません。コマンドラインを入力して実行するには、cmdが必要です。

Windowsコマンドラインを開く

cdコマンドを使用してアンプツールに入ります

 

次に、シリアルポートを確認します。シリアルポートが2つあることに注意して、USBシリアルポートに対応するものを選択します。

使用される2つの命令は次のとおりです。

最初のコマンドは、現在のシリアルポート番号を表示することです

amp seriallist

2番目のコマンドは、USBシリアルポートに対応するシリアル番号で書き込むことです

amp serialput app com14

プログラミング時には、LEDライトが断続的に点滅するかどうかを確認する必要があります。点滅しない場合は、GPIO47が3.3Vに短絡しているかどうかを確認し、短絡している場合は、リセットボタンをもう一度押します。

LEDライトが断続的に点滅する場合にのみ、「ライトアプリケーション」ファームウェアが正常に実行されたことを確認して、jsプログラムの到着を待つことができます。

次のインターフェイスが表示されたら、プログラミングは成功しています。

プログラミングが成功したら、GPIO47と3.3Vの間の接続を切断し、開発ボードを通常の動作状態にしてから、リセットボタンを1回押してプログラムを開始します。

この一連の手順の後、プログラムは実行されますが、Alibaba Cloud IoTプラットフォームと正常に通信することを確認するにはどうすればよいですか?また、ログを表示するには、バックグラウンドでログインする必要があります。

 

4.IoTクラウドプラットフォームログを表示する

最近、Life Internet of Thingsプラットフォームが改訂されました。下の図を参照して、Internet ofThingsデバイス管理を選択してください。

デバイスメニューを選択すると、設計された製品がすでにオンラインになっていることがわかります。

ログを確認すると、デバイスからクラウドへのメッセージを確認できます。

詳細を表示すると、送信されたメッセージをより詳細に確認できます。

5。結論

HaaS100開発ボードは、wifiを介してインターネットに接続され、「軽量アプリケーション」方式で開発されます。これにより、より高速で効率的になります。

 

この記事の執筆中に、ライフIoTプラットフォームが改訂されました。Internet of Thingsプラットフォームと統合されているようで、インターフェースはより統合され、操作が簡単です。

イースターエッグもありますので、後で書いてみてください。

 

 

 

 

おすすめ

転載: blog.csdn.net/youngwah292/article/details/109542585