Mục lục:

Dự án ghi nhật ký trạng thái nhiệt độ và cửa: 21 bước
Dự án ghi nhật ký trạng thái nhiệt độ và cửa: 21 bước

Video: Dự án ghi nhật ký trạng thái nhiệt độ và cửa: 21 bước

Video: Dự án ghi nhật ký trạng thái nhiệt độ và cửa: 21 bước
Video: Clip nữ sinh múa văn nghệ hút 6,8 triệu view gây bão toàn TikTok, và sự thật ngỡ ngàng đằng sau 2024, Tháng bảy
Anonim
Dự án ghi nhật ký trạng thái nhiệt độ và cửa
Dự án ghi nhật ký trạng thái nhiệt độ và cửa

Tài liệu hướng dẫn này sẽ chỉ cho bạn cách tạo một bộ ghi trạng thái cửa và nhiệt độ đơn giản với giá dưới 10 đô la bằng cách sử dụng ESP8266 NodeMCU, cảm biến nhiệt độ và độ ẩm DHT11, công tắc sậy cửa / cửa sổ, điện trở 10K ohm và một số dây nối.

Nguồn gốc của dự án này xuất phát từ mong muốn của tôi muốn tự động hóa gia đình nhiều hơn với bảng Arduino, Vì tôi đã đọc rất nhiều về NodeMCU EPS8266 tương thích với Arduino, tôi quyết định bảng này sẽ là bảng chi phí thấp hoàn hảo để thực hiện một số thử nghiệm. Sau khi tìm kiếm trên Internet các dự án tự động hóa gia đình bằng cách sử dụng bo mạch ESP8266, tôi quyết định kết hợp bộ ghi nhiệt độ và trạng thái cửa cho lần thử đầu tiên của mình. Cuối cùng thì dự án này sẽ được kết hợp với các servo, cảm biến độ ẩm và các thiết bị điện tử khác để tự động hóa một ngôi nhà xanh nhỏ mà ông tôi đã thiết kế và xây dựng cách đây 50 năm. Cảm biến nhiệt độ sẽ được sử dụng để xác định xem hệ thống sưởi ấm nên hoạt động hay ngắt kết nối cũng như báo hiệu cho servo mở và đóng hệ thống thông gió khi cần thiết. Trạng thái của hệ thống thông hơi sẽ được giám sát bằng cách sử dụng các công tắc sậy từ tính. Cuối cùng, các cảm biến độ ẩm sẽ được sử dụng để tự động hóa hệ thống tưới nước.

Bước 1: Tuyên bố từ chối trách nhiệm

Chỉ cần một tuyên bố từ chối trách nhiệm nhanh chóng để tuyên bố rằng chúng tôi KHÔNG chịu trách nhiệm cho bất kỳ điều gì xảy ra do làm theo hướng dẫn này. Tốt nhất bạn nên làm theo hướng dẫn của nhà sản xuất và các tờ an toàn khi xây dựng bất cứ thứ gì, vì vậy hãy tham khảo các tài liệu đó để biết bất kỳ bộ phận và công cụ nào bạn sử dụng để xây dựng của riêng mình. Chúng tôi chỉ đơn giản là cung cấp thông tin về các bước chúng tôi đã sử dụng để tạo ra chúng tôi. Chúng tôi không phải là chuyên gia. Trên thực tế, 2 trong số 3 cá nhân tham gia xây dựng này là trẻ em.

Bước 2: Thiết lập tài khoản IFTTT miễn phí

Thiết lập tài khoản IFTTT miễn phí
Thiết lập tài khoản IFTTT miễn phí

Nếu bạn chưa có, bây giờ là lúc để thiết lập tài khoản IFTTT miễn phí bằng cách truy cập trang chủ của họ.. IFTTT là viết tắt của If This Then That và là một nền tảng miễn phí cho phép bạn kết nối các dịch vụ dựa trên internet theo những cách mới để cho phép bạn tận dụng các dịch vụ đó theo những cách mới. Đối với dự án này, chúng tôi sẽ sử dụng IFTTT để cho phép ESP8266 ghi lại trạng thái của cửa thông qua công tắc sậy, nhiệt độ và độ ẩm thông qua cảm biến DHT11 trong tài liệu Google Trang tính.

Bước 3: Tạo IFTTT Applet

Tạo IFTTT Applet
Tạo IFTTT Applet

Khi vẫn ở trong IFTTT, hãy chuyển đến phần “My Applet” và tạo một applet mới bằng cách nhấp vào nút “New Applet”.

Bước 4: Định cấu hình phần "này" của Applet của bạn

Định cấu hình
Định cấu hình

Nhấp vào từ “this” có màu xanh lam - như được tô sáng trong hình trên.

Bước 5: Thêm Dịch vụ WebHooks vào Applet của bạn

Thêm Dịch vụ WebHooks vào Applet của bạn
Thêm Dịch vụ WebHooks vào Applet của bạn

Trong thanh tìm kiếm, hãy tìm kiếm dịch vụ “Webhooks” và chọn biểu tượng Webhooks.

Khi bạn tìm thấy dịch vụ "Webhooks", hãy nhấp vào nó.

Bước 6: Thiết lập Kích hoạt Nhận Yêu cầu Web

Thiết lập trình kích hoạt nhận yêu cầu web
Thiết lập trình kích hoạt nhận yêu cầu web

Chọn trình kích hoạt "Nhận yêu cầu web".

Bước 7: Cung cấp tên sự kiện

Cung cấp tên sự kiện
Cung cấp tên sự kiện

Trong hộp văn bản, cung cấp applet mới của bạn với tên sự kiện. Tôi đã chọn "Data Logger" nhưng bạn có thể chọn bất cứ thứ gì bạn thích.

Bước 8: Định cấu hình phần "cái đó" của Applet của bạn

Định cấu hình
Định cấu hình

Nhấp vào từ “that” có màu xanh lam - như được tô sáng trong hình trên.

Bước 9: Thiết lập một Dịch vụ Hành động

Thiết lập một Dịch vụ Hành động
Thiết lập một Dịch vụ Hành động

Trong hộp tìm kiếm, hãy tìm kiếm dịch vụ “Google Trang tính” và nhấp vào biểu tượng Google Trang tính.

Bước 10: Kết nối với Google Trang tính

Kết nối với Google Trang tính
Kết nối với Google Trang tính

Nếu bạn chưa làm như vậy, bạn sẽ không cần kết nối tài khoản IFTTT của mình với Google Trang tính. Nhấn nút Kết nối hiển thị ở trên và làm theo hướng dẫn trên màn hình.

Bước 11: Chọn một hành động

Chọn một hành động
Chọn một hành động

Nhấp vào "Thêm hàng vào bảng tính".

Bước 12: Thiết lập hành động

Thiết lập hành động
Thiết lập hành động

Cung cấp tên trong hộp văn bản "Tên bảng tính". Tôi chọn sử dụng "Data_Logger" để nhất quán. Để yên phần còn lại của cài đặt (bạn có thể thử nghiệm với những cài đặt đó vào lúc khác) rồi nhấn nút "Tạo Hành động" ở cuối màn hình.

Bước 13: Xem xét và hoàn thiện Applet của bạn

Xem lại và hoàn thiện Applet của bạn
Xem lại và hoàn thiện Applet của bạn

Sau khi hài lòng với cấu hình applet của bạn, hãy nhấn nút "Hoàn tất".

Bước 14: Lấy thông tin cấu hình cần thiết sau này

Truy xuất thông tin cấu hình cần thiết sau này
Truy xuất thông tin cấu hình cần thiết sau này

Nhấp vào "Webhooks" như được đánh dấu ở trên.

Bước 15: Tiếp tục đến Tài liệu Webhooks để lấy Khóa API

Tiếp tục đến Tài liệu Webhooks để lấy Khóa API
Tiếp tục đến Tài liệu Webhooks để lấy Khóa API

Nó có vẻ lạ nhưng hãy nhấp vào liên kết Tài liệu ở phía trên bên phải để chuyển đến trang với Khóa API duy nhất của bạn.

Bước 16: Lưu khóa API

Lưu khóa API
Lưu khóa API
Lưu khóa API
Lưu khóa API

Dòng đầu tiên của màn hình Tài liệu hiển thị Khóa API duy nhất của bạn. Sao chép và Lưu khóa này để sử dụng sau này.

Bạn cũng nên thử nghiệm applet ở đây. Hãy nhớ thay đổi {event} thành Data_Logger hoặc bất cứ thứ gì bạn đặt tên cho sự kiện của mình và thêm một số dữ liệu vào 3 giá trị trống, sau đó nhấp vào nút "Kiểm tra" ở cuối trang. Bạn sẽ thấy một thông báo màu xanh lục cho biết “Sự kiện đã được kích hoạt”. Nếu vậy, hãy chuyển đến Google Tài liệu và xác nhận rằng dữ liệu bạn đã nhập vào trang kiểm tra đã hiển thị trong tài liệu Google Trang tính.

Bước 17: Thu thập các thành phần

Thu thập các thành phần
Thu thập các thành phần
Thu thập các thành phần
Thu thập các thành phần
Thu thập các thành phần
Thu thập các thành phần

Bạn sẽ chỉ cần một vài bộ phận.

1) Ban phát triển ESP8266 NodeMcu

2) Cảm biến nhiệt độ / độ ẩm DHT11

3) Công tắc cửa / cửa sổ cây sậy

4) Điện trở 10k Ohm

5) Dây móc

Bước 18: Lắp ráp các thành phần

1) Kết nối một trong các chân 3v3 trên ESP8266 với chân vcc trên DHT11.

2) Kết nối một trong các chân nối đất trên ESP8266 với chân nối đất trên DHT11.

3) Kết nối chân D4 (còn gọi là chân 2 trong IDE) trên ESP8266 với chân dữ liệu trên DHT11.

4) Kết nối một chân 3v3 khác trên ESP8266 với một bên của công tắc lau nhà / cửa sổ.

5) Kết nối chân D5 (còn gọi là chân 14 trong IDE) trên ESP8266 với phía bên kia của công tắc lau nhà / cửa sổ và cũng kết nối nó với một bên của điện trở 10k ohm.

6) Kết nối phía bên kia của điện trở 10k ohm với một chân nối đất khác trên ESP8266.

Đối với lựa chọn chân của ESP8266, vui lòng tham khảo sơ đồ hữu ích này hoặc video rất hữu ích.

Bước 19: Viết mã Arduino

Viết mã Arduino
Viết mã Arduino

Sao chép và dán mã bên dưới vào IDE Arduino của bạn.

#include #include #include "DHT.h"

#define DHTPIN 2 // mã pin kỹ thuật số nào chúng tôi đang kết nối với

#define DOORPIN 14 // công tắc cửa đang bật chốt kỹ thuật số nào.

#define DHTTYPE DHT11 // DHT 11

DHT dht (DHTPIN, DHTTYPE);

int count = 1;

const char * ssid = "some_ssid"; // thay đổi điều này để sử dụng ssid const char * password = "some_password"; // thay đổi điều này để sử dụng mật khẩu của bạn int sleepTime = 100;

// Maker Webhooks IFTTT

const char * server = "maker.ifttt.com";

// Tài nguyên URL IFTTT

const char * resource = "/ trigger / SOME_SERVICE_NAME / với / key / SOME_API_KEY"; // Đảm bảo sử dụng tên dịch vụ và khóa api của bạn.

String doorStatus = "Đã đóng";

trạng thái bool dễ bay hơiChanged = false;

// Nếu ngủ trong nhiều giờ thì hãy đặt khoảng thời gian theo giờ * 60 phút * 60 giây * 1000 mili giây

khoảng dài const = 1,0 * 60 * 60 * 1000; // 1 giờ không dấu dài trước đóMillis = 0 - (2 * khoảng thời gian);

void setup () {

Serial.begin (115200); AttachInterrupt (digitalPinToInterrupt (DOORPIN), eventTriggered, CHANGE); mã pin (DOORPIN, INPUT); // Cảm biến cửa dht.begin (); WiFi.begin (ssid, mật khẩu);

Serial.print ("\ nConnecting..");

while (WiFi.status ()! = WL_CONNECTED) {delay (1000); Serial.print ("."); } Serial.print ("\ n"); }

void eventTriggered () {

stateChanged = true; Serial.println ("Đang kiểm tra cửa!"); if (digitalRead (DOORPIN) == HIGH) // Kiểm tra xem cửa có mở không {Serial.println ("Cửa đã đóng!"); doorStatus = "Đã đóng"; } else {Serial.println ("Cửa đang mở!"); doorStatus = "Đã mở"; }}

void checkStatus () {

if (WiFi.status () == WL_CONNECTED) {// Kiểm tra trạng thái kết nối WiFi // Đọc nhiệt độ hoặc độ ẩm mất khoảng 250 mili giây! // Kết quả đọc của cảm biến cũng có thể 'cũ' lên đến 2 giây (cảm biến rất chậm) float h = dht.readHumidity (); // Đọc nhiệt độ dưới dạng độ C (mặc định) float t = dht.readTempe Heat (); // Đọc nhiệt độ dưới dạng Fahrenheit (isFahrenheit = true) float f = dht.readTempe Heat (true); // Kiểm tra xem có lần đọc nào không và thoát ra sớm (để thử lại). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("Không thể đọc từ cảm biến DHT!"); //Serial.print ("."); // Không đọc được từ cảm biến DHT! trở lại; } // Tính toán chỉ số nhiệt trong Fahrenheit (mặc định) float hif = dht.computeHeatIndex (f, h); // Tính chỉ số nhiệt theo độ C (isFahmbleit = false) float hic = dht.computeHeatIndex (t, h, false);

Serial.print ("\ n");

Serial.print ("Nhiệt độ:"); Serial.print (f); Serial.print ("* F ("); Serial.print (t); Serial.print ("* C)"); Serial.print ("\ t"); Serial.print ("Chỉ số nhiệt:"); Serial.print (hif); Serial.print ("* F ("); Serial.print (hic); Serial.print ("* C)%"); Serial.print ("\ t"); Serial.print ("Độ ẩm:"); Serial.println (h);

if (digitalRead (DOORPIN) == HIGH) // Kiểm tra xem cửa có mở không

{Serial.println ("Cửa đã đóng!"); doorStatus = "Đã đóng"; } else {Serial.println ("Cửa đang mở!"); doorStatus = "Đã mở"; } String jsonObject = String ("{" value1 / ": \" ") + f +" * F ("+ t +" * C) / "+ hif +" * F ("+ hic +" * C) "+" / ", \" value2 / ": \" "+ h +" / ", \" value3 / ": \" "+ doorStatus +" / "}"; HTTPClient http; String completeUrl = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9"; http.begin (completeUrl); // http.begin (máy chủ); http.addHeader ("Loại-Nội dung", "ứng dụng / json"); http. POST (jsonObject); http.writeToStream (& Serial); http.end (); //Đóng kết nối

stateChanged = false;

int sleepTimeInMinutes = khoảng / 1000/60; Serial.print ("\ n / nChuyển sang chế độ ngủ cho"); Serial.print (sleepTimeInMinutes); Serial.println ("phút…"); }}

void loop () {

unsigned long currentMillis = millis (); chậm trễ (4000); // Nếu chúng ta vượt quá thời gian đã trôi qua thì buộc kiểm tra cửa và tạm thời. if (currentMillis - beforeMillis> = khoảng) {stateChanged = true; beforeMillis = currentMillis; Serial.print (đếm ++); Serial.println (") Đang kiểm tra vì thời gian đã trôi qua!"); } else if (stateChanged) {Serial.print (count ++); Serial.println (") Đang kiểm tra do thay đổi trạng thái!"); }

// Nếu trạng thái thay đổi thì hãy kiểm tra cửa và nhiệt độ.

if (stateChanged) {checkStatus (); }

trì hoãn (thời gian ngủ);

}

Bước 20: Kết quả

Kết quả
Kết quả

Khi bạn tải lên mã nguồn ở bước trước, bạn sẽ có kết quả như ví dụ được hiển thị ở trên.

Bước 21: Tín dụng

Tôi đã tìm thấy rất nhiều gợi ý và mẹo hữu ích từ Hướng dẫn ngẫu nhiên Nerd và tôi muốn cảm ơn tất cả sự giúp đỡ của họ. Đặc biệt là phần hướng dẫn tuyệt vời của họ về ESP32 ESP8266 Xuất bản các bài đọc của cảm biến lên Google Trang tính dựa trên các phần chính của Tài liệu hướng dẫn này.

Ngoài ra, DHT11 có thể hướng dẫn từ TheCircuit đã giúp tôi hiểu cách sử dụng cảm biến nhỏ rất rẻ nhưng thú vị này.

Hơn nữa, có nhiều hướng dẫn xử lý việc giám sát cửa ra vào của bạn như Màn hình cửa nhà để xe và một hướng dẫn khác từ Hướng dẫn ngẫu nhiên Nerd. Tôi đã sử dụng các bit và mảnh trong số này để giúp tôi hiểu cách làm cho công tắc cây sậy của tôi hoạt động bình thường.

Cuối cùng, với thông tin này cũng như các chi tiết khác mà tôi tìm thấy trên Internet, tôi đã có thể tạo ra một hệ thống đáp ứng nhu cầu của mình. Tôi hy vọng bạn thấy Tài liệu hướng dẫn này hữu ích và xây dựng một tài liệu hướng dẫn của riêng bạn.

Đề xuất: