Professional Documents
Culture Documents
Hướng dẫn tích hợp giải pháp 16 - 09 - 2022
Hướng dẫn tích hợp giải pháp 16 - 09 - 2022
Lưu trữ
Logic xử lý Tạo API
dữ liệu
3 Các node nghiệp vụ của flow engine
Các công cụ bảng biểu,bản đồ, sơ đồ hỗ trợ theo dõi được tình trang của sản phẩm, giải pháp một
cách trực quan, Mobile App mẫu cho hệ điều hành iOS và Android
3 Tham khảo bổ sung
Tạo Tài
Khoản
Tạo dự án
Tích hợp
thiết bị
Phát triển
FlowEngine
Phát triển
công cụ theo
dõi ,giám sát
4 Quy trình tích hợp giải pháp
Tạo tài khoản
Tạo tài khoản : Đăng ký Email, tạo mật khẩu… Tạo Tài Khoản
Tạo dự án
Phát triển
FlowEngine
Xác nhận để
đăng ký Phát triển
công cụ theo
dõi ,giám sát
4 Quy trình tích hợp giải pháp
Tạo dự án
Tạo dự án
Phát triển
FlowEngine
Phát triển
công cụ theo
dõi ,giám sát
Link hướng dẫn: https://vht-iot.gitbook.io/innoway/bat-dau-su-dung/du-an-dau-tien
4 Quy trình tích hợp giải pháp
Phát triển Firmware
Phát triển
ESP DEV KIT V1 Môi trường lập trình ESP32 FlowEngine
Phát triển
công cụ theo
dõi ,giám sát
4 Quy trình tích hợp giải pháp
Phát triển Flow Engine
Ở thanh chức năng bên trái, bấm chọn Đám mây, sau đó ấn chọn Flow Engine
Tạo Tài Khoản
Tạo dự án
Phát triển
FlowEngine
Tạo dự án
Phát triển
FlowEngine
Phát triển
công cụ theo
dõi ,giám sát
4 Quy trình tích hợp giải pháp
Phát triển Flow Engine
Tạo dự án
Phát triển
FlowEngine
Tạo dự án
2
Phát triển
FlowEngine
Phát triển
công cụ theo
dõi ,giám sát
4 Quy trình tích hợp giải pháp
Bảng điểu khiển
B1. Tại màn hình bảng điều khiển chọn Thêm Widget
Tạo Tài Khoản
Tạo dự án
Phát triển
FlowEngine
Phát triển
công cụ theo
dõi ,giám sát
4 Quy trình tích hợp giải pháp
Bảng điểu khiển
B2. Chọn một Widget phù hợp với nhu cầu để thêm vào bảng điều khiển
Tạo Tài Khoản
Tạo dự án
Phát triển
FlowEngine
Phát triển
công cụ theo
dõi ,giám sát
4 Quy trình tích hợp giải pháp
Bảng điểu khiển
B2. Chỉnh sửa dữ liệu cần hiển thị tương ứng với từng biểu đồ bằng cách chọn vào biểu
tượng “bút” góc trên bên phải Tạo Tài Khoản
Tạo dự án
Phát triển
FlowEngine
Phát triển
công cụ theo
dõi ,giám sát
PHẦN
HƯỚNG DẪN CHI TIẾT TÍCH HỢP
0
03
Mục tiêu bài thực hành 24
Sẵn sàng các kiến thức thực tế để phát triển các ứng dụng trên nền tảng InnoWay
Đề bài: Xây dựng hệ thống điều khiển đèn Led từ xa qua wifi
Mô tả bài toán:
1. Dùng đèn Led có sẵn trên ESP32 DEV KIT để thực hiện các lệnh điều
khiển qua sóng wifi
2. Thực hiện tích hợp thiết bị lên nền tảng Innoway để theo dõi và xử lý
lệnh điều khiển
3. Sử dụng MQTT Box để thực hiện gửi lệnh điều khiển thiết bị
Ứng dụng:
Cho các ứng dụng tại các khu vực có phủ sóng wifi: Smart Home, Smart
Farm
Tại menu bên trái, chọn Đám mây, vào Quản lý tổ chức, chọn thẻ Dự án, và ấn vào thẻ Thiết bị.
Ở thanh chức năng bên trái, bấm chọn Đám mây, sau đó ấn chọn Flow Engine
Truy cập vào link: https://github.com/duydev294/MQTT_Innoway và tải về file led_flow.json rồi sau đó
đưa file vào Flow Engine
Điều khiển đèn Led từ xa
Thiết lập Flow Engine
Sau khi thêm thành công, Flow Engine hiện ra như sau
2
Điều khiển đèn Led từ xa
Lập trình ESP32
Link code mẫu: https://github.com/duydev294/MQTT_Innoway/tree/main/ESP32_code
Tạo dự án kết nối MQTT đầu tiên: Vào File/New/Espressif IDF Project, đăt tên cho dự án, sau đó chọn
Next -> Create a project using one of the templates -> protocols -> tcp
2
3
1
Điều khiển đèn Led từ xa
Lập trình ESP32
Thiết lập kết nối wifi cho esp32
Từ thư mục dự án, chọn sdkconfig => Example Connection Configuration => Điền thông tin wifi mà bạn muốn kết
nối tới (SSID, Password)
2
1
Điều khiển đèn Led từ xa
Lập trình ESP32
Cấu hình cho kết nối MQTT tới Innoway, với MQTT_Broker là mqtt://mqtt.innoway.vn,
Password là deviceToken được lấy ở Innoway, username là một chuỗi bất kỳ
1
Cách lấy device token trên nền tảng Innoway
2
Điều khiển đèn Led từ xa
STT Nội dung kiểm tra Kết quả Nguyên nhân (nếu có)
1 Tạo và đăng nhập thành công tài khoản trên innoway
2 Tạo và lấy được deviceID và deviceToken từ nền tảng
3 Thiết bị kết nối được vào mạng WIFI
4 Thiết bị kết nối được đến server innoway thông qua
giao thức MQTT
5 Thiết bị nhận và thực hiện đúng lệnh gửi từ người
dùng
BÀI TẬP SỐ 2:
THỰC HÀNH GIẢI PHÁP INDOOR
Đề bài: Xây dựng công tắc thông minh 4 nút Wi-Fi tích hợp nền tảng Innoway,
điều khiển bằng ứng dụng VTHome qua giao thức MQTT.
Mô tả bài toán:
1. Dùng 4 nút nhấn nối với ESP32 mô phỏng như 4 nút của công tắc, 4 đèn LED đơn
để xem trạng thái bật tắt của nút nhấn
2. Để tích hợp được công tắc lên nền tảng Innoway, ta phải đăng kí thiết bị thông qua
app VTHome (được gọi là quá trình pair). Trong quá trình này, công tắc phải thực
hiện:
+ Kết nối Wi-Fi (smartconfig)
+ Lấy thông tin device id và token (app sẽ gửi thông tin này qua giao thức http)
+ Kết nối MQTT
3. Sau khi đăng kí được thiết bị, mở app VTHome để điều khiển bật tắt công tắc. Hoặc bật
tắt từ 4 nút nhấn.
Ứng dụng:
Dành cho các giải pháp trong vùng phủ sóng wifi: Smart Home, Smart Farm
Chuẩn bị:
Phần cứng:
1. Kit ESP32-Wroom-32
2. Cab micro USB 2.0/3.0
3. 4 nút nhấn
4. Dây nối
5. 4 LED đơn
6. Breadboard
Phần mềm:
1. Trình biên dịch Espressif-IDE: https://dl.espressif.com/dl/esp-idf/
2. Ứng dụng VTHome:
• IOS: https://apps.apple.com/vn/app/vthome/id1611471811?l=vi
• Android: https://play.google.com/store/apps/details?id=com.viettel.VTHome
2 Bài tập thực hành 2
Sơ đồ nối chân
GND GND
D32 D2
D33 D4
D34 D5
D35 D18
2 Bài tập thực hành 2
Lưu ý cấu hình flash
Mở SDK configuration, chọn Flash size 4M
2 Bài tập thực hành 2
Lưu ý cấu hình flash
Chọn Custom partition table CSV. Gõ partitions4M.csv
2 Bài tập thực hành 2
Luồng tích hợp thiết bị lên nền tảng Innoway
2 Bài tập thực hành 2
Thực hành lập trình
Thiết bị chạy chế độ smartconfig lấy ssid và password sau đó kết nối Wi-Fi
Code chạy smartconfig:
void start_smartconfig(void)
{
if(initEvent == false)
{
initEvent = true;
s_wifi_event_group = xEventGroupCreate();
ESP_ERROR_CHECK( esp_event_handler_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &event_handler, NULL) );
ESP_ERROR_CHECK( esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &event_handler, NULL) );
ESP_ERROR_CHECK( esp_event_handler_register(SC_EVENT, ESP_EVENT_ANY_ID, &event_handler, NULL) );
}
esp_wifi_stop();
ESP_ERROR_CHECK( esp_wifi_set_mode(WIFI_MODE_STA) );
ESP_ERROR_CHECK( esp_wifi_start() );
}
ESP32 chạy webserver để gửi thông tin của thiết bị, nhận device id và token từ app gửi qua giao thức http 1.1
httpd_handle_t start_webserver(void)
{
esp_err_t err;
httpd_config_t config = HTTPD_DEFAULT_CONFIG();
config.stack_size = 8192;
config.lru_purge_enable = true;
STT Nội dung kiểm tra Kết quả Nguyên nhân (nếu có)
1 Đăng ký và đăng nhập thành công tài khoản trên App
2 Đưa được thiết bị vào đúng chế độ Smartconfig bằng
nút bấm trên thiết bị
3 Đưa được thiết bị vào đúng chế độ Smartconfig bằng
nút bấm trên thiết bị
4 Thiết bị gửi đúng thông tin cho App để app hiển thị
đúng loại thiết bị
5 Thiết bị nhận được và lưu thông tin deviceId và
deviceToken để kết nối đến server Innoway
6 Thiết bị nhận và thực hiện đúng lệnh được gửi từ App
7 Thiết bị gửi được thông tin trạng thái để đồng bộ trên
App
BÀI TẬP SỐ 3:
THỰC HÀNH GIẢI PHÁP OUTDOOR
Đề bài: Tích hợp thiết bị định vị, cấu hình thông số bằng ứng dụng qua giao thức MQTT.
Mô tả bài toán:
Ứng dụng:
Dành cho các giải pháp sử dụng các module SIM, cho các ứng dụng Out Door: Tracking
vị trí, cảm biến môi trường
Phần mềm:
1. Trình biên dịch Arduino-IDE
2. Ứng dụng: AiHome
• IOS: https://dply.me/n1wl2c
• Android: https://dply.me/zz0r9p
3 Bài tập thực hành 3
Mô tả thiết bị
-Vi điều khiển sẽ giao tiếp với Module sim thông qua
uart
Vd: AT, AT+CEREG?, …
- Sử dụng các phần mềm có thể giao tiếp UART
(Tham khảo tài liệu SIM7020 Series_ AT Command Manual để hiểu về
UART (AT COMMAND) tập hợp các câu lệnh và chức năng)
- Với Module GPS, vi điều khiển sẽ nhận các giá trị thông tin
vị trí thông qua UART theo chuẩn truyền thông NMEA
- Kiểm tra và bóc tách 1 số thông tin cần thiết như lat, lon,
speed…
Lưu ý: baudrate mặc định của các module là 9600
UART
Device token
Sau khi đăng nhập vào project
tương ứng, click vào tài khoản
ở góc phải và chọn copy device
token để lấy được device token
3 Bài tập thực hành 3
Luồng tích hợp thiết bị lên nền tảng Innoway
Device ID
STT Luồng Mô tả
Thiết bị -> Thiết bị kết nối MQTT về server với username là device_id và password là
1
Server devicetoken. Thông tin MQTT Broker: mqtt.innoway.vn:1883
Server -> Thiết bị sẽ Subcribe vào topic:
2
Thiết bị Command/{device_id}/control để nhận lệnh điều chỉnh chu kỳ gửi
Thiết bị -> Gửi bản tin vị trí vào topic
3
Server messages/{device_id}/attributes
3 Bài tập thực hành 3
Sơ đồ chân cắm
Sơ đồ cắm chân theo link example đã gửi. Người sử dụng có thể tham khảo example và thay đổi chân
cắm theo ý mình
AT+CMQNEW="116.101.122.190","1883",50000,512
- Lưu Lại toàn bộ lộ trình đường đã đi trong khoảng thơi gian đã chọn
Định vị
Checklist hoàn thành (Quan trọng)
STT Nội dung kiểm tra Kết quả Nguyên nhân (nếu có)
1 Tạo và đăng nhập thành công tài khoản trên innoway
2 Tạo và lấy được deviceID và deviceToken từ nền tảng
3 Kết nối thành công với trạm BTS (4G)
4 Thiết bị kết nối được đến server innoway thông qua
giao thức MQTT
5 Kiểm tra bản tin phản hồi từ thiết bị thông qua MQTT
Box
6 App hiển thị được thông tin vị trí và hành trình đúng
với vị trí của thiết bị, đối chiếu đúng với bản tin nhận từ
MQTT Box
BÀI TẬP SỐ 4:
THỰC HÀNH GIẢI PHÁP OUTDOOR
Đề bài: Thiết kế đồng hồ nước thông minh tích hợp nền tảng Innoway
Mô tả bài toán:
1. Sử dụng cảm biến YF-S201 đo tốc độ dòng chảy, lượng nước tiêu thụ trong chu kì 2
phút.
2. Sử dụng SIM7020E, dùng công nghệ kết nối NB-IoT
3. Bản tin gồm thời gian, tốc độ dòng chảy, lượng nước tiêu thụ gửi qua giao thức truyền
thông MQTT với chu kì 2 phút
Ứng dụng:
Dành cho các giải pháp sử dụng các module SIM, công nghệ NB-IoT, cho các ứng dụng
Out Door: Smart Metering
Phần mềm:
1. Trình biên dịch Espressif-IDE: https://dl.espressif.com/dl/esp-idf/
2. App AiHome:
IOS: https://dply.me/n1wl2c
Android: https://dply.me/zz0r9p
4 Bài tập thực hành 4
Sơ đồ nối chân
4 Bài tập thực hành 4
Công nghệ kết nối NB-IoT
Phạm vi kết nối rộng, băng thông thấp, điện năng tiêu thụ thấp (LPWAN)
Thông số kỹ thuật:
4 Bài tập thực hành 4
Lưu đồ thuật toán:
AT command: sim7020_series_at_command_manual_v1.05.pdf
4 Bài tập thực hành 4
Module sim 7020E
Kiểm tra đăng kí mạng:
AT command: sim7020_series_at_command_manual_v1.05.pdf
4 Bài tập thực hành 4
Module sim 7020E
Kết nối MQTT:
bool mqtt_start(client clientMQTT, int versionMQTT, int keepalive, int clean_session, int retry) {
if (mqtt_new(clientMQTT, 50000, 512, 3) == 0) return false;
AT_flag res;
char buf[300];
sprintf(buf, "AT+CMQCON=%d,%d,\"%s\",%d,%d,0,\"%s\",\"%s\"", clientMQTT.mqtt_id, versionMQTT,
clientMQTT.client_id, keepalive, clean_session, clientMQTT.user_name, clientMQTT.password); // will
flag = 0
send_ATComand("AT+CREVHEX=0\r\n");
while (retry--) {
send_ATComand(buf);
res =_readFeedback(5000, "OK");
if(res == AT_OK) return true;
else if(res == AT_ERROR) return false;
}
return false;
}
AT command: sim7020_series_at_command_manual_v1.05.pdf
4 Bài tập thực hành 4
Đọc cảm biến YF-S201
gpio_install_isr_service(0);
gpio_isr_handler_add(gpio_num, gpio_isr_handler, (void*) gpio_num);
}
4 Bài tập thực hành 4
Đọc cảm biến YF-S201
Gửi bản tin gồm: timestamp, lưu lượng nước tức thời, lượng nước tiêu thụ trong chu kì 2 phút
void publish_task(void * pvParameters) {
while (1) {
if (esp_timer_get_time()/1000 - current_time > 2000) {
current_time = esp_timer_get_time()/1000;
ESP_LOGI("MAIN", "CNT: %d", freq);
freq = 0;
// Pulse frequency (Hz) = 7.5Q, Q is flow rate in L/min.
float flowRate = (freq / 7.5);
// (Pulse frequency x 60 min) / 7.5Q = flowrate in L/hour
float waterVolume = (flowRate / 60.0) * 1000;
char data[100] = {0};
sprintf(data, "{\"t\":%d,\"wv\":%.2f,\"wf\":%.2f}", gettimeofday(&epoch, 0), waterVolume,
flowRate);
mqtt_message_publish(client_mqtt, data, topic_pub, 0, 3);
}
vTaskDelay(10 / portTICK_PERIOD_MS);
}
}
2 Bài tập thực hành 4
Hướng dẫn sử dụng App Edu
- Hiển thị thông tin: lượng nước, lưu lượng dòng chảy theo các mốc thời gian tùy chọn
Thông báo lưu lượng nước
Smart Meter
Checklist hoàn thành (Quan trọng)
STT Nội dung kiểm tra Kết quả Nguyên nhân (nếu có)
1 Tạo và đăng nhập thành công tài khoản trên innoway
2 Tạo và lấy được deviceID và deviceToken từ nền tảng
3 Kết nối thành công với trạm BTS (4G)
4 Thiết bị kết nối được đến server innoway thông qua
giao thức MQTT
5 Kiểm tra bản tin phản hồi từ thiết bị thông qua MQTT
Box
6 App hiển thị được thông tin lưu lượng nước và tổng
lượng nước chảy qua cảm biến theo thời gian thực, so
sánh đối chiếu với bản tin nhận được từ MQTT Box
TRÂN TRỌNG CẢM ƠN.SMART
HOME