Mục lục:

Máy đo dung tích bể nước mưa siêu âm: 10 bước (có hình ảnh)
Máy đo dung tích bể nước mưa siêu âm: 10 bước (có hình ảnh)

Video: Máy đo dung tích bể nước mưa siêu âm: 10 bước (có hình ảnh)

Video: Máy đo dung tích bể nước mưa siêu âm: 10 bước (có hình ảnh)
Video: Phát Hiện Vi Khuẩn Ăn Thịt Người Khi Soi Nước Sông Tô Lịch Dưới Kính Hiển Vi!!! Kinh Hoàng Phút Cuối 2024, Tháng mười một
Anonim
Máy đo dung tích bể nước mưa siêu âm
Máy đo dung tích bể nước mưa siêu âm

Nếu bạn giống như tôi và có một chút lương tâm về môi trường (hoặc chỉ là những kẻ hám của mong muốn tiết kiệm một vài đô la - cũng chính là tôi…), bạn có thể có một bể nước mưa. Tôi có một chiếc xe tăng để thu hoạch trận mưa không thường xuyên mà chúng tôi gặp phải ở Úc - nhưng cậu bé ơi, khi trời mưa ở đây, nó THỰC SỰ mưa! Bể của tôi cao khoảng 1,5m và nằm trên một cái cột, có nghĩa là tôi cần phải bước ra ngoài để kiểm tra mực nước (hoặc - vì tôi quá lười, nên giữ thăng bằng không ổn định trên một chai gas cũ từ bữa tiệc nướng mà bây giờ đã lấy lên hộ khẩu thường trú như một 'bước' bên cạnh bể).

Tôi muốn một số cách để có thể kiểm tra mực nước trong bể mà không cần phải leo và treo lên ống thoát nước bằng một tay (trong khi lo lắng về những con nhện có thể ở đằng sau nó - bạn đã nghe về nhện Úc - phải không?) … Vì vậy, với mối quan tâm cuối đời mới dành cho đồ điện tử và các bản nhái Arduino giá rẻ từ Trung Quốc trên ebay, tôi quyết định bắt tay vào xây dựng một 'widget' để thực hiện công việc của mình.

Giờ đây, tiện ích 'mơ ước' của tôi là được lắp đặt vĩnh viễn trong bể, sử dụng nguồn năng lượng mặt trời, có chức năng đọc từ xa trong nhà để xe của tôi hoặc có thể là bộ phát không dây sử dụng Bluetooth mà tôi có thể kiểm tra từ điện thoại của mình, hoặc thậm chí có thể là một Thiết bị loại ESP lưu trữ một trang web được cập nhật tự động, để tôi có thể kiểm tra mức nước trong bể của mình từ mọi nơi trên thế giới qua internet… nhưng thực sự - tại sao tôi cần tất cả những thứ đó? Vì vậy, tôi đã quay số lý tưởng vĩ đại của mình trở lại một chút (tốt, khá đáng kể) và loại bỏ tính không dây của giải pháp, khả năng cài đặt vĩnh viễn, sạc năng lượng mặt trời và khả năng kiểm tra mức độ của xe tăng của tôi từ đầu sau của bên ngoài (luôn luôn giả sử rằng mặt sau của bên ngoài có WiFi khả dụng, tức là…)

Dự án kết quả đã được hạ cấp thành thiết bị cầm tay được nhìn thấy ở trên, có thể chỉ cần cầm trên nắp thùng và được kích hoạt bằng một nút nhấn, với một đầu đọc kỹ thuật số, có thể đọc được từ mặt đất - thực tế hơn nhiều.

Bước 1: Toán học…

Sau khi thử thách với một số ý tưởng về cách xác định mực nước - tôi quyết định chọn một máy phát / thu sóng siêu âm làm cơ sở cho phụ tùng của mình và sử dụng Arduino để thực hiện các bài đọc và làm tất cả các phép toán. Các số đọc được trả về từ cảm biến là (gián tiếp) ở dạng khoảng cách - từ cảm biến siêu âm đến bề mặt mà nó đã bật ra (mặt nước - hoặc đáy bể, nếu trống), và trở lại một lần nữa, vì vậy chúng ta cần để thực hiện một số điều với điều này, để nhận được phần trăm còn lại trong bể.

NB - trên thực tế, giá trị trả về từ cảm biến thực sự chỉ là thời gian cần thiết để tín hiệu rời khỏi phía bộ phát và quay trở lại bộ thu. Đây là tính bằng micro giây - nhưng khi biết tốc độ âm thanh là 29 micro giây trên cm (Cái gì? Bạn không biết? Pfft…) giúp chuyển đổi dễ dàng từ một khoảng thời gian sang một phép đo khoảng cách.

Hình ảnh
Hình ảnh

Đầu tiên - tất nhiên, chúng ta cần chia khoảng cách cho 2 để cảm biến có khoảng cách bề mặt. Sau đó, trừ khoảng cách không đổi từ cảm biến đến độ sâu nước 'tối đa'. Giá trị còn lại là độ sâu của nước đã được sử dụng. Tiếp theo, trừ giá trị đó cho độ sâu nước tối đa, để tìm độ sâu của nước còn lại trong bể.

Giá trị này sau đó, là cơ sở cho bất kỳ tính toán nào khác, chẳng hạn như tính toán độ sâu này của nước dưới dạng phần trăm của độ sâu tối đa, hoặc lấy độ sâu theo 'diện tích bề mặt' không đổi, để có được một thể tích nước có thể được hiển thị tính bằng lít (hoặc gallon, hoặc bất kỳ đơn vị nào khác - miễn là bạn biết các phép toán để làm điều đó - tôi đang dựa vào tỷ lệ phần trăm cho đơn giản).

Bước 2: Thực tiễn

Thiết bị có thể được cầm bằng tay, nhưng điều này dẫn đến khả năng không chính xác nhỏ nếu thiết bị không được giữ ở cùng một vị trí và ở cùng một góc độ mọi lúc. Mặc dù nó chỉ là một lỗi rất nhỏ, và có lẽ thậm chí không phải là một lỗi sẽ đăng ký, nhưng nó sẽ là một loại điều khiến tôi khó chịu.

Tuy nhiên, việc được cầm tay dẫn đến khả năng lớn hơn nhiều là thứ chết tiệt sẽ bị rơi vào bể và không bao giờ được nhìn thấy nữa. Vì vậy, để giảm thiểu CẢ HAI khả năng này, nó sẽ được cố định vào một đoạn gỗ, sau đó được đặt trên miệng thùng - sao cho phép đo được thực hiện từ cùng một độ cao và góc chính xác mọi lúc (và nếu nó bị rơi ở bể, ít nhất gỗ sẽ nổi).

Một nút nhấn sẽ kích hoạt thiết bị (do đó loại bỏ sự cần thiết của công tắc bật / tắt và khả năng pin vô tình bị chai) và kích hoạt bản phác thảo trong Arduino. Điều này lấy một số kết quả đọc từ HC-SR04 và lấy giá trị trung bình của chúng (để giảm thiểu bất kỳ kết quả đọc thất thường nào).

Tôi cũng bao gồm một chút mã để kiểm tra mức cao hay thấp trên một trong các chân I / O kỹ thuật số của Arduino và sử dụng nó để đưa thiết bị vào chế độ mà tôi gọi là chế độ 'Hiệu chỉnh'. Ở chế độ này, màn hình chỉ hiển thị khoảng cách thực tế (chia cho 2) do cảm biến trả về, vì vậy tôi có thể kiểm tra độ chính xác của nó bằng thước dây.

Bước 3: Thành phần

Thiết bị bao gồm ba thành phần chính…

Hình ảnh
Hình ảnh
  1. Mô-đun máy phát / thu sóng siêu âm HC-SR04
  2. Một vi điều khiển mini Arduino Pro
  3. Màn hình LED 4 chữ số 7 đoạn hoặc 'mô-đun' màn hình như TM1637

Tất cả những điều trên có thể dễ dàng tìm thấy trên ebay, bằng cách đơn giản tìm kiếm các thuật ngữ được in đậm.

Trong ứng dụng này, màn hình chỉ cần sử dụng 3 chữ số để hiển thị giá trị% từ 0-100 hoặc 4 chữ số để hiển thị số lít (trong trường hợp của tôi là tối đa 2000), vì vậy bất kỳ màn hình 4 chữ số nào cũng được - bạn không cần phải lo lắng về việc liệu mô-đun có dấu chấm thập phân hoặc dấu hai chấm. Một 'mô-đun' hiển thị (LED được gắn trên bảng đột phá, với chip giao diện) dễ dàng hơn, vì nó sử dụng ít kết nối chân hơn, nhưng một màn hình LED thô với 12 chân có thể được Arduino cung cấp với một số sửa đổi nhỏ đối với mã (trên thực tế, thiết kế ban đầu của tôi dựa trên thiết lập này). Tuy nhiên, lưu ý rằng việc sử dụng màn hình LED thô cũng cần có 7 điện trở để hạn chế dòng điện được vẽ bởi mỗi đoạn. Tôi tình cờ có sẵn một mô-đun hiển thị đồng hồ TM1637, vì vậy tôi quyết định sử dụng nó.

Các bit và bob bổ sung bao gồm kẹp pin 9v (và pin, rõ ràng là), công tắc nút nhấn tạm thời 'push-to-make', hộp dự án, chân cắm tiêu đề, dây kết nối và chiều dài vượt quá 2 "x4" gỗ đường kính của cửa bể.

Các bit và bob bổ sung (ngoài đống gỗ) được mua từ chuỗi cửa hàng điện tử sở thích ở địa phương của tôi - đó là Jaycar ở Úc. Tôi tưởng tượng Maplin ở Anh sẽ là một giải pháp thay thế khả thi, và tôi nghĩ rằng có một số ở Mỹ, chẳng hạn như Digikey và Mouser. Đối với các quốc gia khác, tôi e rằng tôi không biết, nhưng tôi chắc chắn rằng nếu bạn thiếu một cửa hàng bán lẻ hoặc nhà cung cấp trực tuyến phù hợp ở quốc gia của bạn, thì những người bán ebay Trung Quốc sẽ thông qua cho bạn, nếu bạn không. tâm trí chờ đợi một vài tuần để được giao hàng (trớ trêu thay, mặc dù là một trong những người hàng xóm thân thiết nhất của chúng tôi, 6 tuần trở lên không phải là điều bất thường đối với giao hàng từ Trung Quốc đến Úc!).

Hãy chắc chắn rằng bạn có một hộp dự án đủ lớn - tôi đã đoán là của tôi trước khi có sẵn các thành phần và nó thực sự rất chặt chẽ - tôi có thể cần phải có cho mình một nút nhấn khác sử dụng ít không gian hơn.

Ồ, nhân tiện, chiều dài của gỗ chỉ đến từ một số vết cắt vụn mà tôi giữ trong góc nhà để xe của mình (như một ngôi nhà cho nhiều loài nhện đáng yêu đó).

Sau khi bạn hiểu rõ về bối cảnh và chức năng, bạn có thể quyết định điều chỉnh phiên bản của mình và bao gồm công tắc bật / tắt hoặc sử dụng nguồn điện Li-Ion 18650, với bảng điều khiển năng lượng mặt trời và bộ điều khiển sạc để giữ cho nó liên tục được nạp và sẵn sàng hoạt động hoặc thay đổi màn hình LED đơn giản cho màn hình LCD nhiều dòng hoặc OLED đồ họa với nhiều tùy chọn hiển thị thông tin hơn, chẳng hạn như hiển thị phần trăm VÀ lít còn lại cùng một lúc. Hoặc bạn có thể sử dụng thiết bị IoT không dây toàn ca hát, nhảy múa được lắp đặt vĩnh viễn trong bể CÓ sạc bằng năng lượng mặt trời. Tôi rất muốn nghe về các biến thể và sửa đổi của bạn.

Bước 4: Kiểm tra Nguyên mẫu (và Mã)

Sau khi mua HC-SR04 từ một nguồn giá rẻ của Trung Quốc trên ebay, tôi không thực sự mong đợi nhận được một đơn vị cực kỳ chính xác, vì vậy tôi muốn kiểm tra nó trước trên breadboard, trong trường hợp tôi cần thêm một số mã sửa khoảng cách vào bản phác thảo của tôi.

Tại thời điểm này, tôi đang tìm kiếm thông tin cơ bản về cách kết nối và sử dụng HC-SR04, đồng thời phải thừa nhận "Ví dụ về Arduino và HC-SR04 đơn giản" có thể hướng dẫn của jsvester. Ví dụ và kinh nghiệm của anh ấy là một điểm khởi đầu tuyệt vời để tôi bắt đầu viết mã.

Tôi đã tìm thấy thư viện hàm NewPing cho HC-SR04, bao gồm chức năng tích hợp để lấy giá trị trung bình của nhiều lần đọc, do đó làm cho mã của tôi đơn giản hơn rất nhiều.

Tôi cũng tìm thấy một thư viện cho mô-đun hiển thị đồng hồ TM1637, giúp việc hiển thị số đơn giản hơn rất nhiều. Trong mã ban đầu của tôi (cho màn hình phân đoạn 4 chữ số 7), tôi phải chia số thành các chữ số riêng lẻ, sau đó xây dựng từng chữ số riêng lẻ trên màn hình bằng cách biết phân đoạn nào sẽ chiếu sáng và sau đó xoay vòng qua từng chữ số trong số và xây dựng số đó trên chữ số hiển thị thích hợp. Phương pháp này được gọi là ghép kênh và hiển thị hiệu quả chỉ một chữ số duy nhất tại một thời điểm, nhưng chuyển động qua chúng từ chữ số này sang chữ số tiếp theo nhanh đến mức mắt người không nhận thấy và đánh lừa bạn tin rằng tất cả các chữ số đều ở trên đồng thời. Cũng như thư viện HC-SR04 làm cho các thao tác đo dễ dàng hơn, thư viện hiển thị này đảm nhận tất cả việc ghép kênh và xử lý chữ số. Các trang Tham chiếu Arduino được liên kết ở trên, đưa ra một số ví dụ, và tất nhiên, mỗi thư viện đi kèm với mã mẫu có thể là một trợ giúp đắc lực.

Hình ảnh
Hình ảnh
Hình ảnh
Hình ảnh

n

Vì vậy, các hình ảnh ở trên cho thấy giàn thử nghiệm của tôi - tôi đang thử nghiệm nó trên Arduino Uno của mình để đơn giản hóa, vì điều đó đã được thiết lập cho các kết nối tạm thời có thể sử dụng lại để tạo mẫu. Thiết bị đang hoạt động ở chế độ 'Hiệu chuẩn' ở đây (lưu ý rằng chân số 10 - dây màu trắng - được kết nối với đất) và đọc chính xác 39cm đối với hộp mà tôi đã đặt ngẫu nhiên trước mặt nó, như được hiển thị bằng thước dây. Trong chế độ này, tôi hiển thị chữ 'c' nhỏ phía trước phép đo, chỉ để cho biết nó không phải là phép đo bình thường.

Cũng như Vcc (5v) và Ground, HC-SR04 cần 2 kết nối khác - bộ kích hoạt (màu vàng đến chân 6) và tiếng vang (màu xanh lá cây đến chân 7). Màn hình cũng cần Vcc (5v) và Ground, và 2 kết nối nữa - đồng hồ (xanh dương đến chân 8) và DIO (tím đến chân 9). Như đã đề cập, chế độ hoạt động được điều khiển bởi mức cao hoặc thấp trên chân 10 (màu trắng). Các kết nối sẽ sử dụng cùng một chân trên Arduino Pro Mini, nhưng sẽ được hàn vĩnh viễn. Chế độ hoạt động sẽ có thể được lựa chọn bằng cách sử dụng một jumper qua hai trong số ba chân tiêu đề, được kết nối với Vcc, chân 10 và nối đất tương ứng.

Các thông số kỹ thuật chính thức cho HC-SR04 tuyên bố một cái gì đó giống như sai số tối đa chỉ 3 mm cho khoảng cách hoạt động được thiết kế tối đa là 4 mét, vì vậy hãy tưởng tượng sự ngạc nhiên của tôi khi thấy rằng đơn vị của tôi chắc chắn chính xác ở mức độ đó lên đến 2 mét - mà vượt quá những gì tôi cần. Do không gian hạn chế để thiết lập thử nghiệm nhanh chóng và bẩn thỉu, kết quả thử nghiệm của tôi ngoài khoảng cách đó đã bị hỏng do phản xạ từ các bề mặt khác với mục tiêu thử nghiệm của tôi, khi chùm tia từ máy phát lan ra và chiếm một khu vực rộng hơn. Nhưng miễn là nó tốt đến 1,5 mét - điều đó sẽ làm tôi hài lòng, cảm ơn bạn rất nhiều:-)

Bước 5: Sketch Ino Rainwater Gauge

Mã đầy đủ được đính kèm, nhưng tôi sẽ bao gồm một vài đoạn trích bên dưới để giải thích một số bước.

Trước hết, việc thiết lập…

#bao gồm

#include #include // chân cho HC-SR04 #define pinTrig 6 #define pinEcho 7 NewPing sonar (pinTrig, pinEcho, 155); // 400cms là tối đa đối với HC-SR04, 155cms là tối đa đối với bình chứa // Chân kết nối Mô-đun LED (Chân kỹ thuật số) #define CLK 8 #define DIO 9 TM1637Display display (CLK, DIO); // Các chân khác #define opMode 10

Cũng như các thư viện TM1637 và NewPing, tôi cũng đã bao gồm một thư viện Toán học, cho phép tôi truy cập vào hàm 'làm tròn'. Tôi sử dụng điều này trong một số phép toán để cho phép tôi hiển thị tỷ lệ phần trăm chính xác đến 5% chẳng hạn.

Tiếp theo, các chân cho hai thiết bị được xác định và các thiết bị bắt đầu.

Cuối cùng, tôi xác định chân 10 cho chế độ hoạt động.

// tắt tất cả các phân đoạn cho tất cả các chữ số

uint8_t byte = {0x00, 0x00, 0x00, 0x00}; display.setSegment (byte);

Phần mã này trình bày một cách để điều khiển mô-đun hiển thị, cho phép điều khiển riêng từng phân đoạn trong mỗi chữ số. Tôi đã đặt 4 phần tử trong mảng được gọi là byte, tất cả đều bằng 0. Điều đó có nghĩa là mỗi bit của mỗi byte bằng không. 8 bit được sử dụng để điều khiển từng đoạn trong số 7 đoạn và dấu thập phân (hoặc dấu hai chấm trong màn hình kiểu đồng hồ). Vì vậy, nếu tất cả các bit bằng 0, thì không có phân đoạn nào được thắp sáng. Thao tác setSegment gửi nội dung của mảng đến màn hình và không hiển thị gì (trong trường hợp này). Tất cả các phân đoạn đều tắt.

Hình ảnh
Hình ảnh

Bit quan trọng nhất trong một byte điều khiển DP, sau đó 7 bit còn lại điều khiển 7 đoạn từ G đến A theo thứ tự ngược lại. Vì vậy, để hiển thị số 1, ví dụ, yêu cầu phân đoạn B và C, vì vậy biểu diễn nhị phân sẽ là '0b00000110'. (Cảm ơn CircuitsToday.com về hình ảnh trên).

// Thực hiện 10 lần đọc và sử dụng thời lượng trung bình.

int thời lượng = sonar.ping_median (10); // thời lượng tính bằng micro giây nếu (thời lượng == 0) // Lỗi đo - không xác định được hoặc không có tiếng vọng {uint8_t byte = {0x00, 0b01111001, 0b01010000, 0b01010000}; // Phân đoạn để đánh vần "Err" display.setSe mảnh (byte); }

Ở đây, tôi đang yêu cầu HC-SR04 thực hiện 10 lần đọc và cho tôi kết quả trung bình. Nếu không có giá trị nào được trả về, thì đơn vị nằm ngoài phạm vi. Sau đó, tôi sử dụng kỹ thuật tương tự như trên để kiểm soát các phân đoạn cụ thể trên 4 chữ số, để đánh vần các chữ cái (trống), E, r và r. Sử dụng ký hiệu nhị phân làm cho việc liên kết các bit riêng lẻ với các phân đoạn dễ dàng hơn một chút.

Bước 6: Nạp mã vào Arduino Pro Mini (không có USB)

Như tôi đã nói trước đó, các mặt hàng từ người bán ebay Trung Quốc thường mất 6 tuần hoặc hơn để đến nơi, và rất nhiều công đoạn tạo mẫu và viết mã của tôi đã được thực hiện trong khi chờ một số thành phần đến - Arduino Pro Mini là một trong số đó.

Một điều tôi đã không nhận thấy về Pro Mini, cho đến khi tôi đã đặt hàng, đó là nó không có cổng USB để tải xuống bản phác thảo. Vì vậy, sau một số tìm kiếm điên cuồng, tôi thấy rằng có hai cách để tải bản phác thảo trong trường hợp này - một cách yêu cầu một cáp đặc biệt đi từ USB trên PC của bạn đến 6 chân cụ thể trên Pro Mini. Nhóm 6 chân này được gọi là chân ISP (lập trình viên trong hệ thống) và bạn thực sự có thể sử dụng phương pháp này trên bất kỳ Arduino nào nếu bạn muốn - nhưng vì giao diện USB có sẵn trên hầu hết các biến thể Arduino khác (I nghĩ), sử dụng tùy chọn đó đơn giản hơn nhiều. Phương pháp khác yêu cầu bạn phải có một Arduino khác có giao diện USB trên đó, để hoạt động như một 'người đi giữa'.

May mắn thay, có Arduino Uno của tôi có nghĩa là tôi có thể sử dụng phương pháp thứ hai, mà tôi sẽ phác thảo cho bạn bên dưới. Nó được gọi là sử dụng 'Arduino làm ISP'. Tóm lại, bạn tải một bản phác thảo đặc biệt lên Arduino 'đi giữa' của mình, biến nó thành Giao diện nối tiếp. Sau đó tải bản phác thảo thực tế của bạn, nhưng thay vì tùy chọn tải lên thông thường, bạn sử dụng tùy chọn từ menu IDE tải lên 'sử dụng Arduino làm ISP'. Sau đó, Arduino 'đi giữa' lấy bản phác thảo thực tế của bạn từ IDE và chuyển nó đến các chân ISP của Pro Mini, thay vì tải nó vào bộ nhớ của chính nó. Không khó một khi bạn tìm hiểu kỹ cách thức hoạt động của nó, nhưng đó là một lớp phức tạp hơn mà bạn có thể muốn tránh. Nếu đúng như vậy, hoặc bạn không có Arduino khác mà bạn có thể sử dụng làm 'vật đi giữa', thì bạn có thể muốn mua Arduino Nano hoặc một trong các mô hình hệ số dạng nhỏ khác, có bao gồm giao diện USB và làm cho việc lập trình trở thành một khách hàng tiềm năng đơn giản hơn.

Dưới đây là một số tài nguyên mà bạn có thể thấy hữu ích trong việc hiểu quy trình. Tham chiếu Arduino đặc biệt đề cập đến việc ghi một bộ nạp khởi động mới vào thiết bị đích, nhưng bạn có thể dễ dàng tải một bản phác thảo theo cách tương tự. Tôi thấy video của Julian Ilett làm cho khái niệm rõ ràng hơn rất nhiều, mặc dù anh ấy bỏ qua phần trong tài liệu tham khảo Arduino giải thích cách kết nối hai Arduinos với nhau và thay vào đó lập trình một chip trần trên bảng mạch.

  • Sách hướng dẫn tham khảo Arduino - Sử dụng Arduino làm ISP
  • Julian Ilett's YouTube vide - Sử dụng Arduino làm ISP

Vì Pro Mini không có 6 chân ISP được nhóm lại với nhau một cách thuận tiện, bạn cần giải mã chân kỹ thuật số nào liên quan đến 4 chân lập trình (hai kết nối còn lại chỉ là Vcc và Gnd - khá đơn giản). Thật may mắn cho bạn, tôi đã từng trải qua điều này - và sẵn sàng chia sẻ kiến thức với bạn - tôi quả là một người hào phóng !!

Arduino Uno, và nhiều loại khác trong họ Arduino, có 6 chân được sắp xếp thuận tiện trong một khối 3x2, như thế này (hình ảnh từ www.arduino.cc).

Hình ảnh
Hình ảnh

Thật không may, Pro Mini thì không. Như bạn có thể thấy bên dưới, chúng thực sự khá dễ nhận biết và vẫn được sắp xếp theo 2 khối 3 chân. MOSI, MISO và SCK tương tự như các chân kỹ thuật số 11, 12 và 13 tương ứng trên cả Pro Mini và Arduino Uno, và để lập trình ISP, chỉ cần kết nối 11 với 11, 12 đến 12 và 13 đến 13. Pro Chân Reset của Mini phải được kết nối với chân 10 của Uno và Vcc (5v) / Ground của Pro Mini phải được kết nối với Arduino + 5v / Ground. (Hình ảnh từ www.arduino.cc)

Hình ảnh
Hình ảnh

Bước 7: Lắp ráp

cuộc họp
cuộc họp

Như tôi đã đề cập, tôi đã phản đối trường hợp này và rất hối hận. Để phù hợp với tất cả các thành phần trong là một sự siết chặt thực sự. Trên thực tế, tôi đã phải uốn cong các điểm tiếp xúc của nút nhấn sang một bên và đặt một số bao bì bên ngoài để nâng nó lên xa hơn một chút để nó vừa với chiều sâu của hộp và tôi phải mài bớt 2-3mm mỗi bên của bảng mô-đun hiển thị để nó cũng phù hợp.

Tôi đã khoan 2 lỗ trên vỏ máy để cảm biến siêu âm chọc qua. Tôi khoan các lỗ quá nhỏ và sau đó tăng dần chúng bằng máy mài quay nhỏ, vì vậy tôi có thể làm cho chúng trở thành một 'khớp đẩy' đẹp mắt. Thật không may, chúng ở quá gần các cạnh để có thể sử dụng máy mài từ bên trong hộp và điều này phải được thực hiện từ bên ngoài, dẫn đến nhiều vết xước và vết trượt nơi máy mài trượt - ôi thôi, đó là tất cả ở phía dưới Dù sao - ai quan tâm..?

Sau đó, tôi cắt một khe ở một đầu có kích thước phù hợp để màn hình có thể xuyên qua. Một lần nữa - suy đoán của tôi về kích thước hộp đã khiến tôi ở phía sau vì khe để lại cho tôi một mảnh rất mỏng phía trên màn hình, chắc chắn sẽ bị vỡ trong khi tôi đang mài nhẵn. Ồ tốt - đó là thứ keo siêu dính được phát minh ra để…

Cuối cùng, với tất cả các thành phần được định vị gần đúng trong hộp, tôi đo vị trí đặt lỗ trên nắp, sao cho phần thân của nút ấn sẽ rơi vào khoảng trống cuối cùng. CHỈ CẦN!!!

Tiếp theo, tôi hàn tất cả các thành phần lại với nhau để kiểm tra tất cả chúng vẫn hoạt động sau khi tôi uốn, mài và cắt, trước khi lắp ráp tất cả vào vỏ máy. Bạn có thể thấy kết nối jumper ngay bên dưới mô-đun hiển thị, với chân 10 trên Arduino (dây dẫn màu trắng) được kết nối với Gnd, do đó đặt thiết bị ở chế độ hiệu chuẩn. Màn hình hiển thị 122cms từ băng ghế của tôi - nó hẳn đã thu được tín hiệu phản xạ trở lại từ phía trên cùng của khung cửa sổ (nó quá thấp so với trần nhà).

Hình ảnh
Hình ảnh

Sau đó, đó là một trường hợp phá vỡ súng bắn keo nóng và đóng giày tất cả các thành phần vào đúng vị trí. Sau khi làm điều đó, tôi nhận thấy rằng khoảng trống nhỏ giữa đỉnh của mô-đun màn hình và nắp, sau khi mô-đun được dán vào vị trí, để lại một chút phình ra nơi nắp sẽ không hoàn toàn vừa khít như tôi muốn. Tôi có thể thử làm điều gì đó vào một ngày nào đó - hoặc nhiều khả năng hơn, tôi sẽ không…

Hình ảnh
Hình ảnh

Bước 8: Bài viết đã hoàn thành

Sau một vài bài kiểm tra sau khi lắp ráp và chỉnh sửa mã của tôi để tính độ sâu của khúc gỗ mà tôi đã vặn thiết bị vào (điều mà tôi hoàn toàn bỏ qua trong tính toán của mình - ôi !!), tất cả đã xong.. Cuối cùng!

Thử nghiệm lắp ráp

Với thiết bị chỉ ngồi úp mặt trên băng ghế của tôi, rõ ràng sẽ không có tín hiệu phản xạ, vì vậy thiết bị hiển thị chính xác tình trạng lỗi. Điều này cũng đúng nếu bề mặt phản xạ gần nhất nằm ngoài phạm vi của đơn vị.

Hình ảnh
Hình ảnh

Có vẻ như từ đầu băng ghế của tôi đến sàn nhà là 76cms (tốt, 72cms cộng với độ sâu 4cm của khối gỗ).

Hình ảnh
Hình ảnh

Mặt dưới của thiết bị, hiển thị bộ phát và bộ thu nhô ra khỏi khối gỗ - tôi thực sự không nên gọi nó là một khối gỗ - do đó, nó sẽ được gọi là Nền tảng Ổn định và Vị trí Chính xác của Máy đo! Rất may, đây có lẽ là lần cuối cùng tôi đề cập đến nó;-)

Ồ - bạn có thể thấy tất cả những vết xước và dấu giày trượt khó chịu trong cái này…

Hình ảnh
Hình ảnh

… Và đây là thành phẩm, được đặt ở chế độ vận hành bình thường, thực tế đo dung tích bình của tôi chính xác đến 5%. Đó là một buổi chiều chủ nhật (rất) mưa khi chứng kiến tôi hoàn thành dự án này, do đó những hạt mưa trên đơn vị, và 90% rất hài lòng khi đọc.

Hình ảnh
Hình ảnh

Tôi hy vọng rằng bạn thích đọc tài liệu hướng dẫn này và bạn đã học được một chút về lập trình Arduino, vật lý và việc sử dụng phản xạ sóng siêu âm / sóng siêu âm, những cạm bẫy của việc sử dụng phỏng đoán trong lập kế hoạch dự án của bạn và bạn đã được truyền cảm hứng để thực hiện đo bể chứa nước mưa riêng - và sau đó lắp đặt một bể chứa nước mưa để sử dụng nó, vừa giúp ích cho môi trường một chút vừa tiết kiệm hóa đơn tiền nước của bạn.

Vui lòng đọc tiếp - cho những gì đã xảy ra vào ngày hôm sau…!

Bước 9: Tái bút - Một phần trăm (và năm) phần trăm?

Vì vậy, vào thứ Hai sau ngày Chủ nhật mưa, chiếc xe tăng đã hoàn toàn đầy đến mức có thể. Vì đây là một trong số rất ít lần tôi thấy nó hoàn toàn đầy đủ, tôi nghĩ rằng đó sẽ là thời điểm lý tưởng để chuẩn hóa thước đo, nhưng hãy đoán xem - nó đã đăng ký là 105%, vì vậy rõ ràng là có điều gì đó không ổn.

Tôi lấy que thăm dầu ra và nhận thấy rằng các giả định ban đầu của tôi là 140cms là độ sâu tối đa của nước và 16cms của khoảng không (dựa trên các phỏng đoán trực quan được thực hiện từ bên ngoài bể), đều hơi sai so với các phép đo thực tế. Vì vậy, được trang bị dữ liệu thực cho điểm chuẩn 100% của mình, tôi đã có thể chỉnh sửa mã của mình và tải lại Arduino.

Độ sâu nước tối đa hóa ra là 147cms, với điểm đo nằm ở 160cms, cho khoảng không trên đầu là 13cms (tổng của khoảng không bên trong bể, chiều cao của cổ bể và độ sâu của đoạn … whoa, không, cái gì ?! Ý tôi là chiều sâu của Nền tảng Ổn định và Vị trí Chính xác của Máy đo!).

Sau khi hiệu chỉnh các biến maxDepth và headroom cho phù hợp, cũng như đặt lại phạm vi tối đa của đối tượng sonar là 160cms, kiểm tra lại nhanh cho thấy 100% giảm xuống 95% khi tôi nâng thước đo lên một chút (để mô phỏng một lượng nhỏ của nước đã được sử dụng).

Công việc hoàn thành!

Tái bút - đây là nỗ lực đầu tiên của tôi với một người có thể hướng dẫn. Nếu bạn thích phong cách của tôi, khiếu hài hước, trung thực để thừa nhận sai lầm (này - thậm chí tôi không hoàn hảo…), v.v. - hãy cho tôi biết và điều đó có thể giúp tôi có động lực để làm một việc khác.

Bước 10: Suy nghĩ sau

Công suất có thể sử dụng

Vì vậy, đã được vài tuần kể từ khi tôi xuất bản Có thể hướng dẫn này, và tôi đã có nhiều nhận xét phản hồi, một số nhận xét đề xuất một số cơ chế thay thế - cả điện tử và thủ công. Nhưng điều này khiến tôi phải suy nghĩ, và có điều gì đó có lẽ tôi nên chỉ ra ngay từ đầu.

  • Bể của tôi có một máy bơm, được lắp đặt ở mặt đất - ngay dưới chân bể một chút. Vì máy bơm là điểm thấp nhất trong hệ thống và nước từ máy bơm đang chịu áp lực nên tôi có thể sử dụng hết công suất của bể chứa của mình.
  • TUY NHIÊN - nếu bể của bạn không có máy bơm và phụ thuộc vào nguồn cấp trọng lực, thì dung tích hiệu quả của bể bị giới hạn bởi chiều cao của vòi của bạn. Một khi nước còn lại trong bể của bạn thấp hơn vòi thì sẽ không có nước chảy ra.

Vì vậy, bất kể bạn đang sử dụng đồng hồ đo điện tử, kính quan sát bằng tay, hoặc hệ thống phao và cờ, chỉ cần lưu ý rằng nếu không có máy bơm, 'đế' hiệu quả của bể của bạn thực sự là chiều cao của đầu ra của bể hoặc vô nhẹ.

Đề xuất: