Mục lục:

Bộ điều khiển khởi động DOL dựa trên IOT cho bộ máy bơm tưới: 6 bước
Bộ điều khiển khởi động DOL dựa trên IOT cho bộ máy bơm tưới: 6 bước

Video: Bộ điều khiển khởi động DOL dựa trên IOT cho bộ máy bơm tưới: 6 bước

Video: Bộ điều khiển khởi động DOL dựa trên IOT cho bộ máy bơm tưới: 6 bước
Video: Đo nhiệt độ - độ ẩm đất và điều khiển bơm tưới tự động sử dụng esp8266 và blynk iot 2024, Tháng mười một
Anonim
Bộ điều khiển khởi động DOL dựa trên IOT cho bộ máy bơm tưới
Bộ điều khiển khởi động DOL dựa trên IOT cho bộ máy bơm tưới
Bộ điều khiển khởi động DOL dựa trên IOT cho bộ máy bơm tưới
Bộ điều khiển khởi động DOL dựa trên IOT cho bộ máy bơm tưới

Xin chào các bạn

Tài liệu hướng dẫn này là về cách giám sát và điều khiển từ xa một bộ máy bơm tưới tiêu qua internet.

Câu chuyện: Trong trang trại của tôi, tôi chỉ được cấp điện từ lưới điện địa phương trong khoảng 6 giờ một ngày. Thời gian không thường xuyên, nguồn điện sẵn có có thể vào sáng sớm hoặc tối muộn hoặc thậm chí nửa đêm. Mỗi lần đến vị trí giếng khoan để kiểm tra nguồn điện, khởi động hoặc dừng động cơ là quá trình rất vất vả. Ngoài ra, tôi phải đảm bảo động cơ chạy ít nhất 2-3 giờ mỗi ngày để cung cấp đủ nước cho hệ thống nhỏ giọt. Khá lâu tôi đã tìm hiểu các tùy chọn để giải quyết vấn đề này bằng cách vận hành động cơ từ xa và cũng biết được trạng thái. Có những thiết bị có sẵn trên thị trường sẽ khởi động động cơ ngay khi có nguồn điện, nhưng chúng không có tính năng dừng động cơ bất cứ khi nào chúng ta muốn. Và cũng không có cách nào để biết trạng thái của động cơ BẬT / TẮT tại bất kỳ thời điểm nào. Điều này thường dẫn đến việc tưới quá mức, dẫn đến mất độ màu mỡ của đất và lãng phí điện năng. Cuối cùng, tôi đã tự mình xây dựng một giải pháp mà tôi có thể khởi động và dừng động cơ từ xa từ di động / máy tính bảng / PC BẤT CỨ LÚC NÀO BẤT CỨ Ở ĐÂU… !!. Ngoài ra, tôi có thể theo dõi khả năng cung cấp điện từ dây cũng như trạng thái động cơ (BẬT / TẮT) mọi lúc. Hy vọng nó sẽ giúp các chủ trang trại trên cả nước quản lý hệ thống tưới tiêu của họ mà không cần phải đến địa điểm khởi động mọi lúc.

Quân nhu

Điều kiện tiên quyết:

Vị trí bạn muốn lắp đặt thiết bị này phải có internet (băng thông rộng với wifi / internet di động)

Những thứ bạn cần:

  1. NodeMCU / ESP12
  2. Chuyển tiếp hai kênh
  3. WCS1700 - Cảm biến dòng điện
  4. Mô-đun sạc pin TP4056
  5. LD313, Tụ điện - Thanh ghi 1000uF - Hai thanh ghi 5k ohm
  6. Bất kỳ điện thoại thông minh (cũ) nào có điểm phát sóng / internet.

Làm thế nào nó hoạt động:

Đây là một giải pháp IOT dựa trên đám mây đơn giản sử dụng NodeMCU / ESP12 và nhà môi giới MQTT từ xa. NodeMCU hoạt động như một cổng IOT, cũng điều khiển bộ khởi động DOL. Nó kết nối với nhà môi giới MQTT từ xa qua internet. Một ứng dụng chạy trên thiết bị di động Android kết nối với nhà môi giới qua đó chúng tôi có thể theo dõi và kiểm soát bộ máy bơm tưới của mình mọi lúc. Tôi đã sử dụng nhà môi giới MQTT miễn phí có sẵn từ Adafruit IO. Có rất nhiều nhà môi giới miễn phí có sẵn như mosquitto, cloudmqtt, v.v. Bạn có thể chọn bất kỳ nhà môi giới nào miễn là bạn thay đổi máy chủ và số cổng trong mã. NodeMCU kết nối với internet bằng WiFi từ điểm phát sóng di động. Yon có thể sử dụng bất kỳ điện thoại di động cũ hoặc giá rẻ nào để cung cấp truy cập wifi thông qua điểm phát sóng hoặc bất kỳ phương tiện cung cấp internet thông qua wifi nào khác. Di động phải được kết nối với bộ sạc vì nó phải có trên 24X7.

NodeMCU được giao tiếp với hai rơ le để điều khiển khởi động và dừng hoạt động của động cơ. Để cảm nhận dòng điện trong động cơ, tôi đã sử dụng cảm biến dòng WCS1700. Đầu ra tương tự từ cảm biến được sử dụng để biết động cơ đang BẬT hoặc TẮT. Nó cũng cảm nhận khả năng cung cấp điện từ lưới điện và công bố nó cho người môi giới để chúng tôi có thể biết tình trạng lưới điện bất cứ lúc nào. Thiết bị đăng ký hai nguồn cấp dữ liệu để nhận yêu cầu BẬT động cơ và TẮT động cơ. Bằng cách gửi các giá trị cụ thể đến các nguồn cấp dữ liệu này, chúng tôi có thể điều khiển động cơ để BẮT ĐẦU hoặc DỪNG.

Cuối cùng, tôi đã cài đặt ứng dụng MQTT Dash trên điện thoại Android của mình và định cấu hình nó để kết nối với nhà môi giới MQTT và sử dụng các nguồn cấp dữ liệu trên trang tổng quan / gui của nó. Ứng dụng có các biểu tượng rất tốt với các nút, thước đo, công tắc, v.v. để tạo bảng điều khiển hấp dẫn. Tuy nhiên, bạn có thể sử dụng bất kỳ ứng dụng di động tự động hóa gia đình IOT nào hỗ trợ giao thức mqtt.

Cách WCS1700 hoạt động:

WCS1700 về cơ bản là một cảm biến hiệu ứng Hall sẽ tạo ra điện áp đầu ra tương ứng với từ trường được tạo ra khi dòng điện chạy qua cuộn dây. Cuộn dây ở đây là một đường cung cấp điện sẽ được kết nối với động cơ. Nó có thể đo dòng điện AC lên đến 70 Amps. Điện áp hoạt động trong khoảng từ 3,3 đến 12 V. Tham khảo bảng dữ liệu của nó để biết thêm chi tiết. Khi tôi đang sử dụng ESP12, tôi đã sử dụng cùng một nguồn điện 3,3V làm điện áp hoạt động cho WCS1700. Như quy định trong bảng dữ liệu ở mức 3,3 V, thiết bị phải tạo ra điện áp chênh lệch khoảng 32 đến 38 mV trên mỗi amp dòng điện qua cuộn dây. Nhưng nó có thể thay đổi dựa trên kích thước cuộn dây / khe hở không khí và các biến thể trong thiết bị. Do đó tôi đã phải hiệu chỉnh nó bằng cách kiểm tra nó với Ampere Meter. Tôi không hài lòng về độ chính xác của thiết bị nhưng nó đủ tốt để quyết định trạng thái của Động cơ là BẬT / TẮT. Chân đầu ra của WCS1700 được kết nối với A0 của ESP12. Khi không có dòng điện, ESP12 sẽ đọc giá trị khoảng 556. Khi dòng điện tăng lên trong cuộn dây, điện áp có thể rất ở hai bên dựa trên cách cáp đi qua cảm biến. Trong đoạn mã, tôi lấy sự khác biệt của các giá trị làm giá trị tuyệt đối của (x - 556). Bằng cách chia kết quả với 15, tôi nhận được dòng điện gần đúng chạy qua cảm biến. Bạn sẽ phải thử nghiệm điều này để có được con số phù hợp với bạn. Bất kỳ phép đo dòng điện nào của thiết bị trên 5 A tôi coi như động cơ BẬT và dưới 5 Amp khi động cơ ở trạng thái TẮT. Bạn có thể sử dụng đúng số cho thiết bị của mình bằng cách thử nghiệm. Bạn cần thay đổi WCS1700_CONST và MIN_CURRENT trong mã cho phù hợp.

Bước 1: Xây dựng thiết bị

Cấu tạo thiết bị
Cấu tạo thiết bị
Cấu tạo thiết bị
Cấu tạo thiết bị

Sơ đồ trên cung cấp một chi tiết đầy đủ về cách đấu dây tất cả các thành phần.

Nguồn cung cấp: Tôi đã sử dụng TP4056 để sạc pin và LM313 để điều chỉnh đầu ra pin 3.7V - 4.2V thành 3.3 V để cấp nguồn cho NodeMCU. Được sử dụng tụ 1000mF giữa Vin và mặt đất của LM313 để có được nguồn cung cấp ổn định 3.3V. Bạn có thể sử dụng bộ sạc di động USB thông thường để cấp nguồn cho TP4056. Nó có mạch bảo vệ pin để bảo vệ pin khỏi sạc quá mức.

Cảm biến nguồn điện lưới: Bộ chia điện áp 5k ohm sẽ giảm 5 V xuống 2,5 V. Chân D5 của NodeMCU sẽ cảm nhận điện áp.

Chân đầu ra của WCS1700 được kết nối với A0 để đọc điện áp tương tự từ cảm biến. Dòng điện lưới phải đi qua lỗ để đo dòng điện. Tôi đã sử dụng tụ điện 0,01 uF có được dạng đọc ổn định WCS1700.

D1 và D2 của NodeMCU để được kết nối với IN0 và IN1 của các chân đầu vào rơle.

Bước 2: Kết nối DOL Starter

Kết nối DOL Starter
Kết nối DOL Starter
Kết nối DOL Starter
Kết nối DOL Starter

Tôi đã chỉnh sửa mạch điều khiển của bộ khởi động DOL để giới thiệu một bộ công tắc BẮT ĐẦU và DỪNG khác. Thay đổi này sẽ không ảnh hưởng đến hoạt động bắt đầu / dừng thủ công và chúng tiếp tục hoạt động như hiện tại.

Thận trọng !!!! Vì bộ khởi động DOL là thiết bị Điện áp cao, hãy đảm bảo công tắc chính được tắt trước khi mở hộp. Tiếp xúc trực tiếp với dây điện có thể nguy hiểm. Nếu bạn không tự tin hãy nhờ sự giúp đỡ của thợ điện để thực hiện các kết nối

Tôi đã sử dụng mô-đun chuyển tiếp 2 kênh 5 V làm công tắc BẮT ĐẦU và DỪNG. Các rơ le này sẽ được điều khiển bởi ESP12.

Rơ le - 0 sẽ hoạt động như công tắc BẮT ĐẦU - có dây là KHÔNG (Thường Mở).

Relay-1 sẽ hoạt động như công tắc STOP - có dây như NC (Thường đóng). Bộ khởi động sẽ có một dây kết nối từ công tắc tơ trên cùng đến NVC. Bạn sẽ phải tháo nó ra và thay thế bằng dây relay -1 như hình.

Đảm bảo các kết nối giữa bộ khởi động và mô-đun Rơ-le được cách điện hoàn toàn để đảm bảo an toàn. Tôi đã lập trình ESP để giữ cả hai rơ le trong 2 giây để mô phỏng việc nhấn nút START / STOP.

Bước 3: Tạo tài khoản với Adafruit IO (io.adafruit.com)

Tôi đã sử dụng nhà môi giới Adafruit io mqtt miễn phí để sử dụng với một số hạn chế nhưng nó OK cho việc sử dụng của chúng tôi. Tôi thích điều này hơn vì tôi cũng đã sử dụng nó trong các dự án khác và thấy khá đáng tin cậy và cũng có nhiều tính năng khác như Bảng điều khiển với GUI đẹp và thậm chí chúng tôi có thể sử dụng trình kích hoạt. Để sử dụng Adafruit io, bạn cần tạo một tài khoản và lưu ý Tên người dùng và Khóa hoạt động.

Bước 4: Xây dựng và cài đặt phần mềm

Mã hoàn chỉnh có sẵn trong bản phác thảo. Bạn cần mở phần mềm này trong Arduino IDE và thực hiện một số thay đổi trước khi biên dịch và tải lên phần sụn. Chọn loại bảng là NodeMCU 1.0. Cài đặt IDE và các thư viện liên quan không nằm trong phạm vi của tài liệu này.

Sửa đổi các dòng sau trong mã dưới dạng thông thường.

#define WLAN_SSID "xxx" // SSID WiFi của điểm phát sóng di động của bạn

#define WLAN_PASS "……" //

/ ************************* Thiết lập Adafruit.io ******************** ************* /

#define AIO_SERVER "io.adafruit.com"

#define AIO_SERVERPORT 1883 // sử dụng 8883 cho SSL

#define AIO_USERNAME "xyz" // Tên người dùng tài khoản adafruit của bạn

#define AIO_KEY "abcd ……" // khóa Hoạt động của bạn…

Giới thiệu về Nguồn cấp dữ liệu MQTT: Thiết bị và ứng dụng khách (ứng dụng dành cho thiết bị di động) trao đổi thông tin thông qua nguồn cấp dữ liệu tin nhắn bằng cách sử dụng mô hình phụ pub thông qua nhà môi giới MQTT. Bất kỳ khách hàng hoặc thiết bị nào để nhận được tin nhắn, nó phải đăng ký một nguồn cấp dữ liệu được xác định trước và phải sử dụng phương pháp xuất bản để gửi tin nhắn đến một nguồn cấp dữ liệu. Đối với dự án của chúng tôi, chúng tôi yêu cầu khoảng 5 nguồn cấp dữ liệu. Dưới đây là giải thích về từng nguồn cấp dữ liệu như bạn thấy trong mã và cách chúng hoạt động.

Trạng thái lưới: Tính khả dụng của nguồn điện từ lưới được công bố trên nguồn cấp dữ liệu /feeds/grid. Adafruit_MQTT_Publish grid_stat = Adafruit_MQTT_Publish (& mqtt, AIO_USERNAME "/ feeds / grid");

0 cho biết nguồn điện không khả dụng và 1 cho nguồn điện khả dụng.

Trạng thái động cơ: Thiết bị sẽ công bố trạng thái của động cơ trên nguồn cấp dữ liệu… / feeds / grid.

Adafruit_MQTT_Publish motor_status = Adafruit_MQTT_Publish (& mqtt, AIO_USERNAME "/ feeds / motor")

Giá trị 0 cho TẮT và 1 cho BẬT

Nút BẬT động cơ: Nguồn cấp dữ liệu này được sử dụng để nhận yêu cầu khởi động động cơ. Thiết bị sẽ đăng ký nguồn cấp dữ liệu để nhận yêu cầu khởi động động cơ với giá trị = 1 và sử dụng cùng một nguồn cấp dữ liệu để xuất bản thông báo xác nhận là 0. Bằng cách đó, chúng tôi có thể xác nhận thông báo yêu cầu bắt đầu đã thực sự được thiết bị nhận.

Adafruit_MQTT_Subscribe motoronbutton = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / motor_on");

Nút TẮT động cơ:

Tương tự như yêu cầu Bắt đầu, nguồn cấp dữ liệu này được sử dụng để nhận yêu cầu dừng động cơ. Thiết bị sẽ đăng ký nguồn cấp dữ liệu để nhận yêu cầu dừng với giá trị = 1 và sử dụng nguồn cấp dữ liệu tương tự để xuất bản thông báo xác nhận là 0.

Adafruit_MQTT_Subscribe motoroffbutton = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / motor_off");

Sự liên quan:

Đây là một nguồn cấp dữ liệu đặc biệt với tùy chọn "ý chí cuối cùng" được bật. Khi thiết bị hoạt động tốt ở mọi khoảng thời gian cố định, nó sẽ xuất bản kết nối = 1 để cho người dùng biết mọi thứ đều ổn. Trong trường hợp hệ thống gặp sự cố hoặc mất kết nối thì thiết bị sẽ không thể giao tiếp với nhà môi giới. Trong những trường hợp như vậy, bản thân nhà môi giới MQTT sẽ xuất bản lên nguồn cấp dữ liệu dưới dạng kết nối = 0 để cho người dùng biết đã xảy ra sự cố và thiết bị không thể truy cập được qua internet. Chúng tôi phải đi thực tế và kiểm tra thiết bị. Mã rất đơn giản. Tham khảo tài liệu MQTT để biết thêm chi tiết về cách hoạt động của “Di chúc cuối cùng”.

nếu (itr <= 0)

{

mqtt.publish (AIO_USERNAME "/ nguồn cấp dữ liệu / kết nối", "1", 1);

itr = CON_LIVE_ITR;

}

Phần còn lại của mã là tự giải thích và không cần sửa đổi. Hãy bình luận trong trường hợp bạn cần thêm thông tin.

Bước 5: Cài đặt và định cấu hình ứng dụng MQTT Dash trên điện thoại di động của bạn

Cài đặt và cấu hình MQTT Dash APP trên điện thoại di động của bạn
Cài đặt và cấu hình MQTT Dash APP trên điện thoại di động của bạn
Cài đặt và cấu hình MQTT Dash APP trên điện thoại di động của bạn
Cài đặt và cấu hình MQTT Dash APP trên điện thoại di động của bạn
Cài đặt và cấu hình MQTT Dash APP trên điện thoại di động của bạn
Cài đặt và cấu hình MQTT Dash APP trên điện thoại di động của bạn
  1. Cài đặt MQTT Dash trên điện thoại Android của bạn và mở ứng dụng
  2. Nhấp vào biểu tượng + ở góc trên cùng bên phải để thêm thiết bị.
  3. Như được hiển thị trong hình ảnh đầu tiên ở trên, hãy đặt một số tên cho thiết bị của bạn là "MyFarm-IPSet". Trường địa chỉ là io.adafruit.com và cổng là 1883, tên người dùng phải là tên người dùng adafruit của bạn và mật khẩu phải là Khóa hoạt động của bạn từ adafruit. Giữ nguyên phần còn lại của các trường. Cuối cùng nhấp vào lưu.
  4. Bạn đã tạo thiết bị của mình. Bây giờ hãy nhấp vào nó để thêm bảng điều khiển vào nó.
  5. Nhấp vào + và chọn loại là nút chuyển đổi /. Như được hiển thị ở trên, nhập sys vào trường tên. và nhập tên nguồn cấp dữ liệu vào trường chủ đề. mọi nguồn cấp dữ liệu phải bắt đầu bằng tên người dùng / nguồn cấp dữ liệu /. cho điều này chúng tôi / nguồn cấp dữ liệu / kết nối. Đảm bảo Bật xuất bản bị tắt. Bằng cách nhấp vào biểu tượng để hiển thị, bạn có thể chọn loại biểu tượng bạn muốn trên trang tổng quan. Đối với giá trị 1, hãy chọn một trong các màu (giả sử là màu xanh lá cây) và đối với giá trị 0, hãy chọn màu là xám hoặc đỏ. Cuối cùng bấm vào lưu ở góc trên cùng bên phải. Tương tự, hãy tạo thêm hai biểu tượng nữa, một cho Grid với tên người dùng / nguồn cấp dữ liệu / lưới làm chủ đề và Động cơ với tên người dùng / nguồn cấp dữ liệu / động cơ. Đảm bảo Bật xuất bản bị tắt.
  6. Cuối cùng tạo nút BẬT động cơ. Nó một lần nữa giống như loại như công tắc / nút. Chủ đề phải là / feeds / motor_on và đảm bảo Bật xuất bản được bật lần này và QOS = 1. Tương tự, tạo một nút khác để TẮT động cơ. Chủ đề phải là / feeeds / motor_off.

Bước 6: Bước cuối cùng:-) Kiểm tra và tinh chỉnh

  1. Để an toàn, trước tiên bạn cần kiểm tra thiết bị về các hoạt động START và STOP trước khi kết nối rơ le với bộ khởi động DOL. Bật Hotspot trên thiết bị di động có bật internet. Kết nối máy tính xách tay có môi trường phát triển trực tiếp với cổng USB NodeMCU với một bộ sạc khác được kết nối với TP4056 cùng một lúc. Nếu thiết bị được kết nối thành công với internet, bạn sẽ thấy 1 thiết bị được kết nối với điểm phát sóng trên điện thoại thông minh.
  2. Trên điện thoại thông minh khác mà bạn đã cài đặt MQTT Dash, hãy mở trang tổng quan ứng dụng. Bạn sẽ thấy rằng biểu tượng NET có màu xanh lục và biểu tượng Lưới cũng có màu xanh lục với các giá trị của chúng là 1. Biểu tượng động cơ sẽ hiển thị là động cơ tắt với giá trị là 0.
  3. Khi bạn nhấp vào nút BẬT động cơ, rơ le khởi động sẽ tạo ra hai âm thanh nhấp chuột trong khoảng thời gian hai giây. Tương tự nút TẮT động cơ cũng vậy.
  4. Để đảm bảo an toàn, bây giờ hãy tắt nguồn cung cấp chính cho bộ khởi động DOL và kết nối các rơ le với bộ khởi động DOL như thể hiện ở trên bước 2. Đảm bảo động cơ đã tắt. Nhấn nút đặt lại trên NodeMCU. Từ đầu ra của màn hình nối tiếp, bạn có thể thấy các câu lệnh gỡ lỗi in ra các giá trị từ cảm biến WC1700, delta và dòng điện được tính toán trong cuộn dây. Với động cơ ở trạng thái tắt và "#define WCS1700_CONST 15", maxCur nhất quán phải nhỏ hơn 2. Nếu nó hiển thị lớn hơn 2 thì hãy thử với các giá trị cao hơn của WCS1700_CONST. Mỗi lần bạn sẽ phải biên dịch lại mã và tải phần sụn.
  5. Bây giờ BẬT động cơ và tìm lại các số đọc hiện tại. Để động cơ BẬT trong khoảng 10-15 phút và ghi lại giá trị dòng điện ổn định. Dòng điện có thể thay đổi khoảng từ 10 đến 20 Amps và không cần chính xác.
  6. Quay lại mã và đặt "#define MIN_CURRENT X. Trong đó X là 40 phần trăm dòng điện tối đa gần đúng với giá trị số. Trong trường hợp của tôi, tôi đặt MIN_CURRENT thành 5. Biên dịch và tải lại chương trình cơ sở thành NodeMCU.
  7. Tháo cáp USB khỏi NodeMCU. TẮT và BẬT thiết bị bằng bộ sạc USB được kết nối với TP4056. Nhấp vào nút BẬT động cơ trên ứng dụng di động sẽ khởi động động cơ. Khi động cơ ở trạng thái của động cơ sẽ phản ánh trên bảng điều khiển ứng dụng là BẬT. Nhấp vào nút dừng sẽ dừng động cơ.

Thưởng thức !!!!

Đề xuất: