IoT Smart Plug Socket SDK Solutions

Pug MK102 thông minh
Cắm thông minh MK112
Công tắc thông minh WS001-3
README.md - IOS

1. Bên dưới thư mục MKSDK For Device là SDK để định cấu hình phích cắm thông minh

1.1 Nếu bạn muốn định cấu hình thông tin sever MQTT và thông tin wifi để kết nối với phích cắm thông minh,bạn cần cắm phích cắm thông minh vào chế độ AP(Vui lòng tham khảo hướng dẫn sử dụng MokoLife):cắm phích cắm thông minh vào ổ cắm điện,nhấn nút cho 10 vài giây cho đến khi đèn báo cắm thông minh nhấp nháy màu hổ phách cho biết phích cắm thông minh vào chế độ AP(Ghi chú:Khoảng thời gian chờ cho chế độ AP là 3 phút,một khi bạn đã cấu hình thông tin vào phích cắm thông minh,nó sẽ kết thúc chế độ AP).Nhập trang Wlan và chọn điểm nóng cắm thông minh để kết nối ,khi kết nối thành công,gọi kết nốiDeviceWithhost:Hải cảng:kết nốiSucBlock:Các phương thức connectFailedBlock để kết nối phích cắm thông minh. Theo dõi là cấu hình hoàn chỉnh của quy trình cắm thông minh:

bước 1

[[MKSocketManager chia sẻ] kết nốiDeviceWithhost:@”192.168.4.1″
Hải cảng:8266
kết nốiSucBlock:^(NSString * IP, Cổng NSInteger) {
//kết nối thành công
connectFailsBlock:^(Lỗi NSError *) {
//Kết nối thất bại
}];

bước 2

[[MKSocketManager chia sẻ] đọcSmartPlugDeviceIn informationWithSucBlock:^(id returnData) {
//Đọc thông tin thiết bị thành công
} failBlock:^(Lỗi NSError *) {
//Đọc thông tin thiết bị thất bại
}];

bước 3

[[MKSocketManager chia sẻ] configMQTTServerhost:@”máy chủ MQTT của bạn”
Hải cảng:Hải cảng
ConnectMode:mqttServerConnectTCPMode
số:mqttQosLevelExactlyOnce
cố sống đi:60
làm sạch:ĐÚNG
khách hàng:@”địa chỉ mac thiết bị của bạn”
tên tài khoản:@”Tên người dùng máy chủ MQTT của bạn”
mật khẩu:@”mật khẩu máy chủ MQTT của bạn”
sucBlock:^(id returnData) {
//Cấu hình thành công
}
failBlock:^(Lỗi NSError *) {
//Cấu hình không thành công
}];

bước 4

[[MKSocketManager chia sẻ] cấu hìnhWifiSSID:ssid wifi của bạn
mật khẩu:mật khẩu mạng wifi
Bảo vệ:wifiSecurity_WPA2_PSK
sucBlock:^(id returnData) {
//Cấu hình thành công
} failBlock:^(Lỗi NSError *) {
//Cấu hình không thành công
}];

2. Thư mục MKSDKForMqttServer là SDK cấu hình APP và MQTTServer

2.1 MKMQTTServerManagerDelegate
@protatio MKMQTTServerManagerDelegate

(khoảng trống)mqttServerManagerStateThay đổi:(MKMQTTSessionManagerState)tiểu bang;//kết nối phương thức đại biểu nhà nước

(khoảng trống)trình quản lý phiên:(MKMQTTServerager *)sessionManager didReceiveMessage:(NSData *)dữ liệu onTopic:(NSString *)đề tài;//Nhận dữ liệu từ máy chủ MQTT

@kết thúc

2.2 APP kết nối với máy chủ MQTT
Khi mạng có sẵn,gọi [[MKMQTTServerManager sharedInstance] máy chủ kết nối:Hải cảng:tls:cố sống đi:dọn dẹp:xác thực:người sử dụng:vượt qua:khách hàng:] để kết nối máy chủ MQTT của bạn.

2.3 Theo dõi chủ đề
Vui lòng tham khảo tài liệu hướng dẫn MQTT cho chủ đề của phích cắm thông minh. – (khoảng trống)đăng ký:(NSArray *)danh sách chủ đề và – (khoảng trống)không đăng ký:(NSArray *)topicList để đăng ký và hủy đăng ký chủ đề riêng biệt.

2.4 APP xuất bản dữ liệu đến một chủ đề được chỉ định
Vui lòng tham khảo tài liệu hướng dẫn MQTT cho chủ đề về phích cắm thông minh. – (khoảng trống)gửi dữ liệu:(NSDixi *)chủ đề dữ liệu:(NSString *)chủ đề sucBlock:(khoảng trống (^)(khoảng trống))sucBlock failBlock:(khoảng trống (^)(Lỗi NSError *))failBlock

README.md - Android

1.Nhập và sử dụng SDK

1.1 Dự án mô-đun nhập khẩu mokosupport

1.2 Cấu hình tập tin settings.gradle và gọi dự án mokosupport:

bao gồm:ứng dụng,Càng:hỗ trợ mokos’

1.3 Chỉnh sửa tệp build.gradle của dự án chính:

phụ thuộc {
tập tin thực hiện(với bạn: ‘Libs, bao gồm: [‘* .Jar])
dự án thực hiện(con đường: ‘: mokosupport)
}

1.4 Nhập SDK trong quá trình khởi tạo dự án:

lớp công khai BaseApplication mở rộng ứng dụng {
@Ghi đè
khoảng trống công khai onCreate() {
super.onCreate();
// khởi tạo
MokoSupport.getInstance().trong đó(getApplicationContext());
}
}

2.Giới thiệu chức năng

    • Các phương thức được cung cấp trong SDK bao gồm: Giao tiếp ổ cắm với thiết bị WIFI, Dịch vụ kết nối MQTT, mất kết nối, chủ đề đăng ký, hủy đăng ký chủ đề, đăng chủ đề, bản ghi nhật ký, Vân vân.
    • Truyền thông ổ cắm được gọi bởi SocketService;
    • Giao tiếp MQTT có thể được gọi bởi MokoSupport.getInstance();

2.1 Dịch vụ ổ cắm

Trước khi tạo kết nối Ổ cắm, bạn cần xác nhận xem APP có được kết nối với WIFI của thiết bị không. Kết nối địa chỉ IP mặc định 192.168.4.1, số cổng mặc định là 8266, có thể được sửa đổi trong SocketThread.

2.1.1 Khởi tạo

dịch vụ liên kết(ý định mới(điều này, SocketService. Class), mServiceConnection, BIND_AUTO_CREATE);

Bắt đầu dịch vụ socketService, và lấy đối tượng SocketService, gọi mService.startSocket() để tạo một chủ đề socket, kết nối thiết bị, và luồng chờ tin nhắn được gửi sau khi kết nối thành công;

2.1.2 Nhận trạng thái kết nối và phản hồi

1.Nhận trạng thái kết nối bằng cách đăng ký chương trình phát sóng:

HÀNH ĐỘNG phát sóng:MokoConstants.ACTION_AP_CONNMENT

Tình trạng kết nối:

    • Kết nối thành công:MokoConstants.CONN_STATUS_SUCCESS
    • Đang kết nối:MokoConstants.CONN_STATUS_CONNECTING
    • Kết nối thất bại:MokoConstants.CONN_STATUS_FAILED
    • Hết thời gian kết nối:MokoConstants.CONN_STATUS_TIME hiện

2、Nhận phản hồi giao tiếp của socket bằng cách đăng ký chương trình phát sóng :

HÀNH ĐỘNG phát sóng:MokoConstants.ACTION_AP_SET_DATA_RESPONSE

Nhận phản hồi:

Phản hồi của DeviceResponse = (Thiết bị phản hồi) aim.getSerializableExtra(MokoConstants.EXTRA_AP_SET_DATA_RESPONSE);

2.1.3 Ổ cắm
Gửi dữ liệu chỉ chấp nhận chuỗi ở định dạng JSON

ví dụ:

1、Nhận thông tin thiết bị:

{
“tiêu đề” : 4001
}

phản ứng:

{
“mã” : 0,
“thông điệp” : “sự thành công”,
“kết quả” : {
“tiêu đề” : 4001,
“thiết bị” : “iot_plug”,
“Tên thiết bị” : “cắm_one”,
“device_specifying” : “chúng ta”,
“thiết bị_mac” : “11:22:33:44:55:66”,
“loại thiết bị” : “1”
}
}

2、 Gửi thông tin máy chủ MQTT

{
“tiêu đề” : 4002,
“tổ chức” : “45.32.33.42”,
“Hải cảng” : 1883,
“kết nối” : 0,
“tên tài khoản” : “DVES_USER”,
“mật khẩu” : “DVES_PASS”,
“cố sống đi” : 120,
“số” : 2,
“dọn dẹp” :1
}
phản ứng:

{
“mã” : 0,
“thông điệp” : “sự thành công”,
“kết quả” : {
“tiêu đề” : 4002
}
}

3、Gửi mạng WIFI với SSID cụ thể

{
“tiêu đề” : 4003,
“wifi_ssid” : “Fitpolo”,
“wifi_pwd” : “fitpolo1234.”,
“bảo mật wifi” : 3
}

phản ứng:

{
“mã” : 0,
“thông điệp” : “sự thành công”,
“kết quả” : {
“tiêu đề” : 4003
}
}

2.2 Hỗ trợ Moko

2.2.1 Kết nối với máy chủ MQTT
1、Tạo MqttAndroidClient

công khai void creatClient(Chuỗi máy chủ, Cổng chuỗi, Chuỗi clientId, boolean tlsConnection)

2、Kết nối với máy chủ

công khai void connectMqtt(Tùy chọn MqttConnectOptions)
Nhận trạng thái tạo theo MqttCallbackHandler và nhận máy chủ biểu mẫu dữ liệu trả về

@Ghi đè
công khai void connectComplete(kết nối lại boolean, Chuỗi máy chủURI) {

}
@Ghi đè
kết nối void công khai(Nguyên nhân có thể ném) {

}
@Ghi đè
tin nhắn void công khai(Chuỗi chủ đề, Tin nhắn MqttMessage) ném ngoại lệ {

}

3、Nhận trạng thái kết nối bằng cách đăng ký chương trình phát sóng:

HÀNH ĐỘNG phát sóng:MokoConstants.ACTION_MQTT_CONNMENT

Tình trạng kết nối:

    • Kết nối thành công:MokoConstants.MQTT_CONN_STATUS_SUCCESS
    • Ngắt kết nối:MokoConstants.MQTT_CONN_STATUS_LOST

4、Nhận dữ liệu trả về từ máy chủ bằng cách đăng ký chương trình phát sóng

HÀNH ĐỘNG phát sóng:MokoConstants.ACTION_MQTT_RECEIVE

Trả lại dữ liệu:

    • Trả về dữ liệu Chủ đề:

MokoConstants.EXTRA_MQTT_RECEIVE_TOPIC

    • Trả về dữ liệu Tin nhắn:

MokoConstants.EXTRA_MQTT_RECEIVE_MESSAGE

Dữ liệu trả về ở định dạng JSON,ví dụ:

{
“Tên công ty” : “moko”,
“ngay san xuat” : “201801”,
“dòng sản phẩm” : “cắm_one”,
“phiên bản phần mềm” : “000001”
“thiết bị_mac” : “11:22:33:44:55:66”
}

2.2.2 Giám sát hành động
Truyền thông MQTT chứa bốn loại Hành động. Để thực hiện từng hành động, bạn cần đặt ActionListener để theo dõi trạng thái của Action:

hành động công khai {
/**
* Kết nối hành động
**/
KẾT NỐI,
/**
* Theo dõi hành động
**/
ĐĂNG KÝ,
/**
* Xuất bản hành động
**/
CÔNG BỐ,
/**
* Hủy đăng ký hành động
**/
UNSUBSCRIBE
}

Nhận trạng thái Hành động bằng cách đăng ký chương trình phát sóng:

1、KẾT NỐI

HÀNH ĐỘNG phát sóng:MokoConstants.ACTION_MQTT_CONNMENT

Kết nối thất bại:MokoConstants.MQTT_CONN_STATUS_FAILED
2、ĐĂNG KÝ

HÀNH ĐỘNG phát sóng:MokoConstants.ACTION_MQTT_SUBSCRIBE

Theo dõi chủ đề:MokoConstants.EXTRA_MQTT_RECEIVE_TOPIC
Đăng ký trạng thái:MokoConstants.EXTRA_MQTT_STATE

3、CÔNG BỐ

HÀNH ĐỘNG phát sóng:MokoConstants.ACTION_MQTT_PUBUB

Xuất bản trạng thái:MokoConstants.EXTRA_MQTT_STATE

4、UNSUBSCRIBE

HÀNH ĐỘNG phát sóng:MokoConstants.ACTION_MQTT_UNSUBSCRIBE

Tình trạng hủy đăng ký:MokoConstants.EXTRA_MQTT_STATE

2.2.3 Theo dõi chủ đề

MokoSupport.getInstance().đăng ký(Chuỗi chủ đề, int qos)

2.2.4 Xuất bản thông tin

MokoSupport.getInstance().công bố(Chuỗi chủ đề, Tin nhắn MqttMessage)

2.2.5 Hủy đăng ký chủ đề

MokoSupport.getInstance().hủy đăng ký(Chuỗi chủ đề)

2.2.6 Xác định xem MQTT có được kết nối không

MokoSupport.getInstance().đã kết nối()

2.2.7 Ngắt kết nối

MokoSupport.getInstance().ngắt kết nối()

3.Lưu nhật ký vào thẻ SD
SDK tích hợp Nhật ký được lưu vào chức năng thẻ SD, được gọi là https://github.com/elvishew/xLog

phương thức khởi tạo trong MokoSupport.getInstance().trong đó(getApplicationContext())

Tên thư mục và tên tệp được lưu trên thẻ SD có thể được sửa đổi.

lớp công khai LogModule {
Chuỗi ký tự tĩnh cuối cùng TAG = “mokoLife”;// tên tập tin
chuỗi ký tự tĩnh cuối cùng LOG_FOLDER = “mokoLife”;// tên thư mục

}

Chiến lược lưu trữ: chỉ lưu trữ dữ liệu của ngày và dữ liệu của ngày trước , các tập tin được hậu tố với.bak

phương thức gọi:

LogModule.v(“thông tin đăng nhập”);
LogModule.d(“thông tin đăng nhập”);
LogModule.i(“thông tin đăng nhập”);
LogModule.w(“thông tin đăng nhập”);
LogModule.e(“thông tin đăng nhập”);