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

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

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

1.1 אם ברצונך להגדיר את תצורת המידע של ה- MQTT ומידע ה- wifi להתחבר לתקע חכם,עליך להכניס את התקע החכם למצב AP(עיין במדריך למשתמש של MokoLife):חבר את התקע החכם לשקע החשמל,לחץ על הכפתור עבור 10 שניות עד שמחוון התקע החכם מהבהב באור ענבר המציין את התקע החכם למצב AP(הערה:פרק הזמן הקצוב למצב AP הוא 3 דקות,לאחר שתגדיר את המידע לתקע החכם,זה יסתיים במצב AP).כנסו לעמוד Wlan ובחרו את נקודה החמה של התקע החכם לחיבור ,כאשר התחבר בהצלחה,חייג connectDeviceWithHost:נמל:להתחבר:connectFailedBlock שיטות לחיבור plug plug. להלן התצורה השלמה של תהליך התקע החכם:

שלב 1

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

שלב 2

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

שלב 3

[[MKSocketManager sharedInstance] configMQTTServerHost:@”מארח שרת MQTT שלך”
נמל:נמל
connectMode:mqttServerConnectTCPMode
qos:mqttQosLevelExactlyOnce
להשאיר בחיים:60
נקייה:כן
לקוח:@”כתובת ה- Mac של המכשיר שלך”
שם משתמש:@”שם המשתמש שלך בשרת MQTT”
סיסמה:@”סיסמת שרת ה- MQTT שלך”
הצלחה:^(מזהה חזרה נתונים) {
//הגדר הצלחה
}
נכשלה:^(שגיאת 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 הירשם לנושא
אנא עיין במסמך הפרוטוקול MQTT לנושא התוסף החכם. התקשר – (בָּטֵל)מנויים:(NSArray *)רשימת נושאים – (בָּטֵל)ביטול המנויים:(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
חלל ציבורי ב -() {
סופר. ליצור();
// אִתחוּל
MokoSupport.getInstance().init(קבלApplicationContext());
}
}

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

קבל תגובה:

תגובה DeviceResponse = (מכשיר תגובה) intent.getSerializableExtra(MokoConstants.EXTRA_AP_SET_DATA_RESPONSE);

2.1.3 שֶׁקַע
שלח נתונים מקבל רק מחרוזות בפורמט JSON

לְמָשָׁל:

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

{
“כּוֹתֶרֶת” : 4001
}

תְגוּבָה:

{
“קוד” : 0,
“הוֹדָעָה” : “הצלחה”,
“תוֹצָאָה” : {
“כּוֹתֶרֶת” : 4001,
“מכשיר_תפקוד” : “iot_ plug”,
“שם התקן” : “plug_one”,
“מפרט מכשיר” : “לנו”,
“device_mac” : “11:22:33:44:55:66”,
“סוג מכשיר” : “1”
}
}

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

{
“כּוֹתֶרֶת” : 4002,
“מנחה” : “45.32.33.42”,
“נמל” : 1883,
“connect_mode” : 0,
“שם משתמש” : “DVES_USER”,
“סיסמה” : “DVES_PASS”,
“להשאיר בחיים” : 120,
“qos” : 2,
“מושב נקי” :1
}
תְגוּבָה:

{
“קוד” : 0,
“הוֹדָעָה” : “הצלחה”,
“תוֹצָאָה” : {
“כּוֹתֶרֶת” : 4002
}
}

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

{
“כּוֹתֶרֶת” : 4003,
“wifi_ssid” : “Fitpolo”,
“wifi_pwd” : “fitpolo1234.”,
“wifi_ בטחון” : 3
}

תְגוּבָה:

{
“קוד” : 0,
“הוֹדָעָה” : “הצלחה”,
“תוֹצָאָה” : {
“כּוֹתֶרֶת” : 4003
}
}

2.2 MokoSupport

2.2.1 התחבר לשרת MQTT
1、צור MqttAndroidClient

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

2、התחבר לשרת

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

@ 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,לְמָשָׁל:

{
“שם החברה” : “מוקו”,
“תאריך ייצור” : “201801”,
“מוצר_מודל” : “plug_one”,
“קושחה” : “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()

3.שמור יומן בכרטיס SD
SDK משלב את היומן שנשמר בפונקציה של כרטיס SD, נקרא https://github.com/elvishew/xLog

שיטת האתחול ב- MokoSupport.getInstance().init(קבלApplicationContext())

ניתן לשנות את שם התיקיה ושם הקובץ שנשמרו בכרטיס ה- SD.

- {
מחרוזת סופית סטטית פרטית TAG = “mokoLife”;// שם קובץ
מחרוזת סופית סטטית פרטית LOG_FOLDER = “mokoLife”;// שם התיקיה

}

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

שיטת שיחה:

LogModule.v(“פרטי יומן”);
LogModule.d(“פרטי יומן”);
LogModule.i(“פרטי יומן”);
LogModule.w(“פרטי יומן”);
LogModule.e(“פרטי יומן”);