פתרונות SDK של שקע תקע חכם של IoT

פאג חכם MK102
תקע חכם MK112
מתג חכם WS001-3
README.md - IOS

1. מתחת לתיקיה MKSDK למכשירים נמצא ה- SDK להגדרת התקע החכם

1.1 If you want to configure the MQTT server information and the wifi information to connect to the smart plug, you need to make the smart plug into AP mode(עיין במדריך למשתמש של MokoLife): plug the smart plug into a power socket, לחץ על הכפתור עבור 10 seconds till the smart plug indicator blink amber light which indicates the smart plug into AP mode(הערה: פרק הזמן הקצוב למצב AP הוא 3 דקות, לאחר שתגדיר את המידע לתקע החכם, זה יסתיים במצב AP). כנסו לעמוד Wlan ובחרו את נקודה החמה של התקע החכם לחיבור, when connecting successfully, חייג connectDeviceWithHost:נמל
להתחבר:connectFailed
Blockmethods to connect the smart plug. Following is the complete configuration of the smart plug process:

שלב 1

[[MKSocketManager sharedInstance] connectDeviceWithHost:@”192.168.4.1″
נמל:8266
להתחבר:^(NSString * IP, נמל NSInteger) {
//לחבר הצלחה
- -:^(שגיאת NSError *) {
//התחבר נכשל
}];

שלב 2

[[MKSocketManager sharedInstance]readSmartPlugDevice
InformationWithSucBlock:^(מזהה חזרה נתונים) {
//קרא את הצלחת פרטי המכשיר
} נכשלה:^(שגיאת NSError *) {
//קריאת פרטי המכשיר נכשלה
}];

שלב 3

[[MKSocketManager sharedInstance] configMQTTServerHost:@”your MQTT Server host”
נמל:נמל
connectMode:mqttServerConnectTCPMode
qos:mqttQosLevelExactlyOnce
להשאיר בחיים:60
נקייה:כן
לקוח:@”your device mac address”
שם משתמש:@”your MQTT Server userName”
סיסמה:@”your MQTT Server password”
הצלחה:^(מזהה חזרה נתונים) {
//הגדר הצלחה
}
נכשלה:^(שגיאת NSError *) {
//התצורה נכשלה
}];

שלב 4

[[MKSocketManager sharedInstance] configWifiSSID:ה- ssid שלך
סיסמה:סיסמת wifi
בִּטָחוֹן:wifiSecurity_WPA2_PSK
הצלחה:^(מזהה חזרה נתונים) {
//הגדר הצלחה
} נכשלה:^(שגיאת NSError *) {
//התצורה נכשלה
}];

2. תיקיית MKSDKForMqttServer היא ה- SDK שמגדיר את ה- APP ו- MQTTServer.

2.1 MKMQTTServerManager דלגייט

@protocol MKMQTTServerManagerDelegate

(בָּטֵל)mqttServerManagerStateChanged:(MKMQTTSessionManagerState)מדינה;
//חיבור שיטת נציג המדינה

(בָּטֵל)sessionManager:(MKMQTTServerManager *)sessionManager didReceiveMessage:(NSData *)נתונים onTopic:(NSString *)נוֹשֵׂא;//מקבל את הנתונים משרת MQTT

@סוֹף

2.2 APP מתחברים לשרת MQTT

כאשר הרשת זמינה,שִׂיחָה [[MKMQTTServerManager sharedInstance] connectMQTTServer:נמל:tls:להשאיר בחיים:לְנַקוֹת:
autor:משתמש:לַעֲבוֹר:לקוח:] לחיבור שרת ה- MQTT שלך.

2.3 הירשם לנושא

Please refer to the MQTT protocal document for the topic of the smart plug.Call – (בָּטֵל)מנויים:(NSArray *)topicList and – (בָּטֵל)ביטול המנויים:(NSArray *)נושא ליסט להירשם לביטול המנוי ולביטולו בנפרד.

2.4 APP מפרסם נתונים לנושא מוגדר

אנא עיין במסמך הפרוטוקול MQTT לנושא התקע החכם. (בָּטֵל)לשלוח נתונים:(NSDictions *)נושא נתונים:(NSString *)נושא:(בָּטֵל (^)(בָּטֵל))נכשלה:(בָּטֵל (^)(שגיאת NSError *))נכשלה

README.md - אנדרואיד

1.ייבא והשתמש ב- SDK

1.1 ייבא פרוייקט mokosupport של מודול

1.2 קבע את התצורה של קובץ settings.gradle והתקשר לפרויקט mokosupport:

כלול ':אפליקציה ',':mokosupport '

1.3 ערוך את קובץ build.gradle של הפרויקט הראשי:

תלות {
יישום קובץ(לך: 'ליבים', לִכלוֹל: ['*.קַנקַן'])
פרויקט יישום(נָתִיב: ‘: mokosupport ')
}

1.4 ייבא SDK במהלך אתחול הפרויקט:

BaseApplication בכיתה ציבורית מרחיב את היישום { @Override public void onCreate() { סופר. ליצור(); // initialization MokoSupport.getInstance().init(
getApplication Context()); } }

2.מבוא פונקציה

  • השיטות המסופקות ב- SDK כוללות: תקשורת שקע עם מכשיר WIFI, שירות חיבור MQTT, ניתוק, נושא המנוי, בטל את הרישום לנושא, פרסם נושא, רשומת יומן, וכו.
  • תקשורת Socket נקראת על ידי SocketService;
  • ניתן להתקשר לתקשורת MQTT על ידי MokoSupport.getInstance();

2.1 SocketService

לפני יצירת חיבור Socket, עליך לאשר אם ה- APP מחובר ל- WIFI של המכשיר. חבר את כתובת ה- IP המוגדרת כברירת מחדל 192.168.4.1, מספר היציאה המוגדר כברירת מחדל הוא 8266, אשר ניתן לשנות ב- SocketThread.

2.1.1 אִתחוּל

bindService(כוונה חדשה(זה, SocketService.class), חיבור mService, BIND_AUTO_CREATE);

התחל את SocketService, ולקבל את האובייקט SocketService, התקשר אל mService.startSocket() ליצירת חוט שקע, חבר את המכשיר, והחוט ממתין להישלח ההודעה לאחר שהחיבור יצליח;

2.1.2 קבל מצב ותגובת חיבור

1. קבל את מצב החיבור על ידי רישום השידור:

שידור פעולה:MokoConstants.ACTION_AP_CONNECTION
סטטוס חיבור:
  • החיבור הצליח:MokoConstants.CONN_STATUS_SUCCESS
  • מְקַשֵׁר:MokoConstants.CONN_STATUS_
    CONNECTING
  • חיבור נכשל:MokoConstants.CONN_STATUS_FAILED
  • פסק זמן לחיבור:MokoConstants.CONN_STATUS_TIMEOUT

2、קבל את תגובת התקשורת Socket על ידי רישום השידור :

שידור פעולה:MokoConstants.ACTION_AP_SET_DATA_
RESPONSE Get a response
תגובה DeviceResponse = (מכשיר תגובה) intent.getSerializableExtra(MokoConstants.
EXTRA_AP _SET_DATA_RESPONSE);

2.1.3 שֶׁקַע

שלח נתונים מקבל רק מחרוזות בפורמט JSON
לְמָשָׁל:

1、קבל מידע על מכשירים:

{
“header” : 4001
}

תְגוּבָה:

{
“code” : 0,
“message” : “success”,
“result” : {
“header” : 4001,
“device_function” : “iot_plug”,
“device_name” : “plug_one”,
“device_specifications” : “us”,
“device_mac” : “11:22:33:44:55:66,
“device_type” : “1”
}
}

2、 שלח מידע על שרת MQTT

{
“header” : 4002,
“host” : “45.32.33.42”,
“port” : 1883,
“connect_mode” : 0,
“username” : “DVES_USER”,
“password” : “DVES_PASS”,
“keepalive” : 120,
“qos” : 2,
“clean_session” :1
}
תְגוּבָה:

{
“code” : 0,
“message” : “success”,
“result” : {
“header” : 4002
}
}

3、שלח רשת WIFI עם SSID ספציפי

{
“header” : 4003,
“wifi_ssid” : “Fitpolo”,
“wifi_pwd” : “fitpolo1234.”,
“wifi_security” : 3
}

תְגוּבָה:

{
“code” : 0,
“message” : “success”,
“result” : {
“header” : 4003
}
}

2.2 MokoSupport

2.2.1 התחבר לשרת MQTT

1、צור MqttAndroidClient

בטל ציבורי(מארח מחרוזות, נמל מיתרים, מחרוזת לקוח, חיבור bls)

בטל ציבורי(אפשרויות MqttConnectOptions)
קבל את סטטוס היצירה על פי MqttCallbackHandler וקבל את שרת טופס נתוני ההחזרה

2、התחבר לשרת

@ Override
השלמת הריק(התחבר מחדש בוליאני, שרת מיתריםURI) {

}
@ Override
חיבור ריק לציבור(סיבה לזריקה) {

}
@ Override
הודעה בטל ציבורי הגעת(נושא המיתרים, הודעת MqttMessage) זורק חריג {

}

3、קבל את מצב החיבור על ידי רישום השידור:

שידור פעולה:MokoConstants.ACTION_MQTT_CONNECTION

סטטוס חיבור:

  • הצלחה בחיבור:MokoConstants.MQTT_CONN_STATUS_
    SUCCESS
  • לְנַתֵק:MokoConstants.MQTT_CONN_STATUS_LOST

4、קבל את נתוני ההחזרה מהשרת על ידי רישום השידור

שידור פעולה:MokoConstants.ACTION_MQTT_RECEIVE

החזר נתונים:

  • נושא החזרת נושא:
MokoConstants.EXTRA_MQTT_RECEIVE_
TOPIC
  • החזרת הודעה:
MokoConstants.EXTRA_MQTT_RECEIVE_
MESSAGE

נתוני ההחזרה הם בפורמט JSON,לְמָשָׁל:

{
“company_name” : “moko”,
“production_date” : “201801”,
“product_model” : “plug_one”,
“firmware_version” : “000001”
“device_mac” : “11:22:33:44:55:66
}

2.2.2 צג פעולה

תקשורת MQTT מכילה ארבעה סוגים של פעולות. לבצע כל פעולה, עליך להגדיר את 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().נתק Mqtt()

5.שמור יומן בכרטיס SD

SDK משלב את היומן שנשמר בפונקציה של כרטיס SD, נקרא https://github.com/elvishew/xLoginitialization method in MokoSupport.getInstance().init(
קבלApplicationContext())ניתן לשנות את שם התיקיה ושם הקובץ שנשמרו בכרטיס ה- SD.

- {
private static final String TAG = “mokoLife”;// שם קובץ
private static final String LOG_FOLDER = “mokoLife”;// שם התיקיה

}

אסטרטגיית אחסון: שמור רק את הנתונים של היום ואת הנתונים של יום קודם , הקובץ מתווסף עם .bak

שיטת שיחה:

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

שוחח עם מומחה