Với sự kết hợp của các thiết bị cảm biến siêu âm, động cơ DC và khả năng kết nối Internet, hệ thống này mang lại nhiều lợi ích vượt trội trong việc quản lý nguồn nước, đặc biệt trong các
GIỚI THIỆU CHUNG VỀ ĐỀ TÀI
Tổng quan về công nghệ IOT
Internet of Things (IoT) là một hệ thống mạng lưới các thiết bị vật lý, phương tiện, tòa nhà và các vật dụng khác được tích hợp với các thiết bị điện tử, phần mềm, cảm biến và kết nối mạng để thu thập và trao đổi dữ liệu IoT cho phép các đối tượng kết nối và trao đổi dữ liệu với nhau, với các hệ thống trung tâm điều khiển và với người dùng thông qua Internet
1.1.2 Các thành phần chính của hệ thống IoT
Hệ thống IoT thường bao gồm các thành phần chính sau:
- Thiết bị và cảm biến: Các thiết bị vật lý được trang bị cảm biến để thu thập dữ liệu từ môi trường Trong hệ thống bơm nước, cảm biến siêu âm được sử dụng để đo mức nước
- Kết nối mạng: Cung cấp khả năng truyền tải dữ liệu giữa các thiết bị IoT và máy chủ trung tâm Các giao thức kết nối phổ biến bao gồm Wi-Fi, Bluetooth, Zigbee, và mạng di động
- Bộ vi điều khiển: Quản lý việc thu thập dữ liệu từ các cảm biến và điều khiển các thiết bị Bộ vi điều khiển phổ biến như Arduino, ESP32 và Raspberry Pi thường được sử dụng
- Nền tảng đám mây: Lưu trữ và xử lý dữ liệu thu thập được, cung cấp các dịch vụ phân tích và trực quan hóa dữ liệu Các nền tảng như AWS IoT, Google Cloud IoT và Microsoft Azure IoT là những ví dụ tiêu biểu
- Giao diện người dùng: Ứng dụng web hoặc di động cho phép người dùng giám sát và điều khiển hệ thống từ xa
Ứng dụng của IOT
1.2.1 Smart Home (Nhà thông minh)
IoT đã mang đến cho ngôi nhà của chúng ta khả năng kết nối và điều khiển các thiết bị điện tử thông qua Internet Các thiết bị như đèn chiếu sáng, máy lạnh, camera an ninh, thiết bị gia dụng như tủ lạnh, máy giặt, có thể được điều khiển từ xa thông qua điện thoại thông minh hoặc máy tính bảng Ví dụ, bạn có thể mở khóa cửa nhà, điều chỉnh nhiệt độ phòng khách, hay kiểm tra trạng thái của các thiết bị mà không cần có mặt tại nhà
1.2.2 Smart City (Thành phố thông minh)
Công nghệ IoT được áp dụng rộng rãi để giải quyết các vấn đề của đô thị hiện đại Các thành phố thông minh sử dụng cảm biến và mạng lưới kết nối để quản lý giao thông, hệ thống chiếu sáng, quản lý năng lượng, xử lý rác thải, và cải thiện chất lượng không khí Ví dụ, các cảm biến đường phố có thể giúp đo lưu lượng xe cộ và điều phối đèn giao thông để giảm thiểu ùn tắc giao thông
1.2.3 Industrial IoT (IoT Công nghiệp)
Trong các môi trường công nghiệp, IoT được áp dụng để tối ưu hóa quản lý và vận hành các hệ thống sản xuất Các thiết bị IoT như cảm biến, máy móc tự động, và hệ thống giám sát có thể giúp giảm thiểu lãng phí, tăng năng suất và đảm bảo an toàn lao động Ví dụ, các nhà máy thông minh có thể tự động kiểm tra và bảo trì các thiết bị, dự đoán sự cố và giảm thiểu thời gian ngừng máy
Hình 1.3 Robot công nghiệp dùng IOT
1.2.4 Healthcare (Chăm sóc sức khỏe)
IoT đang thúc đẩy sự phát triển của dịch vụ chăm sóc sức khỏe thông minh, từ việc theo dõi sức khỏe cá nhân đến giám sát bệnh nhân trong bệnh viện Các thiết bị đeo thông minh (wearables) như smartwatch có thể ghi nhận dấu hiệu về sức khỏe như nhịp tim, hoạt động vận động, giấc ngủ và gửi dữ liệu đến hệ thống để phân tích và cảnh báo sớm về các vấn đề sức khỏe
1.2.5 Agriculture (Nông nghiệp thông minh)
Trong lĩnh vực nông nghiệp, IoT đóng vai trò quan trọng trong việc quản lý hệ thống tưới tiêu tự động, theo dõi độ ẩm của đất và nhiệt độ môi trường, cũng như cung cấp dữ liệu về thời tiết Những thông tin thu thập được giúp nâng cao năng suất và chất lượng nông sản, giảm thiểu thiệt hại do thiên tai và tiết kiệm đáng kể nguồn nước.
Hình 1.5 Iot trong nông nghiệp xanh
Trong ngành bán lẻ, IoT được sử dụng để cải thiện trải nghiệm mua sắm của khách hàng và tối ưu hóa hoạt động của cửa hàng Hệ thống IoT có thể theo dõi lưu lượng khách hàng, quản lý hàng tồn kho, cung cấp khuyến mãi và thông tin sản phẩm tới điện thoại di động của người tiêu dùng.
Tổng quan về đề tài
1.3.1 Lí do chọn đề tài
Việc chọn đề tài "Điều Khiển Giám Sát Máy Bơm Nước Bằng IoT" không chỉ giải quyết các vấn đề thực tiễn trong việc quản lý nguồn nước mà còn ứng dụng các công nghệ hiện đại, phát triển kỹ năng cá nhân và đóng góp cho cộng đồng Đây là một đề tài hấp dẫn và có giá trị thực tiễn cao, đáng để nghiên cứu và triển khai
Để giải quyết những vấn đề cấp bách về nước, việc quản lý và sử dụng nguồn nước hiệu quả đóng vai trò tối quan trọng Đề tài "Điều khiển giám sát máy bơm nước bằng IoT" ra đời với mục đích hạn chế tối đa sự lãng phí nước và đảm bảo nguồn cung cấp nước ổn định Không chỉ có ý nghĩa trong nông nghiệp, công nghiệp, đề tài này còn có ứng dụng thiết thực trong quản lý nước gia đình, góp phần khắc phục tình trạng thiếu hụt nước sạch đang diễn ra ở nhiều khu vực trên thế giới.
Hệ thống này khả thi cao nhờ vào việc sử dụng các linh kiện phần cứng giá rẻ và dễ tiếp cận như cảm biến siêu âm, động cơ DC, Arduino hoặc Raspberry Pi Nhờ đó, hệ thống có thể triển khai một cách dễ dàng và mở rộng để thêm các chức năng như cảnh báo mực nước cạn hoặc đầy, báo cáo tình trạng qua email hoặc SMS.
Phát triển kỹ năng cá nhân: thực hiện đề tài này đòi hỏi kiến thức về lập trình vi điều khiển và kỹ năng điện tử cơ bản, giúp người thực hiện nâng cao kỹ năng chuyên môn Đồng thời, việc thiết kế, triển khai và thử nghiệm hệ thống đòi hỏi kỹ năng quản lý dự án, lập kế hoạch và giải quyết vấn đề thực tế, góp phần phát triển toàn diện các kỹ năng cá nhân
Đóng góp cho cộng đồng: hệ thống điều khiển máy bơm nước có thể áp dụng rộng rãi trong các hộ gia đình, giúp quản lý nguồn nước cho vườn tược hoặc hệ thống tưới tiêu tự động Điều này không chỉ cải thiện chất lượng cuộc sống mà còn nâng cao nhận thức của cộng đồng về công nghệ IoT, khuyến khích sự sáng tạo và ứng dụng công nghệ vào đời sống hàng ngày
1.2.2 Ứng dụng của đề tài a Quản lý nước trong nông nghiệp
Hệ thống tưới tiêu tự động: Trong nông nghiệp, việc tưới tiêu là một công việc quan trọng nhưng lại tốn nhiều thời gian và công sức Hệ thống điều khiển giám sát máy bơm nước bằng IoT giúp tự động hóa quá trình này, đảm bảo cung cấp đủ nước cho cây trồng mà không cần sự can thiệp thường xuyên của con người
Tối ưu hóa lượng nước sử dụng: Dựa vào dữ liệu từ cảm biến siêu âm và các cảm biến độ ẩm đất, hệ thống có thể điều chỉnh lượng nước tưới phù hợp, tránh tình trạng tưới quá nhiều hoặc quá ít, từ đó tiết kiệm nước và tăng hiệu quả sản xuất b Quản lý nước trong công nghiệp
Hệ thống làm mát và xử lý nước: Trong các nhà máy và xí nghiệp, việc quản lý nước làm mát và nước thải là rất quan trọng Hệ thống IoT giúp giám sát và điều khiển tự động các máy bơm nước trong quy trình sản xuất, đảm bảo hiệu suất hoạt động và bảo vệ môi trường
Giảm thiểu rủi ro: Hệ thống có thể phát hiện kịp thời các sự cố như rò rỉ hoặc tràn nước, từ đó gửi cảnh báo đến người quản lý và tự động ngắt máy bơm để giảm thiểu thiệt hại c Quản lý nước trong gia đình
Tưới cây tự động: Hệ thống có thể được áp dụng trong gia đình để tưới cây tự
11 động, giúp người dùng tiết kiệm thời gian và công sức trong việc chăm sóc vườn cây
Giám sát bể chứa nước: Đối với các hộ gia đình sử dụng bể chứa nước, hệ thống IoT giúp giám sát mức nước trong bể, tự động bật/tắt máy bơm khi cần thiết, đảm bảo luôn có đủ nước sử dụng mà không cần kiểm tra thủ công d Hệ thống cấp thoát nước đô thị
Quản lý mạng lưới cấp nước: Trong các hệ thống cấp nước đô thị, việc giám sát và điều khiển máy bơm nước từ xa giúp đảm bảo cung cấp nước liên tục và ổn định cho người dân Hệ thống có thể dự đoán và điều chỉnh lưu lượng nước dựa trên nhu cầu sử dụng
Hệ thống IoT đóng vai trò quan trọng trong việc quản lý hệ thống thoát nước và chống úng ngập đô thị Bằng cách giám sát mực nước trong cống rãnh và kênh mương, hệ thống có thể tự động điều khiển máy bơm thoát nước khi cần thiết Điều này giúp ngăn ngừa ngập úng, đảm bảo an toàn và thuận tiện cho sinh hoạt của người dân.
1.2.3 Giới thiệu tổng quan về đề tài
Trong bối cảnh hiện đại hóa và số hóa không ngừng phát triển, việc ứng dụng công nghệ Internet of Things (IoT) vào các lĩnh vực đời sống và sản xuất đang trở thành xu hướng tất yếu IoT cho phép kết nối và điều khiển các thiết bị từ xa thông qua mạng Internet, giúp tối ưu hóa quy trình vận hành, tiết kiệm thời gian và tài nguyên Một trong những ứng dụng tiêu biểu của IoT là hệ thống điều khiển và giám sát bơm nước, mang lại nhiều lợi ích vượt trội trong quản lý nguồn nước, đặc biệt trong các lĩnh vực nông nghiệp, công nghiệp và dân dụng
Hệ thống bơm nước truyền thống thường yêu cầu sự giám sát và điều khiển thủ công, dẫn đến lãng phí nguồn lực và không đảm bảo hiệu quả tối ưu Việc áp dụng IoT vào hệ thống bơm nước không chỉ giúp tự động hóa quá trình bơm mà còn cung cấp khả năng giám sát từ xa, phát hiện sớm các sự cố và điều chỉnh hoạt động kịp thời Cảm biến siêu âm được sử dụng để đo mức nước trong bể chứa một cách chính xác, động cơ DC đảm bảo quá trình bơm nước hiệu quả, và bộ vi điều khiển cùng với kết nối IoT giúp truyền tải dữ liệu và điều khiển hệ thống từ xa Đề tài "Điều khiển giám sát hệ thống bơm nước bằng IoT" nhằm nghiên cứu và phát triển một giải pháp thông minh, tự động và hiệu quả trong quản lý nguồn nước
Hệ thống này bao gồm các thành phần chính như cảm biến siêu âm để đo mức nước, động cơ DC để bơm nước, bộ vi điều khiển để quản lý và điều khiển hệ thống, và kết nối IoT để giám sát và điều khiển từ xa thông qua các ứng dụng web hoặc di động
THIẾT KẾ SẢN PHẨM
Lựa chọn phương án thiết kế
2.1.1 Phương án 1: Sử dụng ESP8266 với Blynk
- Cảm biến siêu âm: HC-SR04 hoặc JSN-SR04T (chống nước): đo mức nước trong bể chứa
- Động cơ DC: Động cơ bơm nước 12V: bơm nước từ bể chứa
- Bộ vi điều khiển: ESP8266 (module NodeMCU hoặc Wemos D1 Mini): xử lý tín hiệu từ cảm biến và điều khiển động cơ.Tích hợp sẵn Wi-Fi để kết nối Internet và truyền dữ liệu
- Relay Module: Để điều khiển bật/tắt động cơ bơm nước Điều khiển động cơ bơm nước dựa trên tín hiệu từ ESP8266
- Nguồn cung cấp: Adapter 12V cho động cơ và nguồn 5V cho ESP8266
- Công tắc để chuyển chế độ phần cứng
- Sử dụng ứng dụng di động Blynk để hiển thị mức nước và điều khiển động cơ từ xa Ưu điểm:
- Blynk cung cấp giao diện trực quan và dễ sử dụng
- Dễ dàng cấu hình và triển khai
- Không cần viết ứng dụng từ đầu
- Phụ thuộc vào nền tảng Blynk
- Có thể tốn chi phí nếu sử dụng các tính năng nâng cao của Blynk
2.1.2 Phương án 2: Sử dụng ESP8266 và tự viết ứng dụng trên MIT App
Inventor, hiển thị mực nước trên thinkspeak
- Cảm biến siêu âm: HC-SR04 hoặc JSN-SR04T (chống nước): đo mức nước trong bể chứa
- Động cơ DC: Động cơ bơm nước 12V: bơm nước từ bể chứa
- Bộ vi điều khiển: ESP8266 (module NodeMCU hoặc Wemos D1 Mini): xử lý tín hiệu từ cảm biến và điều khiển động cơ
- Relay Module: Để điều khiển bật/tắt động cơ bơm nước dựa trên tín hiệu từ ESP8266
- Nguồn cung cấp: Adapter 12V cho động cơ và nguồn 5V cho ESP8266
- Công tắc để chuyển chế độ phần cứng
- Sử dụng MIT App Inventor để phát triển ứng dụng di động tùy chỉnh
- Ứng dụng sẽ kết nối với server để lấy dữ liệu và hiển thị mức nước, điều khiển động cơ Ưu điểm:
- Linh hoạt, có thể tùy chỉnh giao diện và chức năng của ứng dụng
- Không phụ thuộc vào nền tảng bên thứ ba
- Học cách phát triển ứng dụng di động đơn giản với MIT App Inventor
- Phức tạp hơn so với việc sử dụng Blynk, yêu cầu kỹ năng lập trình ứng dụng di động
- Cần có server để nhận và xử lý dữ liệu
- Quá trình phát triển và triển khai ứng dụng sẽ tốn nhiều thời gian hơn
Kết luận: qua việc thảo luận và làm việc nhóm, nhóm 3 chúng em đã quyết định chọn phương án thiết kế 1 “Sử dụng ESP8266 với blynk” để thiết kế sản phẩm cho đề tài
Phân công nhiệm vụ
Bảng 1.1 Bảng phân công nhiệm vụ
1 Phân tích yêu cầu của đề tài
3 Vẽ sơ đồ nguyên lí mạch
Lựa chọn thiết bị
NodeMCU là một phần mềm nguồn mở dựa trên Lua và bảng phát triển được nhắm mục tiêu đặc biệt cho các Ứng dụng dựa trên IoT Nó bao gồm phần sụn chạy trên ESP8266 Wi-Fi SoC của Espressif Systems và phần cứng dựa trên mô-đun ESP-
Hình 2.1 Node mcu esp 8266 Thông số kỹ thuật :
Bộ vi điều khiển: CPU RISC 32-bit Tensilica Xtensa LX106
Chân I / O kỹ thuật số (DIO): 16
Chân đầu vào tương tự (ADC): 1
Tốc độ đồng hồ: 80 MHz
USB-TTL dựa trên CP2102 được bao gồm trên bo mạch, cho phép Plug n Play
2.3.2 Cảm biến siêu âm HCSR04
Cảm biến siêu âm HC-SR04 (Ultrasonic Sensor) được sử dụng rất phổ biến để xác định khoảng cách vì RẺ và CHÍNH XÁC Cảm biến HC-SR04 sử dụng sóng siêu âm và có thể đo khoảng cách trong khoảng từ 2 -> 300cm, với độ chính xác gần như chỉ phụ thuộc vào cách lập trình
Cảm biến siêu âm SR04 hoạt động dựa trên nguyên lý phản xạ sóng siêu âm có tần số 40kHz Sau khi cảm biến phát sóng, nếu gặp vật cản, sóng sẽ phản xạ lại và tác động lên mô-đun nhận sóng Bằng cách tính thời gian từ lúc phát đến lúc nhận sóng, ta có thể xác định được khoảng cách từ cảm biến đến vật cản.
Khoảng cách = (thời gian * vận tốc âm thanh (340 m/s) / 2
Hình 2.2 Cảm biến siêu âm HCSR04 Thông số kỹ thuật:
Relay 5 chân SRD 5VDC là loại linh kiện đóng ngắt điện cơ đơn giản Nó gồm 2 phần chính là cuộn hút và các tiếp điểm
Hình 2.3 Relay 5v-10a Thông số kỹ thuật:
Nhiệt độ hoạt động: - 45 °C to 75 °C
Công suất cuộn dây (coil) DC: 360 mW
Thời gian tác động: 10 ms
Thời gian nhả hãm: 5 ms
Điện áp điều khiển cuộn dây (coil): 5 V
TIP41C là transistor công suất NPN đóng gói trong dạng TO-220, đáp ứng các ứng dụng âm thanh, công suất tuyến tính và chuyển đổi switching Thiết bị bổ sung là transistor PNP TIP42C.
Hình 2.4 TIP 41C Thông số kỹ thuật:
Công suất tiêu tán Collector - 65 W
Mức tăng dòng DC (hfe) - 15 đến 75
Nút nhấn 4 chân 12x12x5mm DIP được sử dụng rộng rãi trong các mạch điện tử như nút nguồn, nút điều khiển Được biết đến như một khí cụ chuyển đổi từ xa các thiết bị điện công suất nhỏ, nút nhấn có cơ chế hoạt động đơn giản: khi tác động vào nút nhấn, các tiếp điểm chuyển trạng thái, sau khi không còn lực tác động, tiếp điểm trở về trạng thái ban đầu Với kích thước nhỏ gọn, nút nhấn rất dễ dàng di chuyển và lắp đặt theo yêu cầu của người dùng.
Chất liệu: nhựa + kim loại
Một linh kiện điện tử thụ động có tác dụng ngăn cản dòng điện trong mạch Điện trở công suất 1/4W có thể hoạt động tốt dưới công suất nhỏ hơn 1/4W điện trở là linh kiện cơ bản nhất, có mặt trong hầu hết các mạch điện tử
Hình 2.7 Điện trở vạch 2.2.8 Tụ điện
Tụ gốm 103 là tụ điện có điện môi được chế tạo theo công nghệ gốm, 2 chân cắm của linh kiện được mạ thiếc Tụ gốm 103 được sử dụng trong các mạch điện có tần số cao hoặc mạch lọc nhiễu Tụ gốm có hình dẹt không phân cực có hình dẹt, là các tụ không phận cực.Tụ gốm bao gồm hai mặt dẫn điện gọi là khung, được phân cách bởi một chất cách điện, gọi là điện môi
Hình 2.8 Tụ 103 Thông số kĩ thuật:
Nhiệt độ làm việc: -25oC - 85oC
Loại: Tụ điện cố định
Sơ đồ
Hình 2.1 Sơ đồ khối Chức năng các khối:
Khối nguồn: cung cấp năng lượng cho các khối còn lại hoạt động
Khối cảm biến: truyền tín hiệu từ cảm biến HCSR04 cho ESP8266 và ngược lại
Khối nút nhấn : truyền tín hiệu đầu vào digital cho ESP8266
Khối đèn hiển thị: nhận tín hiệu từ vi điều khiển rồi hiển thị
Khối công suất: nhận tín hiệu điều khiển từ vi điều khiển để đóng ngắt relay Tải: motor động cơ máy bơm
Hình 2.2 Sơ đồ nguyên lí
Hình 2.3 Sơ đồ mạch inh 2d
Hình 2.4 Sơ đồ mạch in 3d
Nguyên lí hoạt động
Mạch hoạt động ở 2 chế độ:
Chế độ tự động (AUTO):
- Khi chế độ tự động được kích hoạt, hệ thống sẽ sử dụng cảm biến siêu âm để đo mức nước
- Mức nước được tính toán dựa trên khoảng cách đo được từ cảm biến đến bề mặt nước
- Nếu mức nước thấp hơn ngưỡng quy định (30%), máy bơm sẽ tự động bật để bơm nước vào
- Nếu mức nước cao hơn ngưỡng quy định (90%), máy bơm sẽ tự động tắt để ngừng bơm nước
- Đèn LED báo hiệu chế độ tự động sẽ sáng khi hệ thống đang ở chế độ này
- Khi ở chế dộ tự động thì sẽ không điều khiển máy bơm bằng 2 nút nhấn ON/OFF trên broad cũng như trên app được
Chế độ thủ công (MAN):
- Khi chế độ thủ công được kích hoạt, người dùng có thể điều khiển máy bơm trực tiếp qua các nút nhấn hoặc qua ứng dụng Blynk
- Nút nhấn ON sẽ bật máy bơm
- Nút nhấn OFF sẽ tắt máy bơm
- Đèn LED báo hiệu chế độ thủ công sẽ sáng khi hệ thống đang ở chế độ này
Lưu đồ thuật toán
Hình 2.5 Lưu đồ thuật toán
Chương trình điều khiển
#define BLYNK_TEMPLATE_ID "TMPL6JcffyjGE"
#define BLYNK_TEMPLATE_NAME "8RELAY"
#define BLYNK_AUTH_TOKEN "vO1DI8AYdko8Sbk0SvLL6uTZP1sUdGHl"
// Mã xác thực Blynk char auth[] = BLYNK_AUTH_TOKEN;
// Thông tin WiFi của bạn char ssid[] = "SMARTHOME"; char pass[] = "777777777";
// Định nghĩa các chân GPIO
#define MAX_DISTANCE 13 // Khoảng cách tối đa cho cảm biến siêu âm (1m3)
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); int distance;
// Các chế độ (AUTO: Tự động, MAN: Thủ công) enum Mode {AUTO, MAN};
Mode currentMode = AUTO; // Chế độ mặc định là AUTO bool pumpState = false; // Trạng thái bật/tắt của máy bơm
// Khai báo các hàm void checkButtons(); void autoMode(); void manualMode(); void updateBlynkDisplays(); void setup() {
// Bắt đầu giao tiếp serial
// Khởi tạo kết nối Blynk
Blynk.begin(auth, ssid, pass);
// Cấu hình các chân GPIO pinMode(RELAY_PIN, OUTPUT); pinMode(AUTO_LED_PIN, OUTPUT); pinMode(MAN_LED_PIN, OUTPUT); pinMode(AUTO_BUTTON_PIN, INPUT_PULLUP); pinMode(MAN_BUTTON_PIN, INPUT_PULLUP); pinMode(ON_BUTTON_PIN, INPUT_PULLUP); pinMode(OFF_BUTTON_PIN, INPUT_PULLUP);
// Khởi tạo relay và các đèn LED báo hiệu digitalWrite(RELAY_PIN, LOW); digitalWrite(AUTO_LED_PIN, LOW); digitalWrite(MAN_LED_PIN, LOW);
// Đồng bộ trạng thái ban đầu với Blynk
Blynk.run(); // Thực thi Blynk để cập nhật trạng thái checkButtons(); // Kiểm tra trạng thái các nút nhấn distance = sonar.ping_cm(); waterLevel = (100.0 - (distance / 13.0) * 100.0); // Đổi tín hiệu cm ra %
Blynk.virtualWrite(V0, waterLevel); // Gửi mức nước lên Blynk updateBlynkDisplays(); // Cập nhật trạng thái lên Blynk delay(100);
// Xử lý dựa trên chế độ hiện tại (AUTO hoặc MAN) if (currentMode == AUTO) { digitalWrite(AUTO_LED_PIN, HIGH); // Bật đèn LED báo chế độ AUTO digitalWrite(MAN_LED_PIN, LOW); // Tắt đèn LED báo chế độ MAN autoMode(); // Chế độ tự động
} else { digitalWrite(AUTO_LED_PIN, LOW); // Tắt đèn LED báo chế độ AUTO digitalWrite(MAN_LED_PIN, HIGH); // Bật đèn LED báo chế độ MAN manualMode(); // Chế độ thủ công
// Hàm kiểm tra trạng thái các nút nhấn
32 void checkButtons() { static bool lastAutoButtonState = HIGH; static bool lastManButtonState = HIGH; static bool lastOnButtonState = HIGH; static bool lastOffButtonState = HIGH; bool autoButtonState = digitalRead(AUTO_BUTTON_PIN); bool manButtonState = digitalRead(MAN_BUTTON_PIN); bool onButtonState = digitalRead(ON_BUTTON_PIN); bool offButtonState = digitalRead(OFF_BUTTON_PIN);
// Kiểm tra nút nhấn AUTO và chuyển đổi chế độ khi được nhấn if (autoButtonState == LOW && lastAutoButtonState == HIGH) { currentMode = AUTO;
Blynk.virtualWrite(V1, 1); // Cập nhật nút nhấn Blynk Blynk.virtualWrite(V5, 1); // Cập nhật đèn báo chế độ AUTO
Blynk.virtualWrite(V6, 0); // Tắt đèn báo chế độ MAN } lastAutoButtonState = autoButtonState;
// Kiểm tra nút nhấn MAN và chuyển đổi chế độ khi được nhấn if (manButtonState == LOW && lastManButtonState == HIGH) { currentMode = MAN;
Blynk.virtualWrite(V2, 1); // Cập nhật nút nhấn Blynk Blynk.virtualWrite(V5, 0); // Tắt đèn báo chế độ AUTO Blynk.virtualWrite(V6, 1); // Cập nhật đèn báo chế độ MAN
// Kiểm tra nút nhấn ON khi ở chế độ MAN và bật máy bơm if (currentMode == MAN) { if (onButtonState == LOW && lastOnButtonState == HIGH) { pumpState = true;
Blynk.virtualWrite(V3, 1); // Cập nhật nút nhấn Blynk Blynk.virtualWrite(V7, 1); // Cập nhật đèn báo PUMP ON } lastOnButtonState = onButtonState;
// Kiểm tra nút nhấn OFF khi ở chế độ MAN và tắt máy bơm if (offButtonState == LOW && lastOffButtonState == HIGH) { pumpState = false;
Blynk.virtualWrite(V4, 1); // Cập nhật nút nhấn Blynk Blynk.virtualWrite(V7, 0); // Cập nhật đèn báo PUMP OFF
// Hàm điều khiển chế độ tự động (AUTO) void autoMode() {
// Tự động bật/tắt máy bơm dựa trên mức nước if (waterLevel < 30) { pumpState = true;
} else if (waterLevel > 90) { pumpState = false;
} digitalWrite(RELAY_PIN, pumpState ? HIGH : LOW); // Điều khiển relay
// Hàm điều khiển chế độ thủ công (MAN) void manualMode() { digitalWrite(RELAY_PIN, pumpState ? HIGH : LOW); // Điều khiển relay
// Cập nhật tín hiệu các chân D2, D3, D4 lên Blynk void updateBlynkDisplays() {
Blynk.virtualWrite(V5, digitalRead(AUTO_LED_PIN)); // Cập nhật tín hiệu chân D3
Blynk.virtualWrite(V6, digitalRead(MAN_LED_PIN)); // Cập nhật tín hiệu chân D4
Blynk.virtualWrite(V7, digitalRead(RELAY_PIN)); // Cập nhật tín hiệu chân D2
// Xử lý sự kiện khi nút nhấn Blynk được nhấn (chế độ AUTO) BLYNK_WRITE(V1) { if (param.asInt()) { currentMode = AUTO; // Chuyển sang chế độ AUTO
Blynk.virtualWrite(V5, 1); // Cập nhật đèn báo chế độ AUTO
Blynk.virtualWrite(V6, 0); // Tắt đèn báo chế độ MAN }
// Xử lý sự kiện khi nút nhấn Blynk được nhấn (chế độ MAN) BLYNK_WRITE(V2) { if (param.asInt()) { currentMode = MAN; // Chuyển sang chế độ MAN
Blynk.virtualWrite(V5, 0); // Tắt đèn báo chế độ AUTO Blynk.virtualWrite(V6, 1); // Cập nhật đèn báo chế độ MAN
// Xử lý sự kiện khi nút nhấn Blynk được nhấn (bật máy bơm) BLYNK_WRITE(V3) { if (currentMode == MAN && param.asInt()) { pumpState = true; // Bật máy bơm khi ở chế độ MAN
Blynk.virtualWrite(V7, 1); // Cập nhật đèn báo PUMP ON }
// Xử lý sự kiện khi nút nhấn Blynk được nhấn (tắt máy bơm) BLYNK_WRITE(V4) { if (currentMode == MAN && param.asInt()) { pumpState = false; // Tắt máy bơm khi ở chế độ MAN
Blynk.virtualWrite(V7, 0); // Cập nhật đèn báo PUMP OFF }
Thiết kế giao diện app Blynk
Thiết kế giao diện app theo các bước sau:
- Nhấn vào nút "+" hoặc "New Project" trên giao diện chính
- Đặt tên cho dự án của bạn
- Chọn loại phần cứng bạn sẽ sử dụng (ví dụ: Arduino, ESP8266, NodeMCU, v.v.)
- Chọn kết nối (Wi-Fi, Bluetooth, Ethernet, v.v.)
- Sau khi tạo dự án, Blynk sẽ gửi một Auth Token đến email của bạn Auth Token này là chìa khóa để kết nối thiết bị phần cứng của bạn với ứng dụng
Giao diện app blynk sau khi cài đặt sẽ như sau:
Hình 2.6 Giao diện app blynk
THI CÔNG SẢN PHẨM
Bảng vật tư
Stt Tên thiết bị Số lượng Giá thành
2 Cảm biến siêu âu HCSR04 1 40.000
5 Điện trở các loại( 10k, 330, 470) 3 túi 10.000
12 Jump cắm ( đực cái ) 2 thanh 5.000
Các bước thi công
- B1: Viết chương trình và kiểm tra
- B2: Thiết kế sơ đồ mạch in
- B3: Chuẩn bị vật tư linh kiện theo bảng vật tư và kiểm tra
Hình 3.1 Chuẩn bị vật tư linh kiện theo bảng vật tư và kiểm tra
- B4: Cắt phíp đồng theo kích thước đã định
- B5: In, là chuyển nhiệt, ăn mòn mạch in
Hình 3.2 In, là chuyển nhiệt, ăn mòn mạch in
- B7: Hàn linh kiện vào mạch
Hình 3.4 Vận hành sản phẩm
Hình 3 5 Sản phẩm hoàn thiện