IoT Smart Plug Socket SDK-løsninger

Smart Pug MK102
Smart Plug MK112
Smart bryter WS001-3
README.md - IOS

1. Under MKSDK For Device-mappen er SDK for å konfigurere smart pluggen

1.1 Hvis du vil konfigurere MQTT-serverinformasjonen og wifi-informasjonen for å koble til smartpluggen, du må sette smart pluggen i AP-modus(Se brukerhåndboken for MokoLife): koble smartkontakten til en stikkontakt, trykk på knappen for 10 sekunder til smartpluggindikatoren blinker gult lys som indikerer smartpluggen i AP-modus(Merk: Tidsavbruddsperioden for AP-modus er 3 minutter, når du har konfigurert informasjonen til smart pluggen, AP-modus avsluttes). Gå inn på Wlan-siden og velg smartplugg-hotspot du vil koble til, når du kobler til, ring connectDeviceWithHost:havn
connectSucBlock:tilkobling feilet
Blokkemetoder for å koble til smartpluggen. Følgende er den komplette konfigurasjonen av smart plug-prosessen:

trinn 1

[[MKSocketManager sharedInstance] connectDeviceWithHost:@ ”192.168.4.1 ″
havn:8266
connectSucBlock:^(NSString * IP, NSInteger-port) {
//koble suksess
connectFailedBlock:^(NSError * feil) {
//tilkobling feilet
}];

steg 2

[[MKSocketManager sharedInstance]readSmartPlugDevice
InformasjonWithSucBlock:^(id returnData) {
//Les enhetsinfosuksess
} mislyktes:^(NSError * feil) {
//Lesing av enhetsinformasjonen mislyktes
}];

trinn 3

[[MKSocketManager sharedInstance] configMQTTServerHost:@ ”Din MQTT Server-vert”
havn:havn
connectMode:mqttServerConnectTCPMode
qos:mqttQosLevelExactlyOnce
holde i live:60
cleanSession:JA
klient-ID:@ ”Enhetens mac-adresse”
brukernavn:@ ”Ditt MQTT Server brukernavn”
passord:@ ”MQTT Server-passordet ditt”
sucBlock:^(id returnData) {
//Config suksess
}
mislyktes:^(NSError * feil) {
//Konfigurering mislyktes
}];

trinn 4

[[MKSocketManager sharedInstance] configWifiSSID:din wifi ssid
passord:wifi-passord
sikkerhet:wifiSecurity_WPA2_PSK
sucBlock:^(id returnData) {
//Config suksess
} mislyktes:^(NSError * feil) {
//Konfigurering mislyktes
}];

2. MKSDKForMqttServer-mappen er SDK som konfigurerer APP og MQTTServer

2.1 MKMQTTServerManagerDelegate

@protocol MKMQTTServerManagerDelegate

(tomrom)mqttServerManagerStateChanged:(MKMQTTSessionManagerState)stat;
//koble statsdelegatmetoden

(tomrom)sessionManager:(MKMQTTServerManager *)sessionManager didReceiveMessage:(NSData *)data om emnet:(NSString *)emne;//Mottar dataene fra MQTT-serveren

@slutt

2.2 APP kobles til MQTT-serveren

Når nettverket er tilgjengelig,anrop [[MKMQTTServerManager sharedInstance] connectMQTTServer:havn:tls:holde i live:ren:
godkjenning:bruker:sende:klient-ID:] for å koble til MQTT-serveren din.

2.3 Abonner emne

Se MQTT protokaldokumentet for temaet for smart pluggen. Ring - (tomrom)abonnement:(NSArray *)topicList og - (tomrom)avmeldinger:(NSArray *)topicListe for å abonnere og avslutte abonnementet på emnet separat.

2.4 APP publiserer data til et spesifisert emne

Se MQTT protokaldokumentet for emnet smart pluggen. - (tomrom)sendData:(NSDictionary *)dataemne:(NSString *)emne sucBlock:(tomrom (^)(tomrom))sucBlock failedBlock:(tomrom (^)(NSError * feil))mislyktes

README.md - Android

1.Importer og bruk SDK

1.1 Importer modulprosjekt mokosupport

1.2 Konfigurer settings.gradle-filen og ring mokosupport-prosjektet:

inkluderer ‘:app ’,’:mokosupport ’

1.3 Rediger build.gradle-filen til hovedprosjektet:

avhengigheter {
implementering fileTree(til deg: ‘Libs’, inkludere: ['*.krukke'])
implementeringsprosjekt(sti: ‘: mokosupport ’)
}

1.4 Importer SDK under initialisering av prosjektet:

offentlig klasse BaseApplication utvider applikasjonen { @Overstyring offentlig tomrom onCreate() { super.onCreate(); // initialisering MokoSupport.getInstance().i det(
getApplication Kontekst()); } }

2.Funksjon Introduksjon

  • Metodene gitt i SDK inkluderer: Stikkontaktkommunikasjon med WIFI-enhet, MQTT-tilkoblingstjeneste, frakobling, abonnementstema, avslutte abonnementet, legg inn emne, loggpost, etc.
  • Socket-kommunikasjon kalles av SocketService;
  • MQTT-kommunikasjon kan ringes av MokoSupport.getInstance();

2.1 SocketService

Før du oppretter en stikkontakt, du må bekrefte om APP er koblet til WIFI på enheten. Koble til standard IP-adresse 192.168.4.1, standard portnummer er 8266, som kan endres i SocketThread.

2.1.1 Initialisering

bindService(ny hensikt(dette, SocketService.class), mServiceConnection, BIND_AUTO_CREATE);

Start SocketService, og få SocketService-objektet, ring mService.startSocket() for å lage en Socket-tråd, koble til enheten, og tråden venter på at meldingen skal sendes etter at forbindelsen er vellykket;

2.1.2 Få tilkoblingsstatus og svar

1. Få tilkoblingsstatus ved å registrere sendingen:

Broadcast ACTION:MokoConstants.ACTION_AP_CONNECTION
Tilkoblingsstatus:
  • Tilkoblingen var vellykket:MokoConstants.CONN_STATUS_SUCCESS
  • kobler til:MokoConstants.CONN_STATUS_
    KOBLER TIL
  • Tilkoblingen mislyktes:MokoConstants.CONN_STATUS_FAILED
  • Tidsavbrudd for tilkobling:MokoConstants.CONN_STATUS_TIMEOUT

2、Få Socket-kommunikasjonssvaret ved å registrere sendingen :

Broadcast ACTION:MokoConstants.ACTION_AP_SET_DATA_
RESPONS Få svar:
DeviceResponse respons = (DeviceResponse) intention.getSerializableExtra(MokoConstants.
EXTRA_AP _SET_DATA_RESPONSE);

2.1.3 Stikkontakt

Send data godtar bare strenger i JSON-format
f.eks:

1、Få enhetsinformasjon:

{
"Overskrift" : 4001
}

respons:

{
"kode" : 0,
"beskjed" : "suksess",
"resultat" : {
"Overskrift" : 4001,
“Device_function” : “Iot_plug”,
"enhetsnavn" : “Plug_one”,
“Enhetsspesifikasjoner” : "oss",
“Device_mac” : “11:22:33:44:55:66”,
"Enhetstype" : "1"
}
}

2、 Send MQTT-serverinformasjon

{
"Overskrift" : 4002,
"vert" : “45.32.33.42”,
"havn" : 1883,
“Connect_mode” : 0,
“Brukernavn” : “DVES_USER”,
"passord" : “DVES_PASS”,
"holde i live" : 120,
“Qos” : 2,
“Clean_session” :1
}
respons:

{
"kode" : 0,
"beskjed" : "suksess",
"resultat" : {
"Overskrift" : 4002
}
}

3、Send et WIFI-nettverk med et spesifikt SSID

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

respons:

{
"kode" : 0,
"beskjed" : "suksess",
"resultat" : {
"Overskrift" : 4003
}
}

2.2 MokoSupport

2.2.1 Koble til MQTT-serveren

1、Opprett MqttAndroidClient

offentlig ugyldig creatClient(Stringvert, Strengport, String clientId, boolske tls Tilkobling)

public void connectMqtt(MqttConnectOptions-alternativer)
Få opprettelsesstatus i henhold til MqttCallbackHandler og motta skjema server for returdata

2、Koble til serveren

@Overstyring
public void connectComplete(koble til på nytt, Strenger serverURI) {
...
}
@Overstyring
offentlig ugyldig forbindelseTap(Kastbar årsak) {
...
}
@Overstyring
offentlig ugyldig melding Ankommet(Strengemne, MqttMessage-melding) kaster Unntak {
...
}

3、Få tilkoblingsstatus ved å registrere sendingen:

Broadcast ACTION:MokoConstants.ACTION_MQTT_CONNECTION

Tilkoblingsstatus:

  • Forbindelsessuksess:MokoConstants.MQTT_CONN_STATUS_
    SUKSESS
  • Koble fra:MokoConstants.MQTT_CONN_STATUS_LOST

4、Motta returdata fra server ved å registrere sendingen

Broadcast ACTION:MokoConstants.ACTION_MQTT_RECEIVE

Returner data:

  • Returner data Emne:
MokoConstants.EXTRA_MQTT_RECEIVE_
EMNE
  • Retur data Melding:
MokoConstants.EXTRA_MQTT_RECEIVE_
BESKJED

Returdataene er i JSON-format,f.eks:

{
"selskapsnavn" : “Moko”,
"produksjonsdato" : “201801”,
“Produktmodell” : “Plug_one”,
“Firmware_version” : “000001”
“Device_mac” : “11:22:33:44:55:66”
}

2.2.2 Handlingsmonitor

MQTT-kommunikasjon inneholder fire typer handlinger. Å utføre hver handling, du må angi ActionListener for å overvåke tilstanden til handlingen:

offentlig enum Handling {
/**
* Koble til handling
**/
KOBLE,
/**
* Abonner på handling
**/
ABONNERE,
/**
* Publiser handling
**/
PUBLISERE,
/**
* Avmeld abonnement
**/
AVSLUTTE ABONNEMENTET
}

Få Action-status ved å registrere sendingen:

1、KOBLE

Broadcast ACTION:MokoConstants.ACTION_MQTT_CONNECTION
Tilkoblingen mislyktes:MokoConstants.MQTT_CONN_STATUS_FAILED

2、ABONNERE

Broadcast ACTION:MokoConstants.ACTION_MQTT_SUBSCRIBE
Abonner emne:MokoConstants.EXTRA_MQTT_RECEIVE_TOPIC
Abonner status:MokoConstants.EXTRA_MQTT_STATE

3、PUBLISERE

Broadcast ACTION:MokoConstants.ACTION_MQTT_PUBLISH
Publiser status:MokoConstants.EXTRA_MQTT_STATE

4、AVSLUTTE ABONNEMENTET

Broadcast ACTION:MokoConstants.ACTION_MQTT_UNSUBSCRIBE
Avslutt statusen:MokoConstants.EXTRA_MQTT_STATE

2.2.3 Abonner emne

MokoSupport.getInstance().abonnere(Strengemne, int qos)

2.2.4 Publiser informasjon

MokoSupport.getInstance().publisere(Strengemne, MqttMessage-melding)

2.2.5 Avslutt emnet

MokoSupport.getInstance().Avslutte abonnementet(
Strengemne)

2.2.6 Bestem om MQTT er koblet til

MokoSupport.getInstance().er sammenkoblet()

2.2.7 Frakobling

MokoSupport.getInstance().koble fra()

5.Lagre logg på SD-kort

SDK integrerer loggen som er lagret i SD-kortfunksjonen, heter https://github.com/elvishew/xLog initialiseringsmetode i MokoSupport.getInstance().i det(
getApplicationContext()) Mappenavnet og filnavnet som er lagret på SD-kortet, kan endres.

offentlig klasse LogModule {
privat statisk finale String TAG = “mokoLife”;// filnavn
privat statisk finale String LOG_FOLDER = “mokoLife”;// mappenavn
...
}

Lagringsstrategi: bare lagre data fra dagen og data dagen før , filen er suffiks med.bak

anropsmetode:

LogModule.v(“Logg info”);
LogModule.d(“Logg info”);
LogModule.i(“Logg info”);
LogModule.w(“Logg info”);
LogModule.e(“Logg info”);

Snakk med en ekspert