Mục lục:

Dữ liệu thời tiết bằng Google Trang tính và Google Script: 7 bước
Dữ liệu thời tiết bằng Google Trang tính và Google Script: 7 bước

Video: Dữ liệu thời tiết bằng Google Trang tính và Google Script: 7 bước

Video: Dữ liệu thời tiết bằng Google Trang tính và Google Script: 7 bước
Video: Tạo FORM Google Sheet Apps Script có Load Dữ liệu lại giao diện web 2024, Tháng mười một
Anonim
Dữ liệu thời tiết bằng Google Trang tính và Google Script
Dữ liệu thời tiết bằng Google Trang tính và Google Script

Trong Blogtut này, chúng tôi sẽ gửi các kết quả đọc của cảm biến SHT25 tới các trang tính của Google bằng cách sử dụng Adafruit huzzah ESP8266 giúp gửi dữ liệu lên internet.

  • Gửi dữ liệu đến ô bảng tính của google là cách cơ bản và hữu ích giúp lưu dữ liệu dưới dạng bảng trực tuyến.
  • Thay vì sử dụng bất kỳ loại cầu nối đặc biệt nào như đẩy hộp hoặc MQTT NODE RED hoặc bất kỳ loại API REST nào khác, chúng tôi sẽ gửi dữ liệu bằng cách sử dụng tập lệnh google, dễ dàng nhận dữ liệu từ cảm biến bằng cách sử dụng liên kết tập lệnh được cung cấp bởi ứng dụng tập lệnh google sau khi xuất bản
  • Chúng tôi có thể sử dụng tập lệnh để gửi dữ liệu từ google sheet, docs hoặc thậm chí tới google drive.
  • Chỉ cần không kết thúc ở đây hơn nữa, bạn có thể kết nối các trang tính của google với bất kỳ ứng dụng dựa trên web nào chia sẻ dữ liệu với người dùng theo cách họ muốn
  • Không phải trả thêm phí không giống như các máy chủ trực tuyến khác ở đây và bạn có thể lưu trữ dữ liệu lên đến Tối đa 10 GB trong tài khoản người dùng và có thể sử dụng
  • Một trong những nỗ lực tốt nhất là bạn có thể tìm hiểu về cách kết nối dữ liệu với internet bằng loại ứng dụng thời gian thực này một cách dễ dàng.
  • Chúng tôi sẽ sử dụng kết nối I2C thực hiện giao thức chủ-tớ để chia sẻ dữ liệu với google sheet một cách linh hoạt.
  • Nền tảng giao thức I2C kết nối phần cứng cảm biến và hoạt động với khoảng 256 cảm biến cùng một lúc bằng cách chỉ sử dụng 2 dây kéo lên để truyền dữ liệu cảm biến trong phần cứng 8 bit

Bước 1: Phần cứng

Adafruit Feather Kits HUZZAH

Adafruit Feather Huzzah Board

Adafruit I2C tích hợp và bộ chuyển đổi USB

Cảm biến nhiệt độ và độ ẩm SHT25

Cáp I2C

Bước 2: Cách hoạt động của nội dung

Việc tìm nạp các bài đọc dữ liệu thời gian thực của các cảm biến thông qua ESP8266 và gửi dữ liệu đến các nền tảng Đám mây khác nhau rất đơn giản.

Chúng tôi sẽ sử dụng thư viện Wire.h trong Arduino IDE để tạo hai giao tiếp có dây giữa Adafruit Huzzah Board và mô-đun I2C cảm biến SHT25 và cáp I2C.

Lưu ý: Để tránh cấu trúc dây phức tạp, tôi sẽ sử dụng bộ điều hợp I2C cho Adafruit Huzzah được thiết kế để kết nối cảm biến I2C.

Đối với người mới thiết lập Esp8266, bạn phải trải qua quá trình thiết lập ESP8266

Khởi tạo đầu tiên các thư viện:

  • Thư viện dây
  • ESP8266WiFi
  • WiFiClientSecure

Bước 3: Quy trình thực thi mô-đun I2C trong Arduino IDE

Sau khi Khởi tạo thư viện, chúng tôi sẽ xác định quy trình I2C được sử dụng để tìm nạp các bài đọc cảm biến chuyển đổi chúng và chuyển dữ liệu 8 bit theo yêu cầu:

Khởi tạo các thanh ghi trong giao thức I2C hai dây cho mô-đun cảm biến I2C

#define Addr 0x40

  • Bắt đầu truyền I2C và khởi tạo các thanh ghi và yêu cầu dữ liệu 2 byte từ nơi chúng tôi sẽ đọc dữ liệu cảm biến.
  • Nếu dữ liệu 2 byte sẽ có sẵn thì hãy đọc dữ liệu cảm biến và sử dụng các công thức được đề cập bên dưới, chúng tôi đang chuyển đổi các giá trị mong muốn

độ ẩm phao = (((dữ liệu [0] * 256.0 + dữ liệu [1]) * 125.0) / 65536.0) - 6;

float cTemp = (((dữ liệu [0] * 256.0 + dữ liệu [1]) * 175.72) / 65536.0) - 46.85;

float fTemp = (cTemp * 1.8) + 32;

In các giá trị trong một màn hình điều khiển nối tiếp

Bước 4: Kết nối ESP8266 với WiFi và Bảng tính Google

Sau khi thực thi các mô-đun I2C, chúng ta sẽ tìm hiểu về cách tìm nạp dữ liệu và bằng cách sử dụng thư viện WiFi và id máy chủ cũng như các khóa API để gửi dữ liệu đến google sheet.

  • Xác định thông tin đăng nhập WiFi trên toàn cầu trong ESP8266 sẽ giúp chúng tôi kết nối bảng với internet
  • Vì chúng tôi sẽ sử dụng máy khách HTTP và sẽ xác định giao thức HTTPS = 443 để bảo mật đường dẫn HTTP vì tập lệnh sẽ chỉ hoạt động trong đường dẫn an toàn.
  • Khởi tạo chi tiết máy chủ lưu trữ trong mã

const char * host = "script.google.com";

const int httpsPort = 443;

String SCRIPT_ID = "đề cập đến ID script như đã đề cập trong snaps";

Lưu ý: ID tập lệnh được đề cập trong “URL ứng dụng web” trong khi mã Gscript sẽ được xuất bản, chỉ cần sao chép và dán id được đề cập bên dưới và khởi tạo trong các lệnh trên

  • Cũng bằng cách sử dụng biến với biến, chúng ta sẽ khởi tạo biến trên toàn cầu để tìm nạp dữ liệu từ mô-đun I2C và gửi nó đến tập lệnh URL sẽ tiếp tục gửi dữ liệu đến đích.
  • Sử dụng Thư viện WiFi ESP8266, chúng tôi sẽ có thể kết nối bảng với internet
  • Dữ liệu cảm biến sẽ được lưu trữ vào máy chủ cục bộ sau mỗi 5 giây.
  • Với sự trợ giúp của tập lệnh URL, dữ liệu sẽ được lưu trữ vào liên kết được xuất bản của tập lệnh google Trang hoạt động sau mỗi 15 giây.

Bước 5: Tự động hóa Google Trang tính bằng Trình soạn thảo GScript

Tự động hóa Google Trang tính bằng Trình soạn thảo GScript
Tự động hóa Google Trang tính bằng Trình soạn thảo GScript
Tự động hóa Google Trang tính bằng Trình soạn thảo GScript
Tự động hóa Google Trang tính bằng Trình soạn thảo GScript
Tự động hóa Google Trang tính bằng Trình soạn thảo GScript
Tự động hóa Google Trang tính bằng Trình soạn thảo GScript

Vì tất cả chúng ta đều có tài khoản google để đăng nhập vào google sheet bằng tài khoản của bạn

  • Đề cập đến các giá trị mà bạn cần nhận được từ cảm biến được kết nối với ESP8266
  • Đi tới Công cụ> Trình chỉnh sửa tập lệnh
  • Sử dụng chức năng "Doget" để nhận các sự kiện
  • Trong chức năng “Doget” để khởi tạo khóa API bảng tính cũng như kết nối Trang tính hoạt động nơi bạn muốn gửi các giá trị cảm biến
  • Với sự trợ giúp của chức năng tự động hóa được đề cập trong đoạn mã để biểu diễn dữ liệu theo hàng và cột một cách dễ dàng.
  • Cuối cùng, lưu dữ liệu và nhấp vào “Xuất bản” >> Nhấp vào “Triển khai dưới dạng ứng dụng web”
  • Đảm bảo bất cứ khi nào có bất kỳ thay đổi nào để chọn “phiên bản dự án” >> “Mới” >> nhấn “cập nhật”

URL ứng dụng web hiện tại sẽ xuất hiện như bên dưới:

script.google.com/macros/s/[GScript ID”/ execute:

được sử dụng thêm trong mã ESP8266 để tìm nạp dữ liệu từ các cảm biến

Kết nối lưu trữ Chúng tôi sẽ sử dụng HTTPS Nhận yêu cầu để kết nối dữ liệu với id máy chủ được đề cập trong trình chỉnh sửa gscript, nơi chúng tôi đã mã hóa dữ liệu của mình thêm để kết nối với google sheet.

function doGet (e) {Logger.log (JSON.stringify (e)); // xem tham số var result = 'Ok'; // giả sử thành công if (e.parameter == 'undefined') {result = 'No Parameters'; } else {var sheet_id = ''; // ID bảng tính var sheet = SpreadsheetApp.openById (sheet_id).getActiveSheet (); var newRow = sheet.getLastRow () + 1; var rowData = ; } Logger.log (JSON.stringify (rowData)); // Viết hàng mới bên dưới var newRange = sheet.getRange (newRow, 1, 1, rowData.length); newRange.setValues ([rowData]); }

Bước 6: Hạn chế:

Hạn chế
Hạn chế
  • Dự án này chỉ giới hạn để lưu trữ dữ liệu của cảm biến I2C trong google sheet
  • Chúng tôi đang sử dụng yêu cầu HTTPS GET để nhận các giá trị thông qua các hàm I2C
  • Chúng tôi phải thay đổi giá trị ở định dạng chuỗi và sau đó gửi dữ liệu đến liên kết URL gscript.

Bước 7: Mã, Tín dụng, Tham chiếu

Mã Github:

github.com/varul29/SHT25_GoogleSheets_Goog…

Thẩm quyền giải quyết

Mã I2C:

Hướng dẫn về Google Script:

Cửa hàng nhúng:

Blog hướng dẫn:

Đề xuất: