ArduinoVN
Đăng nhập Tham gia

Danh sách linh kiện

CSV
Linh kiện SL Đơn giá Thành tiền Đã có Mua
Tổng chi phí còn lại:

Các bước thực hiện

4 bước

Bước 1: Yêu cầu môi trường cho nấm

Đa số nấm (sò trắng, hoàng đế, kim châm) cần:

  • Độ ẩm: 85–95% (cao). Khô < 80% → mũ nấm khô, ngừng phát triển.
  • Nhiệt độ: 20–25°C cho fruiting. > 28°C → nấm ngừng.
  • Thông gió: cần CO2 thấp. Ẩm quá → mốc mọc. Cần thông gió đều đặn.
  • Ánh sáng: cường độ thấp (như buồng tối nhẹ). LED gián tiếp đủ.

Thùng phổ biến: hộp xốp/nhựa 50L, kín kín hộp + 4 lỗ thông gió có sleeve nhựa.

Bước 2: Linh kiện và đấu nối

  • Arduino Uno.
  • DHT22 (đặt giữa thùng, xa nguồn nóng).
  • Module 2 relay 5V.
  • Máy phun sương siêu âm mini 5V (~80k Shopee).
  • Quạt 5V hoặc 12V máy tính cũ.
  • LED dải nhỏ cho ánh sáng yếu.
  • Adapter 12V/2A + buck converter 5V cho Arduino.

Đấu nối:

  • DHT22: DATA → D2.
  • Relay 1 (máy phun): IN → D7.
  • Relay 2 (quạt): IN → D8.
  • Máy phun + quạt nối qua relay với nguồn 12V/5V tương ứng.

Bước 3: Code điều khiển

Logic:

  • Ẩm < 85% → bật máy phun 30s, đợi 5 phút.
  • Ẩm > 95% hoặc nhiệt > 26°C → bật quạt 1 phút.
  • Mỗi 6 giờ → bật quạt 5 phút (thông gió bắt buộc).
mushroom_controller.ino — C++ / Arduino
#include <DHT.h>
DHT dht(2, DHT22);

const int PIN_PHUN = 7;
const int PIN_QUAT = 8;

unsigned long lastPhun = 0;
unsigned long lastVentilation = 0;
bool phunDangBat = false;
unsigned long phunBatLuc = 0;

void setup() {
  Serial.begin(115200);
  pinMode(PIN_PHUN, OUTPUT);
  pinMode(PIN_QUAT, OUTPUT);
  digitalWrite(PIN_PHUN, LOW);
  digitalWrite(PIN_QUAT, LOW);
  dht.begin();
  delay(3000);
}

void loop() {
  float t = dht.readTemperature();
  float h = dht.readHumidity();
  if (isnan(t) || isnan(h)) { delay(2000); return; }

  Serial.printf("T=%.1f H=%.0f%%\n", t, h);

  // Phun suong
  if (!phunDangBat && h < 85 && millis() - lastPhun > 5UL * 60 * 1000) {
    digitalWrite(PIN_PHUN, HIGH);
    phunDangBat = true;
    phunBatLuc = millis();
  }
  if (phunDangBat && millis() - phunBatLuc > 30000) {
    digitalWrite(PIN_PHUN, LOW);
    phunDangBat = false;
    lastPhun = millis();
  }

  // Quat: am qua cao hoac nhiet cao
  bool needFan = (h > 95 || t > 26);
  // Hoac dinh ky thong gio
  if (millis() - lastVentilation > 6UL * 60 * 60 * 1000) {
    digitalWrite(PIN_QUAT, HIGH);
    delay(5UL * 60 * 1000);
    digitalWrite(PIN_QUAT, LOW);
    lastVentilation = millis();
  } else {
    digitalWrite(PIN_QUAT, needFan ? HIGH : LOW);
  }

  delay(2000);
}

Bước 4: Mở rộng

  • Log lên ThingSpeak: theo dõi pattern theo ngày/đêm.
  • Camera ESP32-CAM: timelapse nấm phát triển.
  • Nhiều thùng: 1 Arduino điều khiển 3–4 thùng song song.
  • Auto-tune ngưỡng: tuần đầu (đẻ tơ) khác tuần sau (fruiting).
  • Cảnh báo điện thoại khi bị overheat hoặc cạn nước phun.

Thảo luận (0)

Đăng nhập để tham gia thảo luận.
Chưa có bình luận nào. Hãy là người đầu tiên!