Mục lục:

Giám sát nhà máy sử dụng ESP32 Thing và Blynk: 5 bước
Giám sát nhà máy sử dụng ESP32 Thing và Blynk: 5 bước

Video: Giám sát nhà máy sử dụng ESP32 Thing và Blynk: 5 bước

Video: Giám sát nhà máy sử dụng ESP32 Thing và Blynk: 5 bước
Video: Điều khiển 8 thiết bị dùng blynk iot và esp32 - hướng dẫn sử dụng blynk iot - blynk 2.0 2024, Tháng mười một
Anonim
Giám sát nhà máy sử dụng ESP32 Thing và Blynk
Giám sát nhà máy sử dụng ESP32 Thing và Blynk
Giám sát nhà máy sử dụng ESP32 Thing và Blynk
Giám sát nhà máy sử dụng ESP32 Thing và Blynk

Tổng quat

Mục tiêu của dự án này là tạo ra một thiết bị nhỏ gọn có thể giám sát các điều kiện của cây trồng trong nhà. Thiết bị cho phép người dùng kiểm tra độ ẩm của đất, độ ẩm, nhiệt độ và nhiệt độ "giống như cảm giác" từ điện thoại thông minh bằng Ứng dụng Blynk. Ngoài ra, người dùng sẽ nhận được thông báo qua email khi các điều kiện trở nên không phù hợp với cây trồng. Ví dụ, người dùng sẽ nhận được lời nhắc tưới cây khi độ ẩm của đất giảm xuống dưới mức phù hợp.

Bước 1: Yêu cầu

Yêu cầu
Yêu cầu
Yêu cầu
Yêu cầu
Yêu cầu
Yêu cầu

Dự án này sử dụng thiết bị Sparkfun ESP32, cảm biến DHT22 và Cảm biến độ ẩm đất gạch điện tử. Ngoài ra, cần có mạng wifi và ứng dụng Blynk. Tốt hơn là nên tạo một vỏ bọc chống thấm nước để chứa thứ ESP32. Trong khi ví dụ này sử dụng ổ cắm tiêu chuẩn cho nguồn điện, việc bổ sung pin sạc, bảng điều khiển năng lượng mặt trời và bộ điều khiển sạc sẽ cho phép thiết bị được cung cấp năng lượng tái tạo.

Bước 2: Blynk

Blynk
Blynk
Blynk
Blynk
Blynk
Blynk

Hiện tại, hãy tải xuống ứng dụng Blynk và tạo một dự án mới. Hãy lưu ý đến mã thông báo xác thực - nó sẽ được sử dụng trong mã. Tạo các vật dụng hiển thị mới trong ứng dụng Blynk và chọn các chân ảo tương ứng được xác định trong mã. Đặt khoảng thời gian làm mới để đẩy. Mỗi tiện ích phải được gán mã pin ảo của riêng nó.

Bước 3: Arduino IDE

Arduino IDE
Arduino IDE

Tải xuống Arduino IDE. Làm theo hướng dẫn tải xuống trình điều khiển điều khiển ESP32 và bản trình diễn để đảm bảo kết nối wifi. Tải xuống thư viện Blynk và DHT có trong mã. Điền mã xác thực, mật khẩu wifi, tên người dùng wifi và email vào mã cuối cùng. Sử dụng mã demo cho cảm biến độ ẩm của đất để tìm giá trị tối thiểu và tối đa cho loại đất. Ghi lại và thay thế các giá trị này trong mã cuối cùng. Thay thế các giá trị tối thiểu cho nhiệt độ, độ ẩm đất và độ ẩm cho cây trong mã cuối cùng. Tải lên mã.

Bước 4: Xây dựng nó

Xây dựng nó
Xây dựng nó
Xây dựng nó
Xây dựng nó
Xây dựng nó
Xây dựng nó

Đầu tiên, kết nối cảm biến độ ẩm của đất với chân 3,3V, đất và đầu vào 34. Lưu ý, công tắc được đặt thành A không thể tách rời vì cài đặt tương tự cho cảm biến này sẽ được sử dụng. Tiếp theo, kết nối cảm biến DHT với chân 3.3V, nối đất và đầu vào 27. Cảm biến DHT22 yêu cầu một điện trở 10K Ohm giữa VCC và chân ra dữ liệu. Đảm bảo kiểm tra sơ đồ DHT để đảm bảo nó được nối dây đúng cách. Định cấu hình ESP32 bên trong vỏ chống thấm nước với cảm biến độ ẩm trong đất và cảm biến DHT phía trên bề mặt. Kết nối với nguồn điện và tận hưởng dữ liệu về môi trường của nhà máy.

Bước 5: Mã

// Các thư viện được bao gồm

#define BLYNK_PRINT Sê-ri

#include #include #include #include "DHT.h"

// Thông tin cảm biến DHT

#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // Chân kỹ thuật số kết nối với cảm biến DHT dht dht (DHTPIN, DHTTYPE); // Khởi tạo cảm biến DHT.

// xác định các chân đầu vào và đầu ra

int đất_sensor = 34; // xác định số pin đầu vào tương tự kết nối với cảm biến độ ẩm

int output_value; // xác định là đầu ra

int Moistlevel; // định nghĩa là đầu ra

int thông báo = 0; // định nghĩa notifed là 0

int timedelay = 60000L; // đặt bộ hẹn giờ để chạy lấy dữ liệu mỗi phút một lần hoặc 60, 000 mili giây

// đặt giá trị tối thiểu cho nhà máy

int min_moisture = 20; int min_tempether = 75; int min_humidity = 60;

// Bạn sẽ nhận được Mã xác thực trong Ứng dụng Blynk.

char auth = "Auth_Token_Here";

// Thông tin đăng nhập WiFi của bạn.

char ssid = "Wifi_Network_Here"; char pass = "Wifi_Password_Here";

Bộ đếm thời gian BlynkTimer;

// Hàm này gửi thời gian hoạt động của Arduino mỗi giây tới Pin ảo (5).

// Trong ứng dụng, tần suất đọc của Widget phải được đặt thành PUSH. Điều này có nghĩa là bạn xác định tần suất gửi dữ liệu đến Ứng dụng Blynk.

void Sensors () // chức năng chính để đọc cảm biến và đẩy lên blynk

{output_value = analogRead (land_sensor); // Đọc tín hiệu tương tự từ land_sensor và xác định là output_value // Ánh xạ output_vlaue từ các giá trị min, max thành 100, 0 và giới hạn trong khoảng 0, 100 // Sử dụng mã mẫu và màn hình nối tiếp để tìm min và giá trị tối đa cho cảm biến riêng lẻ và loại đất để hiệu chuẩn tốt hơn độ ẩm = kìm hãm (bản đồ (giá_trị_ đầu ra, 1000, 4095, 100, 0), 0, 100); float h = dht.readHumidity (); // Đọc độ ẩm float t = dht.readTempentic (); // Đọc nhiệt độ dưới dạng độ C (mặc định) float f = dht.readTempe Heat (true); // Đọc nhiệt độ dưới dạng Fahrenheit (isFahrenheit = true) // Tính chỉ số nhiệt bằng Fahrenheit (mặc định) float hif = dht.computeHeatIndex (f, h); // Kiểm tra xem có lần đọc nào không và thoát ra sớm (để thử lại). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("Không thể đọc từ cảm biến DHT!")); trở lại; } // Thao tác này kết nối các giá trị với các chân ảo được xác định trong các widget trong ứng dụng Blynk Blynk.virtualWrite (V5, Moistlevel); // Gửi mức độ ẩm tới chân ảo 5 Blynk.virtualWrite (V6, f); // Gửi nhiệt độ đến chân ảo pin 6 Blynk.virtualWrite (V7, h); // Gửi độ ẩm đến chân ảo 7 Blynk.virtualWrite (V8, hif); // Gửi chỉ số nhiệt đến chân ảo 8

nếu (được thông báo == 0)

{if (Moistlevel <= min_moisture) // Nếu mức độ ẩm bằng hoặc thấp hơn giá trị min {Blynk.email ("Email_Here", "Plant Monitor", "Water Plant!"); // Gửi email đến nhà máy nước} delay (15000); // Các email Blynk phải cách nhau 15 giây. Trì hoãn 15000 mili giây if (f <= min_tempether) // Nếu nhiệt độ bằng hoặc thấp hơn giá trị min {Blynk.email ("Email_Here", "Plant Monitor", "Nhiệt độ thấp!"); // Gửi email rằng nhiệt độ thấp

}

chậm trễ (15000); // Các email Blynk phải cách nhau 15 giây. Trì hoãn 15000 mili giây if (h <= min_humidity) // Nếu độ ẩm bằng hoặc thấp hơn giá trị min {Blynk.email ("Emial_Here", "Plant Monitor", "Humidity Low!"); // Gửi email rằng độ ẩm thấp} notification = 1; timer.setTimeout (hẹn giờ * 5, resetNotified); // multipy thời gian theo số phút mong muốn giữa các email cảnh báo lặp lại}}

void resetNotified () // hàm được gọi để đặt lại tần suất email

{được thông báo = 0; }

void setup ()

{Serial.begin (9600); // Bảng điều khiển gỡ lỗi Blynk.begin (auth, ssid, pass); // kết nối với blynk timer.setInterval (timedelay, Sensors); // Thiết lập một hàm được gọi mỗi phút hoặc ngày nào đó được đặt thành dht.begin (); // chạy cảm biến DHT}

// Vòng lặp rỗng chỉ nên chứa blynk.run và bộ đếm thời gian

void loop () {Blynk.run (); // Chạy blynk timer.run (); // Khởi tạo BlynkTimer}

Đề xuất: