IoT Smart Plug Socket SDK-Lösungen
1. Unterhalb des Ordners MKSDK für Gerät befindet sich das SDK zum Konfigurieren des Smart Plug
1.1 Wenn Sie die MQTT-Serverinformationen und die WLAN-Informationen für die Verbindung mit dem Smart Plug konfigurieren möchten, Sie müssen den Smart Plug in den AP-Modus versetzen(Weitere Informationen finden Sie im MokoLife-Benutzerhandbuch): Stecken Sie den Smart Plug in eine Steckdose, Drücken Sie die Taste für 10 Sekunden, bis die Smart Plug-Anzeige gelb blinkt und den Smart Plug in den AP-Modus versetzt(Hinweis: Die Zeitüberschreitung für den AP-Modus beträgt 3 Protokoll, Sobald Sie die Informationen für den Smart Plug konfiguriert haben, Der AP-Modus wird beendet). Rufen Sie die Wlan-Seite auf und wählen Sie den Smart Plug-Hotspot aus, um eine Verbindung herzustellen, bei erfolgreicher Verbindung, Rufen Sie connectDeviceWithHost auf:Hafen
connectSucBlock:Verbindung fehlgeschlagen
Blockmethoden zum Anschließen des Smart Plug. Im Folgenden finden Sie die vollständige Konfiguration des Smart Plug-Prozesses:
Schritt 1
Hafen:8266
connectSucBlock:^(NSString * IP, NSInteger-Port) {
//Erfolg verbinden
connectFailedBlock:^(NSError * Fehler) {
//Verbindung fehlgeschlagen
}];
Schritt 2
InformationWithSucBlock:^(id returnData) {
//Lesen Sie den Erfolg der Geräteinformationen
} failedBlock:^(NSError * Fehler) {
//Das Lesen der Geräteinformationen ist fehlgeschlagen
}];
Schritt 3
Hafen:Hafen
connectMode:mqttServerConnectTCPMode
qos:mqttQosLevelExactlyOnce
bleib am Leben:60
cleanSession:JA
Kunden ID:@ "Mac-Adresse Ihres Geräts"
Nutzername:@ "Ihr MQTT-Server-Benutzername"
Passwort:@ "Ihr MQTT Server Passwort"
sucBlock:^(id returnData) {
//Konfigurationserfolg
}
failedBlock:^(NSError * Fehler) {
//Konfiguration fehlgeschlagen
}];
Schritt 4
Passwort:WLAN Passwort
Sicherheit:wifiSecurity_WPA2_PSK
sucBlock:^(id returnData) {
//Konfigurationserfolg
} failedBlock:^(NSError * Fehler) {
//Konfiguration fehlgeschlagen
}];
2. Der Ordner MKSDKForMqttServer ist das SDK, das die APP und den MQTTServer konfiguriert
2.1 MKMQTTServerManagerDelegate
@protocol MKMQTTServerManagerDelegate
(Leere)mqttServerManagerStateChanged:(MKMQTTSessionManagerState)Zustand;
//Connect State Delegate-Methode
(Leere)sessionManager:(MKMQTTServerManager *)sessionManager didReceiveMessage:(NSData *)Daten onTopic:(NSString *)Thema;//Empfängt die Daten vom MQTT-Server
@Ende
2.2 APP-Verbindung zum MQTT-Server
auth:Benutzer:bestehen:Kunden ID:] um Ihren MQTT-Server zu verbinden.
2.3 Thema abonnieren
Informationen zum Thema Smart Plug finden Sie im protokalen MQTT-Dokument. (Leere)Abonnements:(NSArray *)topicList und - (Leere)Abmeldungen:(NSArray *)topicList, um das Thema separat zu abonnieren und abzubestellen.
2.4 APP veröffentlicht Daten zu einem bestimmten Thema
Informationen zum Thema des Smart Plug finden Sie im MQTT-Protokoll. - - (Leere)schicke Daten:(NSDictionary *)Datenthema:(NSString *)Thema sucBlock:(Leere (^)(Leere))sucBlock failedBlock:(Leere (^)(NSError * Fehler))failedBlock
README.md - Android
1.SDK importieren und verwenden
1.1 Importieren Sie das Modulprojekt mokosupport
1.2 Konfigurieren Sie die Datei settings.gradle und rufen Sie das mokosupport-Projekt auf:
umfassen „:App ’,’:mokosupport “
1.3 Bearbeiten Sie die Datei build.gradle des Hauptprojekts:
Abhängigkeiten {
ImplementierungsdateiTree(dir: "Libs", umfassen: ['*.Krug'])
Implementierungsprojekt(Pfad: „: mokosupport “)
}
1.4 Importieren Sie das SDK während der Projektinitialisierung:
getApplication Kontext()); } }
2.Funktionseinführung
- Die im SDK bereitgestellten Methoden umfassen: Socket-Kommunikation mit WIFI-Gerät, MQTT-Verbindungsdienst, Trennung, Abonnement-Thema, Thema abbestellen, Thema posten, Protokollaufzeichnung, etc.
- Die Socket-Kommunikation wird von SocketService aufgerufen;
- Die MQTT-Kommunikation kann von MokoSupport.getInstance aufgerufen werden();
2.1 SocketService
Vor dem Erstellen einer Socket-Verbindung, Sie müssen überprüfen, ob die APP mit dem WIFI des Geräts verbunden ist. Verbinden Sie die Standard-IP-Adresse 192.168.4.1, Die Standardportnummer ist 8266, Dies kann in SocketThread geändert werden.
2.1.1 Initialisierung
bindService(neue Absicht(diese, SocketService.class), mServiceConnection, BIND_AUTO_CREATE);
Starten Sie SocketService, und holen Sie sich das SocketService-Objekt, Rufen Sie mService.startSocket auf() um einen Socket-Thread zu erstellen, Schließen Sie das Gerät an, und der Thread wartet darauf, dass die Nachricht gesendet wird, nachdem die Verbindung erfolgreich ist;
2.1.2 Verbindungsstatus und Antwort abrufen
1. Erhalten Sie den Verbindungsstatus, indem Sie die Sendung registrieren:
Verbindungsstatus:
- Verbindung erfolgreich:MokoConstants.CONN_STATUS_SUCCESS
- Anschließen:MokoConstants.CONN_STATUS_
ANSCHLUSS - Verbindung fehlgeschlagen:MokoConstants.CONN_STATUS_FAILED
- Verbindungszeitüberschreitung:MokoConstants.CONN_STATUS_TIMEOUT
2、Erhalten Sie die Socket-Kommunikationsantwort, indem Sie die Sendung registrieren :
ANTWORT Erhalten Sie eine Antwort:
EXTRA_AP _SET_DATA_RESPONSE);
2.1.3 Steckdose
Daten senden akzeptiert nur Zeichenfolgen im JSON-Format
z.B:
1、Geräteinformationen abrufen:
{
"Header" : 4001
}
Antwort:
{
"Code" : 0,
"Botschaft" : "Erfolg",
"Ergebnis" : {
"Header" : 4001,
"Gerätefunktion" : "Iot_plug",
"Gerätename" : "Plug_one",
"Gerätespezifikationen" : "uns",
"Device_mac" : 11:22:33:44:55:66”,
"Gerätetyp" : "1"
}
}
2、 Senden Sie MQTT-Serverinformationen
{
"Header" : 4002,
"Gastgeber" : "45.32.33.42",
"Hafen" : 1883,
"Connect_mode" : 0,
"Nutzername" : "DVES_USER",
"Passwort" : "DVES_PASS",
"bleib am Leben" : 120,
"Qos" : 2,
"Clean_session" :1
}
Antwort:
{
"Code" : 0,
"Botschaft" : "Erfolg",
"Ergebnis" : {
"Header" : 4002
}
}
3、Senden Sie ein WIFI-Netzwerk mit einer bestimmten SSID
{
"Header" : 4003,
"Wifi_ssid" : "Fitpolo",
"Wifi_pwd" : "Fitpolo1234.",
"Wifi_security" : 3
}
Antwort:
{
"Code" : 0,
"Botschaft" : "Erfolg",
"Ergebnis" : {
"Header" : 4003
}
}
2.2 MokoSupport
2.2.1 Stellen Sie eine Verbindung zum MQTT-Server her
1、Erstellen Sie MqttAndroidClient
public void creatClient(String-Host, String-Port, Zeichenfolge clientId, boolean tlsConnection)
public void connectMqtt(MqttConnectOptions-Optionen)
Rufen Sie den Erstellungsstatus gemäß MqttCallbackHandler ab und erhalten Sie den Rückgabedaten vom Server
2、Stellen Sie eine Verbindung zum Server her
@Override
public void connectComplete(Boolesche Wiederverbindung, String serverURI) {
…
}
@Override
public void connectionLost(Wirfbare Ursache) {
…
}
@Override
public void messageArrived(String-Thema, MqttMessage-Nachricht) wirft eine Ausnahme {
…
}
3、Erhalten Sie den Verbindungsstatus, indem Sie die Sendung registrieren:
Broadcast-AKTION:MokoConstants.ACTION_MQTT_CONNECTION
Verbindungsstatus:
- Verbindungserfolg:MokoConstants.MQTT_CONN_STATUS_
ERFOLG - Trennen:MokoConstants.MQTT_CONN_STATUS_LOST
4、Empfangen Sie die Rückgabedaten vom Server, indem Sie die Übertragung registrieren
Broadcast-AKTION:MokoConstants.ACTION_MQTT_RECEIVE
Daten zurückgeben:
- Daten zurückgeben Thema:
THEMA
- Daten zurückgeben Nachricht:
BOTSCHAFT
Die Rückgabedaten liegen im JSON-Format vor,z.B:
{
"Name der Firma" : "Moko",
"Produktionsdatum" : "201801",
"Product_model" : "Plug_one",
"Firmware Version" : "000001"
"Device_mac" : 11:22:33:44:55:66”
}
2.2.2 Aktionsmonitor
Die MQTT-Kommunikation enthält vier Arten von Aktionen. So führen Sie jede Aktion aus, Sie müssen ActionListener festlegen, um den Status der Aktion zu überwachen:
öffentliche Aufzählung Aktion {
/**
* Aktion verbinden
**/
VERBINDEN,
/**
* Aktion abonnieren
**/
ABONNIEREN,
/**
* Aktion veröffentlichen
**/
VERÖFFENTLICHEN,
/**
* Aktion abbestellen
**/
ABMELDEN
}
Erhalten Sie den Aktionsstatus, indem Sie die Sendung registrieren:
1、VERBINDEN
Broadcast-AKTION:MokoConstants.ACTION_MQTT_CONNECTION
Verbindung fehlgeschlagen:MokoConstants.MQTT_CONN_STATUS_FAILED
2、ABONNIEREN
Broadcast-AKTION:MokoConstants.ACTION_MQTT_SUBSCRIBE
Thema abonnieren:MokoConstants.EXTRA_MQTT_RECEIVE_TOPIC
Abonnementstatus:MokoConstants.EXTRA_MQTT_STATE
3、VERÖFFENTLICHEN
Broadcast-AKTION:MokoConstants.ACTION_MQTT_PUBLISH
Status veröffentlichen:MokoConstants.EXTRA_MQTT_STATE
4、ABMELDEN
Broadcast-AKTION:MokoConstants.ACTION_MQTT_UNSUBSCRIBE
Status abbestellen:MokoConstants.EXTRA_MQTT_STATE
2.2.3 Thema abonnieren
MokoSupport.getInstance().abonnieren(String-Thema, int qos)
2.2.4 Informationen veröffentlichen
MokoSupport.getInstance().veröffentlichen(String-Thema, MqttMessage-Nachricht)
2.2.5 Thema abbestellen
String-Thema)
2.2.6 Stellen Sie fest, ob der MQTT angeschlossen ist
MokoSupport.getInstance().Ist verbunden()
2.2.7 Trennung
MokoSupport.getInstance().connectMqtt()
5.Protokoll auf SD-Karte speichern
getApplicationContext()) Der auf der SD-Karte gespeicherte Ordnername und Dateiname können geändert werden.
öffentliche Klasse LogModule {
private static final String TAG = "mokoLife";// Dateiname
private static final String LOG_FOLDER = "mokoLife";// Ordnernamen
…
}
Speicherstrategie: Speichern Sie nur die Daten des Tages und die Daten des Vortages , Die Datei wird mit dem Suffix.bak versehen
Methode aufrufen:
LogModule.v("Log info");
LogModule.d("Log info");
LogModule.i("Log info");
LogModule.w("Log info");
LogModule.e("Log info");