Řešení IoT Smart Plug Socket SDK

Chytrý Pug MK102
Chytrá zástrčka MK112
Inteligentní přepínač WS001-3
README.md - IOS

1. Pod složkou MKSDK pro zařízení je sada SDK pro konfiguraci inteligentní zásuvky

1.1 Chcete-li nakonfigurovat informace o serveru MQTT a informace o wifi pro připojení k inteligentní zásuvce, musíte inteligentní zástrčku přepnout do režimu AP(Přečtěte si uživatelskou příručku MokoLife): zapojte inteligentní zástrčku do zásuvky, stiskněte tlačítko pro 10 sekundy, dokud indikátor inteligentního konektoru nezačne blikat oranžově, což indikuje inteligentní konektor v režimu AP(Poznámka: Časový limit pro režim AP je 3 minut, jakmile nakonfigurujete informace na inteligentní zásuvku, ukončí režim AP). Přejděte na stránku Wlan a vyberte hotspot smart plug pro připojení, při úspěšném připojení, volání connectDeviceWithHost:přístav
connectSucBlock:připojení selhalo
Metody blokování pro připojení inteligentní zástrčky. Následuje úplná konfigurace procesu inteligentního připojení:

krok 1

[[MKSocketManager sharedInstance] connectDeviceWithHost:@ ”192.168.4.1 ″
přístav:8266
connectSucBlock:^(NSString * IP, Port NSInteger) {
//připojit úspěch
connectFailedBlock:^(Chyba NSError *) {
//připojení selhalo
}];

krok 2

[[MKSocketManager sharedInstance]readSmartPlugDevice
InformationWithSucBlock:^(id returnData) {
//Úspěch čtení informací o zařízení
} failedBlock:^(Chyba NSError *) {
//Číst informace o zařízení se nezdařilo
}];

krok 3

[[MKSocketManager sharedInstance] configMQTTServerHost:@ „Váš hostitel serveru MQTT“
přístav:přístav
connectMode:mqttServerConnectTCPMode
qos:mqttQosLevelExactlyOnce
udržet naživu:60
cleanSession:ANO
clientId:@ „Mac adresa vašeho zařízení“
uživatelské jméno:@ „Vaše uživatelské jméno serveru MQTT“
Heslo:@ „Vaše heslo k serveru MQTT“
sucBlock:^(id returnData) {
//Úspěch konfigurace
}
failedBlock:^(Chyba NSError *) {
//Konfigurace se nezdařila
}];

krok4

[[MKSocketManager sharedInstance] configWifiSSID:vaše wifi ssid
Heslo:wifi heslo
bezpečnostní:wifiSecurity_WPA2_PSK
sucBlock:^(id returnData) {
//Úspěch konfigurace
} failedBlock:^(Chyba NSError *) {
//Konfigurace se nezdařila
}];

2. Složka MKSDKForMqttServer je SDK, která konfiguruje APP a MQTTServer

2.1 MKMQTTServerManagerDelegate

@protocol MKMQTTServerManagerDelegate

(prázdnota)mqttServerManagerStateChanged:(MKMQTTSessionManagerState)Stát;
//metoda připojení delegáta státu

(prázdnota)sessionManager:(MKMQTTServerManager *)sessionManager didReceiveMessage:(NSData *)údaje k tématu:(NSString *)téma;//Přijímá data ze serveru MQTT

@konec

2.2 APP se připojí k serveru MQTT

Když je síť k dispozici,volání [[MKMQTTServerManager sharedInstance] connectMQTTServer:přístav:tls:udržet naživu:čistý:
ověř:uživatel:složit:clientId:] pro připojení vašeho serveru MQTT.

2.3 Odebírat téma

Informace o inteligentní zásuvce najdete v dokumentu protokolu MQTT. Volání - (prázdnota)předplatné:(NSArray *)topicList a - (prázdnota)odhlášení:(NSArray *)topicList pro samostatné přihlášení a odhlášení tématu.

2.4 Aplikace APP publikuje data k určitému tématu

Téma inteligentního konektoru najdete v dokumentu protokolu MQTT. - (prázdnota)sendData:(NSDictionary *)datové téma:(NSString *)téma sucBlock:(prázdnota (^)(prázdnota))sucBlock failedBlock:(prázdnota (^)(Chyba NSError *))failedBlock

README.md - Android

1.Importujte a používejte SDK

1.1 Importujte mokosupport projektu modulu

1.2 Nakonfigurujte soubor settings.gradle a zavolejte projekt mokosupport:

zahrnout ':aplikace',„:mokosupport “

1.3 Upravte soubor build.gradle hlavního projektu:

závislosti {
implementace fileTree(tobě: ‚Libs ', zahrnout: ['*.sklenice'])
realizační projekt(cesta: „: mokosupport “)
}

1.4 Importujte SDK během inicializace projektu:

veřejná třída BaseApplication rozšiřuje aplikaci { @ Přepis public void onCreate() { super.naVytvořit(); // inicializace MokoSupport.getInstance().inic(
getApplication Kontext()); } }

2.Úvod do funkce

  • Mezi metody poskytované v SDK patří: Zásuvková komunikace se zařízením WIFI, Služba připojení MQTT, odpojení, téma předplatného, odhlásit téma, post téma, záznam protokolu, atd.
  • Socket komunikaci volá SocketService;
  • Komunikaci MQTT lze volat pomocí MokoSupport.getInstance();

2.1 SocketService

Před vytvořením připojení Socket, musíte potvrdit, zda je aplikace připojena k WIFI zařízení. Připojte výchozí IP adresu 192.168.4.1, výchozí číslo portu je 8266, který lze upravit v SocketThread.

2.1.1 Inicializace

bindService(nový záměr(tento, SocketService.class), mServiceConnection, BIND_AUTO_CREATE);

Spusťte SocketService, a získejte objekt SocketService, volejte mService.startSocket() k vytvoření vlákna Socket, připojte zařízení, a vlákno čeká na odeslání zprávy po úspěšném připojení;

2.1.2 Získejte stav připojení a odpověď

1. Zjistěte stav připojení registrací vysílání:

Broadcast ACTION:MokoConstants.ACTION_AP_CONNECTION
Stav připojení:
  • Připojení bylo úspěšné:MokoConstants.CONN_STATUS_SUCCESS
  • spojovací:MokoConstants.CONN_STATUS_
    SPOJOVACÍ
  • Připojení se nezdařilo:MokoConstants.CONN_STATUS_FAILED
  • Časový limit připojení:MokoConstants.CONN_STATUS_TIMEOUT

2、Zaregistrujte vysílání a získejte odpověď na Socketovou komunikaci :

Broadcast ACTION:MokoConstants.ACTION_AP_SET_DATA_
ODEZVA Získejte odpověď:
Odpověď DeviceResponse = (DeviceResponse) intent.getSerializableExtra(MokoKonstanty.
EXTRA_AP _SET_DATA_RESPONSE);

2.1.3 Zásuvka

Odeslat data přijímá pouze řetězce ve formátu JSON
např:

1、Získejte informace o zařízení:

{
„Záhlaví“ : 4001
}

Odezva:

{
"kód" : 0,
"zpráva" : "úspěch",
"výsledek" : {
„Záhlaví“ : 4001,
„Device_function“ : „Iot_plug“,
"Název zařízení" : „Plug_one“,
„Specifikace zařízení“ : "nás",
„Device_mac“ : „11:22:33:44:55:66“,
"typ zařízení" : „1“
}
}

2、 Odešlete informace o serveru MQTT

{
„Záhlaví“ : 4002,
"hostitel" : „45,32,33,42“,
"přístav" : 1883,
„Connect_mode“ : 0,
„Uživatelské jméno“ : „DVES_USER“,
"Heslo" : „DVES_PASS“,
"udržet naživu" : 120,
„Qos“ : 2,
„Clean_session“ :1
}
Odezva:

{
"kód" : 0,
"zpráva" : "úspěch",
"výsledek" : {
„Záhlaví“ : 4002
}
}

3、Odeslat síť WIFI s konkrétním SSID

{
„Záhlaví“ : 4003,
„Wifi_ssid“ : „Fitpolo“,
„Wifi_pwd“ : „Fitpolo1234.“,
„Wifi_security“ : 3
}

Odezva:

{
"kód" : 0,
"zpráva" : "úspěch",
"výsledek" : {
„Záhlaví“ : 4003
}
}

2.2 MokoSupport

2.2.1 Připojte se k serveru MQTT

1、Vytvořte MqttAndroidClient

public void creatClient(Řetězec hostitele, Řetězcový port, Řetězec clientId, boolean tlsConnection)

public void connectMqtt(Možnosti MqttConnectOptions)
Získejte stav vytvoření podle MqttCallbackHandler a získejte server formulářů pro vrácení dat

2、Připojte se k serveru

@ Přepis
public void connectComplete(booleovské opětovné připojení, Řetězec serverURI) {

}
@ Přepis
veřejné neplatné připojení Ztraceno(Hoditelná příčina) {

}
@ Přepis
public void messageArrived(Řetězcové téma, Zpráva MqttMessage) vyvolá Výjimku {

}

3、Zjistěte stav připojení registrací vysílání:

Broadcast ACTION:MokoConstants.ACTION_MQTT_CONNECTION

Stav připojení:

  • Úspěch připojení:MokoConstants.MQTT_CONN_STATUS_
    ÚSPĚCH
  • Odpojit:MokoConstants.MQTT_CONN_STATUS_LOST

4、Získejte zpětná data ze serveru registrací vysílání

Broadcast ACTION:MokoConstants.ACTION_MQTT_RECEIVE

Vrácení dat:

  • Téma návratových dat:
MokoConstants.EXTRA_MQTT_RECEIVE_
TÉMA
  • Zpáteční datová zpráva:
MokoConstants.EXTRA_MQTT_RECEIVE_
ZPRÁVA

Vrácená data jsou ve formátu JSON,např:

{
"Jméno společnosti" : „Moko“,
"datum výroby" : „201801“,
„Product_model“ : „Plug_one“,
„Firmware_version“ : „000001“
„Device_mac“ : „11:22:33:44:55:66“
}

2.2.2 Monitor akcí

Komunikace MQTT obsahuje čtyři druhy akcí. Provést každou akci, musíte nastavit ActionListener, aby sledoval stav Akce:

veřejné výčet Akce {
/**
* Připojit akci
**/
PŘIPOJIT,
/**
* Přihlásit se k odběru
**/
PŘEDPLATIT,
/**
* Publikovat akci
**/
PUBLIKOVAT,
/**
* Odhlásit akci
**/
ODHLÁSIT ODBĚR
}

Získejte stav Akce registrací vysílání:

1、PŘIPOJIT

Broadcast ACTION:MokoConstants.ACTION_MQTT_CONNECTION
Připojení se nezdařilo:MokoConstants.MQTT_CONN_STATUS_FAILED

2、PŘEDPLATIT

Broadcast ACTION:MokoConstants.ACTION_MQTT_SUBSCRIBE
Přihlásit se k odběru tématu:MokoConstants.EXTRA_MQTT_RECEIVE_TOPIC
Stav přihlášení k odběru:MokoConstants.EXTRA_MQTT_STATE

3、PUBLIKOVAT

Broadcast ACTION:MokoConstants.ACTION_MQTT_PUBLISH
Stav publikování:MokoConstants.EXTRA_MQTT_STATE

4、ODHLÁSIT ODBĚR

Broadcast ACTION:MokoConstants.ACTION_MQTT_UNSUBSCRIBE
Stav odhlášení:MokoConstants.EXTRA_MQTT_STATE

2.2.3 Odebírat téma

MokoSupport.getInstance().předplatit(Řetězcové téma, int qos)

2.2.4 Publikovat informace

MokoSupport.getInstance().publikovat(Řetězcové téma, Zpráva MqttMessage)

2.2.5 Odhlásit téma

MokoSupport.getInstance().Odhlásit odběr(
Řetězcové téma)

2.2.6 Zjistěte, zda je MQTT připojen

MokoSupport.getInstance().je připojen()

2.2.7 Odpojení

MokoSupport.getInstance().odpojitMqtt()

5.Uložit protokol na SD kartu

SDK integruje protokol uložený na funkci SD karty, se nazývá https://github.com/elvishew/xLog metoda inicializace v MokoSupport.getInstance().inic(
getApplicationContext()) Název složky a název souboru uložený na SD kartě lze upravit.

veřejná třída LogModule {
soukromý statický konečný řetězec TAG = “mokoLife”;// název souboru
soukromý statický konečný řetězec LOG_FOLDER = “mokoLife”;// název složky

}

Strategie skladování: ukládejte pouze data dne a data z předchozího dne , soubor má příponu .bak

metoda volání:

LogModule.v(„Log info“);
LogModule.d(„Log info“);
LogModule.i(„Log info“);
LogModule.w(„Log info“);
LogModule.e(„Log info“);