HƯỚNG DẪN GỬI DỮ LIỆU TỪ VBOX LÊN GOOGLE SHEETS
HƯỚNG DẪN GỬI DỮ LIỆU TỪ VBOX LÊN GOOGLE SHEETS
Tổng quan
V-BOX của Wecon hỗ trợ lập trình bằng Lua, cho phép gửi dữ liệu lên các dịch vụ web thông qua giao thức HTTP/HTTPS. Trong hướng dẫn này, chúng ta sẽ sử dụng Google Apps Script để tạo API trung gian, giúp nhận dữ liệu từ HMI/V-BOX và ghi vào Google Sheet
Bước 1: Tạo Google Apps Script để nhận dữ liệu
- Đăng nhập vào https://docs.google.com/
- Sau đó chọn vào “Blank spreadsheet” để tạo 1 Sheet mới chứa dữ liệu

(1) Chọn vào “Extention” trên thanh công cụ
(2) Sau đó chọn vào “Apps Script”

(1) Trong Apps Script ta vào File tạo 1 File Code.gs để chứa chương trình
(2) Điền ID Google Sheet sẽ nhận dữ liệu từ V-BOX gửi lên
Lưu ý: ID sẽ được lấy từ /d/ và /edit


(1) Chọn vào Deploy → New Deployment
(2) Sau đó chọn đến mục “Who has access”
rồi chọn vào Anyone
(3) Nhấn Deploy
(4) Copy URL lại vì đây là địa chỉ để V-BOX
gửi Request đến Google Sheet



Bước 2: Tạo Script để gửi dữ liệu lên Google Sheet
Trên giao diện V-NET chọn đến V-BOX cần gửi dữ liệu đi
(1) Chọn vào mục “Lua Script”
(2) Chọn vào “New” để tạo 1 Script mới
(3) Đặt tên cho script và chọn chế độ chạy Timing

Sau đó viết 1 chương trình để thực hiện viêc gửi dữ liệu từ VBOX lên Google Sheets
Lưu ý: thay thế URL bằng URL đã được lấy ở bước 1 (Sau khi Deployment)

-- ###### Khai báo thư viện và URL của Google Sheets ################--
local socket = require("socket")
local https = require("https")
local ltn12 = require("ltn12")
id = 0
-- API URL của Google Apps Script
URL = "https://script.google.com/macros/s/AKfycbxI8d5txR4Izxvjlq2-0L8fuF-AVdmYQpb_yTkqELnXEslFswaGfGD8iP6CMqrmXqY/exec"
-- ################## Chương trình kết nối và thực hiện việc gửi dữ liệu về Google Sheets với 2 giá trị Nhiệt độ và Độ Ẩm #########################
function send_data()
id = id + 1
local temp = addr_getword("@Temp") or 0
local humi = addr_getword("@Humi") or 0
local str = '{"id":' .. id .. ',"temp":' .. temp .. ',"humi":' .. humi .. '}'
local response_body = {}
local res, code, headers, status = https.request{
url = URL,
method = "POST",
headers = {
["Content-Type"] = "application/json",
["Content-Length"] = tostring(#str)
},
source = ltn12.source.string(str),
sink = ltn12.sink.table(response_body)
}
if code == 200 then
print("Gửi thành công: " .. table.concat(response_body))
else
print("Lỗi gửi dữ liệu: " .. tostring(code))
end
end
-- ##########Chương trình chính dùng 1 bit trang thái để gửi dữ liệu đi #############--
function Google_Sheet.main()
local upload_data = addr_getbit("@Upload")
if upload_data == 1 then
send_data()
end
end
Khi bit Update được chuyển sang trạng thái ON dữ liệu sẽ được gửi lên Google Sheets
