IoTスマートプラグソケットSDKソリューション

スマートパグ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:通信失敗
スマートプラグを接続するためのBlockmethods. 以下は、スマートプラグプロセスの完全な構成です。:

ステップ1

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

ステップ2

[[MKSocketManager sharedInstance]readSmartPlugDevice
InformationWithSucBlock:^(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プロトコルドキュメントを参照してください。Call– (ボイド)サブスクリプション:(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プロジェクトを呼び出します:

を含む:アプリ」,’:mokosupport ’

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

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

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

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

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_
    接続する
  • 接続に失敗しました:MokoConstants.CONN_STATUS_FAILED
  • 接続タイムアウト:MokoConstants.CONN_STATUS_TIMEOUT

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

放送アクション:MokoConstants.ACTION_AP_SET_DATA_
応答 応答を得る:
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)

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

2、サーバーに接続する

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

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

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

}

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

放送アクション:MokoConstants.ACTION_MQTT_CONNECTION

接続状態:

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

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

放送アクション:MokoConstants.ACTION_MQTT_RECEIVE

データを返す:

  • データトピックを返す:
MokoConstants.EXTRA_MQTT_RECEIVE_
トピック
  • データメッセージを返す:
MokoConstants.EXTRA_MQTT_RECEIVE_
メッセージ

戻りデータは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()

5.ログをSDカードに保存

SDKはSDカード機能に保存されたログを統合します, httpsと呼ばれます://github.com/elvishew/xLog MokoSupport.getInstanceの初期化メソッド().初期化(
getApplicationContext()) SDカードに保存されたフォルダ名とファイル名は変更可能.

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

}

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

メソッドを呼び出す:

LogModule.v(「ログ情報」);
LogModule.d(「ログ情報」);
LogModule.i(「ログ情報」);
LogModule.w(「ログ情報」);
LogModule.e(「ログ情報」);

専門家に相談する