IoT Smart Plug Socket SDK -ratkaisut

Älymopsi MK102
Älykäs pistoke MK112
Älykäs kytkin WS001-3
README.md - IOS

1. MKSDK For Device -kansion alapuolella on SDK älypistokkeen määrittämiseksi

1.1 Jos haluat määrittää MQTT-palvelintiedot ja wifi-tiedot muodostamaan yhteyden älypistokkeeseen, sinun on tehtävä älykäs pistoke AP-tilaan(Katso MokoLife-käyttöopas): kytke älypistoke pistorasiaan, paina painiketta 10 sekunnin ajan, kunnes älykkään pistokkeen ilmaisin vilkkuu keltaisena, mikä osoittaa älykkään liittimen AP-tilaan(Merkintä: AP-tilan aikakatkaisuaika on 3 pöytäkirja, kun olet määrittänyt tiedot älyliitäntään, se lopettaa AP-tilan). Siirry Wlan-sivulle ja valitse yhdistettäväksi älykäs plug-hotspot, kun muodostat yhteyden onnistuneesti, soita connectDeviceWithHost:satamaan
connectSucBlock:yhteys epäonnistui
Lohkomenetelmät älykkään liittimen liittämiseen. Seuraava on älykkään pistokeprosessin täydellinen määritys:

vaihe 1

[[MKSocketManager sharedInstance] connectDeviceWithHost:@ ”192.168.4.1 ″
satamaan:8266
connectSucBlock:^(NSString * IP, NSInteger-portti) {
//yhdistää menestys
connectFailedBlock:^(NSError * -virhe) {
//yhteys epäonnistui
}];

vaihe 2

[[MKSocketManager sharedInstance]readSmartPlugDevice
TiedotSucBlockilla:^(id returnData) {
//Lue laitetietojen onnistuminen
} FailBlock:^(NSError * -virhe) {
//Laitteen tietojen lukeminen epäonnistui
}];

vaihe 3

[[MKSocketManager sharedInstance] configMQTTServerHost:@ ”MQTT-palvelimesi isäntä”
satamaan:satamaan
connectMode:mqttServerConnectTCPMode
qos:mqttQosLevelExactlyOnce
pitää hengissä:60
cleanSession:JOO
Asiakastunnus:@ ”Laitteesi mac-osoite”
käyttäjänimi:@ ”MQTT-palvelimen käyttäjänimesi”
Salasana:@ ”MQTT-palvelimesi salasana”
sucBlock:^(id returnData) {
//Määritä menestys
}
FailBlock:^(NSError * -virhe) {
//Määritys epäonnistui
}];

vaihe 4

[[MKSocketManager sharedInstance] configWifiSSID:wifi-tukisi
Salasana:wifi-salasana
turvallisuus:wifiSecurity_WPA2_PSK
sucBlock:^(id returnData) {
//Määritä menestys
} FailBlock:^(NSError * -virhe) {
//Määritys epäonnistui
}];

2. MKSDKForMqttServer-kansio on SDK, joka määrittää APP: n ja MQTTServer

2.1 MKMQTTServerManagerDelegate

@protocol MKMQTTServerManagerDelegate

(mitätön)mqttServerManagerStateChanged:(MKMQTTSessionManagerState)osavaltio;
//connect state delegate -menetelmä

(mitätön)sessionManager:(MKMQTTServerManager *)sessionManager didReceiveMessage:(NSData *)tiedot aiheesta:(NSString *)aihe;//Vastaanottaa tietoja MQTT-palvelimelta

@end

2.2 APP muodostaa yhteyden MQTT-palvelimeen

Kun verkko on käytettävissä,puhelu [[MKMQTTServerManager jaettuInstance] connectMQTTServer:satamaan:tls:pitää hengissä:puhdas:
todennut:käyttäjä:kulkea:Asiakastunnus:] yhdistääksesi MQTT-palvelimesi.

2.3 Tilaa aihe

Katso älyliitännän aihe MQTT-yhteysasiakirjasta. (mitätön)tilauksia:(NSArray *)topicList ja - (mitätön)tilausten peruuttaminen:(NSArray *)topicLista tilaa ja peruuta aiheen tilaaminen erikseen.

2.4 APP julkaisee tietoja määritetystä aiheesta

Katso älyliitännän aihe MQTT-yhteysasiakirjasta. - (mitätön)sendData:(NSDictionary *)data-aihe:(NSString *)aihe sucBlock:(mitätön (^)(mitätön))sucBlock FailBlock:(mitätön (^)(NSError * -virhe))FailBlock

README.md - Android

1.Tuo ja käytä SDK: ta

1.1 Tuo moduuliprojekti mokosupport

1.2 Määritä settings.gradle-tiedosto ja soita mokosupport-projekti:

sisältää ':sovellus',”:mokosupport ’

1.3 Muokkaa pääprojektin build.gradle-tiedostoa:

riippuvuudet {
toteutustiedostoPuu(sinulle: "Libs", sisältää: [’* .Jar’])
toteutushanke(polku: ”: mokosupport ’)
}

1.4 Tuo SDK projektin alustuksen aikana:

julkisen luokan BaseApplication laajentaa sovellusta { @Ohittaa public void onCreate() { super.onCreate(); // alustaminen MokoSupport.getInstance().sen sisällä(
getApplication Asiayhteys()); } }

2.Toiminnon esittely

  • SDK: n tarjoamia menetelmiä ovat: Pistokeliitäntä WIFI-laitteen kanssa, MQTT-yhteyspalvelu, katkaisu, tilauksen aihe, peruuta aihe, Lähetä aihe, lokitietue, jne.
  • Socket-palvelua kutsutaan Socket-viestinnäksi;
  • MQTT-viestintään voi soittaa MokoSupport.getInstance();

2.1 SocketService

Ennen Socket-yhteyden luomista, sinun on vahvistettava, onko APP kytketty laitteen WIFI-verkkoon. Yhdistä oletus-IP-osoite 192.168.4.1, oletusporttinumero on 8266, jota voidaan muokata SocketThreadissa.

2.1.1 Alustus

bindService(uusi Tarkoitus(Tämä, SocketService.class), mServiceConnection, BIND_AUTO_CREATE);

Käynnistä SocketService, ja hanki SocketService-objekti, soita mService.startSocket() luoda Socket-lanka, Liitä laite, ja ketju odottaa viestin lähettämistä yhteyden muodostamisen jälkeen;

2.1.2 Hanki yhteyden tila ja vastaus

1. Hanki yhteyden tila rekisteröimällä lähetys:

Lähetä ACTION:MokoConstants.ACTION_AP_CONNECTION
Yhteyden tila:
  • Yhteys onnistui:MokoConstants.CONN_STATUS_SUCCESS
  • yhdistäminen:MokoConstants.CONN_STATUS_
    LIITÄNTÄ
  • Yhteys epäonnistui:MokoConstants.CONN_STATUS_FAILED
  • Yhteyden aikakatkaisu:MokoConstants.CONN_STATUS_TIMEOUT

2、Hanki Socket-tiedonsiirtovaste rekisteröimällä lähetys :

Lähetä ACTION:MokoConstants.ACTION_AP_SET_DATA_
VASTAUS Hanki vastaus:
DeviceResponse response = (DeviceResponse) intent.getSerializableExtra(MokoConstants.
EXTRA_AP _SET_DATA_RESPONSE);

2.1.3 Pistoke

Lähetä data hyväksyy vain merkkijonot JSON-muodossa
esimerkiksi:

1、Hanki laitetiedot:

{
"Otsikko" : 4001
}

vastaus:

{
"koodi" : 0,
"viesti" : "menestys",
"tulos" : {
"Otsikko" : 4001,
"Laitteen_toiminto" : "Iot_plug",
"laitteen nimi" : "Plug_one",
"Laitteen_tiedot" : "meille",
"Device_mac" : "11:22:33:44:55:66”,
"laitetyyppi" : "1"
}
}

2、 Lähetä MQTT-palvelintiedot

{
"Otsikko" : 4002,
"Isäntä" : "45.32.33.42",
"Satama" : 1883,
"Connect_mode" : 0,
"Käyttäjänimi" : "DVES_USER",
"Salasana" : "DVES_PASS",
"pitää hengissä" : 120,
"Qos" : 2,
"Clean_session" :1
}
vastaus:

{
"koodi" : 0,
"viesti" : "menestys",
"tulos" : {
"Otsikko" : 4002
}
}

3、Lähetä WIFI-verkko tietyllä SSID: llä

{
"Otsikko" : 4003,
"Wifi_ssid" : "Fitpolo",
"Wifi_pwd" : “Fitpolo1234”.,
"Wifi_security" : 3
}

vastaus:

{
"koodi" : 0,
"viesti" : "menestys",
"tulos" : {
"Otsikko" : 4003
}
}

2.2 MokoSupport

2.2.1 Muodosta yhteys MQTT-palvelimeen

1、Luo MqttAndroidClient

public void creatClient(Merkkijono isäntä, Jousisatama, Merkkijono clientId, boolean tlsYhteys)

public void connectMqtt(MqttConnectOptions-asetukset)
Hanki luontitila MqttCallbackHandlerin mukaan ja vastaanota palautuslomakkeen palvelin

2、Muodosta yhteys palvelimeen

@Ohittaa
public void connectComplete(looginen yhteys uudelleen, MerkkijonopalvelinURI) {

}
@Ohittaa
public void connectionLost(Heitettävä syy) {

}
@Ohittaa
public void message Saapui(Merkkijono aihe, MqttMessage-viesti) heittää poikkeuksen {

}

3、Hanki yhteyden tila rekisteröimällä lähetys:

Lähetä ACTION:MokoConstants.ACTION_MQTT_CONNECTION

Yhteyden tila:

  • Yhteyden onnistuminen:MokoConstants.MQTT_CONN_STATUS_
    MENESTYS
  • Katkaista:MokoConstants.MQTT_CONN_STATUS_LOST

4、Vastaanota paluutiedot palvelimelta rekisteröimällä lähetys

Lähetä ACTION:MokoConstants.ACTION_MQTT_RECEIVE

Palautustiedot:

  • Palautustiedot Aihe:
MokoConstants.EXTRA_MQTT_RECEIVE_
AIHE
  • Palautusviesti:
MokoConstants.EXTRA_MQTT_RECEIVE_
VIESTI

Palautustiedot ovat JSON-muodossa,esimerkiksi:

{
"Yrityksen nimi" : "Moko",
"valmistus päivämäärä" : "201801",
"tuotemalli" : "Plug_one",
"laiteversio" : "000001"
"Device_mac" : "11:22:33:44:55:66”
}

2.2.2 Toiminnan seuranta

MQTT-viestintä sisältää neljä erilaista toimintoa. Kunkin toiminnon suorittaminen, sinun on määritettävä ActionListener seuraamaan toiminnan tilaa:

public enum Toiminta {
/**
* Yhdistä toiminta
**/
KYTKEÄ,
/**
* Tilaa toiminto
**/
TILAA,
/**
* Julkaise toiminto
**/
JULKAISTA,
/**
* Peruuta tilaus
**/
LOPETA TILAUS
}

Hanki Toiminnan tila rekisteröimällä lähetys:

1、KYTKEÄ

Lähetä ACTION:MokoConstants.ACTION_MQTT_CONNECTION
Yhteys epäonnistui:MokoConstants.MQTT_CONN_STATUS_FAILED

2、TILAA

Lähetä ACTION:MokoConstants.ACTION_MQTT_SUBSCRIBE
Tilaa aihe:MokoConstants.EXTRA_MQTT_RECEIVE_TOPIC
Tilaa tila:MokoConstants.EXTRA_MQTT_STATE

3、JULKAISTA

Lähetä ACTION:MokoConstants.ACTION_MQTT_PUBLISH
Julkaise tila:MokoConstants.EXTRA_MQTT_STATE

4、LOPETA TILAUS

Lähetä ACTION:MokoConstants.ACTION_MQTT_UNSUBSCRIBE
Peruuta tilaus:MokoConstants.EXTRA_MQTT_STATE

2.2.3 Tilaa aihe

MokoSupport.getInstance().tilaa(Merkkijono aihe, int qos)

2.2.4 Julkaise tietoja

MokoSupport.getInstance().julkaista(Merkkijono aihe, MqttMessage-viesti)

2.2.5 Peruuta aiheen tilaus

MokoSupport.getInstance().Lopeta tilaus(
Merkkijono aihe)

2.2.6 Selvitä, onko MQTT kytketty

MokoSupport.getInstance().on yhdistetty()

2.2.7 Katkaisu

MokoSupport.getInstance().katkaise yhteys()

5.Tallenna loki SD-kortille

SDK integroi SD-korttitoimintoon tallennetun lokin, kutsutaan nimellä https://github.com/elvishew/xLog alustusmenetelmä MokoSupport.getInstance-sovelluksessa().sen sisällä(
getApplicationContext()) SD-kortille tallennettua kansion ja tiedostonimeä voidaan muuttaa.

julkisen luokan LogModule {
yksityinen staattinen lopullinen merkkijono TAG = “mokoLife”;// Tiedoston nimi
yksityinen staattinen lopullinen merkkijono LOG_FOLDER = “mokoLife”;// kansion nimi

}

Varastointistrategia: tallenna vain edellisen päivän tiedot , tiedosto on liitetty päätteeseen.bak

soittomenetelmä:

LogModule.v("Lokitiedot");
LogModule.d("Lokitiedot");
LogModule.i("Lokitiedot");
LogModule.w("Lokitiedot");
LogModule.e("Lokitiedot");