با گلخانه هوشمند خود با خیالی راحت به سفر بروید

Table of Contents

مقدمه

رسیدگی و آبیاری به موقع از دغدغه‌های همه علاقه‌مندان به گل و گیاه است و زمانی که به سفر می روند همواره نگران چگونگی رسیدگی به گیاهان خود هستند. با پیشرفت فناوری و گسترش اینترنت اشیاء دیگر گلخانه شما (چه کوچک باشد و چه بزرگ) همواره در دسترس شماست و در هرجای دنیا که باشید می توانید از وضعیت آن آگاه شوید و رسیدگی های لازم را انجام دهید.

در این مقاله قصد داریم با استفاده از کیت های ProMake یک کنترل کننده گلخانه هوشمند بسازیم که اطلاعات حیاتی از شرایط محیطی گیاه را در اختیار صاحبش قرار می دهد و به وی امکان کنترل آبیاری، مه پاشی، بخاری، فن تهویه و … را می دهد.

اقلام مورد نیاز برای ساخت گلخانه هوشمند

برای شروع نیاز به کیت گلخانه هوشمند ProMake که از اجزای زیر تشکیل شده داریم:

  1. ماژول آردوینو نانو(Arduino Nano)+کابل مناسب برای پروگرام کردن آن
  2. کیت آردوینو نانو پرومیک(ProMake Arduino Nano Kit)
  3. ماژول ProMake WiFi ESP12(که از ESP8266 برای ارتباط با شبکه وای فای استفاده می کند)
  4. ماژول ProMake 2-ch Relay (برای کنترل پمپ آب، فن، هیتر، مه پاش یا هر مورد دیگر)
  5. ماژول ProMake Sensor Tag(برای اندازگیری دما، رطوبت نسبی و نور محیطی)
  6. حسگر رطوبت خاک خازنی(برای اندازگیری رطوبت خاک جهت تصمیم گیری برای آبیاری)
  7. پمپ آب + شلنگ و اتصالات آبیاری به میزان لازم
  8. نمایشگر OLED 0.91 Inch جهت مشاهده اطلاعات دریافتی از حسگرها

من در  این پروژه به علت اینکه معمولا در فضای گلخانه های خانگی ارتباط با وای فای فراهم است از ماژول ارتباطی WiFi استفاده کردم. این پروژه را می توانید با ماژول های GSM نیز انجام دهید تا در مناطقی که دسترسی WiFi وجود ندارد اما امکان دسترسی به شبکه دیتا نسل دوم تلفن همراه فراهم است نیز از این کیت استفاده کنید.

برای آشنایی بیشتر با محصولات به کار رفته در این کیت برروی آنها کلیک کنید

wifi-001( janbi )

WiFi ESP12

معروف‌ترین ماژول برای ارتباط با شبکه‌های WiFi در اختیار شماست.

snstag-001 ( janbi )

Sensor TAG

ماژولی کوچک با سنسورهای متنوع

سرهم کردن کیت

ابتدا ماژول آردوینو نانو را برروی “ProMake Arduino Nano kit” قرار می دهیم. دقت کنید که ماژول را در جهت صحیح وارد کیت نمایید. سپس مطابق شکل رو به رو ماژول ها را در مکان های مشخص شده وارد نماید:

  1. ماژول ProMake WiFi ESP12 را در محل شماره 1
  2. ماژول ProMake Sensor Tag را در محل شماره 2
  3. حسگر رطوبت خاک را به کانکتور Grove روی ماژول ProMake Sensor Tag متصل کنید
  4. ماژول ProMake 2-CH Relay را در محل شماره 3
  5.  نمایشگر OLED 0.91 inch در محل در نظر گرفته شده برای آن با توجه به مارکاژ پایه‌ها وارد کنید.
توجه: در هنگام وارد کردن ماژول های پرومیک به جهت آنها که از بریدگی گوشه آنها قابل تشخیص است دقت کنید.
توجه: حتماً هر ماژول را در محل تعیین شده وارد نمایید تا اتصالات مورد نیاز برای ارتباط با ماژول فراهم باشد.
حال کیت شما مطابق تصویر روبرو آماده بارگزاری برنامه می باشد‌.

برنامه نویسی و بارگزاری(Upload) روی برد

برای برنامه نویسی از محیط معروف و دوست داشتنی Arduino IDE استفاده می‌کنیم. پس اگر آن را برروی رایانه شخصیتون نصب ندارید، سریع نصبش کنید تا بریم سراغ مرحله بعد…

نصب کتابخانه WiFiEsp 

برای اینکه بتونیم با ماژول ESP8266 ارتباط برقرار کنیم باید کتابخانه WiFiEsp را در Arduino IDE نصب نمایید.

برای اینکار کافی است از منو Sketch وارد زیر منو Include Library شوید و آیتم Manage Libraries را انتخاب نمایید و در پنجره ظاهر شده مطابق تصویر رو به رو عبارت WiFiEsp را جستجو نمایید. بعد از ظاهر شدن نتایج برروی دکمه Install کلیک نمایید تا کتابخانه نصب شود.

آیتم Manage Libraries از منو Tools نیز قابل دسترس است و البته با استفاده از کلید ترکیبی Ctrl+Shift+I نیز  ظاهر می شود.

نصب کتابخانه DFRobot_SHT20

برای ارتباط با سنسور دما و رطوبت روی ماژول سنسور تگ، کتابخانه DFRobot_SHT20 را در Arduino IDE نصب نمایید.

برای اینکار کافی است از منو Sketch وارد زیر منو Include Library شوید و آیتم Manage Libraries را انتخاب نمایید و در پنجره ظاهر شده مطابق تصویر رو به رو عبارت FastLED  را جستجو نمایید. بعد از ظاهر شدن نتایج برروی دکمه Install کلیک نمایید تا کتابخانه نصب شود.

نصب کتابخانه DFRobot_VEML7700

برای ارتباط با سنسور نور محیطی روی ماژول سنسور تگ، کتابخانه DFRobot_VEML7700 را در Arduino IDE نصب نمایید.

برای اینکار کافی است از منو Sketch وارد زیر منو Include Library شوید و آیتم Manage Libraries را انتخاب نمایید و در پنجره ظاهر شده مطابق تصویر رو به رو عبارت FastLED  را جستجو نمایید. بعد از ظاهر شدن نتایج برروی دکمه Install کلیک نمایید تا کتابخانه نصب شود.

نصب کتابخانه SSD1306Ascii

برای ارتباط با نمایشگر OLED از طریق I2C ، کتابخانه SSD1306Ascii را در Arduino IDE نصب نمایید.

برای اینکار کافی است از منو Sketch وارد زیر منو Include Library شوید و آیتم Manage Libraries را انتخاب نمایید و در پنجره ظاهر شده مطابق تصویر رو به رو عبارت FastLED  را جستجو نمایید. بعد از ظاهر شدن نتایج برروی دکمه Install کلیک نمایید تا کتابخانه نصب شود.

ایجاد حساب کاربری Ubidots

برای اینکه بتوانید اطلاعات دریافتی از حسگرها را به صورت داشبرد مشاهده کنید می بایست برروی یک سرویس دهند اینترنتی پلتفورم IoT یک حساب کاربری داشته باشید. در این پروژه ما سرویس ubidots را به عنوان یک نمونه که به صورت رایگان در اختیار همه قرار دارد انتخاب کردیم.

پس به سایت https://ubidots.com مراجعه نمایید و برای خود یک حساب کاربری رایگان ایجاد نمایید.

سایت ubidots.com

آشنایی با کد

حال که کتابخانه های پیش نیاز را نصب کردید و حساب کاربری ubidots را ساخته اید، آماده هستید تا وارد نوشتن برنامه اصلی شوید.

عجله نکنید!! ابتدا نیاز است تغییراتی در کد زیر بدهید و بعد از آن استفاده کنید، لذا لطفا گام به گام با من همراه شوید تا هم کد را برایتان شرح دهم و هم تغییرات را باهم اعمال کنیم

  • در خطوط 1 تا 7 شیئ نمایشگر OLED را ایجاد کردیم و آدرس I2C آن را مشخص نمودیم.
  • در خطوط 9 تا 14 شیئ های حسگرهای دما و رطوبت و نور محیطی را ایجاد کردیم.
  • در خطوط 16 و 17 مقادیر اندازگیری شده توسط حسگر رطوبت خاک در  هوا و آب را مشخص نمودیم.
  • در خطوط 29 تا 36 پین های  مربوط به ارتباط UART و RESET ماژول WiFi را  با دقت از روی مارکاژهای کیت و ماژول  استخراج و  تعریف کردیم. سپس اشیاء مورد نیاز را ایجاد نمودیم.
  • برای ارتباط با مودم وای فای شناسه شبکه(SSID) و کلمه عبور را در خطوط 30 و 31 اصلاح نمایید
  • در خطوط 37 تا 42 آدرس و پورت سرور HTTP سایت Ubidots را تنظیم نمودیم و فاصله زمانی بین ارسال های پیاپی به Ubidots را تعیین کردیم.
  • در خطور 45 و 46 پین های رله های روی ماژول ProMake 2-CH Relay را  با دقت از روی مارکاژهای کیت و ماژول  استخراج و براساس کاربرد هر رله  تعریف کردیم.
  • در تابع setup :
    • ارتباط سریال Debug را راه اندازی کردیم
    • نمایشگر OLED را راه اندازی می کنیم
    • ماژول ESP8266 را ریست و با پارامترهای صحیح راه اندازی می کنیم
    • سپس تلاش می کنیم تا به شبکه WiFi وصل شویم
    • در نهایت سنسورها را راه اندازی می کنیم تا آماده ورود به تابع loop شویم.
  • در تابع loop:
    • ابتدا  مقادیر حسگرها را می خوانیم و برروی صفحه نمایش چاپ می کنیم
    • سپس با توجه به مقادیر خوانده شده رله ها را باز  یا بسته می کنیم تا عملگرهای مدنظر(پمپ، هیتر، مه پاش، فن و …) فعال و غیر فعال شوند
      • برای اینکه عملکرد دلخواه خود را بدست آورید شرط های داخل if ها را به فراخور نیاز خود تغییر دهید
    • سپس  در صورتی که بیش از  10 ثانیه از  ارسال داده قبلی گذشته باشد، داده های جدید را به صورت یک رشته با فرمت JSON برای سرور ارسال می کنیم.
  • در تابع http_post  اقدام به ارسال رشته دریافت شده در آرگومان ورودی تابع با استفاده از HTTP می‌کنیم.
    • برای اینکه داده‌های حسگرها  برای حساب کاربری شما ارسال شود می‌بایست Default token حساب خود را در بخشی از کد که عبارت REPLACE_YOUR_TOKEN نوشته شده جایگزین کنید. در ادامه در باره این که چگونه این توکن را از سایت دریافت کنید توضیح خواهم داد.
				
					//Display ==========================================
#include "SSD1306Ascii.h"
#include "SSD1306AsciiWire.h"

#define OLED_I2C_ADDRESS 0x3C

SSD1306AsciiWire oled;

//Sensors ==========================================
#include "DFRobot_SHT20.h"
DFRobot_SHT20 sht20;

#include "DFRobot_VEML7700.h"
DFRobot_VEML7700 als;

const int AirValue = 830;   
const int WaterValue = 600;  

// WiFi UART Connection =================================
#include <SoftwareSerial.h>
#define ARD_RX_ESP_TX   4 // Arduino RX = ESP TX
#define ARD_TX_ESP_RX   7 // Arduino TX = ESP RX
SoftwareSerial EspSerial(ARD_RX_ESP_TX, ARD_TX_ESP_RX); 

#define ESP_AT_BAUD     9600  
#define ESP_RST_PIN     8

#include "WiFiEsp.h"

char ssid[] = "YOUR_SSID";            // your network SSID (name)
char pass[] = "YOUR_PASSWORD";        // your network password

// Initialize the Ethernet client object
WiFiEspClient client;

// IOT Platform ===================================
#define SERVER_NAME   "169.55.61.243" //"industrial.api.ubidots.com"
#define SERVER_PORT   (80)

unsigned long lastConnectionTime = 0;         // last time you connected to the server, in milliseconds
//const unsigned long postingInterval = 10000L; // delay between updates, in milliseconds
const unsigned long postingInterval = 600000L; // delay between updates, in milliseconds

//Relays =================================
#define FAN_RLY_PIN   5
#define HEATER_RLY_PIN  14

void setup(void)
{
  Serial.begin(9600);
  while (!Serial);
  
  pinMode(FAN_RLY_PIN,OUTPUT);
  pinMode(HEATER_RLY_PIN,OUTPUT);

  Wire.begin();  
  oled.begin(&Adafruit128x32, OLED_I2C_ADDRESS);
  oled.setFont(Adafruit5x7);

  oled.clear();
  oled.print(F("Booting ESP ... "));
  
  pinMode(ESP_RST_PIN, OUTPUT);
  //ESP RESET
  digitalWrite(ESP_RST_PIN, LOW);
  delay(50);
  digitalWrite(ESP_RST_PIN, HIGH);
  delay(2000); // to boot

  // initialize serial for ESP module
  EspSerial.begin(ESP_AT_BAUD);
  // initialize ESP module
  WiFi.init(&EspSerial);

  // check for the presence of the shield
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi module not present");
    // don't continue
    while (true);
  }
  oled.println(F("Done"));
  
  oled.print(F("Connecting ... "));
  // attempt to connect to WiFi network
  int status = WL_IDLE_STATUS;     // the Wifi radio's status
  while ( status != WL_CONNECTED) {
    Serial.print(F("Connecting to WPA SSID: "));
    Serial.println(ssid);
    // Connect to WPA/WPA2 network
    status = WiFi.begin(ssid, pass);
  }

  oled.println(F("Done"));
  
  oled.println(F("Initializing Sensors"));

  als.begin();   // Init
  sht20.initSHT20();                         // Init SHT20 Sensor
  delay(1000);
  sht20.checkSHT20();                        // Check SHT20 Sensor
}

void loop(void)
{
  float humd = sht20.readHumidity();         // Read Humidity
  float temp = sht20.readTemperature();      // Read Temperature
  float lux;
  als.getALSLux(lux);   // Get the measured ambient light value

  int soilMoistureValue = analogRead(A7);  //put Sensor insert into soil
  Serial.println(soilMoistureValue);
  int soilmoisturepercent = map(soilMoistureValue, AirValue, WaterValue, 0, 100);

  if(soilmoisturepercent >= 100)
  {
    soilmoisturepercent = 100;
  }
  else if(soilmoisturepercent <=0)
  {
    soilmoisturepercent = 0;
  }

  oled.clear(); // Clear screen
  oled.print("L:");
  oled.print(lux,2);
  oled.print(", T:");
  oled.print(temp,2);
  oled.println("°C");
  oled.print("H:");
  oled.print(humd,2);
  oled.print("%");
  oled.print(", S:");
  oled.print(soilmoisturepercent);
  oled.println("%");

  if(humd>60.0){
    digitalWrite(FAN_RLY_PIN,HIGH);
  }else{
    digitalWrite(FAN_RLY_PIN,LOW);  
  }

  if(temp<30.0){
    digitalWrite(HEATER_RLY_PIN,HIGH);
  }else{
    digitalWrite(HEATER_RLY_PIN,LOW);  
  }

  // if 10 seconds have passed since your last connection,
  // then connect again and send data
  if (millis() - lastConnectionTime > postingInterval) {
    oled.print("Sending Data ...");
    http_post(String(F("{\"Temp\":"))+ String(temp,6)+
              String(F(",\"Humid\":")) + String(humd,6)+
              String(F(",\"Lux\":")) + String(lux,6)+
              String(F(",\"Soil\":")) + String(soilmoisturepercent)+
              String("}"));
  }
  delay(1000);
}

void http_post( String postdata) {
  // close any connection before send a new request
  // this will free the socket on the WiFi module
  client.stop();
  
  if (client.connect(SERVER_NAME, SERVER_PORT)) 
  {
    // Sending the HTTP request
    client.println(("POST /api/v1.6/devices/garden/ HTTP/1.1"));
    client.println(F("Host: industrial.api.ubidots.com"));
    client.println(F("User-Agent: ESP8266/1.0"));
    client.println(F("X-Auth-Token: REPLACE_YOUR_TOKEN"));
    client.println(F("Content-Type: application/json"));
    client.print(F("Content-Length: "));
    client.println(String(postdata.length()));
    client.println(F("Connection: close"));
    client.println();
    client.println(postdata);

    // note the time that the connection was made
    lastConnectionTime = millis();
    
    // if there are incoming bytes available
    // from the server, read them and print them
    while (client.connected());
    while (client.available()) {
      char c = client.read();
      Serial.write(c);      // note the time that the connection was made
   }
    lastConnectionTime = millis();  
    Serial.println();
    Serial.println("Disconnecting from server...");
  } 
  else 
  {
   Serial.println(F("Connect failed"));
  }
}
				
			

دریافت Default token از Ubidots

برای ارسال هر درخواست به ubidots نیاز مند TOKEN است. ساده ترین راه برای دریافت توکن ، انتخاب گزینه API Credentials” از منو کاربر در گوشه راست بالای سایت است. برای این کار:

  1. وارد حساب کاربری خود در سایت Ubidots شوید.
  2. وارد منو کاربر در گوشه سمت راست بالا شوید و برروی گزینه API Credentials” کلیک کنید.
  3. حال در فرمی کنه نمایش داده می شود از بخش Tokens مقدار Default token را با استفاده از دکمه مقابل آن کپی کنید. مراقب باشید که توکن را با API Key اشتباه نگیرید!!

بارگذاری کد برروی برد

حال در محیط Arduino IDE :

  • یک Sketch جدید ایجاد نماید و برنامه فوق را  داخل آن کپی نماید.
  •  عبارت YOUR_SSID را با  شناسه شبکه(SSID) و عبارت YOUR_PASSWORD را با کلمه عبور  مودم وای فای جایگزین نمایید.
  • عبارت REPLACE_YOUR_TOKEN را با Default token دریافتی از سایت جایگزین نمایید.
  • حال Sketch را با نامی دلخواه مثل green_house ذخیره نمایید.
  • بررسی کنید که کلید S1 روی کیت در وضعیت PROG قرار داشته باشد.
  • حال می توانید برنامه را برروی برد آردوینو نانو بارگذاری(Upload) نمایید.

تست اولیه

برای اینکه قبل از انجام تست میدانی از عملکرد درست مدار اطمینان حاصل کنید، برای تغذیه برد از دو روش می توانید استفاده کنید:

  • با استفاده از پورت USB کامپیوتر  یا یک شارژر موبایل یا پاور بانک و یک کابل USB مناسب و اتصال آنها به کانکتور USB ماژول آردوینو نانو؛ تغذیه کیت، ماژول ها و آردوینو را تامین کنید.
  • با استفاده از پورت USB کامپیوتر  یا یک شارژر موبایل یا پاور بانک و یک کابل USB Type-C و اتصال آنها به کانکتور USB Type-C روی کیت؛ تغذیه کیت، ماژول ها و آردوینو را تامین کنید.

با برقرار شدن تغذیه علایم زیر مشاهده می شود:

  • برروی نمایشگر عبارت “Booting ESP … ” نمایش داده می شود که در صورت شناسایی این ماژول و راه اندازی موفق آن عبارت Done در جلو آن ظاهر می شود.
  • سپس عبارت “Connecting … ” در  خط بعد نمایش داده خواهد شد که در صورت موفقیت در ارتباط گیری با مودم WiFi  عبارت Done در جلو آن ظاهر می شود.
  • سپس عبارت “Initializing Sensors” در خط بعد نمایش داده می شود که در صورت شناسایی ماژول سنسور و سالم بودن سنسور ها مقادیر حسگرها برروی صفحه نمایش داده می شود
  • سپس هر ده ثانیه یک بار  عبارت  “Sending Data …” برروی صفحه نمایش داده می شود که نشان دهنده ارسال داده ها برای سرور Ubidots است.(توصیه می شود این زمان را به 10 دقیقه افزایش دهید)
  •  در سایت Ubidots یک دستگاه به نام garden برای شما ثبت می شود که دارای چهار متغییر به نامهای Temp، Humid، Lux و Soil است که داده های حسگرها در آن قابل مشاهده است.
حال با قرار داد انگشت خود برروی سنسور دما و رطوبت می تواند تغییرات این دو پارامتر را برروی صفحه نمایشگر مشاهده نمایید. همچنین با کم و زیاد کردن نور محیط و یا قرار دادن انگشت برروی سنسور نور می توانید تغییرات آن را نیز مشاهده نمایید.
رفتار رله ها را نیز می توانید با مشاهده LED های نشانگر روی ماژول ProMake 2-CH Relay  و یا با گوش دادن به صدا قطع و وصل شدن رله ها بررسی نمایید.

مشاهده اطلاعات حسگرها برروی داشبرد

حالا برای مشاهده داده های دریافتی از حسگرها کافی هست مراحل زیر را طی کنید:

  • وارد حساب کاربری خود در سایت Ubidots بشوید.
  • از منوی Data آیتم Dashboards را انتخاب کنید.
  • یک داشبرد جدید با نام دلخواه ایجاد کنید.
  • به این داشبرد یک ویجت از نوع Thermometer مطابق شکل رو برو اضافه نمایید.
  • در بخش Settings این ویجت، فیلد Select Devices دستگاه garden را انتخاب نمایید.
  • سپس متغییر Temp را انتخاب کنید و با زدن دکمه تایید دماسنج به داشبرد افزوده می شود
حال می توانید برای تک تک متغییرهای دریافتی با استفاده از Widget های دلخواه خود نمایش تصویری در داشبرد ایجاد نمایید.

بهبودهای نرم افزاری

همان طور که شاید تاکنون متوجه شده باشید این برنامه تا تبدیل شدن به یک گلخانه هوشمند ایده آل فاصله زیادی  دارد. در ادامه به برخی بهبود های نرم افزاری که می شود در این برنامه لحاظ نمود اشاره خواهیم داشت

  • بهبود شرایط کنترلی: احتمالا شرط هایی که برای کنترل عمگرها در کد نوشته شده است از نظر شما نیز بسیار ساده تر از شروط کاربردی در یک گلخانه است، لذا باید بسته به شرایط گلخانه و نیازمندی های گیاهان موجود در آن شرط های کنترلی عملگرها را تغییر داد و شاید نیاز باشد از فرمول های پیچیده تری استفاده نمود.
  • نمایش وضعیت ارتباط با شبکه WiFi: همان طور که شاید تا کنون متوجه شده باشید وضعیت ارتباط با Access Point به کاربر نمایش داده نمی شود و در صورتی که دستگاه دچار مشکل ارتباطی شود علامتی به کاربر داده نمی شود. برای اینکه با یک نگاه بتوان از برقرار بودن ارتباط WiFi دستگاه مطمئن شد می بایست از یکی از RGB LED ها به این منظور استفاده نمود
  • بهبود ارتباط WiFi: شاید با کمی دقت متوجه شده باشید که اگر ارتباط وای فای به دلیلی مثل خاموش شدن مودم یا تضعیف سیگنال دچار قطعی شود، دیگر اقدامی برای ارتباط مجدد صورت نمی گیرد و تمام ارسال ها با شکست رو به رو می شود. برای حل این مشکل می بایست همواره وضعیت ارتباط با Access Point را بررسی نمود و در صورت بروز قطعی مجدد ارتباط را برقرار نمود.

بهبودهای سخت افزاری

این نمونه اولیه شاید برای یک گلخانه کوچک در پاسیو منزل مناسب باشد اما برای گلخانه های اندکی حرفه ای تر نیاز به گسترش در سخت افزار وجود دارد. معماری ماژولار محصولات ProMake شما را در مسیر توسعه تنها نمی گذارد. چند مورد از بهبودهای سخت افزاری گلخانه هوشمند را باهم مرور می کنیم:

  1. افزایش عملگرها: احتمالا وجود دو رله برای کنترل دو عملگر  خیلی محدود کننده است، عملگرهای متعدد مثل: فن ها، چراغ ها، پمپ ها و هیترها و شیربرقی های متعدد نیاز کنترلی زیادی را می طلبد. برای توسعه این بخش می‌تواندبا اتصال ماژول ProMake Universal 8-CH Relay به کانکتور Grove روی کیت امکان کنترل 8 عملگر را داشته باشید. البته می توانید تا 8 عدد از این ماژول ها را به صورت آبشاری به هم متصل کنید و تا حداکثر 64 عملگر مختلف را کنترل نمایید.(البته برای گرفتن عملکرد صحیح نیاز است تغذیه مناسب را برای این ماژول ها فراهم کنید تا جریان کافی برای عملکرد رله ها فراهم باشد)
  2. پایش گازها: با حذف ماژول رله دو کاناله از روی برد امکان استفاده از یک ماژول سنسور گاز نیز فراهم می شود. پایش گازهای مختلف مثل CO2 در گلخانه های حرفه ای امری مهم تلقی می شود، لذا با افزودن ماژول ProMake Gas MQ به این کیت می تواند گازهای هدف خود را پایش کنید و بر اساس آن تصمیمات کنترلی بهتری بگیرید.
  3. افزایش سرعت و ظرفیت پردازش:  همان طور که شاید تا کنون مشاهده کرده باشید ماژول های Arduino Nano  استاندارد توان و ظرفیت پردازشی محدودی دارند و با بزرگ شدن برنامه شما به محدودیت های خود رسیده و امکان اجرای برنامه را ندارند و یا در اجرای برنامه با اشکالات غیر متعارف روبرو می شوند. برای حل این مشکل با استفاده از ماژول ProMake STM32 Nano می توانید از سرعت و ظرفیت بیشتر برای پردازش و تحلیل اطلاعات بهره ببرید.

    هشدار ایمنی: در صورتی که می خواهیدبرای کنترل عملگرها از رله استفاده کنید می بایست از تخصص و مهارت لازم برخوردار باشید. انجام این کار توسط افراد کم تجربه و ناوارد می تواند خطرات جانی و مالی جدی برای شما و دیگران به دنبال داشته باشد. خطر آتش سوزی در صورت عدم رعایت تناسب جریان نامی رله ها و عملگرها بسیار محتمل و گاهاً حتمی است.

    GASMQ(KENAR)

    GAS MQ

    ماژول شناسایی وجود انواع گاز در محیط

    ماژول ProMake STM32 Nano

    STM32 NANO

    استفاده از قدرت STM32 در محیط Arduino IDE