Mục lục:

Rơ le báo động tủ đông: 5 bước
Rơ le báo động tủ đông: 5 bước

Video: Rơ le báo động tủ đông: 5 bước

Video: Rơ le báo động tủ đông: 5 bước
Video: Cách Đấu Rơ Le Bảo Vệ Điện Áp Cho Hệ Thống Điện Gia Đình 2024, Tháng mười một
Anonim
Rơ le báo động tủ đông
Rơ le báo động tủ đông

Tủ đông của chúng tôi nằm trong một phòng tiện ích được cách ly với không gian sống của chúng tôi. Đôi khi cửa tủ đông không đóng đúng cách và chuông báo động kêu. Vấn đề là chúng ta không thể nghe thấy nó nếu chúng ta đang ở trong không gian sống của mình. Làm thế nào để chúng tôi nhận được thông báo rằng cửa tủ đông đang mở? Đây là một vấn đề phổ biến, chúng tôi có các thiết bị trong nhà để nói chuyện với chúng tôi, nhưng điều gì sẽ xảy ra nếu chúng tôi không thể nghe thấy chúng vì bất kỳ lý do gì. Tôi bắt đầu điều này như một chút thú vị, nhưng nó có thể được sử dụng trong một ứng dụng nghiêm túc hơn.

Vấn đề này có 2 phần, chúng ta cần một phương pháp để phát hiện chuông báo đã tắt và một phương pháp để chuyển sự thật này đến không gian sống của chúng ta. Thiết kế mà tôi quyết định là sử dụng Raspberry Pi để lắng nghe báo động tủ đông đang tắt và sau đó gửi một tin nhắn báo động bằng âm thanh đến đài phát thanh trong nước của tôi được bật uPNP. Universal Plug and Play (UpnP) là một tiêu chuẩn để khám phá và tương tác với các dịch vụ được cung cấp bởi các thiết bị khác nhau trên mạng, bao gồm cả máy chủ đa phương tiện và trình phát, mặc dù tôi không nghĩ rằng tủ đông đã được hình thành khi tiêu chuẩn này được phát triển. Thông báo cảnh báo được phát ra to và gây khó chịu và lặp đi lặp lại liên tục cho đến khi tắt đài.

Tôi đã chọn phát hiện cảnh báo bằng Raspberry Pi Zero W và Seeed ReSpeaker 2-Mics Pi HAT Raspberry PI Zero là phiên bản giá rẻ của Raspberry Pi và tùy chọn W có WiFi tích hợp, trong khi Seeed Pi HAT được bán lẻ với giá thấp hơn $ 10, có đèn LED tích hợp và nút Người dùng. Pi HAT là các thẻ mở rộng cắm trực tiếp vào Raspberry Pi với quy trình lắp ráp rất đơn giản. Bất kỳ phiên bản Pi nào cũng sẽ có nhiều khả năng hơn cho công việc và micrô được chọn có thể được thay thế, mặc dù tôi đã sử dụng đèn LED tích hợp trong bản dựng này.

Thật dễ dàng để kiểm tra xem đài hoặc TV có phù hợp với bạn hay không. Nhiều khả năng nó sẽ được mô tả là "DLNA được kích hoạt" hoặc tương tự. Điều này sử dụng uPNP để giao tiếp. Trên PC chạy Windows, chọn một tệp mp3 và chọn “Truyền tới thiết bị”. Nếu thiết bị của bạn hiển thị và bạn có thể phát tệp, thì bạn đã sẵn sàng.

Tôi chia phần mềm thành 2 tập lệnh python, checkFreezer.py để kiểm tra xem cảnh báo tủ đông đã được kích hoạt chưa và raiseAlarm.py để nâng cảnh báo. Các tập lệnh này có thể được phát triển và thử nghiệm riêng biệt và có thể dễ dàng điều chỉnh hoặc thay thế cho các phương pháp tăng cảnh báo bằng micrô khác nhau.

Quân nhu

  • Phần mềm -https://github.com/wapringle/freezer-alarm
  • Raspberry PI Zero W
  • Seeed ReSpeaker 2-Mics Pi HAT
  • đài phát thanh hỗ trợ uPNP

Bước 1: Thiết kế máy dò

Khi cửa tủ đông được mở và nhiệt độ tăng, tủ đông sẽ phát ra âm thanh "bíp bíp bíp" cảnh báo. Điểm chung với hầu hết các tiếng bíp điện tử, đây là một tần số duy nhất. Ý tưởng là lấy mẫu đầu vào âm thanh, thực hiện Biến đổi Fourier Nhanh (FFT) để biến đổi tín hiệu dựa trên thời gian thành tín hiệu dựa trên tần số, nói cách khác là chia nhỏ tín hiệu để hiển thị các tần số khác nhau trong tín hiệu. Xem Máy phân tích phổ Raspberry Pi có thể hướng dẫn với dải LED RGB Chúng ta có thể tìm kiếm đỉnh ở tần số bộ rung và kích hoạt cảnh báo khi bộ rung đã hoạt động trong một thời gian.

Máy dò này có 2 yêu cầu

  • Nó sẽ phát hiện bộ rung, ngay cả khi có tiếng ồn xung quanh (loại bỏ âm tính giả)
  • Nó không được kích hoạt bởi tiếng ồn xung quanh (loại bỏ dương tính giả)

Tôi quyết định rằng chạy một chiếc Hoover trong phòng tiện ích sẽ là một bài kiểm tra tốt. Nó sẽ không kích hoạt cảnh báo và cảnh báo sẽ được kích hoạt khi còi của tủ đông kêu và Hoover đang chạy.

Bước 2: Định cấu hình máy dò

Cấu hình máy dò
Cấu hình máy dò
Cấu hình máy dò
Cấu hình máy dò
Cấu hình máy dò
Cấu hình máy dò

Với điện thoại của mình, tôi chỉ lấy các mẫu âm thanh dưới dạng tệp WAV của bộ rung ngăn đông, với nền ồn ào và khi Hoover đang chạy. Tôi đã điều chỉnh mã để thực hiện FFT từ bài đọc Luồng âm thanh cho FFT (Khi nghi ngờ, lỗi đạo văn) và sử dụng tập lệnh fourierTest.py để vẽ các mẫu thô và Fourier Transformed của bộ rung trong nền yên tĩnh, ồn ào và rất ồn ào. Mức độ đột biến ở tần số 645 được phát hiện trong âm mưu đầu tiên và vẫn còn đáng kể với nền rất ồn.

Bước 3: Xây dựng máy dò

Lắp ráp máy dò

Rất đơn giản. Pi W đi kèm với Wifi tích hợp và HAT được cắm cẩn thận vào các chân GPIO trên Pi. Cấu hình phần mềm yêu cầu các bước

  • Cài đặt bản phân phối raspbian trên Raspberry Pi. Có rất nhiều hướng dẫn về điều này có thể giải thích nó tốt hơn nhiều mà tôi có thể.
  • Thiết lập Wifi (ditto ở trên)
  • Nó cần cài đặt gói alsa

$ sudo apt-get install libasound-dev

$ pip cài đặt pyalsaaudio

  • Kết nối HAT với PI mâm xôi
  • Làm theo Hướng dẫn trên trang web đã xem để cài đặt trình điều khiển cho HAT.
  • Chạy chẩn đoán đã xem để kiểm tra HAT đang hoạt động và được định cấu hình đúng cách.

Chương trình dò đọc một khối dữ liệu dưới dạng mẫu từ micrô, thực hiện FFT và quyết định xem nó có phát hiện bộ rung trong mẫu hay không. Tôi đã cố gắng tạo khối lâu nhất có thể bằng cách giảm tốc độ lấy mẫu âm thanh xuống 16kHz và sử dụng bộ đệm lớn nhất mà người đọc có thể chấp nhận. Tôi lo ngại rằng phép tính FFT có thể khiến khung hình bị giảm, nhưng điều đó đã không xảy ra.

Việc có các mẫu được ghi sẵn trên điện thoại của tôi giúp việc xây dựng máy dò dễ dàng hơn nhiều vì tôi có thể thực hiện việc xây dựng hoàn chỉnh trên băng ghế trước khi thử nghiệm tại chỗ bằng tủ đông.

Đào tạo máy dò

Máy dò được huấn luyện bằng cách quét từng mẫu khi bản ghi WAV của bộ rung được phát tới máy dò. Chương trình xuất ra vị trí trong phổ FFT với mức công suất cao nhất (tần số đỉnh), cùng với mức của tần số đỉnh đó. Vấn đề đơn giản là tìm tần số bộ rung và mức công suất mà nó phát ra.

Có 2 cách để phát hiện xem có tiếng bíp hay không: -

  1. Tần số bộ rung có phải là tần số cao nhất trong mẫu không?
  2. hoặc mức công suất ở tần số bộ rung có vượt quá ngưỡng không?

Cả hai phương pháp đều hoạt động với một mẫu yên tĩnh, nhưng phương pháp thứ hai tốt hơn với một mẫu ồn ào, vì vậy tôi đã sử dụng phương pháp đó.

Đôi khi một mẫu phát ra một tiếng bíp, đôi khi là giữa các tiếng bíp và sau mỗi 3 tiếng bíp, có một khoảng dừng dài trước khi có các tiếng bíp tiếp theo. Để phát hiện một cách đáng tin cậy rằng một tập hợp các tiếng bíp đã xảy ra, mỗi mẫu có một phiếu tán thành nếu phát hiện thấy một tiếng bíp và một phiếu phản đối nếu không. Những phiếu bầu này được cân để thiết lập số đếm sẽ tăng lên với một mẫu tiếng bíp và từ từ phân rã giữa các thời điểm. Khi số lượng đạt đến ngưỡng, cảnh báo có thể được kích hoạt. Nếu tiếng ồn ngẫu nhiên được phát hiện dưới dạng một mẫu tiếng bíp, số lượng sẽ trở về không.

Sau đó, chúng ta cần trọng số cho phiếu ủng hộ và phiếu giảm giá cùng với ngưỡng. Điều này tôi đã làm với thử nghiệm và sai sót trên một số mẫu. Tôi không cần xác định tần số bộ rung thực tế, tôi chỉ tìm tần số nổi bật trong phổ fft.

Bước 4: Gửi tin nhắn tới Radio

Việc nâng báo thức đã được thực hiện với một tập lệnh riêng biệt. Công việc là bật đài nếu cần, đột nhập vào bất cứ thứ gì đài đang phát và lặp lại thông báo báo thức cho đến khi đài lại tắt. Tôi đã phải thiết kế ngược lại giao thức uPnP được sử dụng vì tôi gặp khó khăn lớn trong việc lấy thông tin hoặc ví dụ đáng tin cậy. Một số tài liệu tham khảo tôi thấy hữu ích là

  • www. Electromonk.nl/log/2016/07/05/exploring-upnp-with-python/ Đây có một cái nhìn tổng quan tốt đẹp về cách tất cả phù hợp với nhau
  • developer.sony.com/develop/audio-control-api/get-started/browse-dlna-file.
  • stackoverflow.com/questions/28422609/how-to-send-setavtransporturi-using-upnp-c/35819973

Tôi đã sử dụng Wireshark đang chạy trên Windows PC để bỏ chọn chuỗi thông báo khi phát tệp mẫu từ PC trên radio của mình và sau một hồi loay hoay, tôi đã nhận được một chuỗi lệnh hoạt động. Đây là

  • Khởi chạy một máy chủ web popup để gửi thông báo cảnh báo khi radio yêu cầu nó
  • Đặt mức âm lượng thành LOUD (Thông báo cảnh báo sẽ thu hút sự chú ý của mọi người)
  • Truyền thông điệp cảnh báo đến đài phát thanh
  • Thăm dò ý kiến trên radio cho đến khi trạng thái hiện tại là "STOPPED"
  • Nhận đài để "PHÁT" khi đi tiểu
  • Lặp lại 2 bước cuối cùng cho đến khi trạng thái hiện tại là "NO MEDIA PRESENT", có nghĩa là báo thức đã được xác nhận bằng cách tắt radio
  • Cuối cùng đóng máy chủ web và thoát ra.

Đây là script raiseAlarm.py

Bước 5: Tự làm

Tự mình làm
Tự mình làm

Mô hình "máy dò" và "báo động tăng" không chỉ dành cho tủ đông, nó có thể hữu ích ở bất kỳ nơi nào cần chuyển tiếp cảnh báo tự động qua một phương tiện khác. Nếu điều này sẽ được quan tâm, hãy thoải mái đi thử.

Thiết lập PI Zero W, bao gồm cả micrô

  • Lắp ráp phần cứng như trong bước 3
  • Tải xuống các tập lệnh báo động tủ lạnh từ Có thể hướng dẫn này hoặc từ kho lưu trữ git bao gồm một số bản nhạc bổ sung

$ git clone

Bạn cũng cần cài đặt phần mềm để sử dụng đèn LED APA102 trên bo mạch. Tôi đã bao gồm một bản sao của apa102.py trong thư mục git working

Đào tạo máy dò của bạn

Tôi đã thêm một tùy chọn đào tạo vào tập lệnh checkFreezer.py. Thao tác này chạy độc lập và in chẩn đoán ra dòng lệnh, nhưng trước tiên bạn cần ghi lại một số mẫu cảnh báo trong môi trường yên tĩnh dưới dạng tệp WAV và thực hiện tương tự trong môi trường ồn ào. Để hoàn thành khóa đào tạo, trước tiên bạn cần tìm tần số FFT với mức cao nhất ("tần số cao nhất") và sau đó là mức ngưỡng cho tần số đó để đặt kích hoạt. Để thực hiện việc này, hãy chạy script checkFreezer ở chế độ đào tạo, với tùy chọn ‘-t’ và phát bản ghi âm báo thức.

$ python checkFreezer.py -t

Điều này chạy tập lệnh trong chế độ đào tạo. Nó in "sẵn sàng" khi HAT nhìn thấy đã được khởi tạo và đèn LED chuyển sang màu xanh lục, sau đó là một dòng cho mỗi tiếng ồn không nhỏ mà nó nghe thấy, ví dụ:

$ python checkFreezer.py -t

Đã kích hoạt tần số đỉnh 55 sẵn sàng cấp 1? Tần số đỉnh sai 645 mức kích hoạt 484 được kích hoạt? Tần số đỉnh sai 645 mức kích hoạt 380 được kích hoạt? Sai

Trong trường hợp này, tần số đỉnh là 645 và trở thành tần số kích hoạt. Bây giờ để có được mức kích hoạt, hãy chạy lại checkFreezer, đặt trình kích hoạt

$ python checkFreezer.py -t --trigger = 645

Đã kích hoạt tần số đỉnh cao nhất 645 mức kích hoạt 1273 chưa? Tần số đỉnh sai 645 mức kích hoạt 653 được kích hoạt? Tần số đỉnh sai 645 mức kích hoạt 641 được kích hoạt? Tần số đỉnh sai 645 mức kích hoạt 616 được kích hoạt? Sai

Cuối cùng, chúng ta cần một ngưỡng kích hoạt sẽ kích hoạt khi phát hiện ra tiếng bíp, nhưng bỏ qua tiếng ồn, ví dụ:

$ python checkFreezer.py -t --trigger = 645 --threshold = 500

Đã kích hoạt tần số đỉnh cao nhất sẵn sàng 645 mức kích hoạt 581? Tần số cực đại thực sự 645 mức kích hoạt 798 được kích hoạt? Mức kích hoạt tần số đỉnh 645 thực sự được kích hoạt là 521? Thật

Kiểm tra điều này với một vài mẫu ồn và bạn sẽ có thể thiết lập một giá trị ngưỡng phân biệt giữa âm thanh của máy phát tiếng ồn và tiếng ồn xung quanh. Bạn cũng sẽ thấy đèn LED chuyển sang màu đỏ khi ghi tiếng bíp được phát trong vài giây. Nếu nó diễn ra nhanh / chậm, hãy chỉnh sửa cài đặt trong tập lệnh

Đang kết nối với radio

Để định cấu hình các tập lệnh cho thiết lập của riêng bạn, bạn cần tìm địa chỉ IP và số cổng mà thiết bị của bạn đang sử dụng cho các dịch vụ UPnP. Thiết lập đài phát thanh phải cung cấp những thứ này. Số cổng mặc định là 8080 và sẽ rất ngạc nhiên nếu nó khác.

Tôi đã cung cấp một thông báo cảnh báo mặc định, freeze.mp3. Hãy thay thế bằng thông điệp của riêng bạn.

Chỉnh sửa tập lệnh với các địa chỉ IP thích hợp và chạy tập lệnh.

$ python raiseAlarm.py

Nếu mọi thứ đều ổn, thông báo báo thức ồn ào và khó chịu sẽ phát ra khỏi đài của bạn cho đến khi đài bị tắt, hãy hủy báo thức.

Trong khi tập lệnh đang chạy, nó chạy một máy chủ web nhỏ để phân phát mp3 báo động đến đài phát thanh, có thể là sự cố bảo mật, nhưng nó chỉ hoạt động khi đang phát thông báo cảnh báo.

Phát trực tiếp

Xóa cờ đào tạo ‘-t’ và chạy checkFreezer với các giá trị của riêng bạn, ví dụ:

$ python checkFreezer.py --trigger = 645 --threshold = 200

Để làm cho nó bắt đầu khi khởi động lại, hãy thêm vào /etc/rc.local, cd / home / pi / tủ đông-báo động

(python checkFreezer.py --trigger = 645 --threshold = 200> / tmp / freeze 2> / tmp / freezererror &) & thoát 0

Đèn LED màu xanh lá cây sẽ sáng và bạn đã sẵn sàng hành động. Phát bản ghi tiếng bíp báo thức của bạn và sau một vài giây, đèn LED sẽ chuyển sang màu đỏ và thông báo báo thức sẽ phát trên đài của bạn.

Cuối cùng

Đặt PI ở vị trí gần tủ đông, cách xa và gần nguồn điện. Bật nguồn và đèn LED màu xanh lá cây sẽ bật sáng. Thử kích hoạt báo động bằng cách để cửa mở. Đèn sẽ chuyển sang màu đỏ và thông báo báo thức sẽ phát trên radio.

Sự thành công !! Bạn đã hoàn thành nó. Hãy chiêu đãi bản thân một ly đồ uống dài với đá từ ngăn đá, nhưng đừng quên đóng cửa ngăn đá!

Đề xuất: