Mục lục:

Máy đo độ ẩm đất năng lượng mặt trời với ESP8266: 10 bước (có hình ảnh)
Máy đo độ ẩm đất năng lượng mặt trời với ESP8266: 10 bước (có hình ảnh)

Video: Máy đo độ ẩm đất năng lượng mặt trời với ESP8266: 10 bước (có hình ảnh)

Video: Máy đo độ ẩm đất năng lượng mặt trời với ESP8266: 10 bước (có hình ảnh)
Video: Arduino | Hướng dẫn sử dụng cảm biến độ ẩm đất 2024, Tháng bảy
Anonim

Trong Có thể hướng dẫn này, chúng tôi đang tạo một máy theo dõi độ ẩm đất chạy bằng năng lượng mặt trời. Nó sử dụng bộ vi điều khiển wifi ESP8266 chạy mã công suất thấp và mọi thứ đều không thấm nước nên có thể để bên ngoài. Bạn có thể làm theo công thức này một cách chính xác hoặc lấy từ nó những kỹ thuật hữu ích cho các dự án của riêng bạn.

Nếu bạn là người mới lập trình vi điều khiển, vui lòng xem Lớp Arduino và Lớp Internet of Things của tôi để nắm bắt kiến thức cơ bản về đấu dây, mã hóa và kết nối với internet.

Dự án này là một phần của Lớp học năng lượng mặt trời miễn phí của tôi, nơi bạn có thể tìm hiểu thêm các cách khai thác năng lượng mặt trời thông qua việc khắc và các tấm pin mặt trời.

Để cập nhật những gì tôi đang làm, hãy theo dõi tôi trên YouTube, Instagram, Twitter, Pinterest và đăng ký nhận bản tin của tôi.

Bước 1: Những gì bạn cần

Những gì bạn cần
Những gì bạn cần

Bạn sẽ cần một bảng sạc pin năng lượng mặt trời và thiết bị ngắt điện ESP8266 chẳng hạn như NodeMCU ESP8266 hoặc Huzzah, cũng như cảm biến đất, pin, công tắc nguồn, một số dây và vỏ để đặt mạch của bạn vào bên trong.

Dưới đây là các thành phần và vật liệu được sử dụng cho máy theo dõi độ ẩm của đất:

  • Bộ vi điều khiển ESP8266 NodeMCU (hoặc tương tự, Vin phải chịu đến 6V)
  • Bảng sạc năng lượng mặt trời Adafruit với nhiệt điện trở tùy chọn và điện trở 2,2K ohm
  • Pin li-ion 2200mAh
  • Perma-proto board
  • Cảm biến nhiệt độ / độ ẩm của đất
  • 2 tuyến cáp
  • Vỏ chống thấm nước
  • Cặp cáp nguồn DC chống nước
  • Ống co nhiệt
  • Bảng điều khiển năng lượng mặt trời 3.5W
  • Nút nhấn công tắc nguồn
  • Băng dính kép xốp

Dưới đây là những công cụ bạn sẽ cần:

  • Hàn sắt và thuốc hàn
  • Dụng cụ trợ giúp tay
  • Dụng cụ tuốt dây
  • Cắt xả
  • Nhíp (tùy chọn)
  • Súng bắn nhiệt hoặc bật lửa
  • Đồng hồ vạn năng (tùy chọn nhưng tiện dụng để khắc phục sự cố)
  • Cáp USB A-microB
  • Cây kéo
  • Bước khoan

Bạn sẽ cần tài khoản miễn phí trên các trang web dữ liệu đám mây io.adafruit.com và IFTTT.

Với tư cách là Cộng tác viên của Amazon, tôi kiếm được từ các giao dịch mua đủ điều kiện mà bạn thực hiện bằng cách sử dụng các liên kết liên kết của tôi.

Bước 2: Nguyên mẫu Breadboard

Nguyên mẫu Breadboard
Nguyên mẫu Breadboard

Điều quan trọng là phải tạo nguyên mẫu bảng mạch không hàn cho các dự án như thế này, vì vậy bạn có thể đảm bảo cảm biến và mã của mình đang hoạt động trước khi thực hiện bất kỳ kết nối lâu dài nào.

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

Trong trường hợp này, cảm biến đất có dây bị mắc kẹt, cần phải gắn tạm thời các đầu cứng vào các đầu của dây cảm biến bằng cách sử dụng hàn, tay đỡ và một số ống co nhiệt.

Hình ảnh
Hình ảnh

Làm theo sơ đồ mạch để đấu dây nguồn, tiếp đất, đồng hồ và chân dữ liệu của cảm biến (dữ liệu cũng nhận được điện trở kéo lên 10K đi kèm với cảm biến đất).

  • Cảm biến dây màu xanh lá cây đến GND
  • Cảm biến dây đỏ đến 3.3V
  • Dây màu vàng của cảm biến đến chân NodeMCU D5 (GPIO 14)
  • Dây màu xanh lam của cảm biến đến chân NodeMCU D6 (GPIO 12)
  • Điện trở kéo lên 10K giữa chân dữ liệu màu xanh lam và 3,3V

Bạn có thể dịch điều này sang bộ vi điều khiển ưa thích của mình. Nếu bạn đang sử dụng Arduino Uno hoặc tương tự, thì bo mạch của bạn đã được phần mềm Arduino hỗ trợ. Nếu bạn đang sử dụng ESP8266, vui lòng xem Lớp Internet of Things của tôi để được trợ giúp từng bước về cách thiết lập với ESP8266 trong Arduino (bằng cách thêm URL bổ sung vào trường URL trình quản lý bảng bổ sung trong tùy chọn của Arduino, sau đó tìm kiếm và chọn ban mới từ người quản lý ban). Tôi có xu hướng sử dụng loại bo mạch Adafruit ESP8266 Huzzah để lập trình bo mạch NodeMCU ESP8266, nhưng bạn cũng có thể cài đặt và sử dụng hỗ trợ bo mạch Generic ESP8266. Bạn cũng sẽ cần trình điều khiển chip giao tiếp SiLabs USB (khả dụng cho Mac / Windows / Linux).

Để thiết lập và chạy cảm biến với bảng tương thích với Arduino của mình, tôi đã tải xuống Thư viện Arduino SHT1x từ trang github của Arduino thực tế, sau đó giải nén tệp và chuyển thư mục thư viện sang thư mục Arduino / thư viện của tôi, sau đó đổi tên nó thành SHT1x. Mở bản phác thảo ví dụ ReadSHT1xValues và thay đổi số pin thành 12 (dataPin) và 14 (clockPin) hoặc sao chép bản phác thảo đã sửa đổi tại đây:

#bao gồm

#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // khởi tạo đối tượng SHT1x void setup () {Serial.begin (38400); // Mở kết nối nối tiếp để báo giá trị cho host Serial.println ("Đang khởi động"); } void loop () {float temp_c; float temp_f; độ ẩm nổi; temp_c = sht1x.readTempenticC (); // Đọc các giá trị từ cảm biến temp_f = sht1x.readTempe HeatF (); độ ẩm = sht1x.readHumidity (); Serial.print ("Nhiệt độ:"); // In các giá trị vào cổng nối tiếp Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Độ ẩm:"); Serial.print (độ ẩm); Serial.println ("%"); chậm trễ (2000); }

Tải mã này lên bảng của bạn và mở màn hình nối tiếp để xem luồng dữ liệu cảm biến.

Nếu mã của bạn không được biên dịch và phàn nàn về việc không tìm thấy SHT1x.h, thì bạn chưa cài đặt đúng thư viện cảm biến cần thiết. Kiểm tra thư mục Arduino / thư viện của bạn xem có tên là SHT1x không và nếu nó ở đâu đó khác, chẳng hạn như thư mục tải xuống của bạn, hãy chuyển nó vào thư mục thư viện Arduino của bạn và đổi tên nếu cần.

Nếu mã của bạn được biên dịch nhưng không tải lên bảng của bạn, hãy kiểm tra kỹ cài đặt bảng của bạn, đảm bảo rằng bảng của bạn đã được cắm vào và chọn đúng cổng từ menu Công cụ.

Nếu mã của bạn tải lên nhưng đầu vào màn hình nối tiếp của bạn không thể nhận dạng được, hãy kiểm tra lại tốc độ truyền phù hợp với chỉ định trong bản phác thảo của bạn (trong trường hợp này là 38400).

Nếu đầu vào màn hình nối tiếp của bạn có vẻ không chính xác, hãy kiểm tra kỹ hệ thống dây điện của bạn với sơ đồ mạch. Điện trở kéo lên 10K của bạn có ở vị trí giữa chân dữ liệu và 3,3V không? Dữ liệu và đồng hồ có được kết nối với các chân chính xác không? Nguồn và đất có được kết nối như chúng phải được thông suốt mạch không? Đừng tiếp tục cho đến khi bản phác thảo đơn giản này hoạt động!

Bước tiếp theo dành riêng cho ESP8266 và định cấu hình phần báo cáo cảm biến không dây tùy chọn của dự án mẫu. Nếu bạn đang sử dụng vi điều khiển tương thích với Arduino tiêu chuẩn (không dây), hãy tiếp tục phát triển bản phác thảo Arduino cuối cùng của bạn và bỏ qua để Chuẩn bị Bảng sạc năng lượng mặt trời.

Bước 3: Thiết lập phần mềm

Thiết lập phần mềm
Thiết lập phần mềm

Để biên dịch mã cho dự án này với ESP8266, bạn sẽ cần cài đặt thêm một vài thư viện Arduino (có sẵn thông qua trình quản lý thư viện):

  • Adafruit IO Arduino
  • Adafruit MQTT
  • ArduinoHttpClient

Tải xuống mã được đính kèm ở bước này, sau đó giải nén tệp và mở Solar_Powered_Soil_Moisture_Monitor_Tutorial trong phần mềm Arduino của bạn.

#bao gồm

#include #include #include #include // Chỉ định kết nối dữ liệu và đồng hồ và khởi tạo đối tượng SHT1x #define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // thiết lập nguồn cấp dữ liệu AdafruitIO_Feed * Moisturiser = io.feed ("Moisturiser"); AdafruitIO_Feed * nhiệt độ = io.feed ("nhiệt độ"); const int sleepTime = 15; // 15 phút

void setup ()

{Serial.begin (115200); // Mở kết nối nối tiếp để báo giá trị cho host Serial.println ("Đang khởi động"); // kết nối với io.adafruit.com Serial.print ("Đang kết nối với IO Adafruit"); io.connect (); // đợi kết nối while (io.status () <AIO_CONNECTED) {Serial.print ("."); chậm trễ (500); } // chúng ta được kết nối Serial.println (); Serial.println (io.statusText ()); }

void loop ()

{io.run (); // io.run (); giữ cho khách hàng được kết nối và được yêu cầu cho tất cả các bản phác thảo. float temp_c; float temp_f; độ ẩm nổi; temp_c = sht1x.readTempenticC (); // Đọc các giá trị từ cảm biến temp_f = sht1x.readTempe HeatF (); ẩm = sht1x.readHumidity (); Serial.print ("Nhiệt độ:"); // In các giá trị vào cổng nối tiếp Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Độ ẩm:"); Serial.print (độ ẩm); Serial.println ("%"); độ ẩm-> lưu (độ ẩm); nhiệt độ-> lưu (temp_f); Serial.println ("ESP8266 đang ngủ…"); ESP.deepSleep (thời gian ngủ * 1000000 * 60); // Ngủ }

Mã này là bản kết hợp của mã cảm biến trước đó trong hướng dẫn này và là một ví dụ cơ bản từ dịch vụ dữ liệu đám mây Adafruit IO. Chương trình chuyển sang chế độ công suất thấp và hầu hết thời gian ở chế độ ngủ, nhưng thức dậy sau mỗi 15 phút để đọc nhiệt độ và độ ẩm của đất, đồng thời báo cáo dữ liệu của nó cho Adafruit IO. Điều hướng đến tab config.h và điền vào tên người dùng và khóa Adafruit IO của bạn, cũng như tên và mật khẩu mạng wifi cục bộ của bạn, sau đó tải mã lên bộ vi điều khiển ESP8266 của bạn.

Hình ảnh
Hình ảnh

Bạn sẽ phải chuẩn bị một chút trên io.adafruit.com. Sau khi tạo nguồn cấp dữ liệu cho nhiệt độ và độ ẩm, bạn có thể tạo trang tổng quan cho màn hình của mình có biểu đồ về các giá trị cảm biến và cả dữ liệu của nguồn cấp dữ liệu đến. Nếu bạn cần bồi dưỡng về cách bắt đầu với Adafruit IO, hãy xem bài học này trong Lớp học Internet of Things của tôi.

Bước 4: Chuẩn bị bảng sạc năng lượng mặt trời

Chuẩn bị bảng sạc năng lượng mặt trời
Chuẩn bị bảng sạc năng lượng mặt trời

Chuẩn bị bảng sạc năng lượng mặt trời bằng cách hàn tụ điện của nó và một số dây dẫn vào miếng đệm đầu ra tải. Tôi đang tùy chỉnh để sạc với tốc độ nhanh hơn bằng một điện trở bổ sung tùy chọn (2,2K được hàn trên PROG) và giúp an toàn hơn khi không cần giám sát bằng cách thay thế điện trở gắn trên bề mặt bằng một điện trở nhiệt 10K được gắn vào chính pin. Điều này sẽ hạn chế việc sạc pin trong phạm vi nhiệt độ an toàn. Tôi đã trình bày chi tiết hơn về những sửa đổi này trong dự án Bộ sạc USB năng lượng mặt trời của mình.

Bước 5: Xây dựng mạch vi điều khiển

Xây dựng mạch vi điều khiển
Xây dựng mạch vi điều khiển
Hình ảnh
Hình ảnh
Hình ảnh
Hình ảnh

Hàn bo mạch vi điều khiển và chuyển nguồn sang bo mạch perma-proto.

Hình ảnh
Hình ảnh

Kết nối đầu ra nguồn của bộ sạc năng lượng mặt trời với đầu vào của công tắc của bạn, đầu vào của công tắc phải được xếp hạng cho ít nhất 1 amp.

Hình ảnh
Hình ảnh

Tạo và hàn các kết nối dây breadboard được mô tả trong sơ đồ mạch ở trên (hoặc với thông số kỹ thuật của phiên bản cá nhân của bạn), bao gồm cả điện trở kéo lên 10K trên đường dữ liệu của cảm biến.

Chân tải của bộ sạc năng lượng mặt trời sẽ cung cấp nguồn pin 3,7V khi không có nguồn năng lượng mặt trời, nhưng sẽ được cấp nguồn trực tiếp từ bảng điều khiển năng lượng mặt trời nếu nó được cắm điện và có nắng. Do đó, bộ vi điều khiển phải có khả năng chịu được nhiều loại điện áp khác nhau, từ 3,7V đến 6V DC. Đối với những thiết bị yêu cầu 5V, PowerBoost (500 hoặc 1000, tùy thuộc vào dòng điện yêu cầu) có thể được sử dụng để điều chỉnh Điện áp tải thành 5V (như được hiển thị trong dự án Bộ sạc USB năng lượng mặt trời). Dưới đây là một số bo mạch phổ biến và dải điện áp đầu vào của chúng:

  • NodeMCU ESP8266 (được sử dụng tại đây): 5V USB hoặc 3.7V-10V Vin
  • Arduino Uno: 5V USB hoặc 7-12V Vin
  • Adafruit Huzzah ESP8266 Đột phá: 5V USB hoặc 3.4-6V VBat

Để đạt được thời lượng pin lâu nhất có thể, bạn nên dành một chút thời gian để xem xét và tối ưu hóa tổng dòng điện hiện tại của bạn. ESP8266 có tính năng ngủ sâu mà chúng tôi đã sử dụng trong bản phác thảo Arduino để giảm đáng kể mức tiêu thụ điện năng của nó. Nó thức dậy để đọc cảm biến và hút thêm dòng điện trong khi nó kết nối với mạng để báo cáo giá trị của cảm biến, sau đó quay trở lại chế độ ngủ trong một khoảng thời gian nhất định. Nếu bộ vi điều khiển của bạn tiêu thụ nhiều điện năng và không thể dễ dàng chuyển sang chế độ ngủ, hãy cân nhắc chuyển dự án của bạn sang một bảng tương thích tiêu thụ ít điện năng hơn. Hãy đặt câu hỏi trong phần bình luận bên dưới nếu bạn cần trợ giúp để xác định bảng nào có thể phù hợp với dự án của bạn.

Bước 6: Cài đặt Cable Glands

Hình ảnh
Hình ảnh

Để tạo các điểm vào chịu thời tiết cho cáp bảng điều khiển năng lượng mặt trời và cáp cảm biến, chúng tôi sẽ lắp đặt hai tuyến cáp vào mặt bên của vỏ bọc chống thời tiết.

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

Kiểm tra độ khít của các bộ phận của bạn để xác định vị trí lý tưởng, sau đó đánh dấu và khoan các lỗ trên vỏ bọc chống thấm bằng cách sử dụng khoan bước. Cài đặt hai tuyến cáp.

Hình ảnh
Hình ảnh

Bước 7: Hoàn thành lắp ráp mạch

Hoàn thành lắp ráp mạch
Hoàn thành lắp ráp mạch

Cắm mặt cổng của cáp nguồn chống thấm nước vào một đầu và hàn nó với đầu vào DC của bộ sạc năng lượng mặt trời (đỏ thành + và đen thành -).

Hình ảnh
Hình ảnh

Chèn cảm biến đất qua tuyến kia và kết nối nó với perma-proto theo sơ đồ mạch.

Hình ảnh
Hình ảnh

Dán đầu dò nhiệt điện trở vào pin. Điều này sẽ hạn chế việc sạc pin đến một phạm vi nhiệt độ an toàn trong khi dự án không được giám sát bên ngoài.

Hình ảnh
Hình ảnh

Sạc trong khi quá nóng hoặc quá lạnh có thể làm hỏng pin hoặc gây cháy. Tiếp xúc với nhiệt độ khắc nghiệt có thể gây hư hỏng và làm giảm tuổi thọ của pin, vì vậy hãy mang pin vào bên trong nếu pin dưới mức đóng băng hoặc trên 45 ℃ / 113F.

Hình ảnh
Hình ảnh

Siết chặt các đệm cáp để tạo một lớp đệm chống chịu thời tiết xung quanh các cáp tương ứng của chúng.

Bước 8: Chuẩn bị bảng điều khiển năng lượng mặt trời

Chuẩn bị bảng điều khiển năng lượng mặt trời
Chuẩn bị bảng điều khiển năng lượng mặt trời

Làm theo Hướng dẫn của tôi để nối cáp cho bảng điều khiển năng lượng mặt trời của bạn với mặt đầu cắm của bộ cáp nguồn DC không thấm nước.

Bước 9: Kiểm tra nó

Kiểm tra nó
Kiểm tra nó

Cắm pin của bạn và bật mạch bằng cách nhấn công tắc nguồn.

Hình ảnh
Hình ảnh

Hãy kiểm tra và đảm bảo rằng nó đang báo cáo với internet trước khi đóng bao vây và lắp đặt cảm biến trong vườn thảo mộc, chậu cây quý hoặc đất khác trong phạm vi tín hiệu của mạng wifi của bạn.

Hình ảnh
Hình ảnh

Sau khi dữ liệu từ cảm biến được ghi trực tuyến, thật dễ dàng thiết lập công thức cho cảnh báo bằng email hoặc văn bản trên trang web cổng API If This Then That. Tôi đã định cấu hình để gửi email cho tôi nếu độ ẩm của đất giảm xuống dưới 50.

Để kiểm tra nó mà không cần đợi cây khô, tôi đã nhập thủ công điểm dữ liệu vào nguồn cấp độ ẩm của tôi trên Adafruit IO đã giảm xuống dưới ngưỡng. Một lát sau, email đến! Nếu mức độ của đất giảm xuống dưới mức tôi chỉ định, tôi sẽ nhận được email mỗi khi nguồn cấp dữ liệu được cập nhật cho đến khi tôi tưới nước cho đất. Vì sự tỉnh táo của mình, tôi đã cập nhật mã của mình để lấy mẫu đất ít thường xuyên hơn nhiều so với mỗi 15 phút.

Bước 10: Sử dụng nó bên ngoài

Sử dụng nó bên ngoài!
Sử dụng nó bên ngoài!
Sử dụng nó bên ngoài!
Sử dụng nó bên ngoài!

Đây là một dự án thú vị để tùy chỉnh dựa trên nhu cầu hydrat hóa của nhà máy và bạn có thể dễ dàng hoán đổi hoặc thêm cảm biến hoặc tích hợp các tính năng năng lượng mặt trời vào các dự án Arduino khác của mình.

Cảm ơn vì đã theo dõi! Tôi muốn nghe những gì bạn nghĩ; xin vui lòng đăng lên trong các ý kiến. Dự án này là một phần của Lớp học năng lượng mặt trời miễn phí của tôi, nơi bạn có thể tìm thấy các dự án sân sau dễ dàng và nhiều bài học hơn về cách làm việc với các tấm pin mặt trời. Kiểm tra nó ra và đăng ký!

Nếu bạn thích dự án này, bạn có thể quan tâm đến một số dự án khác của tôi:

  • Internet of Things Class miễn phí
  • Bộ đếm người đăng ký YouTube với ESP8266
  • Màn hình theo dõi số liệu thống kê xã hội với ESP8266
  • Hiển thị thời tiết WiFi với ESP8266
  • Internet Valentine

Để cập nhật những gì tôi đang làm, hãy theo dõi tôi trên YouTube, Instagram, Twitter, Pinterest và Snapchat.

Đề xuất: