تله پشه هوشمند و اتوماتیک با آردوینو نانو
فصل گرما که میرسه، حضور پشهها میتونه حسابی کلافهکننده باشه و نشستن تو حیاط یا بالکن رو به یک کابوس تبدیل کنه. روشهای شیمیایی هم علاوه بر بوی بد، برای محیط زیست ضرر دارن. پس راهحل چیه؟ ما تو این آموزش از آیسیمدار میخوایم یک تله پشه کاملا هوشمند و دوستدار محیط زیست بسازیم که خودش به صورت اتوماتیک پشهها رو کنترل میکنه.
ایده کار خیلی جالبه؛ ما یک حوضچه آب کوچیک درست میکنیم که پشهها رو برای تخمگذاری جذب میکنه. بعد با استفاده از یک آردوینو نانو، سیستم رو طوری برنامهریزی میکنیم که هر چند روز یکبار آب این حوضچه رو به طور کامل تخلیه کنه. با این کار، قبل از اینکه تخمها به پشههای بالغ تبدیل بشن، از بین میرن و بعدش سیستم دوباره حوضچه رو با آب تمیز پر میکنه تا این چرخه ادامه داشته باشه.
برای ساخت این پروژه جذاب به چند تا قطعه ساده مثل برد آردوینو، یک پمپ آب مینیاتوری، شیر برقی، ماژول رله و یک سنسور تشخیص سطح آب نیاز داریم. اگر تو هم از دست پشهها خسته شدی و میخوای با یک راهحل مهندسی این مشکل رو حل کنی، وسایلت رو آماده کن تا قدمبهقدم این سیستم اتوماتیک رو با هم بسازیم.
قطعات موردنیاز
- برد آردوینو نانو (Arduino Nano V3.0 یا مدلهای مشابه)
- پمپ آب مینیاتوری غوطهور 5 ولت
- شیر برقی 12 ولت DC حالت بسته (Normally Closed) سایز 1/2 اینچ
- ماژول رله دو کاناله 5 ولت
- سنسور سطح آب (فلوتر سوئیچ) دو سیمه
- آداپتور تغذیه 12 ولت 2 آمپر DC
- فیش مادگی آداپتور
- ماژول کاهنده ولتاژ LM2596
- سیم جامپر
- جعبه پلاستیکی ضدآب (برای قرار دادن مدار)
- هویه
- سیملختکن
- مولتیمتر
- پیچگوشتی
آمادهسازی منبع تغذیه مدار
اول از همه باید برق مدار رو تأمین کنیم. آداپتور 12 ولت رو به فیش مادگی متصل کن. حالا خروجیهای مثبت و منفی رو به دو مسیر جداگانه تقسیم کن؛ یک مسیر مستقیم میره به پایه COM2 ماژول رله تا برق شیر برقی رو تأمین کنه و مسیر دوم باید به ورودی ماژول کاهنده ولتاژ (LM2596) وصل بشه.
تنظیم ماژول کاهنده ولتاژ (LM2596)
قبل از اینکه بخوای قطعات دیگه رو وصل کنی، باید ولتاژ رو برای آردوینو تنظیم کنیم. آداپتور 12 ولت رو روشن کن و با یک پیچگوشتی کوچیک، پتانسیومتر روی ماژول LM2596 رو اونقدر بچرخون تا خروجی روی مولتیمتر دقیقا عدد 5 ولت رو نشون بده. این ولتاژ 5 ولتی قراره برق کل سیستم (به جز شیر برقی) رو تأمین کنه. حواست باشه که این کار رو حتما قبل از اتصال آردوینو انجام بدی.
اتصال آردوینو نانو به مدار
حالا که ولتاژ 5 ولت تثبیت شد، وقتشه مغز متفکر سیستم رو وارد مدار کنیم. خروجی 5 ولتی ماژول کاهنده رو به پایه 5 ولت آردوینو نانو وصل کن. حتما دقت کن که این سیم رو اشتباها به پایه VIN نزنی.
سیمکشی ماژول رله
- پایههای VCC و GND ماژول رله رو به خروجی 5 ولت و GND ماژول کاهنده ولتاژ وصل کن
- یکی از پایههای دیجیتال آردوینو رو به پین IN1 رله متصل کن (برای کنترل پمپ)
- یک پایه دیجیتال دیگه از آردوینو رو به پین IN2 رله وصل کن (برای کنترل شیر برقی)
- پایه COM رله اول رو به 5 ولت و پایه NO همون رله رو به سیم مثبت پمپ آب متصل کن
- پایه COM رله دوم رو به 12 ولت و پایه NO رو به سیم مثبت شیر برقی وصل کن
نصب سنسور تشخیص سطح آب
برای اینکه سیستم بفهمه چه زمانی آب حوضچه پر شده، از یک فلوتر یا همون سنسور سطح آب استفاده میکنیم. یکی از سیمهای سنسور رو به یک پایه دیجیتال آردوینو متصل کن (یادت نره که مقاومت پولآپ داخلی این پایه رو تو کدها فعال کنی) و سیم دوم رو به GND وصل کن. وقتی سطح آب بالا میاد، این سنسور مدار رو میبنده و به آردوینو فرمان پر شدن رو میده.
راهاندازی پمپ آب و شیر برقی
- سیم منفی پمپ رو به مسیر GND (مربوط به بخش 5 ولت) متصل کن
- سیم منفی شیر برقی رو هم به GND (مربوط به مسیر 12 ولت) وصل کن
- پمپ آب رو کاملا در کف حوضچه یا ظرفی که در نظر گرفتی قرار بده تا بتونه همه آب رو تخلیه کنه
- شیر برقی رو هم در مسیر لوله ورودی آب قرار بده تا بتونه آب تمیز رو وارد ظرف کنه
آپلود کدها و تست اولیه سیستم
حالا نوبت به بخش نرمافزاری میرسه. کدهایی که تو این مرحله قرار دادیم رو روی آردوینو نانو آپلود کن. بعدش مانیتور سریال (Serial Monitor) نرمافزار رو باز کن و یک چرخه تست دستی رو استارت بزن.
// Mosquito Trap Automation by Make-It
// This code uses a DS3231 Real-Time Clock (RTC) to trigger a water change every 4 days.
#include <Wire.h>
#include "RTClib.h"
// Create an RTC object
RTC_DS3231 rtc;
// --- Pin Definitions ---
#define EMPTY_PUMP_PIN 7 // Digital pin connected to IN1 on the relay module
#define REFILL_PUMP_PIN 8 // Digital pin connected to IN2 on the relay module
// --- Configuration ---
const long CYCLE_INTERVAL_SECONDS = 345600; // 4 days (4 * 24 * 60 * 60 seconds)
const int EMPTY_PUMP_DURATION_MS = 60000; // Run empty pump for 60 seconds
const int REFILL_PUMP_DURATION_MS = 60000; // Run refill pump for 60 seconds
// We need to store the time of the last cycle. We'll use a variable for this.
// For a real-world device, this should be stored in EEPROM to survive power loss.
long lastCycleTime = 0;
void setup() {
Serial.begin(9600);
Wire.begin();
pinMode(EMPTY_PUMP_PIN, OUTPUT);
pinMode(REFILL_PUMP_PIN, OUTPUT);
// Make sure pumps are off at startup
digitalWrite(EMPTY_PUMP_PIN, HIGH); // Relays are often LOW-triggered, so HIGH is OFF
digitalWrite(REFILL_PUMP_PIN, HIGH);
if (!rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
abort();
}
// UNCOMMENT THE FOLLOWING LINE THE *FIRST* TIME YOU UPLOAD
// This sets the RTC to the date and time this sketch was compiled.
// After setting the time, comment it out and re-upload to prevent resetting the time on every reboot.
// rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
Serial.println("Mosquito Trap Initialized.");
// Get the current time to start our cycle timer
DateTime now = rtc.now();
lastCycleTime = now.unixtime();
Serial.print("Current Unix time: ");
Serial.println(lastCycleTime);
}
void loop() {
// Get the current time from the RTC
DateTime now = rtc.now();
long currentTime = now.unixtime();
Serial.print("Current Time: ");
Serial.print(now.timestamp(DateTime::TIMESTAMP_FULL));
Serial.print(", Seconds since last cycle: ");
Serial.println(currentTime - lastCycleTime);
// Check if 4 days (CYCLE_INTERVAL_SECONDS) have passed since the last cycle
if (currentTime - lastCycleTime >= CYCLE_INTERVAL_SECONDS) {
Serial.println("--- Cycle time reached! Starting water change. ---");
runWaterChangeCycle();
// Update the last cycle time to the current time
lastCycleTime = currentTime;
Serial.println("--- Water change complete. Timer reset. ---");
} else {
Serial.println("Not time yet. Waiting...");
}
// Wait for a while before checking again to conserve power.
// For ultra-low power, you would use deep sleep modes here.
delay(3600000); // Check once per hour (3600 * 1000 ms)
}
void runWaterChangeCycle() {
// Step 1: Turn on the emptying pump
Serial.println("Starting empty pump...");
digitalWrite(EMPTY_PUMP_PIN, LOW); // LOW turns the relay ON
delay(EMPTY_PUMP_DURATION_MS);
// Step 2: Turn off the emptying pump
digitalWrite(EMPTY_PUMP_PIN, HIGH); // HIGH turns the relay OFF
Serial.println("Empty pump finished.");
delay(5000); // Wait 5 seconds before refilling
// Step 3: Turn on the refilling pump
Serial.println("Starting refill pump...");
digitalWrite(REFILL_PUMP_PIN, LOW); // LOW turns the relay ON
delay(REFILL_PUMP_DURATION_MS);
// Step 4: Turn off the refilling pump
digitalWrite(REFILL_PUMP_PIN, HIGH); // HIGH turns the relay OFF
Serial.println("Refill pump finished.");
}
آمادهسازی حوضچه آب
- برای حوضچه میتونی از هر ظرف کوچیکی مثل یک سطل، زیرگلدونی بزرگ یا یک لگن قدیمی استفاده کنی
- ظرف رو تو یک محیط سایه و نزدیک به جایی که معمولا تو فضای باز میشینید قرار بده (پشهها عاشق سایه و رطوبت هستن)
- میتونی از آبهای بازیافتی خانگی استفاده کنی؛ پشهها اصلا روی تمیزی آب حساسیتی ندارن
- حتما تمام بردهای الکترونیکی رو داخل یک باکس ضدآب قرار بده و نزدیک حوضچه نصب کن
نکات پایانی و نتیجهگیری پروژه
برای اینکه این سیستم بیشترین بازدهی رو داشته باشه، بهتره چند تا نکته رو رعایت کنی:
- عایقبندی قطعات رو جدی بگیر. پمپ و سنسور سطح آب مشکلی با خیس شدن ندارن، اما بقیه قطعات الکترونیکی باید کاملا خشک بمونن.
- سنسور سطح آب رو محکم در جای خودش فیکس کن. اگر سنسور جابجا بشه، سطح آب رو اشتباه تشخیص میده و ممکنه آب سرریز بشه.
- حواست به منبع آب باشه. اگر آب قطع بشه یا شیر برقی خراب بشه، حوضچه خالی میمونه و پشهها برای تخمگذاری سراغ جاهای دیگه میرن.
تجربه نشون داده که بعد از گذشت دو تا سه هفته از راهاندازی این سیستم، جمعیت پشهها تو محیط به شدت کم میشه؛ طوری که دوباره میتونی با خیال راحت شبها تو حیاط یا بالکن بشینی. این پروژه یک راهحل عالی، هوشمندانه و بدون مواد شیمیایی برای کنترل طبیعی پشههاست.
امیدوارم از ساخت این تله پشه لذت برده باشی. اگر سوالی در مورد نحوه سیمکشی یا کدهای آردوینو داشتی، حتما تو بخش نظرات برامون بنویس تا با هم بررسیش کنیم.
فایلهای پیوست
تو میتونی اولین سازنده باشی!
اگه پروژه رو ساختی به اشتراک بزار و اعتبار هدیه بگیر
این آموزش با استانداردهای اختصاصی آیسیمدار بازنویسی و بهینهسازی شده و تمامی حقوق انتشار آن متعلق به این مجموعه است و در صورت کپی یا بازنشر پیگرد قانونی خواهد داشت.








































گفتگوهای کاربران
هنوز نظری ثبت نشده؛ تو شروع کن!
هنوز نظری ثبت نشده؛ تو شروع کن!