- Thành phần bắt buộc
- Sơ đồ mạch
- Thinger.io Thiết lập cho Bộ ghi nhiệt độ ESP8266
- Thiết lập IFTTT cho Trình ghi dữ liệu NodeMCU
- Lập trình NodeMCU để ghi dữ liệu
- Ghi dữ liệu trên Thinger.io từ NodeMCU
- Tạo Điểm cuối trong Thinger.io để gửi Thông báo qua Email
Trước đây chúng tôi đã sử dụng NodeMCU để ghi dữ liệu nhiệt độ trong Google sheet. Bây giờ ở đây chúng tôi sẽ gửi dữ liệu đến đám mây Thinger.io IoT và hiển thị nó ở định dạng đồ họa hấp dẫn. Cảm biến BMP180 được giao tiếp với NodeMCU ESP8266 để thu thập dữ liệu nhiệt độ, độ ẩm và độ cao, dữ liệu này sẽ được gửi đến nền tảng Thinger.io. Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách quản lý các tính năng khác nhau của nền tảng thinger.io, như thiết bị, điểm cuối, nhóm dữ liệu hoặc mã thông báo truy cập.
Thành phần bắt buộc
- NodeMCU ESP8266
- Cảm biến áp suất BMP180
- Dây nhảy
- Breadboard
Sơ đồ mạch
Sơ đồ mạch cho bộ ghi dữ liệu ESP8266 này rất đơn giản, ở đây chỉ có cảm biến BMP180 được giao tiếp với NodeMCU.
Cảm biến BMP180 sử dụng giao thức truyền thông I2C. Vì vậy, bạn cần kết nối các chân SCL và SDA của BMP180 với các chân SCL và SDA (D1 và D2) của NodeMCU. Ngoài ra, kết nối chân V IN và GND của BMP180 với 3.3V và GND của NodeMCU. Không kết nối trực tiếp Cảm biến với 5V vì có thể làm hỏng Cảm biến vĩnh viễn.
Để tìm hiểu thêm về NodeMCU, hãy kiểm tra các dự án IoT khác nhau dựa trên NodeMCU ESP8266.
Thinger.io Thiết lập cho Bộ ghi nhiệt độ ESP8266
Thinger.io là một Nền tảng mã nguồn mở cho Internet of Things. Nó cung cấp mọi công cụ cần thiết để tạo mẫu, mở rộng quy mô và quản lý các sản phẩm được kết nối theo cách rất đơn giản. Thinger.io cung cấp ba công cụ thiết yếu là Data Bucks, Dashboard và Endpoint để làm việc với dữ liệu thiết bị; những công cụ này có thể được sử dụng để trực quan hóa dữ liệu thiết bị và mở rộng khả năng tương tác của các thiết bị.
Data Bucks: Công cụ Data Bucks có thể được sử dụng để lưu trữ dữ liệu thiết bị theo cách có thể mở rộng, lập trình các khoảng thời gian lấy mẫu khác nhau hoặc ghi lại các sự kiện do thiết bị đưa ra.
Trang tổng quan: Công cụ trang tổng quan có một số Bảng điều khiển với các tiện ích con có thể tùy chỉnh có thể được tạo trong vòng vài phút bằng công nghệ kéo và thả để trực quan hóa dữ liệu được lưu trữ và thời gian thực.
Điểm cuối: Điểm cuối có thể được sử dụng để tích hợp nền tảng với các dịch vụ khác như IFTTT, Dịch vụ web tùy chỉnh, email hoặc gọi các thiết bị khác.
Trong ghi nhật ký ESP8266 này, chúng ta sẽ khám phá các công cụ này.
Để gửi dữ liệu đến Thinger.io, bạn cần tạo một tài khoản miễn phí trên nền tảng Thinger.io và làm theo các bước dưới đây để kết nối thiết bị của bạn.
Bước 1: Bước đầu tiên là tạo một thiết bị mới. Để tạo một thiết bị mới, hãy nhấp vào Thiết bị trong tab menu và sau đó nhấp vào nút Thêm thiết bị.
Sau đó điền vào biểu mẫu với ID thiết bị, mô tả và Thông tin đăng nhập hoặc tạo thông tin xác thực ngẫu nhiên cho thiết bị của bạn và nhấp vào ' Thêm thiết bị .'
Đó là tất cả; thiết bị của bạn đã sẵn sàng để kết nối. Trong bước tiếp theo, chúng tôi sẽ lập trình NodeMCU để gửi dữ liệu đến nền tảng Thinger.io.
Thiết lập IFTTT cho Trình ghi dữ liệu NodeMCU
Ở đây chúng tôi đang sử dụng IFTTT để gửi cảnh báo qua Email khi nhiệt độ vượt quá giới hạn. IFTTT (If This Then That) là một dịch vụ dựa trên web mà chúng ta có thể tạo chuỗi câu lệnh điều kiện, được gọi là applet. Sử dụng các applet này, chúng ta có thể gửi Email, Twitter, thông báo Facebook.
Để sử dụng IFTTT, hãy đăng nhập vào tài khoản IFTTT nếu bạn đã có hoặc tạo một tài khoản.
Bây giờ hãy tìm kiếm ' Webhooks ' và nhấp vào phần Webhooks trong Dịch vụ.
Sau đó, trong cửa sổ Webhooks, nhấp vào 'Tài liệu' ở góc trên bên phải để lấy khóa cá nhân. Sao chép khóa này, khóa này sẽ được sử dụng trong khi tạo Điểm cuối trong Thinger.io.
Sau đó, tạo một applet bằng dịch vụ Webhooks và Email . Để tạo một applet, hãy nhấp vào hồ sơ của bạn và sau đó nhấp vào ' Tạo. '
Bây giờ trong cửa sổ tiếp theo, hãy nhấp vào biểu tượng ' Đây '. Bây giờ tìm kiếm Webhooks trong phần tìm kiếm và nhấp vào ' Webhooks .'
Bây giờ hãy chọn trình kích hoạt ' Nhận yêu cầu web' và nhập tên sự kiện dưới dạng tạm thời, sau đó nhấp vào tạo trình kích hoạt.
Sau đó, nhấp vào ' Then That' và sau đó nhấp vào Email.
Bây giờ trong email, hãy nhấp vào 'gửi email cho tôi' và nhập chủ đề và nội dung email, sau đó nhấp vào tạo hành động. Trong bước cuối cùng, nhấp vào ' Hoàn tất ' để hoàn tất thiết lập Applet.
Lập trình NodeMCU để ghi dữ liệu
Mã hoàn chỉnh để gửi dữ liệu đến Thinger.io được đưa ra ở cuối trang. Ở đây, chúng tôi đang giải thích một số phần quan trọng.
Bắt đầu mã bằng cách bao gồm tất cả các thư viện cần thiết. Các ThingerESP8266.h được sử dụng để thiết lập kết nối giữa các nền tảng IOT và NodeMCU khi Adafruit_BMP085.h được sử dụng để đọc dữ liệu BMP cảm biến. Bạn có thể cài đặt thư viện ThingerESP8266.h từ trình quản lý thư viện Arduino IDEs.
#include
Tiếp theo, nhập thông tin đăng nhập vào mã để thiết bị có thể được nhận dạng và liên kết với tài khoản của bạn.
#define USERNAME "Tên người dùng tài khoản của bạn" #define DEVICE_ID "NodeMCU" // Tên thiết bị của bạn #define DEVICE_CREDENTIAL "FcLySVkP8YFR"
Sau đó, nhập tên điểm cuối của bạn. Điểm cuối được sử dụng để tích hợp nền tảng với các dịch vụ bên ngoài như IFTTT, yêu cầu HTTTP, v.v.
# xác định EMAIL_ENDPOINT "IFTTT"
Xác định các biến để lưu trữ dữ liệu Áp suất, Nhiệt độ và Độ cao.
int Áp suất, Nhiệt độ, Độ cao;
Bên trong vòng lặp void (), đọc dữ liệu cảm biến. Các pson kiểu dữ liệu có thể chứa các loại dữ liệu khác nhau. Vì vậy kiểu dữ liệu Pson được sử dụng để nhận nhiều giá trị cùng một lúc.
điều >> (pson & out) {out = bmp.readPressure () / 100; out = bmp.readAltitude (); out = bmp.readTempe Heat (); }
Sử dụng điều kiện if để gọi Điểm cuối nếu giá trị nhiệt độ vượt quá 15 độ. Ở đây dữ liệu là tên Điểm cuối.
if (Nhiệt độ> 15) {thing.call_endpoint (EMAIL_ENDPOINT, "data");} Serial.print ("Đang gửi dữ liệu");
Ghi dữ liệu trên Thinger.io từ NodeMCU
Bây giờ kết nối cảm biến BMP với NodeMCU và tải mã lên. NodeMCU sẽ sử dụng thông tin đăng nhập tài khoản của bạn để kết nối với thiết bị mà bạn đã tạo trước đó. Nếu nó kết nối thành công, nó sẽ hiển thị đã kết nối, như thể hiện trong hình ảnh dưới đây:
Bạn có thể kiểm tra thống kê thiết bị của mình như Dữ liệu đã truyền, Dữ liệu đã Nhận, Địa chỉ IP, Thời gian Kết nối, v.v. bằng cách chỉ cần nhấp vào tên thiết bị từ menu Thiết bị.
Vì chúng tôi hiện đang nhận dữ liệu, chúng tôi sẽ tạo trang tổng quan để trực quan hóa dữ liệu bằng cách sử dụng các tiện ích con.
Để tạo Trang tổng quan, hãy nhấp vào Trang tổng quan từ tab trình đơn và sau đó nhấp vào ' Thêm Trang tổng quan .'
Bây giờ trong cửa sổ tiếp theo, hãy nhập chi tiết trang tổng quan như tên trang tổng quan, ID và Mô tả rồi nhấp vào Trang tổng quan.
Sau đó, truy cập trang tổng quan mới bằng cách nhấp vào tên Trang tổng quan. Theo mặc định, trang tổng quan sẽ trống. Để thêm Tiện ích, trước tiên bạn cần bật chế độ chỉnh sửa bằng cách nhấp vào công tắc phía trên bên phải của trang tổng quan. Sau đó nhấp vào nút ' Thêm tiện ích con' .
Khi bạn nhấp vào nút ' Add Widget' , nó sẽ hiển thị một cửa sổ bật lên nơi bạn có thể chọn loại widget, màu nền, v.v. Trong trường hợp của tôi, tôi đã chọn Gauge Widget.
Khi bạn nhấp vào lưu, nó sẽ đưa bạn đến màn hình tiếp theo, nơi bạn cần chọn Giá trị nguồn, Thiết bị, Tài nguyên, Giá trị và chế độ Làm mới. Chọn tất cả các giá trị và sau đó nhấp vào nút Lưu.
Bây giờ lặp lại quy trình tương tự cho các biến còn lại. Trang tổng quan của tôi trông như thế này:
Tạo Điểm cuối trong Thinger.io để gửi Thông báo qua Email
Bây giờ chúng ta sẽ tạo một Điểm cuối để tích hợp Thinger.io với IFTTT. Thiết bị có thể gọi một điểm cuối để thực hiện bất kỳ hành động nào, chẳng hạn như gửi email, gửi SMS, gọi API REST, tương tác với IFTTT, gọi thiết bị từ một tài khoản khác hoặc gọi bất kỳ điểm cuối HTTP nào khác.
Để tạo Điểm cuối, hãy nhấp vào tùy chọn 'Điểm cuối' từ các tab trình đơn và sau đó nhấp vào 'Thêm Điểm cuối.'
Bây giờ trong cửa sổ tiếp theo, hãy nhập các chi tiết cần thiết. Các chi tiết là:
Id điểm cuối: Định danh duy nhất cho điểm cuối của bạn.
Mô tả Điểm cuối: Viết mô tả hoặc thông tin chi tiết về Điểm cuối của bạn.
Loại điểm cuối: Chọn loại điểm cuối từ các tùy chọn đã cho.
Tên sự kiện Maker: Nhập tên ứng dụng IFTTT của bạn.
Khóa kênh Maker: Khóa bí mật Webhooks của bạn.
Sau đó, nhấp vào Test Endpoint để kiểm tra xem mọi thứ đã hoạt động chưa. Nó sẽ gửi cho bạn một email với cảnh báo về dữ liệu nhiệt độ.
Thay vì sử dụng IFTTT Webhook Trigger, bạn có thể gửi Email hoặc Tin nhắn Telegram hoặc bạn có thể gửi một yêu cầu HTTP bằng các tính năng Điểm cuối.
Đây là cách NodeMCU ESP8266 có thể được sử dụng để ghi dữ liệu nhiệt độ, áp suất và độ cao từ cảm biến BMP180 lên internet.
Đoạn video hoạt động và mã hoàn chỉnh được đưa ra ở cuối trang.