Mục lục:

Cảm biến rò rỉ nước trên ESP8266 + Micropython + Domoticz: 16 bước (có hình ảnh)
Cảm biến rò rỉ nước trên ESP8266 + Micropython + Domoticz: 16 bước (có hình ảnh)

Video: Cảm biến rò rỉ nước trên ESP8266 + Micropython + Domoticz: 16 bước (có hình ảnh)

Video: Cảm biến rò rỉ nước trên ESP8266 + Micropython + Domoticz: 16 bước (có hình ảnh)
Video: Cảnh báo nhiệt độ - ESP8266 - Cảm biến DS18B20 | Temperature alarm by ESP8266 and DS18B20 sensor 2024, Tháng mười một
Anonim
Cảm biến rò rỉ nước trên ESP8266 + Micropython + Domoticz
Cảm biến rò rỉ nước trên ESP8266 + Micropython + Domoticz
Cảm biến rò rỉ nước trên ESP8266 + Micropython + Domoticz
Cảm biến rò rỉ nước trên ESP8266 + Micropython + Domoticz

Cách đây một thời gian, vợ tôi nhờ tôi làm cảm biến rò rỉ nước. Cô sợ rằng vòi trong phòng lò hơi có thể bị rò rỉ và nước sẽ ngập sàn gỗ mới lát. Và tôi với tư cách là một kỹ sư thực thụ đã đảm nhận một cảm biến như vậy để làm.

Từ kinh nghiệm 15 năm làm kỹ sư y tế, tôi biết rằng cách dễ nhất để phát hiện nước là các chốt kim loại bị nước làm chập. Nguyên tắc hoạt động của các cảm biến đơn giản nhất là nước phải làm ngắn hai (hoặc nhiều) chốt kim loại, và ngay khi nó xảy ra, báo động sẽ kích hoạt.

Bước 1: Phần cứng

Phần cứng
Phần cứng

Đối với dự án này, chúng tôi cần:

1. ESP8266 - 01 mô-đun

2. HT7333 3.3V MS Low Dropout Bộ điều chỉnh tuyến tính modu

Chúng tôi cần mô-đun này để giảm điện áp từ pin xuống mức chấp nhận được cho ESP8266. Theo biểu dữ liệu nên có đầu vào 3V đến 3,6V. Mô-đun này cung cấp cho chúng ta 3,3V.

3. Pin. Tôi đang sử dụng pin 3, 7V Li-ion 400mAh. Trên thực tế, bạn có thể sử dụng bất kỳ nguồn điện phù hợp nào khác. Pin 18650 cũng là một lựa chọn tốt. Khi bạn chọn pin, hãy nhớ rằng ESP "ăn" khoảng 200mA khi kết nối với mạng WiFi và khoảng 60mA được sử dụng khi bo mạch đang tải dữ liệu lên máy chủ.

4. Bo mạch sạc pin Lipo TP4056.

5. Pololu mini pushbutton Power Switch Bảng nhỏ xíu rất thú vị. Nó cho phép chúng tôi chuyển đổi mô-đun ESP chỉ khi phát hiện có nước. Bạn không cần phải BẬT ESP. Vì vậy, nó là tốt để tiết kiệm phí của pin.

6. Nhà ở7. Công tắc kép BẬT-TẮT. Một dòng phục vụ để bật thiết bị. Dòng thứ hai là để kiểm tra - nó ngắn mạch mà không có nước, chỉ để cho chúng tôi biết thiết bị có hoạt động hay không.

8. Máy vi tính Raspberry Pi

Tôi đang sử dụng Raspberry Pi Zero. Nó đủ mạnh để chạy máy chủ Domoticz.

Bước 2: Phần mềm

Trên PC của bạn:

1. esptool được cài đặt, để xóa các mô-đun và nhấp nháy phần sụn

2. Ampy được cài đặt, để cài đặt chương trình của bạn

3 Python 3.6 hoặc cao hơn được khuyến nghị

4. Bất kỳ trình soạn thảo mã nào bạn muốn. Đơn giản nhất - Python IDLE thường được cài đặt bằng Python. Tôi đang sử dụng Pycharm / Atom hoặc Anaconda Spyder Trên mâm xôi Pi

5. Máy chủ Domoticz được cài đặt trên Raspberry Pi (hoặc PC thông thường chạy Windows hoặc Linux)

Bước 3: Chuẩn bị Raspberry Pi - Cài đặt Domoticz

Vì vậy, hãy lấy RPi của bạn và cài đặt hệ điều hành phù hợp để chạy máy chủ Domoticz.

Bạn có thể làm theo các hướng dẫn sau.

Tôi đang sử dụng Raspbian Stretch với Desktop từ đây:

Bước tiếp theo là cài đặt máy chủ Domoticz trên PC của bạn. Bạn có thể hướng dẫn sử dụng tại đây hoặc tại đây:). Đừng sợ, nó không phải là quá khó. Rõ ràng là bạn cần chạy trong thiết bị đầu cuối của mình:

curl -L install.domoticz.com | sudo bash

Và đó là nó:) ít nhiều. Thiết lập Domoticz

Bây giờ máy chủ của chúng tôi đã sẵn sàng, chúng tôi có thể truy cập nó từ bất kỳ trình duyệt web nào, kể cả từ máy tính bảng bằng cách nhập URL sau: https:// IP_domoticz: 8080

Bước 4: Thiết lập Domoticz

Thiết lập Domoticz
Thiết lập Domoticz

Bây giờ máy chủ của chúng tôi đã sẵn sàng, chúng tôi có thể truy cập nó từ bất kỳ trình duyệt web nào, kể cả từ máy tính bảng bằng cách nhập URL sau: https:// IP_domoticz: 8080

Bước 5: Điều chỉnh Cài đặt Ứng dụng

Điều chỉnh Cài đặt Ứng dụng
Điều chỉnh Cài đặt Ứng dụng
Điều chỉnh Cài đặt Ứng dụng
Điều chỉnh Cài đặt Ứng dụng

Có nhiều cài đặt ứng dụng khác nhau có thể được thiết lập thông qua Cài đặt | Menu cài đặt.

Menu Setting với nhiều tab khác nhau cho phép bạn nhập các thông số cá nhân cần thiết để hệ thống hoạt động tốt hơn. Sau khi nhập dữ liệu vào các trường, bạn phải lưu chúng bằng cách nhấn vào nút màu đỏ "Áp dụng cài đặt". Sau hành động này, tất cả các trường Mật khẩu trống ở lần truy cập đầu tiên, sẽ xuất hiện với một chuỗi dài các dấu hoa thị, ngay cả khi chúng chưa được sử dụng.

Sau khi bạn đã thiết lập chính trên trang "Hệ thống", hãy nhấp vào "Thông báo". Ở đây, chúng tôi cần điều chỉnh loại thông báo mà chúng tôi sẽ sử dụng.

Bước 6: Thiết lập thông báo

Thiết lập thông báo
Thiết lập thông báo

Thông báo có thể được gửi đi, chẳng hạn như khi công tắc bị đẩy, mức sử dụng điện quá cao, nhiệt độ lên cao và cho nhiều tùy chọn khác.

Trong trường hợp của chúng tôi, thông báo phải được gửi ngay sau khi cảm biến phát hiện có nước. Vì vậy, chỉ cần bật những người, bạn muốn sử dụng. Ngoài ra, thông thường bạn cần khóa API để thông báo hoạt động. Chạy trước một chút, tôi sẽ nói rằng tôi đã thử Pushover, Pushsafer và Pushbullet. Và tôi ở lại với Pushover. Sau đây, tôi sẽ nói tại sao.

Vài lời về cách hoạt động của thông báo. Bạn cần có tài khoản trên Pushbullet, Pushover hoặc các trang khác mà bạn muốn sử dụng. Ngoài ra, bạn sẽ cần một ứng dụng trên điện thoại di động hoặc PC của mình.

Nhận khóa API và chèn nó vào trang trên. Bạn có thể kiểm tra thông báo bằng cách nhấp vào "Kiểm tra". Nếu khóa API chính xác, bạn sẽ nhận được thông báo kiểm tra đến điện thoại di động của mình.

Ngay sau khi cảm biến cảm nhận được nước, ESP sẽ bật và gửi yêu cầu đến máy chủ Domoticz ở định dạng JSON. Nếu các điều kiện để kích hoạt một sự kiện (gửi thông báo đến điện thoại di động của bạn) được thỏa mãn, Domoticz sẽ gửi thông báo.

Sau này tôi sẽ quay lại với "sự kiện".

Bước 7: Thiết lập Giao tiếp với (các) Thiết bị Phần cứng

Thiết lập Giao tiếp với (các) Thiết bị Phần cứng
Thiết lập Giao tiếp với (các) Thiết bị Phần cứng
Thiết lập Giao tiếp với (các) Thiết bị Phần cứng
Thiết lập Giao tiếp với (các) Thiết bị Phần cứng
Thiết lập Giao tiếp với (các) Thiết bị Phần cứng
Thiết lập Giao tiếp với (các) Thiết bị Phần cứng

Trước khi có thể sử dụng ứng dụng Domoticz để điều khiển thiết bị hoặc đọc cảm biến, bạn phải thiết lập giao tiếp với (các) thiết bị phần cứng. Chọn Thiết lập | Phần cứng để thêm phần cứng. Thiết bị sẽ không hiển thị cho đến khi phần cứng thích hợp được thêm vào.

Ứng dụng Domoticz hỗ trợ nhiều thiết bị phần cứng nguyên bản. Trong trường hợp của chúng tôi để đọc cảm biến lũ của chúng tôi, chúng tôi cần thêm phần cứng được gọi là "Dummy" từ danh sách phần cứng.

Khi phần cứng được thêm vào, tổng quan của tất cả phần cứng đã xác định sẽ được hiển thị. Phần cứng có thể bị vô hiệu hóa hoặc bị xóa.

Phần cứng mới phải có trong danh sách và phải có nút "Tạo cảm biến ảo".

Nhấp vào nút này và chọn Loại cảm biến "Cảnh báo". Bây giờ chúng ta phải thêm thiết bị vào Domoticz để có thể hoạt động.

Bước 8: Thêm thiết bị trong Domoticz để trở thành hoạt động

Thêm thiết bị trong Domoticz để trở nên hoạt động
Thêm thiết bị trong Domoticz để trở nên hoạt động
Thêm thiết bị trong Domoticz để trở nên hoạt động
Thêm thiết bị trong Domoticz để trở nên hoạt động
Thêm thiết bị trong Domoticz để trở nên hoạt động
Thêm thiết bị trong Domoticz để trở nên hoạt động

Vui lòng lưu ý số bên dưới "IDX". Đây là tham chiếu duy nhất cho thiết bị này và chúng tôi cần nó sau này trong tập lệnh Python của chúng tôi để giải quyết thông báo. Trong trường hợp này, số IDX là 1.

Kích hoạt thiết bị bằng cách nhấp vào mũi tên màu xanh lá cây ở bên trái (trong hình của tôi bên dưới, nó có màu xanh lam, do thiết bị được kích hoạt).

Điền tên của thiết bị và nhấp vào "thêm".

Điều hướng đến menu "Tiện ích" và thiết bị của bạn sẽ được liệt kê ở đó.

Bây giờ chúng ta cần lập trình "sự kiện" cho cảm biến của chúng ta. Nó có nghĩa là chúng ta cần phải nói với máy chủ, phải làm gì trong trường hợp nó nhận được thông báo từ cảm biến. Và đó là nơi khó nhất đối với tôi:).

Bước 9: Nó không hoạt động theo cách này…

Nó không hoạt động theo cách này…
Nó không hoạt động theo cách này…

Tôi bắt đầu bằng cách cố gắng lập trình sự kiện trên trang / device /. Điều này bên dưới không phải của tôi, nhưng có thể minh họa.

Nếu bạn tin rằng bạn sẽ kiểm tra một số hộp kiểm và nó sẽ hoạt động, bạn đã nhầm:) Nó không hoạt động theo cách này. Tôi cho rằng tính năng này ở đây vẫn chưa kết thúc. Đừng quên - đó là phần mềm mã nguồn mở. Oh, sau vài giờ tôi đã tìm ra giải pháp. Chúng tôi cần sử dụng "Sự kiện" từ trình đơn thả xuống "Thiết lập".

Sau khi nhấp vào "Sự kiện", bạn có thể tạo sự kiện của riêng mình. Bạn có thể làm điều đó bằng cách viết mã bằng Python hoặc LUA, hoặc chỉ bằng cách sử dụng thứ gọi là "Blockly". Tôi đã chọn để sử dụng Blockly. Có hai cách để buộc máy chủ làm những gì bạn muốn.

Bước 10: Xây dựng sự kiện theo đúng cách 1

Xây dựng sự kiện theo đúng cách 1
Xây dựng sự kiện theo đúng cách 1

1. Thực thi tệp bên ngoài thông qua "Sự kiện", bằng cách sử dụng Thông báo chặn "Bắt đầu tập lệnh"

Điều này hoàn toàn phù hợp với tôi trên máy Windows. Nhưng tôi đã không thành công với điều này trên Raspbian trên Raspberry Pi của mình. Tôi nghi ngờ rằng có vấn đề với quyền.

Bước 11: Xây dựng sự kiện theo đúng cách 2

Xây dựng sự kiện theo đúng cách 2
Xây dựng sự kiện theo đúng cách 2

2. Sử dụng tin nhắn "Gửi thông báo có chủ đề". Nó hoạt động trên Raspbian. Tùy chọn này hỗ trợ gửi thông báo đến Pushsafe và Pushover.

Ưu điểm của việc sử dụng cách thứ nhất là nó linh hoạt hơn. Bạn có thể chọn biểu tượng để hiển thị trên màn hình, âm thanh, v.v. "Sự kiện" của tôi được hiển thị trên hình trên.

Tiếp theo, hãy lập trình mô-đun ESP.

Bước 12: Lập trình mô-đun ESP8266-01

Lập trình mô-đun ESP8266-01
Lập trình mô-đun ESP8266-01

Hãy bắt đầu từ việc flash mô-đun ESP8266 của chúng tôi. Thông thường, những mô-đun đó đi kèm với phần sụn của nhà máy. có thể giao tiếp với các mô-đun bằng cách sử dụng các lệnh AT. Và phần mềm này cũng không cho phép sử dụng các mô-đun như các bộ điều khiển độc lập. Để sử dụng chúng như các bộ điều khiển độc lập, chúng ta cần xóa phần mềm cơ sở của nhà máy và cài đặt phần mềm mới.

Để làm điều này, chúng tôi sẽ sử dụng esptool. Hơn nữa, chúng ta cần kết nối mô-đun của mình với PC để xóa phần sụn. Để làm điều này, bạn cần bộ chuyển đổi TTL + một số thành phần bổ sung. Nhưng có một cách dễ dàng hơn:). Chỉ cần mua trên aliexpress hoặc ebay Mô-đun Bộ chuyển đổi Wi-Fi USB sang ESP8266 ESP-01 với Trình điều khiển CH340G.

Cắm mô-đun ESP8266 vào bộ chuyển đổi TTL như thể hiện trên hình và kết nối nó với cổng USB.

Nếu bạn có cùng bộ chuyển đổi với tôi, thì bản thân bạn cần phải thay đổi công tắc sang vị trí "Prog". Tìm nơi cài đặt esptool (thường ở đâu đó như C: / Program Files (x86) Python36-32 / Scripts. Đi tới thư mục này, khởi chạy dấu nhắc lệnh ở đó. Loại: python esptool.exe --port COM5 delete_flash

Tất nhiên là chọn đúng cổng. Trong trường hợp của tôi, nó là COM5. Bạn có thể kiểm tra cổng nơi ESP được cài đặt từ Bảng điều khiển - Hệ thống - Trình quản lý thiết bị.

Cài đặt chương trình cơ sở (tôi lấy nó từ đây: https://micropython.org/download#esp8266) bằng cách gõ:

python esptool.exe --port COM5 --baud 460800 write_flash --flash_size = phát hiện 0 C: / path_to_firmware / esp8266-20180511-v1.9.4.bin

Được rồi, bây giờ chúng ta đã sẵn sàng tải các tập lệnh chạy vi mô lên ESP8266.

Tôi đang sử dụng Adafruit MicroPython Tool (ampy) cho việc này.

Nhưng ngày nay có một lựa chọn khác được gọi là Esplorer. Đây là một ứng dụng có giao diện người dùng, cho phép tải tệp lên các mô-đun ESP.

Bạn có thể tìm thấy hướng dẫn cách cài đặt ampy tại đây. Vì vậy, hãy đặt công tắc trên bộ chuyển đổi TTL sang vị trí "UART". Chúng tôi sẽ cần tải lên các tệp:

  • wifimgr.py - trình quản lý wifi để kết nối với mạng wifi
  • main.py - tập lệnh chính của chúng tôi

Trong dòng lệnh, nhập: ampy --port COM5 đặt C: / đường dẫn đến tệp của bạn

Nhấn Enter . Sau vài giây, bạn sẽ thấy dòng lệnh trống. Nó có nghĩa là tệp đã được tải lên. Bạn có thể kiểm tra danh sách các tệp trên ESP bằng lệnh ampy:

ampy - cổng COM5 ls

Theo kinh nghiệm của tôi, tốt hơn là tải lên main.py sau khi bạn đã tải lên tất cả các tệp cần thiết. nó là như vậy, vì ngay sau khi bạn tải lên main.py - mô-đun ESP8266 sẽ khởi động lại và bắt đầu thực thi tệp main.py. Vì vậy, trong trường hợp này nếu bạn cố gắng tải lên một tệp khác, đôi khi quá trình tải lên sẽ không thành công. Nhưng nó không có nghĩa là tất cả mọi thứ đều mất:), chỉ cần thử lần thứ hai, và bạn sẽ thành công (một lần nữa, từ kinh nghiệm của tôi).

Tất cả các tệp cho dự án này có sẵn tại đây:

Bước 13: Kết nối với Mạng WiFi của bạn. Nhận thông báo

Kết nối với Mạng WiFi của bạn. Nhận thông báo
Kết nối với Mạng WiFi của bạn. Nhận thông báo
Kết nối với Mạng WiFi của bạn. Nhận thông báo
Kết nối với Mạng WiFi của bạn. Nhận thông báo

nếu mọi thứ đều ổn, hãy khởi động lại mô-đun, bằng cách lắp lại bộ chuyển đổi TTL sang cổng USB của PC của bạn.

Sau khi ESP khởi động, hãy tìm một mạng WiFi mới có tên "Wifimanager". Kết nối với nó với PC hoặc điện thoại của bạn, sau đó đi tới địa chỉ IP 192.168.4.1.. Tại đây bạn có thể kết nối ESP của mình với mạng WiFi cục bộ. Chọn mạng WiFi bạn sẽ sử dụng, nhập mật khẩu, nhấn "Gửi".

Nếu mọi thứ đều chính xác, bạn sẽ thấy thông báo "ESP đã kết nối thành công với mạng XXXX". ESP của bạn hiện đã được kết nối với mạng WiFi của bạn và đã sẵn sàng. Ngay sau khi nó kết nối với WiFi, nó sẽ kết nối với máy chủ Domoticz. Sau 30 phút nữa, bạn phải nhận được thông báo trên điện thoại di động của mình.

Bạn có thể theo dõi quá trình trong "Thiết lập" / "Nhật ký".

Vua lia!:) Nó hoạt động. Bây giờ chúng ta có thể tiến hành lắp ráp tất cả các bộ phận lại với nhau, theo sơ đồ khối bên dưới.

Bước 14: Sơ đồ khối

Sơ đồ khối
Sơ đồ khối

Không có quá nhiều điều để nói về sơ đồ này. Rất đơn giản. Chuyển nguồn bằng công tắc S1. Thiết bị ở trạng thái tắt cho đến khi chân "Cảm biến nước" bị chập nước. Sau đó, "bảng Pololu" bật và cấp nguồn cho bộ chuyển đổi điện áp. Mô-đun nguồn này dựa trên chip HT7333, chuyển đổi điện áp thành 3.3V ổn định cho ESP8266. ESP tiếp theo được bật và gửi tin nhắn đến máy chủ Domoticz.

Bước 15: Kết quả và kết luận

Kết quả và Kết luận
Kết quả và Kết luận
Kết quả và Kết luận
Kết quả và Kết luận
Kết quả và Kết luận
Kết quả và Kết luận
Kết quả và Kết luận
Kết quả và Kết luận

Nó hoạt động. Gửi thông báo mất tới 10 giây: kết nối với WiFi, gửi thông báo, nhận tin nhắn báo thức đến điện thoại của bạn.

Tôi đã lập trình cảm biến để gửi cảnh báo cứ sau 30 giây, nếu phát hiện có nước. Cảm biến có thể gửi tối đa 5 - 6 thông báo cho đến khi hết pin. Thiết bị như vậy cũng có thể được sử dụng để xác định mực nước. Những gì tôi muốn cải thiện.

1. Để làm cho nó hoạt động nhanh hơn. Tôi nghĩ tôi sẽ cố gắng sử dụng công nghệ ESP-Now, cho phép tôi kết nối trực tiếp nhiều ESP. Trong trường hợp này, điện năng tiêu thụ trong quá trình kết nối rất thấp và nhanh hơn. Vì vậy, ý tưởng là sử dụng một ESP như một trung tâm để kết nối các ESP khác.

2. Thực hiện cảnh báo mức pin. Bây giờ bạn không thể biết có đủ năng lượng để gửi tin nhắn báo động hay không. Tôi nghĩ rằng trong thế hệ tiếp theo của cảm biến này sẽ có một nút đặc biệt để kiểm tra mức sạc pin.

Người dùng sẽ phải nhấn một nút và mức pin sẽ được hiển thị.

Đề xuất: