Mục lục:

Hệ thống vườn không dây: 7 bước
Hệ thống vườn không dây: 7 bước

Video: Hệ thống vườn không dây: 7 bước

Video: Hệ thống vườn không dây: 7 bước
Video: Khi bạn thua về cơ bắp thì hãy tập trung vào trí óc| Ben Eagle | Eagles Training Center | #Shorts 2024, Tháng mười một
Anonim
Hệ thống vườn không dây
Hệ thống vườn không dây

Dự án này dựa trên Arduino và sử dụng "mô-đun" để giúp bạn tưới cây và ghi nhật ký về nhiệt độ cũng như đất và mưa.

Hệ thống không dây đến 2, 4 GHz và sử dụng các mô-đun NRF24L01 để gửi và nhận dữ liệu. Hãy để tôi giải thích một chút về cách hoạt động của nó, PS! Xin lỗi nếu tiếng Anh không đúng 100%, tôi đến từ Thụy Điển.

Tôi sử dụng hệ thống này để kiểm soát các cây trồng của mình, tội lỗi là tôi có các loại cây khác nhau mà tôi cần để ghi nhật ký chúng khác nhau. Vì vậy, tôi xây dựng một hệ thống ghi nhật ký dựa trên khu vực.

Các cảm biến Soil đọc độ ẩm và nhiệt độ của đất, (chạy bằng pin) sẽ kiểm tra mỗi giờ và chuyển dữ liệu đến máy cơ sở có kết nối wifi. Dữ liệu được tải lên một máy chủ trong nhà tôi và đăng nhập vào một trang web.

Nếu đất cần nước, nó sẽ kích hoạt máy bơm chính xác tùy thuộc vào những gì cảm biến đất đã kiểm tra. Nhưng nếu trời mưa nó sẽ không tưới. Và nếu nó thực sự nóng, nó sẽ tưới thêm một ít nước.

Giả sử bạn có một đất trồng khoai tây, một đất trồng thuốc lá và một đất trồng cà chua, sau đó bạn có thể có 3 vùng với 3 cảm biến khác nhau và 3 máy bơm.

Ngoài ra còn có các cảm biến pir kiểm tra các chuyển động và nếu chúng được kích hoạt trên trang web, một tiếng còi lớn sẽ bắt đầu khiến động vật hoặc người đang đi gần cây của tôi sợ hãi.

Mong bạn hiểu đôi chút. Bây giờ chúng ta hãy bắt đầu tạo cảm biến som.

Trang GitHub của tôi nơi bạn tải xuống mọi thứ:

Bước 1: Cảm biến đất

Cảm biến đất
Cảm biến đất
Cảm biến đất
Cảm biến đất
Cảm biến đất
Cảm biến đất
Cảm biến đất
Cảm biến đất

Mỗi cảm biến có một số duy nhất được thêm vào trang web. Vì vậy, khi cảm biến đất đang truyền dữ liệu từ cảm biến đất đó sẽ được thêm vào vùng chính xác. Nếu cảm biến không được đăng ký, sẽ không có dữ liệu nào được gửi.

Đối với bản dựng này, bạn cần:

  • 1x chip Atmega328P-PU
  • 1x mô-đun nRF24L01
  • Tụ điện 1x 100 uf
  • 1x bóng bán dẫn NPN BC547
  • Tụ điện 2x 22 pF
  • Tinh thể 1x 16.000 MHz
  • 1x cảm biến Mouisture đất
  • 1x cảm biến nhiệt độ DS18B20
  • 1x Led RGB (Cực dương chung được tôi sử dụng)
  • Điện trở 3x 270 ohm
  • Điện trở 1x 4, 7 K ohm
  • Pin (tôi sử dụng pin Li-Po 3.7v)
  • Và nếu li-po được sử dụng, một mô-đun sạc cho pin.

Để giữ cho các cảm biến hoạt động trong thời gian dài, không sử dụng bất kỳ bảng Arduino làm sẵn nào, chúng sẽ làm cạn pin nhanh chóng. Thay vào đó hãy sử dụng chip Atmega328P.

Kết nối mọi thứ như nó hiển thị trong bảng điện của tôi. (Xem hình ảnh hoặc tệp PDF) Khuyến nghị cũng là thêm một công tắc nguồn, để bạn có thể cắt điện khi sạc.

Khi tải mã lên, đừng quên xác định cảm biến để cung cấp cho chúng một số ID duy nhất, mã này có sẵn trên trang GitHub của tôi.

Để giữ cho các cảm biến đất tồn tại trong thời gian dài, tôi sử dụng một bóng bán dẫn NPN để cấp nguồn cho chúng, chỉ khi quá trình đọc bắt đầu. Vì vậy, chúng không được kích hoạt mọi lúc, Mỗi cảm biến có số ID từ 45XX đến 5000 (có thể thay đổi) vì vậy mỗi cảm biến phải có các số duy nhất, tất cả những gì bạn cần làm là xác định trong mã.

Các cảm biến sẽ chuyển sang chế độ ngủ để tiết kiệm pin.

Bước 2: Cảm biến động vật

Cảm biến động vật
Cảm biến động vật
Cảm biến động vật
Cảm biến động vật
Cảm biến động vật
Cảm biến động vật
Cảm biến động vật
Cảm biến động vật

Cảm biến Động vật là một cảm biến pir đơn giản. Nó cảm nhận được sức nóng từ động vật hoặc con người. Nếu cảm biến đang phát hiện chuyển động. Họ sẽ gửi đến trạm gốc.

Nhưng sẽ không có bất kỳ báo thức nào, để làm như vậy, trên trang bạn phải kích hoạt nó, hoặc nếu bạn đã thiết lập bộ đếm thời gian, nó sẽ tự động kích hoạt thời gian đó.

Nếu đế nhận được tín hiệu chuyển động từ cảm biến Động vật, nó sẽ truyền tín hiệu đó đến cảm biến Còi báo động và (tôi hy vọng) sẽ khiến động vật sợ hãi. Còi báo động của tôi ở mức 119 db.

Cảm biến pir chạy bằng pin và tôi đã đặt nó trong một hộp cảm biến pir cũ từ một chiếc báo động cũ. Cáp đi ra từ cảm biến động vật chỉ là để sạc pin.

Đối với cảm biến này, bạn cần:

  • Chip ATMEGA328P-PU
  • Tinh thể 1 x 16 000 MHz
  • Tụ điện 2 x 22 pF
  • 1 x mô-đun cảm biến Pir
  • 1 x 100 uF tụ điện
  • 1 x mô-đun NRF24L01
  • 1 x Led (Tôi không sử dụng bất kỳ đèn LED RGB nào ở đây)
  • 1 x điện trở 220 ohm
  • Nếu bạn sẽ chạy bằng pin, bạn cần cái đó (tôi sử dụng Li-Po)
  • Mô-đun sạc pin nếu bạn có pin sạc lại.
  • Một số loại công tắc nguồn.

Kết nối mọi thứ như bạn thấy trên bảng điện. Kiểm tra để bạn có thể cấp nguồn cho cảm biến pir từ pin của bạn (Một số cần 5v để chạy).

Lấy mã từ GitHub của tôi và xác định cảm biến phù thủy mà bạn sẽ sử dụng (Ví dụ: SENS1, SENS2, v.v.) để chúng nhận được các số duy nhất.

Chip ATMEGA sẽ chỉ thức dậy khi chuyển động được đăng ký. Sins mô-đun cảm biến pir đã tích hợp bộ đếm thời gian cho độ trễ, không có gì cho điều đó trong mã, vì vậy hãy điều chỉnh nồi trên bộ cảm biến pir cho độ trễ nó sẽ hoạt động.

Đó là đối với cảm biến động vật, chúng tôi đang tiếp tục.

Bước 3: Bộ điều khiển máy bơm nước

Bộ điều khiển máy bơm nước
Bộ điều khiển máy bơm nước
Bộ điều khiển máy bơm nước
Bộ điều khiển máy bơm nước
Bộ điều khiển máy bơm nước
Bộ điều khiển máy bơm nước
Bộ điều khiển máy bơm nước
Bộ điều khiển máy bơm nước

Bộ điều khiển máy bơm nước là để khởi động một máy bơm hoặc van nước để tưới nước cho các cánh đồng của bạn. Đối với hệ thống này, bạn không cần pin, bạn cần nguồn điện để chạy máy bơm. Sử dụng mô-đun AC 230 đến DC 5 v để chạy Arduino Nano. Ngoài ra, tôi có các loại máy bơm, Một loại sử dụng van Nước chạy trên 12 v để tôi có một mô-đun AC 230 đến DC 12v vào bảng tiếp điện.

Cái còn lại là 230 AC vào rơ le để tôi có thể cấp nguồn cho Máy bơm 230 V AC.

Hệ thống khá đơn giản, mỗi bộ điều khiển máy bơm có số id duy nhất, vì vậy giả sử ruộng khoai tây khô và cảm biến được đặt thành nước tự động, sau đó máy bơm của tôi dành cho ruộng khoai tây được thêm vào cảm biến đó, vì vậy cảm biến đất. đang nói với hệ thống cơ sở rằng việc tưới nước sẽ bắt đầu, vì vậy hệ thống cơ sở sẽ gửi tín hiệu đến máy bơm đó để kích hoạt.

Bạn có thể đặt khoảng thời gian nó sẽ chạy trên trang web (ví dụ: 5 phút) vì các cảm biến chỉ kiểm tra mỗi giờ. Ngoài ra khi máy bơm dừng nó sẽ lưu trữ thời gian trong hệ thống nên hệ thống tự động sẽ không khởi động máy bơm sớm. (Cũng có thể thiết lập trên trang web).

Bạn cũng có thể thông qua trang web để tắt tưới vào ban đêm / ngày bằng cách thiết lập thời gian đặc biệt. Và cũng thiết lập bộ hẹn giờ cho mỗi máy bơm để bắt đầu tưới nước. Và nếu trời mưa họ sẽ không tưới.

Mong là bạn hiểu:)

Đối với dự án này, bạn cần:

  • 1 x Arduino Nano
  • 1 x mô-đun NRF24L01
  • 1 x 100 uF tụ điện
  • 1 LED RGB (cực dương chung được tôi sử dụng)
  • Điện trở 3 x 270 ohm
  • 1 x bảng chuyển tiếp

Kết nối mọi thứ dưới dạng bảng điện (xem tệp pdf hoặc hình ảnh) Tải xuống mã từ GitHub và đừng quên xác định số cảm biến.

Và bây giờ bạn có một bộ điều khiển máy bơm, hệ thống có thể xử lý nhiều hơn một.

Bước 4: Cảm biến mưa

Cảm biến mưa
Cảm biến mưa
Cảm biến mưa
Cảm biến mưa
Cảm biến mưa
Cảm biến mưa
Cảm biến mưa
Cảm biến mưa

Cảm biến mưa được sử dụng để phát hiện mưa. Bạn không cần nhiều hơn một. Nhưng có thể bổ sung thêm, cảm biến mưa này chạy bằng pin và kiểm tra mưa cứ sau 30 phút, chúng cũng có số duy nhất để tự nhận dạng.

Cảm biến gạt mưa sử dụng chân analogue và kỹ thuật số. Chốt kỹ thuật số là để kiểm tra xem trời có mưa hay không, (Đồng hồ kỹ thuật số chỉ hiển thị có hoặc không) và bạn phải đặt nồi trên mô-đun cảm biến mưa khi có thể để cảnh báo về "mưa" (mức nước trên cảm biến đó. chỉ ra trời mưa.)

Chân tương tự được sử dụng để thông báo bằng phần trăm mức độ ướt của nó trên cảm biến.

Nếu chân kỹ thuật số phát hiện trời mưa, cảm biến sẽ gửi nó đến hệ thống cơ sở. Và hệ thống gốc sẽ không tưới cây nếu trời "mưa". Cảm biến cũng cho biết mức độ ẩm ướt và tình trạng pin.

Chúng tôi chỉ cấp nguồn cho cảm biến mưa khi đến lúc đọc thông qua bóng bán dẫn cho phép thông qua chân kỹ thuật số.

Đối với cảm biến này, bạn cần:

  • Chip ATMEGA328P-PU
  • Tinh thể 1x 16 000 MHz
  • Tụ điện 2x 22 pF
  • 1x mô-đun cảm biến mưa
  • Tụ điện 1x 100 uF
  • 1x mô-đun NRF24L01
  • 1x RGB Led (tôi đã sử dụng cực dương chung, nó là VCC thay vì GND)
  • Điện trở 3x 270 Ohm
  • 1x bóng bán dẫn NPN BC547
  • 1x Pin (Tôi sử dụng Li-Po)
  • 1x Mô-đun bộ sạc Li-Po (nếu sử dụng pin Li-Po)

Kết nối mọi thứ như bạn thấy trên bảng điện (bằng pdf hoặc trong hình ảnh Sau đó tải mã lên chip ATMEGA như bạn có thể tìm thấy trong trang GitHub của tôi dưới Cảm biến mưa Đừng quên xác định cảm biến để có số id phù hợp.

Và bây giờ bạn sẽ có một cảm biến mưa chạy 30 phút một lần. Bạn có thể thay đổi thời gian trên điều này nếu bạn không muốn nó ít hơn hoặc nhiều hơn.

Trong hàm counterHandler (), bạn có thể thiết lập thời gian đánh thức cho chip, bạn tính toán như sau: Các chip sẽ thức dậy sau mỗi 8 giây và mỗi lần nó sẽ tăng một giá trị.. Vì vậy, có 1800 giây trong một nửa giờ. Vì vậy, chia nó cho 8 (1800/8) bạn sẽ nhận được 225. Điều đó có nghĩa là nó sẽ không kiểm tra cảm biến cho đến khi nó chạy 225 lần và đó sẽ là khoảng 30 phút. Bạn cũng làm tương tự trên cảm biến đất.

Bước 5: Còi báo động vật

Còi báo động vật
Còi báo động vật
Còi báo động vật
Còi báo động vật
Còi báo động vật
Còi báo động vật
Còi báo động vật
Còi báo động vật

Còi báo động động vật rất đơn giản khi cảm biến động vật phát hiện chuyển động, còi báo động sẽ được kích hoạt. Tôi sử dụng còi báo động thực để tôi thậm chí có thể dọa mọi người bằng nó. Nhưng bạn cũng có thể sử dụng còi báo động mà chỉ động vật mới nghe thấy.

Tôi sử dụng một nano Arduino trong dự án này và cấp nguồn cho nó với 12v. Còi báo động cũng là 12 v vì vậy thay vì một rơ le, tôi sẽ sử dụng một bóng bán dẫn 2N2222A để kích hoạt còi báo động. Nếu bạn sử dụng một rơ le khi bạn có cùng một mặt đất, bạn có thể làm hỏng Arduino của mình. Vì vậy, đó là lý do tại sao tôi sử dụng một bóng bán dẫn để kích hoạt còi báo động.

Nhưng nếu còi báo động của bạn và Arduino không sử dụng cùng một mặt đất, bạn có thể sử dụng rơ le để thay thế. Bỏ qua bóng bán dẫn và điện trở 2,2K, thay vào đó sử dụng bảng chuyển tiếp. Và cũng thay đổi trong mã Arduino khi được kích hoạt, thay đổi từ CAO thành THẤP và khi không kích hoạt chuyển từ LOW sang CAO och kỹ thuật số đọc cho chân 10, tội lỗi là rơ le sử dụng LOW để kích hoạt và bóng bán dẫn sử dụng CAO, vì vậy bạn cần phải chuyển điều này.

Đối với bản dựng này, bạn cần:

  • 1x Arduino nano
  • 1x Điện trở 2.2K (Bỏ qua nếu sử dụng bảng tiếp điện)
  • 1x bóng bán dẫn 2N2222
  • 1x Còi báo động
  • Điện trở 3x 270 Ohm
  • 1x LED RGB (tôi sử dụng cực dương chung, VCC thay vì GND)
  • 1X NRF24L01 mô-đun
  • Tụ điện 1x 100 uF

Kết nối mọi thứ như bạn thấy trên bảng điện dưới dạng PDF hoặc trong hình ảnh. Tải mã lên Arduino mà bạn tìm thấy trên trang GitHub của tôi trong Animal Siren Đừng quên xác định cảm biến để có số ID chính xác.

Và bây giờ bạn có một còi báo động hoạt động.

Bước 6: Hệ thống chính

Hệ thống chính
Hệ thống chính
Hệ thống chính
Hệ thống chính
Hệ thống chính
Hệ thống chính

Hệ thống chính là hệ thống quan trọng nhất trong tất cả các mô-đun. Nếu không có nó, bạn không thể sử dụng hệ thống này. Hệ thống chính được kết nối với internet bằng mô-đun ESP-01 và chúng tôi đang sử dụng các chân Arduino Megas Serial1 để kết nối nó. RX trên Mega thành TX trên ESP nhưng chúng tôi cần phải đi qua hai điện trở để giảm volt xuống 3,3. Và TX trên Mega thành RX trên ESP.

Thiết lập Mô-đun ESP

Để sử dụng ESP, trước tiên bạn cần đặt tốc độ truyền trên nó thành 9600, đó là những gì tôi đã sử dụng trong dự án này và tôi nhận thấy rằng ESP hoạt động tốt nhất như vậy. Ngoài ra, nó được đặt ở tốc độ 115200 baud, bạn có thể thử nó nhưng của tôi không ổn định như vậy. Để làm điều đó, bạn cần một Arduino (Mega hoạt động tốt) và bạn cần kết nối TX của ESP (thông qua các điện trở như bạn thấy trên trang tính) với Serial TX (không phải Serial1 nếu sử dụng Mega) và RX trên ESP với Arduino Serial RX.

Tải lên bản phác thảo nhấp nháy (hoặc bất kỳ bản phác thảo nào không sử dụng nối tiếp) và mở màn hình nối tiếp và đặt tốc độ truyền thành 115200 và NR & CR trên các dòng

Trong dòng lệnh, viết AT và nhấn enter. Bạn sẽ nhận được phản hồi cho biết OK, vì vậy bây giờ chúng tôi biết rằng ESP đang hoạt động. (Nếu không, có sự cố kết nối hoặc mô-đun ESP-01 bị lỗi)

Bây giờ trong dòng lệnh, viết AT + UART_DEF = 9600, 8, 1, 0, 0 và nhấn enter.

Nó sẽ phản hồi với một OK và điều này có nghĩa là chúng tôi đã đặt tốc độ truyền là 9600. Khởi động lại ESP bằng lệnh sau: AT + RST và nhấn enter. Thay đổi tốc độ truyền trong màn hình nối tiếp thành 9600 và nhập AT và nhấn enter. Nếu bạn OK trở lại, ESP đã được thiết lập cho 9600 và bạn có thể sử dụng nó cho dự án.

Mô-đun thẻ SD

Tôi muốn có thể dễ dàng thay đổi cài đặt WIFI cho hệ thống, trong trường hợp mật khẩu mới được thay đổi hoặc tên wifi. Vì vậy, đó là lý do tại sao chúng ta cần mô-đun Thẻ SD. Bên trong Thẻ SD, hãy tạo một tệp văn bản với tên config.txt và chúng tôi đang sử dụng JSON để đọc, vì vậy chúng tôi cần định dạng JSON. Vì vậy, tệp văn bản phải có văn bản sau:

}

Thay đổi văn bản bằng các chữ cái LỚN để sửa cho mạng wifi của bạn.

Tội lỗi chúng tôi đang sử dụng NRF24L01 sử dụng SPI và Đầu đọc thẻ SD cũng sử dụng SPI, chúng tôi cần sử dụng thư viện SDFat để chúng tôi có thể sử dụng SoftwareSPI (chúng tôi có thể thêm đầu đọc thẻ SD trên bất kỳ chân nào)

Cảm biến DHT

Hệ thống này được đặt bên ngoài và có cảm biến DHT để chúng ta có thể kiểm tra độ ẩm và nhiệt độ của không khí. Nó được sử dụng để tưới thêm vào những ngày nắng nóng.

Đối với bản dựng này, bạn cần:

  • 1x Arduino Mega
  • 1x Mô-đun NRF24L01
  • 1x Mô-đun ESP-01
  • 1x Mô-đun thẻ Micro SD SPI
  • 1x cảm biến DHT-22
  • 1x LED RGB (tôi đã sử dụng cực dương chung, VCC thay vì GND)
  • Điện trở 3x 270 Ohm
  • Điện trở 1x 22 K Ohm
  • Điện trở 2x 10 K Ohm

Xin lưu ý rằng nếu bạn không có được mô-đun ESP-01 ổn định, hãy thử cấp nguồn cho nó từ nguồn điện 3.3v bên ngoài.

Kết nối mọi thứ như bạn thấy trong bảng điện trong tệp PDF hoặc trong hình ảnh.

Tải mã lên Arduino Mega của bạn và đừng quên kiểm tra toàn bộ mã để nhận xét, vì bạn cần đặt máy chủ lưu trữ thành máy chủ ở nhiều nơi (đó không phải là giải pháp tốt nhất mà tôi biết).

Bây giờ hệ thống cơ sở của bạn đã sẵn sàng để sử dụng. Bạn không cần phải thay đổi các biến trong mã cho lỗi độ ẩm của đất mà bạn có thể làm điều đó ngay từ trang web.

Bước 7: Hệ thống web

Hệ thống web
Hệ thống web
Hệ thống web
Hệ thống web
Hệ thống web
Hệ thống web
Hệ thống web
Hệ thống web

Để sử dụng hệ thống, bạn cũng cần một máy chủ web. Tôi sử dụng pi raspberry với Apache, PHP, Mysql, Gettext. Hệ thống web đa ngôn ngữ nên bạn có thể dễ dàng tạo nó bằng ngôn ngữ của mình. Nó đi kèm với tiếng Thụy Điển và tiếng Anh (tiếng Anh có thể có tiếng Anh không chính xác, bản dịch của tôi không đúng 100%.) Vì vậy, bạn cần phải cài đặt Gettext cho máy chủ của mình và cả ngôn ngữ.

Tôi cho bạn xem một số ảnh chụp màn hình ở trên từ hệ thống.

Nó đi kèm với một hệ thống đăng nhập đơn giản và thông tin đăng nhập chính là: admin với tư cách là người dùng và water là mật khẩu.

Để sử dụng nó, bạn phải thiết lập ba công việc cron (bạn tìm thấy chúng trong thư mục cronjob)

Tệp timer.php bạn cần chạy mỗi giây. Tên tệp temperatur.php được sử dụng để thông báo cho hệ thống đọc nhiệt độ không khí và ghi nhật ký. Vì vậy, bạn cần thiết lập một công việc cron về tần suất bạn sẽ chạy nó. Tôi có nó cứ sau 5 phút. Sau đó, tệp có tên dagstatistik.php chỉ nên chạy một lần trước nửa đêm (như 23:30, 11:30 PM). Nó lấy các giá trị được báo cáo từ các cảm biến trong ngày và lưu nó cho tĩnh tuần và tháng.

Xin lưu ý rằng hệ thống này lưu trữ nhiệt độ bằng độ C, nhưng bạn có thể đổi sang độ F.

Trong tệp db.php, bạn thiết lập kết nối cơ sở dữ liệu mysql cho hệ thống.

Đầu tiên, thêm các cảm biến vào hệ thống. Và sau đó tạo các khu vực và thêm cảm biến vào các khu vực.

Nếu bạn có thắc mắc hoặc tìm thấy lỗi trong hệ thống, vui lòng báo cáo trên trang GitHub. Bạn có thể sử dụng hệ thống web và bạn không được phép bán nó.

Nếu bạn gặp sự cố với ngôn ngữ cho gettext, hãy nhớ rằng nếu bạn sử dụng raspberry làm máy chủ, chúng thường được đặt tên như en_US. UTF-8, vì vậy bạn cần thực hiện những thay đổi đó trong tệp i18n_setup.php và trong thư mục ngôn ngữ. Nếu không, bạn sẽ bị mắc kẹt với ngôn ngữ Thụy Điển.

Bạn tải xuống trên trang GitHub.

Đề xuất: