Chỉ báo mức nước không dây siêu âm - Chạy bằng năng lượng mặt trời

Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề





Bộ điều khiển mực nước siêu âm là một thiết bị có thể phát hiện mực nước trong bể mà không cần tiếp xúc vật lý và gửi dữ liệu đến một chỉ báo LED ở xa ở chế độ GSM không dây.

Trong bài đăng này, chúng tôi sẽ xây dựng chỉ báo mực nước không dây dựa trên năng lượng mặt trời bằng sóng siêu âm sử dụng Arduino trong đó Arduinos sẽ truyền và nhận ở tần số không dây 2,4 GHz. Chúng tôi sẽ phát hiện mực nước trong bể bằng sóng siêu âm thay vì phương pháp điện cực truyền thống.



Tổng quat

Chỉ báo mực nước là một thiết bị phải có, nếu bạn sở hữu một ngôi nhà hoặc thậm chí sống trong một ngôi nhà thuê. A chỉ báo mực nước hiển thị một dữ liệu quan trọng cho ngôi nhà của bạn, dữ liệu này cũng quan trọng như chỉ số của đồng hồ đo năng lượng, đó là, lượng nước còn lại là bao nhiêu? Vì vậy, chúng tôi có thể theo dõi lượng nước tiêu thụ và chúng tôi không cần phải leo lên cầu thang để truy cập vào bồn nước để kiểm tra lượng nước còn lại và không còn tình trạng ngắt nước đột ngột từ vòi.

Chúng ta đang sống ở năm 2018 (tại thời điểm viết bài này) hoặc muộn hơn, chúng ta có thể liên lạc với mọi nơi trên thế giới ngay lập tức, chúng ta phóng một chiếc xe đua điện lên vũ trụ, chúng ta phóng vệ tinh và tàu lượn lên sao hỏa, chúng ta thậm chí có thể hạ cánh con người chúng sinh trên mặt trăng, vẫn không có sản phẩm thương mại thích hợp để phát hiện lượng nước còn lại trong bể nước của chúng ta?



Chúng tôi có thể tìm thấy các chỉ số mực nước được thực hiện bởi các học sinh lớp 5 cho hội chợ khoa học ở trường. Làm thế nào những dự án đơn giản như vậy lại không đi vào cuộc sống hàng ngày của chúng ta? Câu trả lời là chỉ báo mức độ bể nước không phải là dự án đơn giản mà học sinh lớp 5 có thể làm cho nhà của chúng ta. Có nhiều cân nhắc thực tế trước khi chúng tôi thiết kế một.

• Không ai muốn khoan một lỗ trên thân bồn nước để lấy các điện cực có thể làm rò rỉ nước sau này.
• Không ai muốn chạy dây 230/120 VAC gần bồn nước.
• Không ai muốn thay pin hàng tháng.
• Không ai muốn chạy thêm dây dài treo trên phòng để chỉ báo mực nước vì nó không được lên kế hoạch trước khi xây nhà.
• Không ai muốn sử dụng nước có lẫn kim loại ăn mòn điện cực.
• Không ai muốn tháo thiết lập chỉ báo mức nước trong khi vệ sinh bể (bên trong).

Một số lý do được đề cập ở trên có vẻ ngớ ngẩn nhưng bạn sẽ thấy kém khả quan hơn với các sản phẩm thương mại có những khuyết điểm này. Đó là lý do tại sao mức độ thâm nhập của các sản phẩm này rất ít trong các hộ gia đình trung bình *.
* Trên thị trường Ấn Độ.

Sau khi xem xét những điểm chính này, chúng tôi đã thiết kế một chỉ báo mực nước thực tế để loại bỏ các nhược điểm đã đề cập.

Thiết kế của chúng tôi:

• Nó sử dụng cảm biến siêu âm để đo mực nước nên không có vấn đề ăn mòn.
• Chỉ báo không dây về mực nước theo thời gian thực ở 2,4 GHz.
• Cường độ tín hiệu không dây tốt, đủ cho các tòa nhà cao 2 tầng.
• Sử dụng năng lượng mặt trời không cần nguồn AC hoặc thay thế pin.
• Báo động đầy / tràn bể trong khi làm đầy bể.

Hãy cùng tìm hiểu chi tiết về mạch:

Hệ thống điều khiển:

Các mạch phát không dây được đặt trên bể chứa sẽ gửi dữ liệu mực nước 5 giây một lần 24/7. Bộ phát bao gồm Arduino nano, cảm biến siêu âm HC-SR04, mô-đun nRF24L01 sẽ kết nối không dây bộ phát và bộ thu ở tần số 2,4 GHz.

Một bảng điều khiển năng lượng mặt trời 9 V đến 12 V với đầu ra hiện tại 300mA sẽ cung cấp năng lượng cho mạch máy phát. Bảng mạch quản lý pin sẽ sạc pin Li-ion để chúng ta có thể theo dõi mực nước ngay cả khi không có ánh sáng mặt trời.

Hãy cùng chúng tôi khám phá cách đặt cảm biến siêu âm tại bể nước:

Xin lưu ý rằng bạn phải vận dụng sự sáng tạo của mình để gò mạch và bảo vệ khỏi mưa và ánh nắng trực tiếp.

Cắt một lỗ nhỏ trên nắp bể để đặt cảm biến Siêu âm và bịt kín nó bằng một số loại chất kết dính bạn có thể tìm thấy.

đặt cảm biến siêu âm trong bể nước

Bây giờ, hãy đo toàn bộ chiều cao của bể từ đáy đến nắp, viết nó ra đơn vị mét. Bây giờ hãy đo chiều cao của khả năng chứa nước của bể như trong hình trên và viết ra đơn vị mét.
Bạn cần nhập hai giá trị này vào mã.

Sơ đồ của máy phát:

kết nối máy phát siêu âm để kiểm soát mực nước

LƯU Ý: nRF24L01 sử dụng 3.3V vì Vcc không kết nối với đầu ra 5V của Arduino.

Nguồn cung cấp cho máy phát:

thiết kế cung cấp điện bộ điều khiển mực nước siêu âm

Đảm bảo rằng công suất đầu ra của bảng điều khiển năng lượng mặt trời của bạn, tức là đầu ra (vôn x dòng điện) lớn hơn 3 watt. Các bảng điều khiển năng lượng mặt trời nên là 9V đến 12V.

Nên sử dụng bảng điều khiển 12V và 300mA mà bạn có thể tìm thấy dễ dàng trên thị trường. Pin nên khoảng 3.7V 1000 mAh.

Mô-đun sạc Li-ion 5V 18650:

Hình ảnh sau đây cho thấy một tiêu chuẩn Mạch sạc 18650

Đầu vào có thể là USB (không sử dụng) hoặc 5V bên ngoài từ IC LM7805. Đảm bảo rằng bạn nhận được đúng mô-đun như được hiển thị ở trên, nó phải có TP4056 bảo vệ, có khả năng cắt pin yếu và bảo vệ ngắn mạch.

Đầu ra của điều này phải được cấp cho đầu vào của XL6009 sẽ tăng lên điện áp cao hơn, sử dụng đầu ra trình điều khiển vít nhỏ của XL6009 nên được điều chỉnh thành 9V cho Arduino.

Hình minh họa bộ chuyển đổi DC sang DC XL6009:

Điều đó kết luận phần cứng của máy phát.

Mã cho Máy phát:

// ----------- Program Developed by R.GIRISH / Homemade-circuits .com ----------- //
#include
#include
RF24 radio(9, 10)
const byte address[6] = '00001'
const int trigger = 3
const int echo = 2
const char text_0[] = 'STOP'
const char text_1[] = 'FULL'
const char text_2[] = '3/4'
const char text_3[] = 'HALF'
const char text_4[] = 'LOW'
float full = 0
float three_fourth = 0
float half = 0
float quarter = 0
long Time
float distanceCM = 0
float distanceM = 0
float resultCM = 0
float resultM = 0
float actual_distance = 0
float compensation_distance = 0
// ------- CHANGE THIS -------//
float water_hold_capacity = 1.0 // Enter in Meters.
float full_height = 1.3 // Enter in Meters.
// ---------- -------------- //
void setup()
{
Serial.begin(9600)
pinMode(trigger, OUTPUT)
pinMode(echo, INPUT)
digitalWrite(trigger, LOW)
radio.begin()
radio.openWritingPipe(address)
radio.setChannel(100)
radio.setDataRate(RF24_250KBPS)
radio.setPALevel(RF24_PA_MAX)
radio.stopListening()
full = water_hold_capacity
three_fourth = water_hold_capacity * 0.75
half = water_hold_capacity * 0.50
quarter = water_hold_capacity * 0.25
}
void loop()
{
delay(5000)
digitalWrite(trigger, HIGH)
delayMicroseconds(10)
digitalWrite(trigger, LOW)
Time = pulseIn(echo, HIGH)
distanceCM = Time * 0.034
resultCM = distanceCM / 2
resultM = resultCM / 100
Serial.print('Normal Distance: ')
Serial.print(resultM)
Serial.println(' M')
compensation_distance = full_height - water_hold_capacity
actual_distance = resultM - compensation_distance
actual_distance = water_hold_capacity - actual_distance
if (actual_distance <0)
{
Serial.print('Water Level:')
Serial.println(' 0.00 M (UP)')
}
else
{
Serial.print('Water Level: ')
Serial.print(actual_distance)
Serial.println(' M (UP)')
}
Serial.println('============================')
if (actual_distance >= full)
{
radio.write(&text_0, sizeof(text_0))
}
if (actual_distance > three_fourth && actual_distance <= full)
{
radio.write(&text_1, sizeof(text_1))
}
if (actual_distance > half && actual_distance <= three_fourth)
{
radio.write(&text_2, sizeof(text_2))
}
if (actual_distance > quarter && actual_distance <= half)
{
radio.write(&text_3, sizeof(text_3))
}
if (actual_distance <= quarter)
{
radio.write(&text_4, sizeof(text_4))
}
}
// ----------- Program Developed by R.GIRISH / Homemade-circuits .com ----------- //

Thay đổi các giá trị sau trong mã mà bạn đã đo:

// ------- CHANGE THIS -------//
float water_hold_capacity = 1.0 // Enter in Meters.
float full_height = 1.3 // Enter in Meters.
// ---------- -------------- //

Điều đó kết luận máy phát.

Người nhận:

sơ đồ bộ điều khiển máy thu mực nước siêu âm

Bộ thu có thể hiển thị 5 cấp độ. Báo động, khi bể chứa đạt đến khả năng chứa nước tối đa tuyệt đối trong khi làm đầy bể. 100 đến 75% - Tất cả bốn đèn LED sẽ phát sáng, 75 đến 50% ba đèn LED sẽ phát sáng, 50 đến 25% hai đèn LED sẽ phát sáng, 25% và ít hơn một đèn LED sẽ phát sáng.
Bộ thu có thể được cấp nguồn từ pin 9V hoặc từ sạc điện thoại thông minh vào USB cáp mini-B.

Mã cho người nhận:

// ----------- Program Developed by R.GIRISH / Homemade-circuits .com ----------- //
#include
#include
RF24 radio(9, 10)
int i = 0
const byte address[6] = '00001'
const int buzzer = 6
const int LED_full = 5
const int LED_three_fourth = 4
const int LED_half = 3
const int LED_quarter = 2
char text[32] = ''
void setup()
{
pinMode(buzzer, OUTPUT)
pinMode(LED_full, OUTPUT)
pinMode(LED_three_fourth, OUTPUT)
pinMode(LED_half, OUTPUT)
pinMode(LED_quarter, OUTPUT)
digitalWrite(buzzer, HIGH)
delay(300)
digitalWrite(buzzer, LOW)
digitalWrite(LED_full, HIGH)
delay(300)
digitalWrite(LED_three_fourth, HIGH)
delay(300)
digitalWrite(LED_half, HIGH)
delay(300)
digitalWrite(LED_quarter, HIGH)
delay(300)
digitalWrite(LED_full, LOW)
delay(300)
digitalWrite(LED_three_fourth, LOW)
delay(300)
digitalWrite(LED_half, LOW)
delay(300)
digitalWrite(LED_quarter, LOW)
Serial.begin(9600)
radio.begin()
radio.openReadingPipe(0, address)
radio.setChannel(100)
radio.setDataRate(RF24_250KBPS)
radio.setPALevel(RF24_PA_MAX)
radio.startListening()
}
void loop()
{
if (radio.available())
{
radio.read(&text, sizeof(text))
Serial.println(text)
if (text[0] == 'S' && text[1] == 'T' && text[2] == 'O' && text[3] == 'P')
{
digitalWrite(LED_full, HIGH)
digitalWrite(LED_three_fourth, HIGH)
digitalWrite(LED_half, HIGH)
digitalWrite(LED_quarter, HIGH)
for (i = 0 i <50 i++)
{
digitalWrite(buzzer, HIGH)
delay(50)
digitalWrite(buzzer, LOW)
delay(50)
}
}
if (text[0] == 'F' && text[1] == 'U' && text[2] == 'L' && text[3] == 'L')
{
digitalWrite(LED_full, HIGH)
digitalWrite(LED_three_fourth, HIGH)
digitalWrite(LED_half, HIGH)
digitalWrite(LED_quarter, HIGH)
}
if (text[0] == '3' && text[1] == '/' && text[2] == '4')
{
digitalWrite(LED_full, LOW)
digitalWrite(LED_three_fourth, HIGH)
digitalWrite(LED_half, HIGH)
digitalWrite(LED_quarter, HIGH)
}
if (text[0] == 'H' && text [1] == 'A' && text[2] == 'L' && text[3] == 'F')
{
digitalWrite(LED_full, LOW)
digitalWrite(LED_three_fourth, LOW)
digitalWrite(LED_half, HIGH)
digitalWrite(LED_quarter, HIGH)
}
if (text[0] == 'L' && text[1] == 'O' && text[2] == 'W')
{
digitalWrite(LED_full, LOW)
digitalWrite(LED_three_fourth, LOW)
digitalWrite(LED_half, LOW)
digitalWrite(LED_quarter, HIGH)
}
}
}
// ----------- Program Developed by R.GIRISH / Homemade-circuits .com ----------- //

Điều đó kết luận người nhận.

LƯU Ý: nếu không có đèn LED nào phát sáng, có nghĩa là bộ thu không thể nhận tín hiệu từ bộ phát. Bạn nên đợi 5 giây để nhận tín hiệu từ máy phát sau khi bật mạch thu.

Nguyên mẫu của tác giả:

Hệ thống điều khiển:

nguyên mẫu máy phát siêu âm

Người nhận:

nguyên mẫu máy thu siêu âm

Nếu bạn có bất kỳ câu hỏi nào liên quan đến mạch điều khiển mực nước siêu âm không dây chạy bằng năng lượng mặt trời này, vui lòng bày tỏ trong phần bình luận, bạn có thể mong nhận được câu trả lời nhanh chóng.




Trước: Cách tạo mạch chuyển đổi Boost đơn giản Tiếp theo: Cách thiết kế một công cụ chuyển đổi Flyback - Hướng dẫn Toàn diện