Mục lục:

MQTT / Google Home DoorBell Sử dụng ESP-01: 6 bước
MQTT / Google Home DoorBell Sử dụng ESP-01: 6 bước

Video: MQTT / Google Home DoorBell Sử dụng ESP-01: 6 bước

Video: MQTT / Google Home DoorBell Sử dụng ESP-01: 6 bước
Video: Điều khiển thiết bị bằng giọng nói - google assistant - blynk iot - ifttt - webhook - esp8266 2024, Tháng mười một
Anonim
MQTT / Google Home DoorBell Sử dụng ESP-01
MQTT / Google Home DoorBell Sử dụng ESP-01

Bạn đã bao giờ bỏ lỡ việc trả lời một vị khách đã bấm chuông cửa của bạn chỉ vì bạn đang ở trong một khu vực của ngôi nhà quá xa để nghe thấy tiếng chuông cửa kêu? chẳng hạn như tầng hầm, phòng ngủ đóng cửa, hoặc có thể bạn đang xem TV hoặc nghe nhạc.

Nếu giống như tôi, bạn có một hoặc nhiều loa gia đình trên google ở một số vị trí trong nhà của bạn, thiết bị hướng dẫn này có thể là thứ bạn cần.

Trong phần Có thể hướng dẫn này, tôi sẽ chỉ cho bạn cách thêm ứng dụng MQTT vào chuông chuông cửa hiện có để giao tiếp với nhà môi giới MQTT bằng thông báo tới google home / pushbullet, sử dụng NodeRED. Dự án này không thay thế công tắc chuông cửa cũng như chuông báo. Nó vẫn sử dụng nút bấm cơ học thông thường cho chuông cửa.

Chúng tôi sẽ thêm mô-đun ESP-01 vào hệ thống chuông cửa 16VAC hiện có thêm chức năng MQTT để gửi tin nhắn đến nhà môi giới MQTT (khi nhấn công tắc chuông cửa). Nhà môi giới MQTT sẽ chuyển tiếp thông báo tới NodeRED. Khi nhận được tin nhắn MQTT, NodeRED sẽ gửi thông báo đến nhiều thiết bị gia đình của Google và cũng có thể tùy chọn gửi tin nhắn đến điện thoại di động / trình duyệt thông qua pushbullet.

Tôi có niềm đam mê với tự động hóa nhà tự làm và từ từ thêm IOT vào nhà của mình. Google home là một trong những chức năng trung tâm trong quá trình tự động hóa nhà của tôi.

Con trai tôi đã cho tôi ý tưởng về dự án này khi nó hỏi tôi liệu tôi có thể làm cho google home thông báo mỗi khi ai đó bấm chuông cửa của chúng tôi hay không. Chúng tôi có 2 tầng + ngôi nhà đã hoàn thành tầng hầm, và nhiều lần chúng tôi không thể nghe thấy tiếng chuông khi chúng tôi ở tầng hầm hoặc tầng trên trong phòng ngủ đóng cửa hoặc bật TV.

Chúng tôi có 4 google home mini trong nhà của chúng tôi được đặt ở nhiều nơi / phòng khác nhau và bằng cách sử dụng google homes để thông báo chuông cửa, chúng tôi biết ngay lập tức ở bất kỳ đâu trong nhà nếu ai đó bấm chuông.

Trong nhà tôi, tôi sử dụng RaspberryPi ZeroW để lưu trữ máy chủ Mosquitto MQTT và NodeRED. Nó đã chạy hơn một năm mà không gặp bất kỳ vấn đề gì.

Người giới thiệu:

  • Sơ đồ đi dây chuông cửa:
  • Cài đặt Mosquitto MQTT Broker trên Raspberry Pi:
  • Cài đặt NodeRED trên Raspberry Pi:

Bước 1: Tạo mạch giao diện ESP-01 và chuông cửa

Tạo mạch giao diện ESP-01 và chuông cửa
Tạo mạch giao diện ESP-01 và chuông cửa
Tạo mạch giao diện ESP-01 và chuông cửa
Tạo mạch giao diện ESP-01 và chuông cửa
Tạo mạch giao diện ESP-01 và chuông cửa
Tạo mạch giao diện ESP-01 và chuông cửa

Bước đầu tiên sẽ là tạo mạch làm giao diện giữa ESP-01 và Door Chime. Chuông cửa điển hình được kích hoạt khi có 16VAC giữa các Chân "TRANS (cũ)" và "FRONT / REAR" như trong ảnh đầu tiên của tôi. Điện áp xuất hiện trên các chân đó khi nhấn nút chuông cửa.

Mạch mà tôi thiết kế là để cảm nhận tín hiệu 16VAC này và chuyển đổi nó thành tín hiệu kỹ thuật số khoảng 3.3VDC. Nó là một bộ chỉnh lưu nửa sóng cơ bản được tạo thành bởi D1 và C1. Chúng tôi không cần phải có bộ chỉnh lưu toàn sóng trong tình huống này vì có rất ít tải vào đầu ra DC, giúp chúng tôi tiết kiệm một chút bất động sản trên bảng. Tôi muốn làm cho bảng càng ít càng tốt để tôi có thể đặt nó bên trong chiếc chuông hiện có của tôi.

R1 và R2 tạo thành bộ chia điện áp để giảm điện áp DC đỉnh xuống khoảng 3,3V.

R3, TR1 và R4 tạo thành một bộ biến tần để cung cấp logic ngược cho ESP-01 GPIO-2. Điều này là cần thiết để cung cấp logic CAO trong quá trình khởi động (với R4 và R5 kéo lên) để ESP-01 khởi động từ flash. Khi nhấn nút nhấn chuông cửa, nó hiển thị logic THẤP cho GPIO-2. TR1 có thể là bất kỳ bóng bán dẫn NPN công suất nhỏ nào, trong trường hợp của tôi, tôi đã sử dụng 2N3904.

V1 là bộ nguồn 3.3VDC mà tôi đã chế tạo bằng bộ sạc điện thoại di động 5V cũ kết hợp với bộ điều chỉnh AMS1117 3.3VDC mà tôi sẽ trình bày trong bước tiếp theo.

Đối với ổ cắm ESP-01, tôi sử dụng ổ cắm IC tiêu chuẩn 8 chân và cắt các cầu nối nhựa tạo khoảng cách giữa các hàng, sau đó dán 2 hàng lại với nhau.

Bước 2: Nguồn cung cấp 3.3VDC cho ESP-01

Nguồn cung cấp 3.3VDC cho ESP-01
Nguồn cung cấp 3.3VDC cho ESP-01
Nguồn cung cấp 3.3VDC cho ESP-01
Nguồn cung cấp 3.3VDC cho ESP-01
Nguồn cung cấp 3.3VDC cho ESP-01
Nguồn cung cấp 3.3VDC cho ESP-01

Trong bước này, chúng tôi sẽ xây dựng bộ nguồn 3.3VDC cho ESP-01. Tôi có một vài bộ chuyển đổi sạc USB 5VDC 500mA và 700mA cũ mà tôi đã sử dụng lại cho dự án này. Chúng tôi cũng cần bộ điều chỉnh 3.3VDC để giảm điện áp 5V xuống 3.3V, vì điều này, tôi đang sử dụng mô-đun điều chỉnh dựa trên AMS1117 giá rẻ được xây dựng sẵn mà tôi đã mua từ ebay. Bạn có thể tìm kiếm "mô-đun 3.3V AMS1117" và tìm những gì phù hợp với bạn.

Mô-đun bộ điều chỉnh 3.3V này rất nhỏ mà tôi thực sự có thể nhét nó vào bên trong vỏ bộ sạc USB 5V ban đầu để an toàn hơn khỏi hiện tượng đoản mạch tiềm ẩn. Tôi đã tháo các ngạnh trên tường AC khỏi mô-đun bộ sạc và thay thế nó bằng hai dây cáp sẽ được kết nối với 120VAC từ bức tường phía sau chuông báo hiện có của tôi. Nhưng đừng loại bỏ các ngạnh ở bước này cho đến khi chúng tôi chạy thử nghiệm ở bước tiếp theo.

Nếu có ổ cắm trên tường gần đó hoặc nếu bạn không thoải mái với việc đấu dây nguồn điện trực tiếp vào hệ thống dây điện trong nhà, bạn có thể tùy chọn chỉ cần cắm nguồn điện đã sửa đổi vào phích cắm trên tường và chạy hệ thống cáp đến chuông báo. có thể trông không sạch sẽ như kết nối trực tiếp với hệ thống dây điện trong nhà.

Xem một trong những bức ảnh của tôi để thấy rằng đằng sau chuông của tôi là hệ thống dây điện 120VAC và biến áp 16VAC cho chuông.

Đầu ra từ bộ điều chỉnh 3.3V sau đó sẽ kết nối với bảng giao diện ESP-01 theo bước trước.

Bước 3: Nhấp nháy ESP-01

Trong bước này, chúng ta sẽ flash ESP-01 với bản phác thảo arduino. Nếu bạn chưa bao giờ cài đặt mô-đun ESP-01, bạn có thể làm theo hướng dẫn của tôi để bắt đầu:

Bạn có thể tìm thấy bản phác thảo của tôi trong trang github của tôi:

Trong bản phác thảo, tối thiểu bạn cần thay đổi thông tin sau liên quan đến thiết lập / mạng gia đình của bạn:

#define MQTT_SERVER "10.0.0.30" const char * ssid1 = "SSID"; const char * password1 = "MYSSIDpassword"; const char * ssid2 = "SSID1"; const char * password2 = "MYSSIDpassword";

Trong mạng gia đình của tôi, tôi có 2 điểm truy cập khác nhau phát 2 SSID khác nhau và bản phác thảo này sẽ cho phép dự phòng bằng cách kết nối với SSID tiếp theo nếu kết nối với AP hiện tại bị mất. Nếu bạn chỉ có một SSID, hãy điền cả ssid1 và ssid2 với cùng một giá trị.

Sau khi bạn thực hiện sửa đổi, hãy tải bản phác thảo lên ESP-01 và cắm ESP-01 vào bảng giao diện.

Bước 4: Chạy thử nghiệm

Chạy thử nghiệm
Chạy thử nghiệm
Chạy thử nghiệm
Chạy thử nghiệm
Chạy thử nghiệm
Chạy thử nghiệm

Từ bước 1, chúng tôi đã xây dựng bảng giao diện ESP-01, và từ bước 2, chúng tôi có nguồn điện 3,3V cho bảng ESP-01. Bây giờ chúng ta kết nối đầu ra của bộ nguồn với bảng theo sơ đồ mạch, được hiển thị như V1.

Bây giờ bước tiếp theo là kết nối các thiết bị đầu cuối Trans / Door kêu vang với các kết nối bảng giao diện được hiển thị dưới dạng "Door Chume Terminals". Vì chuông của tôi được gắn trên tường cao nên để chạy thử nghiệm, tôi tạm thời chạy một cặp cáp dài từ các cực chuông tới bo mạch để có thể cắm nguồn điện.

Để kiểm tra xem hệ thống của chúng tôi có hoạt động hay không, cách dễ nhất là theo dõi các tin nhắn MQTT trong mạng. Để làm điều đó, bạn cần mở một phiên SSH cho nhà môi giới mosquitto và đưa ra lệnh sau:

mosquitto_sub -v -t '#'

Lệnh trên sẽ cho phép chúng tôi xem tất cả các thông báo MQTT đến với nhà môi giới.

Bây giờ hãy cắm nguồn điện vào ổ cắm trên tường và nếu mọi thứ hoạt động, ít nhất trong vài giây nữa, bạn sẽ thấy thông báo MQTT sau:

stat / DoorBell / LWT Trực tuyến

Bây giờ hãy ra ngoài và bấm chuông cửa, và bạn sẽ thấy thông báo sau:

tele / DoorBell BẬT

Nếu bạn nhìn thấy những thông báo đó, dự án của bạn đã thành công.

Tôi cũng bao gồm một số chủ đề MQTT hữu ích trong bản phác thảo mà bạn có thể sử dụng:

"stat / DoorBellInfo": thông báo này được gửi mỗi phút để cung cấp thời gian hoạt động và các thông tin khác.

"cmnd / DoorBellInfo": ESP-01 sẽ gửi thông tin nếu nhận được chủ đề này có giá trị là '1' (ascii = 49) "cmnd / DoorBellCPUrestart": ESP-01 sẽ khởi động lại nếu nhận được chủ đề này với giá trị là '1 '(ascii = 49) "cmnd / DoorBellCPUreset": ESP-01 sẽ đặt lại nếu nhận được chủ đề này có giá trị là' 1 '(ascii = 49)

"tele / FrontDoorBell": ESP-01 sẽ gửi tin nhắn trong chủ đề này với giá trị 'BẬT' nếu nhấn chuông cửa

Bước 5: Tích hợp bo mạch và nguồn điện vào chuông

Tích hợp bo mạch và nguồn điện vào chuông
Tích hợp bo mạch và nguồn điện vào chuông
Tích hợp bo mạch và nguồn điện vào chuông
Tích hợp bo mạch và nguồn điện vào chuông
Tích hợp bo mạch và nguồn điện vào chuông
Tích hợp bo mạch và nguồn điện vào chuông

Bây giờ chúng ta đã chạy thử nghiệm thành công, chúng ta cần lắp ráp bo mạch và nguồn điện bên trong chuông chuông cửa (nếu có thể). Trong chiếc chuông hiện có của tôi, có một vỏ bọc trống mà tôi có thể mở và lắp nguồn điện bên trong không gian đó. Bo mạch ESP-01 không vừa với không gian nhỏ đó, nhưng vẫn vừa vặn bên trong hộp chuông báo tổng thể. Tôi vừa sử dụng băng dính hai mặt dày để gắn bảng giao diện ESP-01.

Bây giờ chúng ta có thể tháo các ngạnh kim loại khỏi bộ sạc USB của mình và thay thế chúng bằng cáp dày hơn mà chúng ta có thể kết nối với hệ thống dây điện trong nhà. Đảm bảo tắt cầu dao cung cấp điện cho mạch chuông.

Nếu không có đủ không gian để lắp dự án của chúng tôi vào chuông cửa hiện có, bạn sẽ cần đặt nó vào một hộp riêng và gắn nó gần với chuông cửa.

Bước 6: Lần chạm cuối cùng

Liên lạc cuối cùng
Liên lạc cuối cùng

Bây giờ chúng tôi đã có dự án hoạt động và có thể xuất bản thông điệp MQTT cho nhà môi giới, bước tiếp theo là nghĩ về ý tưởng phải làm gì với điều đó.

Trong dự án của tôi, tôi sử dụng Node-RED để nghe / đăng ký chủ đề MQTT chuông cửa đó và thông báo cho một số loa gia đình trên google. Ngoài ra, tôi cũng liên kết luồng với một nút bóng đẩy để gửi thông báo đến điện thoại Android của mình để tôi biết có ai bấm chuông ngay cả khi tôi không ở nhà hay không. Thông báo Pushbullet không hữu ích đối với một số người, nhưng nó khá hữu ích đối với tôi, cùng với máy quay video ở hiên trước của tôi, tôi có thể biết ai đã đến để giao hàng (họ thường bấm chuông cửa). Tôi không thể tin tưởng nhiều vào tính năng phát hiện chuyển động của máy ảnh do nhiều nhiễu khác nhau, đặc biệt là bóng cây chuyển động.

Hình ảnh ở bước này cho thấy quy trình Node-RED để thực hiện điều này. Bạn cũng có thể dán luồng từ trang github của tôi vào Node-RED của mình:

Thông báo về trang chủ của Google chỉ là một ví dụ cho dự án này, nhưng tôi nghĩ nó hữu ích và thiết thực nhất. Bạn luôn có thể giao tiếp với trình nghe MQTT khác hoặc thậm chí sử dụng IFTTT để điều khiển các thiết bị khác khi chuông cửa được đẩy.

Chúc vui vẻ…

Đề xuất: