کاربرد آردوینو در گلخانه هیدروپونیک

مقدمه

در پست قبلی درباره هیدروپونیک آردوینو، در مورد برخی از ساده ترین پروژه هایی که می توانید با آردوینو بسازید صحبت کردم. ما همچنین در مورد اینکه چگونه می توانید به طور پیوسته به سمت پروژه های پیچیده تر پیش بروید، اگر با تخته ها و سپرهای مناسب شروع کنید، صحبت کردیم. در این پست قصد دارم نحوه ساخت یک ایستگاه حسگر ساده را به شما نشان دهم که رطوبت رسانه را اندازه گیری می کند و همچنین به یک پلت فرم رایگان داشبورد (فلسپی) متصل می شود. آردوینو خوانش های سنسور را می گیرد و نمایش می دهد و آنها را از طریق اینترنت منتقل می کند، جایی که ما می توانیم با استفاده از داشبورد سفارشی آنها را نظارت کنیم. این پروژه نیازی به مهارت های لحیم کاری یا پروتو برد ندارد.

برد آردوینو در گلخانه هیدروپونیک
یک Arduino Wifi Rev2 متصل به یک سنسور رطوبت، اطلاعات را به یک سرور MQTT که توسط flespi میزبانی شده است منتقل می کند که یک داشبورد آنلاین ایجاد می کند.

ایده این پروژه این است که یک شروع ساده برای دنیای هیدروپونیک آردوینو و رابط اینترنت اشیا برای شما فراهم کند. اگرچه این پروژه بسیار ساده است، اما می توانید از آن به عنوان پایه ای برای ساخت استفاده کنید. می توانید سنسورهای بیشتری اضافه کنید، نمایشگر را بهبود ببخشید، داشبوردهای پیچیده تری ایجاد کنید و غیره.

آنچه شما نیاز خواهید داشت

برای این ساخت، ما از Arduino Wifi Rev2 و محافظ LCD از DFRobot استفاده می کنیم. برای سنسور خود، ما از این سنسورهای رطوبت خازنی کم هزینه استفاده می کنیم. این پروژه نمونه تنها از یک سنسور استفاده می کند، اما می توانید حداکثر پنج سنسور را به محافظ LCD متصل کنید. از آنجایی که این پروژه قرار است به اینترنت متصل شود، نیاز به دسترسی به یک شبکه WiFi متصل به اینترنت دارد.

علاوه بر این، به یک حساب رایگان flespi نیز نیاز خواهید داشت. قبل از ادامه پروژه به صفحه flespi بروید و یک حساب کاربری ایجاد کنید. هنگام ایجاد حساب کاربری خود باید گزینه MQTT را انتخاب کنید زیرا پروژه از پروتکل MQTT برای انتقال استفاده می کند. پس از ورود به حساب کاربری خود، رمز نشان داده شده در صفحه “Tokens” را کپی کنید، زیرا برای تنظیم کد به آن نیاز دارید.

توکن نرم افزار مدیریت رطوبت
توکن را از منوی "Tokens" در flespi کپی کنید

کتابخانه ها و کد

این پروژه از کتابخانه های U8g2، ArduinoMQTTClient و WiFiNINA استفاده می کند. قبل از اجرای کد باید آنها را نصب کنید. کد زیر تنها چیزی است که برای پروژه نیاز دارید. قبل از آپلود آن در آردوینو، مطمئن شوید که کد را برای وارد کردن SSID وای فای، رمز عبور و توکن فلسپی خود ویرایش کرده اید. این همچنین فرض می کند که سنسور رطوبت را به پورت آنالوگ 2 آردوینو خود متصل خواهید کرد. شما باید متغیر ANALOG_PORT را تغییر دهید تا در صورت نیاز به پورت صحیح اشاره کند.

				
					#include <Arduino.h>
#include <U8g2lib.h>
#include <WiFiNINA.h>
#include <ArduinoMqttClient.h>
#include <SPI.h>

#define SECRET_SSID "enter your wifi ssid here"
#define SECRET_PASS "enter your password here"
#define FLESPI_TOKEN "enter your flespi token here"
#define ANALOG_PORT  A2

#define MQTT_BROKER    "mqtt.flespi.io"
#define MQTT_PORT      1883

U8G2_ST7565_NHD_C12864_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);
float capacitance;
WiFiClient wifiClient;
MqttClient mqttClient(wifiClient);

// checks connection to wifi network and flespi MQTT server
void check_connection()
{
  if (!mqttClient.connected()) {
    WiFi.end();
    WiFi.begin(SECRET_SSID, SECRET_PASS);
    delay(10000);
    mqttClient.setUsernamePassword(FLESPI_TOKEN, "");
    if (!mqttClient.connect(MQTT_BROKER, MQTT_PORT)) {
      Serial.print("MQTT connection failed! Error code = ");
      Serial.println(mqttClient.connectError());
      delay(100);
    }
  }
}

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(4, OUTPUT);
  Serial.begin(9600);
  analogReference(DEFAULT);
  check_connection();
}

void loop() {

  String moisture_string;
  check_connection();

  // read moisture sensor, since this is a wifiRev2 we need to set the reference to VDD
  analogReference(VDD);
  capacitance = analogRead(ANALOG_PORT);
  
  // form the string we will display on the Arduino LCD screen
  moisture_string = String(capacitance) + " mV";
  Serial.println(moisture_string);
  
  // send moisture sensor reading to flespi
  mqttClient.beginMessage("MOISTURE1");
  mqttClient.print(capacitance);
  mqttClient.endMessage();

  // the LCD screen only works if I reinitialize it on every loop
  // I also need to reset the analogReference for it to properly work
  analogReference(DEFAULT);
  u8g2.begin();
  u8g2.setFont(u8g2_font_crox3h_tf); 
  u8g2.clearBuffer();          // clear the internal memory
  u8g2.drawStr(10,15,moisture_string.c_str());  // write something to the internal memory
  u8g2.sendBuffer();          // transfer internal memory to the display

  delay(5000);
  
}
				
			

اکنون آردوینو شما باید به اینترنت متصل شود، از سنسور رطوبت یک قرائت بگیرد، آن را روی محافظ LCD نمایش دهد و برای ضبط به flespi ارسال کند. توجه داشته باشید که نمایش داده ها روی محافظ LCD کاملا ابتدایی است. این به این دلیل است که من فونت را بهینه نکردم یا خیلی با رابط بازی نکردم. با این حال، اگر می خواهید نمایشگر را اصلاح کنید، این کد باید یک الگوی خوب در اختیار شما قرار دهد.

Flespi را پیکربندی کنید

مرحله بعدی این است که flespi را برای ضبط و نمایش خوانش‌هایمان پیکربندی کنیم. ابتدا روی گزینه MQTT در سمت چپ کلیک کنید و سپس به “MQTT Board” بروید (روی دکمه کلیک کنید، نه فلشی که صفحه جدیدی را باز می کند). در اینجا، شما قادر خواهید بود یک مشترک جدید اضافه کنید. “مشترک” نمونه ای است که به پیام های MQTT در حال انتشار گوش می دهد و “MOISTURE1” موضوعی است که آردوینو ما پیام هایی را برای آن منتشر می کند. اگر می‌خواهید داده‌های چند سنسور را منتشر کنید، باید به هر سنسور موضوع خاص خود را بدهید، سپس یک مشترک flespi برای هر سنسور اضافه کنید.

پیکربندی flespi
به flespi بروید و یک "مشترک" جدید ایجاد کنید، موضوع را روی MOISTURE1 تنظیم کنید

داشبورد را ایجاد کنید

آخرین مرحله، استفاده از منوی “عناوین MQTT” برای ایجاد یک داشبورد است. من یک ویجت گیج را به داشبورد جدید اضافه کردم و سپس موضوع آن را روی MOISTURE1 قرار دادم تا داده های آن با پیام های MQTT ما به روز شود. من حداقل مقدار را روی 200 تنظیم کردم. حداکثر مقدار به 460; و سطوح پایین، متوسط و بالا به ترتیب به 250، 325 و 400 می رسد.

ایجاد داشبورد flespi
از منوی عناوین MQTT برای افزودن ویجت ها به داشبورد جدید استفاده کنید

پس از اتمام ساخت داشبورد، می‌توانید از دکمه «دریافت پیوند» استفاده کنید، که شبیه پیوندی از زنجیره‌ای در کنار عنوان داشبورد شما است. شما باید یک نشانه اضافی در منوی “Tokens” ایجاد کنید تا بتوانید از آن برای اشتراک گذاری داشبورد استفاده کنید. پس از ایجاد پیوند، باید برای هر کسی که علاقه مند است در دسترس عموم قرار گیرد. این لینک داشبوردی است که من ایجاد کردم.

نتیجه

می توانید با استفاده از Arduino Wifi Rev2، حسگر رطوبت خازنی و محافظ LCD، یک ایستگاه حسگر ساده و قابل ارتقا ایجاد کنید. این ایستگاه می تواند از طریق Wifi به اینترنت متصل شود و اطلاعات آن را به flespi ارسال کند که به ما امکان ایجاد داشبورد آنلاین رایگان را می دهد. می‌توانید این ایستگاه حسگر را با اضافه کردن سنسورهای رطوبت بیشتر یا هر سنسور دیگر سازگار با محافظ جاذبه، مانند سنسور BME280 برای اندازه‌گیری دما، رطوبت و فشار اتمسفر، گسترش دهید.

مقالات اخیر
Facebook
Twitter
LinkedIn

آدرس دفتر تهران: اقدسیه، تنگستان چهارم، مجتمع حیاط سبز، واحد 512


آدرس انبار: ورامین  – میدان بسیج – کمربندی پیشوا – نبش ورودی قلعه سین

021-2842-8686

0912-101-3644

کلیه حقوق مادی و معنوی این سایت متعلق به شرکت بستر کشت گیاه می باشد.