IoT Smart Plug Socket SDK Solutions

スマートパグMK102
スマートプラグMK112
スマートスイッチWS001-3
README.md--IOS

1. MKSDK For Deviceフォルダーの下には、スマートプラグを構成するためのSDKがあります。

1.1 MQTTサーバー情報とWifi情報を構成してスマートプラグに接続する場合,スマートプラグをAPモードにする必要があります(MokoLifeのユーザーマニュアルを参照してください):スマートプラグを電源ソケットに差し込みます,ボタンを押して 10 スマートプラグインジケータがオレンジ色のライトで点滅するまでの秒数。スマートプラグがAPモードであることを示します。(注意:APモードのタイムアウト期間は 3 分,情報をスマートプラグに設定したら,APモードを終了します).Wlanページに入り、接続するスマートプラグホットスポットを選択します ,接続に成功したとき,connectDeviceWithHostを呼び出す:港:connectSucBlock:スマートプラグを接続するためのconnectFailedBlockメソッド以下は、スマートプラグプロセスの完全な構成です:

ステップ1

[[MKSocketManager sharedInstance] connectDeviceWithHost:@”192.168.4.1″
港:8266
connectSucBlock:^(NSString * IP, NSIntegerポート) {
//接続成功
connectFailedBlock:^(NSError *エラー) {
//通信失敗
}];

ステップ2

[[MKSocketManager sharedInstance] readSmartPlugDeviceInformationWithSucBlock:^(id returnData) {
//デバイス情報の成功を読み取ります
} failedBlock:^(NSError *エラー) {
//デバイス情報の読み取りに失敗しました
}];

step3

[[MKSocketManager sharedInstance] configMQTTServerHost:@”MQTTサーバーホスト”
港:港
connectMode:mqttServerConnectTCPMode
QoS:mqttQosLevelExactlyOnce
生き続ける:60
cleanSession:はい
クライアントID:@”デバイスのMACアドレス”
ユーザー名:@”MQTTサーバーのユーザー名”
パスワード:@”MQTTサーバーのパスワード”
sucBlock:^(id returnData) {
//設定成功
}
failedBlock:^(NSError *エラー) {
//設定に失敗しました
}];

step4

[[MKSocketManager sharedInstance] configWifiSSID:あなたのwifi ssid
パスワード:wifiパスワード
安心:wifiSecurity_WPA2_PSK
sucBlock:^(id returnData) {
//設定成功
} failedBlock:^(NSError *エラー) {
//設定に失敗しました
}];

2. MKSDKForMqttServerフォルダーは、APPおよびMQTTServerを構成するSDKです。

2.1 MKMQTTServerManagerDelegate
@protocol MKMQTTServerManagerDelegate

(ボイド)mqttServerManagerStateChanged:(MKMQTTSessionManagerState)状態;//接続状態デリゲートメソッド

(ボイド)sessionManager:(MKMQTTServerManager *)sessionManager didReceiveMessage:(NSData *)onTopicのデータ:(NSString *)トピック;//MQTTサーバーからデータを受信します

@終わり

2.2 APPはMQTTサーバーに接続します
ネットワークが利用可能な場合,コール [[MKMQTTServerManager sharedInstance] connectMQTTServer:港:tls:生き続ける:掃除:auth:ユーザー:パス:クライアントID:] MQTTサーバーに接続する.

2.3 トピックを購読
スマートプラグのトピックについては、MQTTプロトコルドキュメントを参照してください。 – (ボイド)サブスクリプション:(NSArray *)topicListおよび – (ボイド)退会:(NSArray *)トピックを個別にサブスクライブおよびサブスクライブ解除するtopicList.

2.4 APPは指定されたトピックにデータを公開します
スマートプラグのトピックについては、MQTTプロトコルドキュメントを参照してください。. – (ボイド)データを送る:(NSDictionary *)データトピック:(NSString *)トピックsucBlock:(ボイド (^)(ボイド))sucBlock failedBlock:(ボイド (^)(NSError *エラー))failedBlock

README.md-Android

1.SDKをインポートして使用する

1.1 インポートモジュールプロジェクトmokosupport

1.2 settings.gradleファイルを構成し、mokosupportプロジェクトを呼び出します:

を含む:アプリ」,’:モコサポート’

1.3 メインプロジェクトのbuild.gradleファイルを編集します:

依存関係 {
実装ファイルツリー(あなたへ: 「libs」, 含む: [「* .jar」])
実施プロジェクト(道: ‘: mokosupport ’)
}

1.4 プロジェクトの初期化中にSDKをインポートする:

パブリッククラスBaseApplicationはApplicationを拡張します {
@オーバーライド
public void onCreate() {
super.onCreate();
// 初期化
MokoSupport.getInstance().初期化(getApplicationContext());
}
}

2.機能紹介

    • SDKで提供されるメソッドには、: WIFIデバイスとのソケット通信, MQTT接続サービス, 切断, サブスクリプショントピック, トピックの登録を解除, トピックを投稿, ログ記録, 等.
    • SocketServiceによってソケット通信が呼び出されます;
    • MQTT通信はMokoSupport.getInstanceで呼び出すことができます();

2.1 SocketService

ソケット接続を作成する前に, アプリがデバイスのWIFIに接続されているかどうかを確認する必要があります. デフォルトのIPアドレスを接続する 192.168.4.1, デフォルトのポート番号は 8266, SocketThreadで変更できます.

2.1.1 初期化

bindService(新しい意図(この, SocketService.class), mServiceConnection, BIND_AUTO_CREATE);

SocketServiceを起動します。, SocketServiceオブジェクトを取得します, mService.startSocketを呼び出す() ソケットスレッドを作成する, デバイスを接続する, 接続が成功した後、スレッドはメッセージが送信されるのを待ちます;

2.1.2 接続ステータスと応答を取得する

1.ブロードキャストを登録して接続ステータスを取得します:

放送アクション:MokoConstants.ACTION_AP_CONNECTION

接続状態:

    • 接続に成功しました:MokoConstants.CONN_STATUS_SUCCESS
    • 接続する:MokoConstants.CONN_STATUS_CONNECTING
    • 接続に失敗しました:MokoConstants.CONN_STATUS_FAILED
    • 接続タイムアウト:MokoConstants.CONN_STATUS_TIMEOUT

2、ブロードキャストを登録してソケット通信応答を取得します :

放送アクション:MokoConstants.ACTION_AP_SET_DATA_RESPONSE

返事をもらう:

DeviceResponseレスポンス= (DeviceResponse) intent.getSerializableExtra(MokoConstants.EXTRA_AP_SET_DATA_RESPONSE);

2.1.3 ソケット
データの送信はJSON形式の文字列のみを受け入れます

例えば:

1、デバイス情報を取得する:

{
“ヘッダ” : 4001
}

応答:

{
“コード” : 0,
“メッセージ” : “成功”,
“結果” : {
“ヘッダ” : 4001,
“device_function” : “iot_plug”,
“装置名” : “plug_one”,
“device_specifications” : “我ら”,
“device_mac” : “11:22:33:44:55:66”,
“デバイスタイプ” : “1”
}
}

2、 MQTTサーバー情報を送信する

{
“ヘッダ” : 4002,
“ホスト” : “45.32.33.42”,
“港” : 1883,
“connect_mode” : 0,
“ユーザー名” : “DVES_USER”,
“パスワード” : “DVES_PASS”,
“生き続ける” : 120,
“QoS” : 2,
“clean_session” :1
}
応答:

{
“コード” : 0,
“メッセージ” : “成功”,
“結果” : {
“ヘッダ” : 4002
}
}

3、特定のSSIDでWIFIネットワークを送信する

{
“ヘッダ” : 4003,
“wifi_ssid” : “Fitpolo”,
“wifi_pwd” : “fitpolo1234。”,
“wifi_security” : 3
}

応答:

{
“コード” : 0,
“メッセージ” : “成功”,
“結果” : {
“ヘッダ” : 4003
}
}

2.2 MokoSupport

2.2.1 MQTTサーバーに接続する
1、MqttAndroidClientを作成する

public void creatClient(文字列ホスト, 文字列ポート, 文字列clientId, ブールtlsConnection)

2、サーバーに接続する

パブリックボイドconnectMqtt(MqttConnectOptionsオプション)
MqttCallbackHandlerに従って作成ステータスを取得し、サーバーから返されたデータを受信します

@オーバーライド
public void connectComplete(ブール再接続, 文字列serverURI) {

}
@オーバーライド
public void connectionLost(スロー可能な原因) {

}
@オーバーライド
public void messageArrived(文字列トピック, MqttMessageメッセージ) 例外をスローします {

}

3、ブロードキャストを登録して接続ステータスを取得します:

放送アクション:MokoConstants.ACTION_MQTT_CONNECTION

接続状態:

    • 接続成功:MokoConstants.MQTT_CONN_STATUS_SUCCESS
    • 切断する:MokoConstants.MQTT_CONN_STATUS_LOST

4、ブロードキャストを登録して、サーバーからの返信データを受信します

放送アクション:MokoConstants.ACTION_MQTT_RECEIVE

データを返す:

    • データトピックを返す:

MokoConstants.EXTRA_MQTT_RECEIVE_TOPIC

    • データメッセージを返す:

MokoConstants.EXTRA_MQTT_RECEIVE_MESSAGE

戻りデータはJSON形式です,例えば:

{
“会社名” : “モコ”,
“製造日” : “201801”,
“製品モデル” : “plug_one”,
“firmware_version” : “000001”
“device_mac” : “11:22:33:44:55:66”
}

2.2.2 アクションモニター
MQTT通信には4種類のアクションが含まれています. 各アクションを実行するには, アクションの状態を監視するためにActionListenerを設定する必要があります:

パブリック列挙型アクション {
/**
* 接続アクション
**/
接続する,
/**
* 購読アクション
**/
申し込む,
/**
* 公開アクション
**/
公開する,
/**
* 購読解除アクション
**/
登録解除
}

ブロードキャストを登録してアクションステータスを取得します:

1、接続する

放送アクション:MokoConstants.ACTION_MQTT_CONNECTION

接続に失敗しました:MokoConstants.MQTT_CONN_STATUS_FAILED
2、申し込む

放送アクション:MokoConstants.ACTION_MQTT_SUBSCRIBE

トピックを購読:MokoConstants.EXTRA_MQTT_RECEIVE_TOPIC
購読ステータス:MokoConstants.EXTRA_MQTT_STATE

3、公開する

放送アクション:MokoConstants.ACTION_MQTT_PUBLISH

公開ステータス:MokoConstants.EXTRA_MQTT_STATE

4、登録解除

放送アクション:MokoConstants.ACTION_MQTT_UNSUBSCRIBE

退会ステータス:MokoConstants.EXTRA_MQTT_STATE

2.2.3 トピックを購読

MokoSupport.getInstance().申し込む(文字列トピック, int qos)

2.2.4 情報を公開する

MokoSupport.getInstance().公開する(文字列トピック, MqttMessageメッセージ)

2.2.5 トピックの登録を解除

MokoSupport.getInstance().購読解除(文字列トピック)

2.2.6 MQTTが接続されているかどうかを確認する

MokoSupport.getInstance().接続されています()

2.2.7 切断

MokoSupport.getInstance().disconnectMqtt()

3.ログをSDカードに保存
SDKはSDカード機能に保存されたログを統合します, httpsと呼ばれます://github.com/elvishew/xLog

MokoSupport.getInstanceの初期化メソッド().初期化(getApplicationContext())

SDカードに保存されたフォルダ名とファイル名は変更可能.

パブリッククラスLogModule {
プライベート静的最終文字列タグ= “mokoLife”;// ファイル名
プライベート静的最終文字列LOG_FOLDER = “mokoLife”;// フォルダ名

}

ストレージ戦略: 当日のデータと前日のデータのみを保存 , ファイルの拡張子は.bakです

メソッドを呼び出す:

LogModule.v(“ログ情報”);
LogModule.d(“ログ情報”);
LogModule.i(“ログ情報”);
LogModule.w(“ログ情報”);
LogModule.e(“ログ情報”);