פתרונות SDK של שקע תקע חכם של IoT
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
נמל:8266
להתחבר:^(NSString * IP, נמל NSInteger) {
//לחבר הצלחה
- -:^(שגיאת NSError *) {
//התחבר נכשל
}];
שלב 2
InformationWithSucBlock:^(מזהה חזרה נתונים) {
//קרא את הצלחת פרטי המכשיר
} נכשלה:^(שגיאת NSError *) {
//קריאת פרטי המכשיר נכשלה
}];
שלב 3
נמל:נמל
connectMode:mqttServerConnectTCPMode
qos:mqttQosLevelExactlyOnce
להשאיר בחיים:60
נקייה:כן
לקוח:@”your device mac address”
שם משתמש:@”your MQTT Server userName”
סיסמה:@”your MQTT Server password”
הצלחה:^(מזהה חזרה נתונים) {
//הגדר הצלחה
}
נכשלה:^(שגיאת NSError *) {
//התצורה נכשלה
}];
שלב 4
סיסמה:סיסמת 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
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 במהלך אתחול הפרויקט:
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.CONN_STATUS_SUCCESS
- מְקַשֵׁר:MokoConstants.CONN_STATUS_
CONNECTING - חיבור נכשל:MokoConstants.CONN_STATUS_FAILED
- פסק זמן לחיבור:MokoConstants.CONN_STATUS_TIMEOUT
2、קבל את תגובת התקשורת Socket על ידי רישום השידור :
RESPONSE Get a response:
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
החזר נתונים:
- נושא החזרת נושא:
TOPIC
- החזרת הודעה:
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 בטל את הרישום לנושא
נושא המיתרים)
2.2.6 קבע אם ה- MQTT מחובר
MokoSupport.getInstance().מחובר()
2.2.7 ניתוק
MokoSupport.getInstance().נתק Mqtt()
5.שמור יומן בכרטיס SD
קבל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”);