Mục lục:
Video: Giám sát nhà máy sử dụng ESP32 Thing và Blynk: 5 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
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
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
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
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ó
Đầ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:
Camera IP Sử dụng Raspberry Pi Zero (Giám sát tại nhà Phần 1): 5 bước
Camera IP Sử dụng Raspberry Pi Zero (Giám sát tại nhà Phần 1): Đây là bài đăng đầu tiên trong loạt video nhỏ mới, nơi chúng tôi xây dựng một hệ thống giám sát gia đình, chủ yếu sử dụng Raspberry Pis. Trong bài đăng này, chúng tôi sử dụng Raspberry PI zero và tạo một camera IP truyền video qua RTSP. Video đầu ra có chất lượng cao hơn nhiều
Hệ thống giám sát và phân phối điện từ xa của nhà máy điện năng lượng mặt trời: 10 bước
Hệ thống giám sát và phân phối điện từ xa của nhà máy điện mặt trời: Mục đích của dự án này là giám sát và phân phối điện năng trong hệ thống điện (hệ thống điện mặt trời). Thiết kế của hệ thống này được giải thích trong phần tóm tắt như sau. Hệ thống chứa nhiều lưới với khoảng 2 tấm pin mặt trời trong
Hệ thống giám sát thời tiết tại nhà IoT với hỗ trợ ứng dụng Android (Mercury Droid): 11 bước
Hệ thống giám sát thời tiết tại nhà IoT có hỗ trợ ứng dụng Android (Mercury Droid): Giới thiệuMercury Droid là một loại hệ thống nhúng IoT (Internet vạn vật) dựa trên Ứng dụng di động Android Mercury Droid. Cái nào có khả năng đo & theo dõi hoạt động thời tiết tại nhà. nó là hệ thống giám sát thời tiết tại nhà rất rẻ
PInt @ t10n: Hệ thống giám sát nhà máy thông minh: 9 bước
PInt @ t10n: Hệ thống giám sát nhà máy thông minh: PI @ nt @ t10nDự án này được tạo ra như một thử nghiệm cho đám mây iot ibm. Chúng tôi sử dụng esp-8266 để gửi và nhận dữ liệu đến và đi từ đám mây ibm. Giao tiếp giữa esp và đám mây ibm diễn ra thông qua MQTT. Để xử lý tất cả dữ liệu và trình bày
Giám sát nhà máy với cảnh báo SMS: 5 bước
Giám sát nhà máy với cảnh báo SMS: Ở đây tôi tạo Giám sát nhà máy với cảnh báo SMS. Máy chủ không cần thiết cho hệ thống cảnh báo này. Đây là dự án rất rẻ và đáng tin cậy