Mục lục:

Báo động nước IoT: 5 bước (có hình ảnh)
Báo động nước IoT: 5 bước (có hình ảnh)

Video: Báo động nước IoT: 5 bước (có hình ảnh)

Video: Báo động nước IoT: 5 bước (có hình ảnh)
Video: Học sinh vẽ hình vuông 3d 2024, Tháng mười một
Anonim
Báo động nước IoT
Báo động nước IoT

Gần đây tôi đã có kinh nghiệm sao lưu cống nhà bếp. Nếu tôi không ở nhà vào thời điểm đó, nó có thể gây ra hư hỏng sàn và vách thạch cao trong căn hộ của tôi. May mắn thay, tôi đã nhận thức được vấn đề và sẵn sàng múc nước bằng xô. Điều này khiến tôi nghĩ đến việc mua một thiết bị báo động lũ lụt. Tôi đã khám phá ra rất nhiều sản phẩm giá cả phải chăng trên Amazon, nhưng những sản phẩm có kết nối internet có tỷ lệ đánh giá tiêu cực đáng kể, chủ yếu là do các vấn đề với các dịch vụ thông báo độc quyền. Đó là lý do tại sao tôi quyết định tạo báo động nước IoT của riêng mình, sử dụng các phương tiện thông báo đáng tin cậy mà tôi lựa chọn.

Bước 1: Nguyên lý hoạt động

Nguyên lý hoạt động
Nguyên lý hoạt động

Bộ báo động có bộ vi điều khiển AVR ATtiny85 làm bộ não của nó. Nó lấy số đo điện áp từ pin và cảm biến nước và so sánh chúng với giá trị được xác định trước để phát hiện sự hiện diện của nước hoặc tình trạng pin yếu.

Cảm biến nước chỉ đơn giản là hai dây đặt cách nhau khoảng 1 mm. Một trong các dây được kết nối với 3,3 V và dây còn lại được kết nối với chân cảm biến trên vi điều khiển, chân này cũng được kết nối với đất thông qua một điện trở 0,5 MOhm. Thông thường, điện trở giữa các dây cảm biến rất cao (trên 10 MOhm), do đó, chân cảm biến được kéo hết cỡ xuống 0 V. Tuy nhiên, khi có nước giữa các dây, điện trở giảm xuống dưới 1 MOhm, và chân cảm biến thấy một số điện áp (trong trường hợp của tôi là khoảng 1,5 V). Khi ATtiny85 phát hiện điện áp này trên chân cảm biến, nó sẽ kích hoạt MOSFET để cấp nguồn cho còi và gửi tín hiệu đánh thức đến mô-đun ESP8266 chịu trách nhiệm gửi cảnh báo (email và thông báo đẩy). Sau một phút vo ve, báo thức sẽ bị ngắt và chỉ có thể được đặt lại bằng cách bật nguồn.

Đơn vị này chạy từ hai tế bào kiềm hoặc NiMH. Bộ vi điều khiển hầu hết ở chế độ ngủ để tiết kiệm pin, thường xuyên thức dậy để kiểm tra cảm biến nước cũng như điện áp của pin. Nếu pin yếu, bộ vi điều khiển sẽ đánh thức mô-đun ESP8266 để gửi cảnh báo pin yếu. Sau khi cảnh báo, cảnh báo sẽ được ngắt để ngăn chặn việc xả quá mức của pin.

Vì mô-đun ESP8266 chịu trách nhiệm gửi cả cảnh báo pin yếu cũng như cảnh báo lũ lụt, nó yêu cầu tín hiệu điều khiển từ ATiny85. Do số lượng chân cắm có sẵn hạn chế, tín hiệu điều khiển này được tạo ra bởi cùng một chân cắm chịu trách nhiệm cho chỉ báo đèn LED của pin. Trong quá trình hoạt động bình thường (cảnh báo được trang bị và pin đã được sạc), đèn LED nhấp nháy liên tục. Khi tình trạng pin yếu được phát hiện, đèn LED sẽ bật để cung cấp tín hiệu cao cho chân RX của mô-đun ESP. Nếu phát hiện có nước, đèn LED của pin sẽ tắt trong khi ESP8266 đang hoạt động..

Bước 2: Thiết kế và lắp ráp

Thiết kế và lắp ráp
Thiết kế và lắp ráp
Thiết kế và lắp ráp
Thiết kế và lắp ráp
Thiết kế và lắp ráp
Thiết kế và lắp ráp

Tôi đã thiết kế mạch được xây dựng trên một bảng protoboard 4x6 cm hai mặt sử dụng hầu hết các bộ phận 0805 SMD. Các sơ đồ được trình bày dựa trên bản dựng này, nhưng nó có thể được điều chỉnh dễ dàng cho các thành phần xuyên lỗ (mẹo: để giảm thiểu không gian, hàn điện trở xuyên lỗ theo chiều dọc).

Các bộ phận sau đây là bắt buộc:

- Điện trở: 330 Ω x 1; 470 Ω x 1; 680 Ω x 1; 1 kΩ x 1; 10 kΩ x 3; 470 kΩ x 3; - Một tụ gốm 10 µF - Một MOSFET kênh N mức logic (ví dụ: RFP30N06LE hoặc AO3400) - Một đèn LED màu đỏ và một đèn LED màu vàng (hoặc các màu khác nếu bạn thích). - Đầu nối đầu cuối vít hai dây x 3 (chúng không hoàn toàn cần thiết, nhưng chúng giúp kết nối và ngắt kết nối ngoại vi dễ dàng hơn trong quá trình thử nghiệm) - Bộ rung piezo lớn tốt cho 3.3 V- Một bộ vi điều khiển ATtiny85 (phiên bản PDIP) - Một ổ cắm PDIP 8 chân cho bộ vi điều khiển- Một mô-đun ESP-01 (nó có thể được thay thế bằng một mô-đun dựa trên ESP8266 khác, nhưng sẽ có nhiều thay đổi trong cách bố trí trong trường hợp đó) - Bộ chuyển đổi tăng áp DC-DC 3,3 V có khả năng cung cấp dòng điện 200 mA (500 mA bùng nổ) ở 2,2 V đầu vào. (Tôi khuyên bạn nên dùng https://www.canton-electronics.com/power-converter… vì dòng điện tĩnh cực thấp của nó) - Một đầu cắm cái 3 chân- Hai đầu cắm cái 4 chân hoặc một đầu cắm 2x4- 22 dây rắn AWG đối với cảm biến nước- Dây bện 22 AWG (hoặc một loại dây mỏng tiếp xúc khác để tạo vết)

Tôi đề xuất các giá trị điện trở được liệt kê ở trên, nhưng bạn có thể thay thế hầu hết chúng cho các giá trị tương tự. Tùy thuộc vào loại đèn LED bạn muốn sử dụng, bạn có thể cần điều chỉnh các giá trị điện trở giới hạn dòng điện để có được độ sáng mong muốn. MOSFET có thể là xuyên lỗ hoặc SMT (SOT23). Chỉ định hướng của điện trở 330 Ohm bị ảnh hưởng bởi loại MOSFET. Nên sử dụng cầu chì PTC (ví dụ được xếp hạng cho 1 A) nếu bạn định sử dụng mạch này với pin NiMH. Tuy nhiên, nó không cần thiết với pin kiềm. Mẹo: các bộ phận cần thiết cho báo động này có thể được mua với giá rẻ từ ebay hoặc aliexpress.

Ngoài ra, bạn sẽ cần một breadboard, một số điện trở 10k xuyên lỗ, nhiều dây nối nam-nam và nữ-nam ("dupont") và bộ điều hợp USB-UART để lập trình mô-đun ESP-01.

Cảm biến nước có thể được chế tạo theo nhiều cách khác nhau, nhưng cách đơn giản nhất là hai dây 22 AWG với các đầu để hở (dài 1 cm) cách nhau khoảng 1 mm. Mục tiêu là có điện trở nhỏ hơn 5 MΩ giữa các điểm tiếp xúc của cảm biến khi có nước.

Mạch được thiết kế để tiết kiệm pin tối đa. Nó chỉ hút 40-60 µA trong chế độ giám sát (với đèn LED nguồn được loại bỏ trên mô-đun ESP-01). Khi cảnh báo được kích hoạt, mạch sẽ hút 300-500 mA (ở đầu vào 2,4 V) trong một giây hoặc ít hơn, và sau đó dòng điện sẽ giảm xuống dưới 180 mA. Khi mô-đun ESP hoàn tất việc gửi thông báo, mức tiêu thụ hiện tại sẽ giảm xuống dưới 70 mA cho đến khi bộ rung tắt. Sau đó, cảnh báo sẽ tự ngắt và mức tiêu thụ hiện tại sẽ dưới 30 µA. Vì vậy, một bộ pin AA sẽ có thể cung cấp năng lượng cho mạch trong nhiều tháng (có thể hơn một năm). Nếu bạn sử dụng một bộ chuyển đổi tăng cường khác, chẳng hạn với dòng điện tĩnh 500 µA, pin sẽ cần được thay thường xuyên hơn nhiều.

Mẹo lắp ráp:

Sử dụng bút đánh dấu cố định để đánh dấu tất cả các vết và thành phần trên bảng mạch để hàn dễ dàng hơn. Tôi khuyên bạn nên tiếp tục theo trình tự sau:

- đèn LED SMT phía trên và cầu dây cách điện

- MOSFET mặt trên (lưu ý: nếu bạn có MOSFET SOT-23, hãy đặt nó theo đường chéo như trong ảnh. Nếu bạn đang sử dụng MOSFET xuyên lỗ, hãy đặt nó nằm ngang với chốt cổng ở vị trí I3.)

- mặt trên thông qua các bộ phận lỗ (lưu ý: bộ rung không được hàn và thậm chí không phải được gắn vào PCB)

- các bộ phận và dấu vết SMT mặt trái (ví dụ: các sợi riêng lẻ từ dây AWG22)

Bước 3: Phần mềm cơ sở

Mã C cho ATtiny85

Main.c chứa mã cần được biên dịch và tải lên bộ vi điều khiển. Nếu bạn định sử dụng bảng Arduino như một lập trình viên, bạn có thể tìm thấy sơ đồ đấu dây trong hướng dẫn này. Bạn chỉ cần làm theo các phần sau (bỏ qua phần còn lại):

- Cấu hình Arduino Uno làm ISP (Lập trình trong hệ thống)

- Kết nối ATtiny85 với Arduino Uno.

Để biên dịch và tải lên chương trình cơ sở, bạn sẽ cần CrossPack (dành cho Mac OS) hoặc chuỗi công cụ AVR (dành cho Windows). Lệnh sau cần được thực hiện để biên dịch mã:

avr-gcc -Os -mmcu = attiny85 -c main.c; avr-gcc -mmcu = attiny85 -o main.elf main.o; avr-objcopy -j.text -j.data -O ihex main.elf main.hex

Để tải lên chương trình cơ sở, hãy chạy như sau:

avrdude -c arduino -p attiny85 -P /dev/cu.usbmodem1411 -b 19200 -e -U flash: w: main.hex

Thay vì "/dev/cu.usbmodem1411", bạn có thể sẽ cần phải chèn cổng nối tiếp mà Arduino của bạn được kết nối (bạn có thể tìm thấy nó trong Arduino IDE: Cổng công cụ).

Mã chứa nhiều chức năng. deep_sleep () làm cho bộ vi điều khiển chuyển sang trạng thái năng lượng rất thấp trong khoảng 8 giây. read_volt () được sử dụng để đo điện áp của pin và cảm biến. Điện áp pin được đo so với tham chiếu điện áp bên trong (2,56 V cộng hoặc trừ một vài phần trăm) trong khi điện áp cảm biến được đo dựa trên Vcc = 3,3 V. Các số đọc được so sánh với BATT_THRESHOLD và SENSOR_THRESHOLD được xác định là 932 và 102 tương ứng ~ 2,3 và 0,3 V. Bạn có thể giảm giá trị ngưỡng pin để cải thiện tuổi thọ pin, nhưng không nên (tham khảo Cân nhắc về pin để biết thông tin chi tiết).

active_alarm () thông báo cho mô-đun ESP về việc phát hiện nước và phát ra âm thanh còi. low_batt_notification () thông báo cho mô-đun ESP sắp hết pin và cũng phát ra âm thanh còi. Nếu bạn không muốn bị đánh thức giữa đêm để thay pin, hãy xóa "| 1 <" trong low_batt_notification ().

Bản phác thảo Arduino cho ESP-01

Tôi đã chọn lập trình mô-đun ESP bằng Arduino HAL (theo liên kết để biết hướng dẫn thiết lập). Ngoài ra, tôi đã sử dụng hai thư viện sau:

ESP8266 Gửi email bởi Górász Péter

ESP8266 Pushover của đội Arduino Hannover

Thư viện đầu tiên kết nối với máy chủ SMTP và gửi cảnh báo đến địa chỉ email của bạn. Chỉ cần tạo tài khoản gmail cho ESP của bạn và thêm thông tin đăng nhập vào mã. Thư viện thứ hai gửi thông báo đẩy qua dịch vụ Pushover (thông báo miễn phí, nhưng bạn phải trả tiền một lần để cài đặt ứng dụng trên điện thoại / máy tính bảng của mình). Tải xuống cả hai thư viện. Đưa nội dung của thư viện Gửi Email vào thư mục sketch của bạn (arduino sẽ tạo nó khi bạn mở arduino sketch lần đầu tiên). Cài đặt thư viện Pushover thông qua IDE (Phác thảo -> Thư viện Bao gồm -> Thêm thư viện. ZIP).

Để lập trình mô-đun ESP-01, bạn có thể làm theo hướng dẫn sau: https://www.allaboutcircuits.com/projects/breadbo… Không cần bận tâm đến việc phân giải một hàng chân như được hiển thị trong hướng dẫn - chỉ cần sử dụng dupont nữ-nam dây để kết nối các chân của mô-đun với breadboard. Đừng quên rằng bộ chuyển đổi tăng cường và bộ chuyển đổi USB-UART phải chia sẻ mặt đất (lưu ý: bạn có thể sử dụng đầu ra 3,3 V của bộ chuyển đổi USB-UART thay vì bộ chuyển đổi tăng cường, nhưng rất có thể nó sẽ không có thể xuất đủ dòng điện).

Bước 4: Cân nhắc về pin

Mã phần sụn được cung cấp được định cấu hình sẵn để gửi cảnh báo pin yếu và tắt ở ~ 2.3 V. Ngưỡng này dựa trên giả định rằng hai pin NiMH được sử dụng nối tiếp. Không nên xả bất kỳ ô NiMH riêng lẻ nào dưới 1 V. Giả sử cả hai ô có công suất và đặc tính phóng điện bằng nhau, cả hai ô sẽ bị cắt ở ~ 1,15 V - nằm trong phạm vi an toàn. Tuy nhiên, các tế bào NiMH đã được sử dụng trong nhiều chu kỳ phóng điện có xu hướng khác nhau về dung lượng. Có thể chịu được sự chênh lệch công suất lên đến 30% vì nó vẫn dẫn đến điểm cắt tế bào điện áp thấp nhất khoảng 1 V.

Mặc dù có thể giảm ngưỡng pin yếu trong chương trình cơ sở, nhưng làm như vậy sẽ loại bỏ giới hạn an toàn và có thể dẫn đến xả quá mức và hư hỏng pin trong khi chỉ dự kiến tuổi thọ pin sẽ tăng nhẹ (pin NiMH> 85% xả ở 1,15 V).

Một yếu tố khác cần được tính đến là khả năng của bộ chuyển đổi tăng cung cấp ít nhất 3,0 V (2,5 V theo bằng chứng giai thoại) ở dòng điện đỉnh 300-500 mA trên pin yếu. Điện trở bên trong thấp của pin NiMH chỉ gây ra sự sụt giảm không đáng kể 0,1 V ở dòng điện cực đại, do đó, một cặp tế bào NiMH được xả xuống 2,3 V (mạch hở) sẽ có thể cung cấp ít nhất 2,2 V cho bộ chuyển đổi tăng cường. Tuy nhiên, nó phức tạp hơn với pin kiềm. Với một cặp pin AA ở mức 2,2-2,3 V (mạch hở), điện áp sẽ giảm 0,2-0,4 V ở dòng điện cực đại. Mặc dù tôi đã xác minh mạch hoạt động với bộ chuyển đổi tăng cường được khuyến nghị với ít nhất 1,8 V được cung cấp ở dòng điện cao nhất, điều này có thể khiến điện áp đầu ra giảm xuống trong giây lát dưới giá trị được đề xuất bởi Espressiff. Do đó, ngưỡng cắt 2,3 V để lại rất ít biên độ an toàn đối với pin kiềm (hãy nhớ rằng phép đo điện áp do bộ vi điều khiển thực hiện chỉ chính xác trong phạm vi cộng hoặc trừ một vài phần trăm). Để đảm bảo mô-đun ESP không bị trục trặc khi pin kiềm gần hết, tôi khuyên bạn nên tăng điện áp cắt lên 2,4 V (#define BATT_THRESHOLD 973). Ở 1,2 V (mạch hở), một tế bào kiềm được phóng điện khoảng 70%, chỉ thấp hơn 5-10 điểm phần trăm so với mức phóng điện 1,15 V trên mỗi tế bào.

Cả NiMH và tế bào kiềm đều có những ưu điểm và nhược điểm cho ứng dụng này. Pin kiềm an toàn hơn (không bắt lửa nếu bị chập điện) và chúng có tốc độ tự phóng điện thấp hơn nhiều. Tuy nhiên, pin NiMH đảm bảo hoạt động đáng tin cậy của ESP8266 ở điểm cắt thấp hơn nhờ nội trở thấp. Nhưng cuối cùng, một trong hai loại có thể được sử dụng với một số biện pháp phòng ngừa, vì vậy đó chỉ là vấn đề sở thích cá nhân.

Bước 5: Tuyên bố từ chối trách nhiệm pháp lý

Mạch này được thiết kế bởi một người có sở thích không chuyên nghiệp chỉ dành cho các ứng dụng sở thích. Thiết kế này được chia sẻ một cách thiện chí, nhưng không có bất kỳ bảo hành nào. Sử dụng nó và chia sẻ với những người khác có nguy cơ của riêng bạn. Bằng cách tạo lại mạch điện, bạn đồng ý rằng nhà phát minh sẽ không chịu trách nhiệm về bất kỳ thiệt hại nào (bao gồm nhưng không giới hạn ở việc hư hỏng tài sản và thương tích cá nhân) có thể xảy ra trực tiếp hoặc gián tiếp thông qua sự cố hoặc sử dụng bình thường của mạch điện này. Nếu luật pháp của quốc gia bạn vô hiệu hoặc cấm việc miễn trừ trách nhiệm này, bạn không được sử dụng thiết kế này. Nếu bạn chia sẻ thiết kế này hoặc một mạch sửa đổi dựa trên thiết kế này, bạn phải ghi công người phát minh ban đầu bằng cách chỉ ra url của chỉ dẫn này.

Đề xuất: