Mục lục:

IDC2018IOT Cho tôi biết khi nào tắt nguồn AC: 7 bước
IDC2018IOT Cho tôi biết khi nào tắt nguồn AC: 7 bước

Video: IDC2018IOT Cho tôi biết khi nào tắt nguồn AC: 7 bước

Video: IDC2018IOT Cho tôi biết khi nào tắt nguồn AC: 7 bước
Video: Thanh niên lần đầu chưa có kinh nghiệm kiểu#funny #tiktok 2024, Tháng bảy
Anonim
Image
Image

Nhiều người trong chúng ta, đặc biệt là vào mùa hè, sử dụng AC gần như không ngừng nghỉ, trong khi thực tế vào những thời điểm nhất định trong ngày, chúng ta có thể chỉ cần mở cửa sổ và tận hưởng một làn gió nhẹ. Ngoài ra, cá nhân chúng tôi nhận thấy rằng đôi khi chúng tôi thậm chí chỉ quên tắt AC khi rời khỏi phòng, gây lãng phí năng lượng và tiền bạc.

Giải pháp mà chúng tôi sẽ xây dựng sẽ so sánh nhiệt độ bên trong với bên ngoài và khi chúng đủ gần, sẽ thông báo cho chúng tôi qua Facebook Messanger rằng đã đến lúc mở cửa sổ và cho AC nghỉ ngơi.

Ngoài ra, chúng tôi sẽ thực hiện một cơ chế khác để thông báo cho chúng tôi khi chúng tôi quên bật nguồn AC và rời khỏi phòng.

Bước 1: Thêm một chút chi tiết

Chúng tôi thu thập dữ liệu từ 4 cảm biến khác nhau:

  • Hai cảm biến DHT thu thập nhiệt độ bên trong ngôi nhà và bên ngoài ngôi nhà.
  • Một cảm biến PIR phát hiện chuyển động trong phòng.
  • Một micrô Electret được sử dụng để phát hiện gió thổi ra từ lỗ thông hơi AC, một cách đơn giản và đáng tin cậy để xác định xem AC có bật hay không.

Dữ liệu đến từ các cảm biến sẽ được xử lý và gửi đến Blynk, nơi nó sẽ được hiển thị trong một giao diện mà chúng tôi sẽ tạo. Ngoài ra, chúng tôi sẽ kích hoạt các sự kiện IFTTT để thông báo cho người dùng khi nào anh ta có thể mở một cửa sổ thay vì AC và khi anh ta quên bật AC và rời khỏi phòng trong một khoảng thời gian xác định trước.

Giao diện Blynk cũng sẽ cung cấp cho chúng tôi một cách để thay đổi các cài đặt có liên quan theo sở thích của người dùng, vì chúng tôi sẽ thảo luận chi tiết hơn ở phần sau.

Các bộ phận bắt buộc:

  1. Mô-đun WiFi - ESP8266
  2. Cảm biến PIR.
  3. Cảm biến nhiệt độ DHT11 / DHT22 x2.
  4. Điện trở 10k / 4.7k (DHT11 - 4.7k, DHT22 - 10k, PIR - 10k).
  5. Micrô điện tử.
  6. Người nhảy.
  7. Cáp dài (Dây điện thoại sẽ làm rất tốt).

Mã hoàn chỉnh của dự án được đính kèm ở cuối với các nhận xét trong suốt mã.

Về mặt logic, nó có một vài lớp chức năng khác nhau:

  • Dữ liệu từ các cảm biến được đọc trong khoảng thời gian 3 giây vì nó cho thấy chính xác hơn và không cần nhiều hơn thế.
  • Một phần của mã là theo dõi trạng thái AC bằng các giá trị đến từ micrô điện tử được đặt trên phần mở của AC.
  • Một phần khác là theo dõi số đọc đến từ các cảm biến nhiệt độ và sự khác biệt mà việc sử dụng được xác định là có thể chấp nhận được để xoay AC và thay vào đó mở cửa sổ. Chúng tôi tìm kiếm thời điểm khi nhiệt độ đủ gần.
  • Một phần thứ ba là theo dõi chuyển động trong phòng. Nếu nó không phát hiện ra chuyển động lớn (cách kiểm tra chính sẽ sớm được giải thích) trong khung thời gian do người dùng xác định và trạng thái AC là BẬT, một thông báo sẽ được gửi đến người dùng.
  • Các thông báo được xử lý thông qua việc kích hoạt IFTTT Webhooks gửi tin nhắn được xác định trước cho người dùng thông qua Facebook Messenger
  • Phần cuối cùng đáng chú ý là phần xử lý giao diện Blynk, bằng cách nhận các thay đổi mà người dùng thực hiện đối với các biến và theo cách khác - đẩy dữ liệu sang giao diện Blynk để người dùng xem.

Bước 2: Chi tiết hơn rất nhiều - Cảm biến

Chi tiết hơn rất nhiều - Cảm biến
Chi tiết hơn rất nhiều - Cảm biến
Chi tiết hơn rất nhiều - Cảm biến
Chi tiết hơn rất nhiều - Cảm biến

Hãy bắt đầu.

Đầu tiên, chúng ta cần đảm bảo rằng cả hai cảm biến DHT của chúng ta đều đọc được nhiệt độ như nhau khi được đặt ở cùng một nơi. Để làm được điều đó, chúng tôi đã tạo một bản phác thảo đơn giản đính kèm ở cuối phần này (CompareSensors.ino). Kết nối cả hai cảm biến và đảm bảo bạn thay đổi loại cảm biến DHT trong bản phác thảo theo loại cảm biến bạn có (mặc định là một DHT11 và một DHT22, vì vậy bạn có thể xem cách xử lý của cả hai trong mã). Mở màn hình nối tiếp và để chúng hoạt động một lúc, đặc biệt nếu bạn sử dụng cảm biến DHT11, vì chúng có xu hướng mất nhiều thời gian hơn để tự điều chỉnh theo sự thay đổi nhiệt độ.

Lưu ý sự khác biệt giữa các cảm biến và chèn nó sau vào mã chính trong biến "offset".

Vị trí cảm biến:

Một cảm biến DHT nên được đặt ở bức tường bên ngoài của ngôi nhà, vì vậy hãy kết nối nó với một số dây cáp dài, đủ dài để tiếp cận với ESP8266 của bạn bên trong phòng và đặt nó bên ngoài (có thể thực hiện dễ dàng qua cửa sổ). Cảm biến DHT khác nên được đặt trên breadboard, bên trong căn phòng mà chúng tôi sử dụng AC.

Micrô điện tử cũng phải được kết nối với dây cáp đủ dài và được đặt ở vị trí mà gió từ nguồn AC sẽ thổi vào nó.

Cuối cùng, cảm biến PIR nên được đặt ở vị trí đối diện với trung tâm của căn phòng để nó sẽ ghi lại mọi chuyển động trong phòng. Lưu ý rằng cảm biến có hai nút bấm nhỏ, một nút điều khiển độ trễ (tín hiệu HIGH của phát hiện chuyển động được giữ ở mức CAO trong bao lâu) và nút kia điều khiển độ nhạy (xem hình).

Bạn có thể cần phải thử với nó cho đến khi bạn đọc được cuốn sách mà bạn hài lòng. Đối với chúng tôi, kết quả tốt nhất là độ trễ sang trái (giá trị thấp nhất) và độ nhạy ở ngay giữa. Mã cung cấp các bản in nối tiếp bao gồm các bài đọc từ tất cả các cảm biến sẽ giúp gỡ lỗi các vấn đề như vậy dễ dàng hơn nhiều.

Kết nối các cảm biến:

Các số pin chúng tôi đã sử dụng như sau (và có thể được thay đổi trong mã chính):

Cảm biến DHT bên ngoài - D2.

Bên trong cảm biến DHT - D3.

Electret - A0 (chân analog).

PIR - D5.

Các sơ đồ để kết nối mỗi người trong số họ có thể dễ dàng tìm thấy bằng cách sử dụng tìm kiếm hình ảnh của google với một cái gì đó dọc theo dòng "Sơ đồ điện trở PIR Arduino" (chúng tôi sẽ không muốn sao chép chúng ở đây và vượt qua bất kỳ dòng bản quyền nào:)).

Chúng tôi cũng đính kèm một bức ảnh về breadboard của chúng tôi, có lẽ rất khó để thực sự theo dõi các kết nối, nhưng nó có thể mang lại cảm giác tốt cho nó.

Như bạn có thể biết, mọi thứ hiếm khi hoạt động trong lần đầu tiên chúng ta kết nối chúng. Đó là lý do tại sao chúng tôi đã tạo ra một chức năng in các kết quả đọc từ các cảm biến theo cách dễ đọc, vì vậy bạn có thể gỡ lỗi theo cách của mình để chúng hoạt động. Nếu bạn không muốn mã cố gắng kết nối với Blynk trong khi gỡ lỗi, chỉ cần nhận xét "Blynk.begin (auth, ssid, pass);" từ phần thiết lập của mã, hãy chạy nó và mở màn hình nối tiếp để xem các bản in. Chúng tôi cũng đính kèm một hình ảnh của các bản in.

Bước 3: Nhiều chi tiết hơn - Trình tự IFTTT

Nhiều chi tiết hơn - Trình tự IFTTT
Nhiều chi tiết hơn - Trình tự IFTTT

Vì vậy, chúng tôi muốn nhận được thông báo trong hai trường hợp:

1. Nhiệt độ bên ngoài đủ gần với nhiệt độ bên trong chúng ta có AC đang hoạt động.

2. Chúng tôi đã rời khỏi phòng trong một khoảng thời gian dài và AC vẫn đang hoạt động.

IFTTT cho phép chúng tôi kết nối nhiều dịch vụ khác nhau thường không tương tác, một cách rất đơn giản. Trong trường hợp của chúng tôi, nó cho phép chúng tôi gửi thông báo rất dễ dàng thông qua nhiều dịch vụ. Chúng tôi đã chọn Facebook Messanger, nhưng sau khi làm cho nó hoạt động với Facebook Messanger, bạn sẽ có thể dễ dàng thay đổi nó sang bất kỳ dịch vụ nào khác mà bạn chọn.

Quá trình:

Trên trang web IFTTT, nhấp vào tên người dùng của bạn (góc trên cùng bên phải), sau đó chọn "New Applet" chọn "Webhooks" làm trình kích hoạt ("this") và chọn "Nhận yêu cầu web". Đặt tên sự kiện (ví dụ: trống_phòng).

Đối với dịch vụ được kích hoạt, hành động ("cái đó"), chọn Facebook Messenger> Gửi tin nhắn và nhập tin nhắn bạn muốn nhận khi sự kiện này xảy ra (ví dụ: "Xin chào, có vẻ như bạn đã quên AC trên: ).

Trong khi chúng tôi ở đây, bạn cũng nên tìm thấy khóa bí mật của mình mà bạn sẽ cần phải chèn vào vị trí thích hợp trong mã.

Để tìm khóa bí mật của bạn, hãy truy cập https://ifttt.com/services/maker_webhooks/settings Tại đó, bạn sẽ tìm thấy một URL chứa khóa của mình ở định dạng sau:

Bước 4: Nhiều chi tiết hơn - Blynk

Image
Image
Nhiều chi tiết hơn - Blynk
Nhiều chi tiết hơn - Blynk
Nhiều chi tiết hơn - Blynk
Nhiều chi tiết hơn - Blynk

Chúng tôi cũng muốn có một giao diện sẽ có các tính năng sau:

1. Khả năng đặt thời gian phòng trống với AC hoạt động trước khi chúng tôi nhận được thông báo

2. Khả năng chọn nhiệt độ bên ngoài nên gần như thế nào với bên trong.

3. Màn hình hiển thị các kết quả đọc từ các cảm biến nhiệt độ

4. Một dây dẫn cho chúng ta biết trạng thái của AC (bật / tắt).

5. Và quan trọng nhất, một màn hình hiển thị chúng tôi đã tiết kiệm được bao nhiêu $$$ và năng lượng.

Cách tạo giao diện Blynk:

Nếu bạn chưa có ứng dụng Blynk, hãy tải ứng dụng này về điện thoại của bạn. Khi bạn mở ứng dụng và tạo một dự án mới, hãy đảm bảo chọn thiết bị thích hợp (ví dụ: ESP8266).

Bạn sẽ nhận được một email có mã thông báo xác thực, mã này bạn sẽ chèn mã vào vị trí thích hợp (bạn cũng có thể gửi lại mã này cho chính mình từ cài đặt sau này nếu bị mất).

Đặt các widget mới trên màn hình của bạn, nhấp vào dấu + ở trên cùng. Chọn các tiện ích, sau đó bấm vào một tiện ích để vào cài đặt của nó. Chúng tôi đã thêm hình ảnh về cài đặt cho tất cả các widget mà chúng tôi đã sử dụng, để bạn tham khảo.

Sau khi bạn hoàn thành ứng dụng và cuối cùng khi bạn muốn sử dụng nó, chỉ cần nhấp vào biểu tượng "phát" ở góc trên cùng bên phải để chạy ứng dụng Blynk. Bạn cũng có thể xem khi nào ESP8266 của bạn kết nối.

Lưu ý - nút "cập nhật" được sử dụng để lấy nhiệt độ và trạng thái của AC cho chúng tôi xem trong ứng dụng. Không bắt buộc khi thay đổi cài đặt (chẳng hạn như chênh lệch nhiệt độ), vì chúng được đẩy tự động.

Bước 5: Mã

Chúng tôi đã rất nỗ lực để ghi lại mọi phần của mã theo cách giúp hiểu nó dễ dàng nhất có thể.

Các phần trong mã mà bạn phải thay đổi trước khi sử dụng nó (làm khóa xác thực cho Blynk, SSID wifi và mật khẩu của bạn, v.v.) được theo sau bởi chú thích // * change * để bạn có thể dễ dàng tìm kiếm chúng.

Bạn sẽ cần có các thư viện được sử dụng trong mã, bạn có thể cài đặt chúng thông qua Arduino IDE bằng cách nhấp vào Phác thảo> Bao gồm Thư viện> Quản lý Thư viện. Ở đó bạn có thể tìm kiếm tên thư viện và cài đặt nó. Ngoài ra, hãy đảm bảo rằng bạn đặt tệp generic8266_ifttt.h ở cùng vị trí với ACsaver.ino.

Một phần của mã mà chúng tôi sẽ giải thích ở đây vì chúng tôi không muốn làm lộn xộn mã, là cách chúng tôi quyết định khi nào thay đổi trạng thái của AC từ bật sang tắt và trạng thái của căn phòng từ trống sang không trống.

Chúng tôi đọc từ các cảm biến 3 giây một lần, nhưng vì các cảm biến không chính xác 100% nên chúng tôi không muốn một lần đọc nào có thể thay đổi trạng thái mà chúng tôi tin rằng hiện tại trong phòng. Để giải quyết điều này, những gì mã làm, là chúng ta có một bộ đếm mà chúng ta ++ khi chúng ta nhận được kết quả có lợi cho "AC is on", và - nếu không. Sau đó, khi chúng tôi đến giá trị được xác định trong SWITCHAFTER (mặc định là 4), chúng tôi thay đổi trạng thái thành "AC đang bật", khi chúng tôi đến -SWITCHAFTER (âm cùng một giá trị), chúng tôi thay đổi trạng thái thành "AC đang tắt ".

Tác động đến thời gian chuyển đổi là không đáng kể và chúng tôi thấy rằng nó rất đáng tin cậy trong việc chỉ phát hiện các thay đổi chính xác.

Bước 6: Kết hợp tất cả lại với nhau

Ok, vậy là tất cả các cảm biến đã ở đúng vị trí và hoạt động bình thường. Giao diện Blynk được thiết lập (với các chân ảo chính xác!). Và các sự kiện IFTTT đang chờ kích hoạt của chúng tôi.

Bạn đã chèn khóa bí mật IFTTT vào mã, khóa xác thực từ Blynk, SSID của WiFi và mật khẩu của bạn, và bạn thậm chí đã kiểm tra xem các cảm biến DHT đã được hiệu chỉnh hay chưa, hãy thay đổi độ lệch tương ứng (ví dụ: bên ngoài DHT đọc nhiệt độ cao hơn 1 độ C so với những gì anh ta nên có, vì vậy chúng tôi sử dụng offset = -1).

Đảm bảo Wi-Fi của bạn được bật, khởi động ứng dụng Blynk và tải mã vào ESP8266 của bạn.

Đó là nó. Nếu mọi thứ được thực hiện chính xác, bạn có thể chơi xung quanh ngay bây giờ và xem nó đang hoạt động.

Và nếu bạn chỉ muốn xem nó hoạt động mà không gặp khó khăn khi kết hợp tất cả lại với nhau… Chà… Hãy cuộn lên và xem video. (Xem có phụ đề! Không lồng tiếng)

Bước 7: Suy nghĩ

Chúng tôi có hai thách thức chính ở đây.

Trước hết, làm thế nào để biết AC đang bật? Chúng tôi đã cố gắng sử dụng một bộ thu IR sẽ "lắng nghe" giao tiếp giữa AC và điều khiển từ xa. Nó có vẻ quá phức tạp, vì dữ liệu rất lộn xộn và không đủ nhất quán để hiểu "ok, đây là tín hiệu BẬT". Vì vậy, chúng tôi đã tìm kiếm những cách khác. Một ý tưởng là sử dụng một cánh quạt nhỏ sẽ tạo ra dòng điện nhỏ khi chuyển động từ gió xoay chiều, một ý tưởng khác mà chúng tôi đã thử là sử dụng một gia tốc kế đo góc của các cánh quay trên lỗ thông hơi và phát hiện chuyển động của chúng từ vị trí TẮT.

Cuối cùng, chúng tôi nhận ra cách đơn giản nhất để làm điều đó là với micrô điện tử, phát hiện rất đáng tin cậy gió thổi ra từ nguồn AC.

Để các cảm biến DHT hoạt động thật dễ dàng;), nhưng chỉ sau đó, chúng tôi nhận ra một trong số chúng hơi lệch so với nhiệt độ thực. Cảm biến PIR cũng yêu cầu một số điều chỉnh, như đã mô tả trước đây.

Thách thức thứ hai là làm cho toàn bộ giải pháp trở nên đơn giản và đáng tin cậy. Theo nghĩa mà nó sẽ gây khó chịu khi sử dụng, nó chỉ nên ở đó và thúc đẩy khi bạn cần. Nếu không, bản thân chúng tôi có thể sẽ ngừng sử dụng nó.

Vì vậy, chúng tôi đã suy nghĩ về những gì nên có trong giao diện Blynk và cố gắng làm cho mã đáng tin cậy nhất có thể, bằng cách quan tâm đến mọi trường hợp cạnh mà chúng tôi có thể đưa ra.

Một thách thức khác, mà chúng tôi đã không giải quyết được vào thời điểm viết hướng dẫn này, là thêm một IR blaster sẽ cho phép chúng tôi tắt AC từ giao diện Blynk. Có ích gì khi biết bạn đã quên nguồn AC mà không có khả năng tắt? (tốt… bạn có thể hỏi ai đó xem họ có ở nhà không).

Thật không may, chúng tôi đã gặp một số khó khăn khi phát lại các tín hiệu mà chúng tôi đã ghi lại từ điều khiển từ xa, trở lại AC bằng ESP8266. Chúng tôi đã quản lý để điều khiển AC bằng Arduino Uno, theo hướng dẫn sau:

www.instructables.com/id/How-to-control-th…

Chúng tôi sẽ sớm thử lại và cập nhật hướng dẫn với những phát hiện của chúng tôi và hy vọng là hướng dẫn về cách thêm khả năng đó.

Một hạn chế khác mà chúng tôi thấy là chúng tôi cần kết nối cảm biến bên ngoài cửa sổ, điều này có thể không thực hiện được trong một số trường hợp nhất định và cũng có nghĩa là cần phải có một dây cáp dài để đi ra bên ngoài. Một giải pháp có thể là lấy dữ liệu thời tiết về vị trí của bạn từ internet. Ngoài ra, cảm biến electret chạy từ AC có thể được thay thế bằng bộ thu IR mà chúng tôi đã mô tả ở trên, đối với các kiểu AC có mã IR dễ giải mã hơn hoặc được biết đến nhiều hơn.

Dự án có thể được mở rộng theo nhiều cách. Như đã nói ở trên, chúng tôi sẽ cố gắng tìm cách bao gồm kiểm soát IR trên AC, sau đó mở ra một thế giới hoàn toàn mới về cơ hội bật và tắt AC từ mọi nơi trên thế giới hoặc đặt thời gian bật và tắt thông qua Blynk ứng dụng, như một ví dụ khác. Sau khi tìm ra những khó khăn về kỹ thuật IR, việc thêm mã khá đơn giản và dễ hiểu và không mất nhiều thời gian.

Nếu chúng ta thực sự muốn mơ lớn… Dự án có thể được biến thành một mô-đun hoàn chỉnh, biến bất kỳ AC nào trở thành AC thông minh. Và nó không cần nhiều hơn chúng ta đã làm. Chỉ cần nhiều mã hơn, sử dụng IR nhiều hơn và nếu chúng ta muốn nó được sản xuất hàng loạt, có thể đảm bảo tìm nạp dữ liệu thời tiết theo vị trí, sau đó chúng ta có thể đặt toàn bộ vào một chiếc hộp nhỏ nhỏ.

Thực sự, tất cả những gì chúng ta cần là cảm biến nhiệt độ cho nhiệt độ bên trong, cảm biến PIR để phát hiện chuyển động và đèn LED hồng ngoại làm blaster và bộ thu IR để "lắng nghe" giao tiếp giữa AC và điều khiển từ xa mà chúng ta sử dụng.

Blynk cung cấp tất cả các khả năng chúng ta cần để điều khiển chiếc hộp ma thuật, một cách rất đơn giản và đáng tin cậy.

Việc thực hiện một dự án đầy đủ như vậy sẽ mất một khoảng thời gian, đặc biệt là từ quan điểm làm cho nó đủ linh hoạt để tự cấu hình và tự động phát hiện và hiểu hầu hết các AC.

Nhưng nếu bạn làm nó trong thời gian rảnh rỗi, chúng tôi ước tính sẽ không mất nhiều hơn một hoặc hai tuần. Phụ thuộc vào lượng thời gian rảnh rỗi của bạn… Thách thức chính ở đây là lưu tất cả các tín hiệu khác nhau mà điều khiển từ xa AC có thể gửi và hiểu chúng. (Mặc dù chỉ cần phát lại chúng sẽ dễ dàng hơn).

Đề xuất: