آموزش Espآموزش ESP32آموزش اینترنت اشیاپروژه های Esp

خانه هوشمند دستیار گوگل و الکسا با ESP32

اگر به تازگی وارد دنیای اتوماسیون و خانه هوشمند شده اید و به دنبال ساخت اولین پروژه تان هستید تا لامپ و فن های منزلتان را با دستورات صوتی کنترل کنید، این مطلب برای شماست.

در این پروژه اینترنت اشیا، شما را در ساخت یک سیستم خانه هوشمند که با ESP32  و Sinric Pro  انجام شده و قابلیت کنترل شدن با الکسا و دستیار گوگل را دارد، راهنمایی میکنیم. اگر علاقه مند به اتوماسیون خانگی هستید و به تازگی با سایت ما آشنا شده اید، دیگر پروژه های ما در این زمینه از جمله، پروژه های اتوماسیون خانگی، پروژه های ESP32، پروژه های اتوماسیون خانگی با دستیار گوگل و پروژه های اتوماسیون خانگی با الکسا را مطالعه کنید.

به پروژه خود برگردیم. از Sinric Pro  که میتواند به طور موثر لوازم خانگی مانند لامپ ها یا فن ها را با دستورات صوتی به وسیله الکسا و دستیار گوگل کنترل کند، استفاده میکنیم. همچنین از کلیدهای دستی هم بهره خواهیم برد. هنگامی که شما اصول اساسی را بیاموزید، میتوانید هر وسیله خانگی را با استفاده از رله کنترل کنید. مانند همیشه کد و مدار کامل به شما ارائه خواهد شد و تمام نرم افزارهای استفاده شده در این پروژه رایگان بوده و به راحتی در دسترس هستند. بیایید پروژه را آغاز کنیم.

اتوماسیون خانگی ESP32 با Sinric Pro و دستیار گوگل

ما به پلتفرمی نیاز داریم که ESP32 را به دستیار گوگل و الکسا متصل کند. برای این منظور از Sinric Pro  استفاده میکنیم. کار با این پلتفرم بسیار آسان بوده و برای استفاده به تعداد محدود رایگان هست. برای این پروژه، میتوانید از نسخه رایگان آن استفاده کنید اما اگر میخواهید دستگاه های بیشتری را به آن بیفزایید و کنترل کنید، باید از نسخه پولی Sinric Pro  استفاده کنید.

در پروژه خانه هوشمند با ESP32 در پلتفرم Sinric Pro  یک لامپ AC را به وسیله دستیار گوگل و الکسا و یک کلید دستی کنترل خواهیم کرد.

خانه هوشمند دستیار گوگل esp32

این امر به این معنی است که بدون در نظر گرفتن موقعیت مکانی، شما قادر به کنترل بار با استفاده از اپلیکیشن Amazon Alexa و گوگل هستید و اگر به اینترنت هم دسترسی ندارید، همچنان میتوانید لوازم خانگی خود را با استفاده از کلید و بدون نیاز به دستگاه اضافی مانند گوگل نست یا اسپیکر هوشمند اکو دات آمازون کنترل کنید. این امر آسودگی و راحتی ناشی از اتوماسیون خانگی را در اختیار شما قرار میدهد.

قطعات لازم

  1. برد توسعه ESP32
  2. ماژول رله تک کاناله 5 ولتی SPDT
  3. کلید دستی
  4. منبع تغذیه سوییچینگ AC/DC 5 ولت و 2 آمپر
  5. لامپ
  6. سیم های اتصال یا PCB

مدار اتوماسیون خانگی با ESP32

مدار بسیار ساده است. از GPIO D22 برای کنترل ماژول رله و GPIO D12 متصل به یک کلید دستی برای کنترل  دستی استفاده کرده ایم. مدار کامل اتوماسیون خانگی با ESP32 با اینترنت درتصویر پایین نشان داده شده است.

مدار اتوماسیون خانگی با ESP32

از یک منبع تغذیه سوییچینگ 5 ولتی و 2 آمپری برای تبدیل توان AC به DC استفاده میکنیم. این منبع تغذیه 5 ولتی هم به ESP32 و هم به ماژول رله متصل است. بر اساس کد دردست، هنگامی که پایه های کنترلی ماژول رله سیگنال LOW دریافت میکنند، رله روشن میشود و هنگامی که پایه های کنترلی رله سیگنال HIGH دریافت میکنند، رله خاموش میشود. اگر ترجیح میدهید که از دکمه فشاری استفاده کنید، کافی است به جای استفاده از کلید، دکمه ها را بین پایه GPIO و پایه زمین متصل کنید.

اتصالات دستیار هوشمند گوگل با ESP32

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

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

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

تنظیمات Sinric Pro برای اتوماسیون خانه هوشمند

در این پروژه اتوماسیون خانگی، از یک حساب رایگان Sinric Pro   ( که تا 3 دستگاه را به صورت رایگان کنترل میکند) استفاده میکنیم. برای شروع، باید دستگاه ها را به حساب Sinric Pro   خود اضافه کنید. در این پروسه که شامل ساخت یک حساب رایگان و سپس افزودن دستگاه ها در Sinric Pro  است، شما را گام به گام راهنمایی میکنیم.

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

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

با استفاده از Sinric Pro   میتوانید به آسانی با ESP8266، NodeMCU یا میکروکنترلر ESP32  به الکسا و دستیار گوگل متصل شوید و هر وسیله را با آن ها کنترل کنید.پس، انجام یک پروژه اتوماسیون خانگی مبتنی بر اینترنت اشیا و با Sinric Pro  کار ساده ایست.

براساس نسخه فعلی رایگان Sinric Pro  ، میتوانید 3 دستگاه را به صورت رایگان کنترل کنید. ابتدا به sinric.pro/register  بروید.

اتوماسیون منزل esp32

تمام جزییات را وارد کرده و بر Register کلیک کنید. سپس آدرس ایمیل و رمزعبور را وارد کرده و login کنید.

ساخت یک اتاق در Sinric Pro

پیش از افزودن دستگاه ها باید یک اتاق در Sinric Pro بسازید.

برای ساخت اتاق در حساب Sinric Pro، این مراحل را طی کنید.

درمنوی سمت چپ به Rooms رفته و روی Add Room کلیک کنید. نام اتاق و توضیحات را وارد کرده و ذخیره کنید.

به این طریق میتوانید بر اساس نیازتان چند اتاق بسازید.

افزودن دستگاه در Sinric Pro

اگر از حساب رایگان Sinric Pro استفاده میکنید، میتوانید تا 3 دستگاه اضافه کنید.

لطفا برای افزودن دستگاه ها به حساب Sinric Pro خود، مراحل زیر زیر را انجام دهید.

ابتدا از منوی سمت چپ، Devices را انتخاب کرده و روی Add Device کلیک کنید.

نام دستگاه و توضیحات را وارد کنید. سپس نوع دستگاه (Device Type) را متناسب با کار خود انتخاب کنید. در اینجا نوع دستگاه را از آنجایی که رله SPDT را کنترل میکنیم، Switch انتخاب کرده ایم.

سپس اتاق دستگاه را انتخاب کنید و روی Next کلیک کنید.

این قسمت اختیاری است. اگر علاقه مند به دریافت هرگونه اعلانی از این دستگاه هستید، اعلانات را روشن کنید و روی Next کلیک کنید.

این قسمت هم اختیاری است. اگر مایل به تنظیم تایمر برای روشن و خاموش شدن اتوماتیک دستگاه بعد از مدت زمان پیش فرضی هستید، Auto On و Auto Off را روشن کنید. سپس روی Next کلیک کنید.

این قسمت هم اختیاری است. میتوانید درجه وات لوازم متصل شده را تعیین کنید تا مصرف انرژی را تخمین بزنید. حال روی Save کلیک کنید.

شما توانستید با موفقیت یک دستگاه را به Sinric Pro بیفزایید.

چگونه کلید API، API SECRET و آیدی دستگاه را در Sinric Pro دریافت کنیم

پیش از آپلود کردن هر گونه نمونه کدی روی ESP32 یا ESP8266، باید کلید API و API secret را وارد کنید. برای دریافت آن ها باید از منو سمت چپ به Credentials بروید.

سپس APP KEY و APP SECRET را کپی کرده و در کد پیست کنید. همچنین باید آیدی دستگاه را هم در کد وارد کنید. برای این منظور Device ID را از منوی Devices بیابید.

آیدی هر دستگاه منحصر به فرد است. یعنی حالا که 3 دستگاه داریم، سه آیدی منحصر به فرد هم خواهیم داشت.

کد اتوماسیون خانگی با ESP32

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

از منوی فایل به prefrences به Additional boards Manager with the below URL رفته و از لینک های زیر استفاده کنید.

https://dl.espressif.com/dl/package_esp32_index.json

http://arduino.esp8266.com/stable/package_esp8266com_index.json

سپس از Board manager، بورد ESP8266 خود را نصب کنید و یا به صورت دستی آن را دانلود کرده و سپس کتابخانه های لازم را از لینک های زیر دانلود کنید:

  1. کتابخانه Sinric Pro از Boris Jaeger: library Manager را باز کرده و بر install ESP32 & ESP8266 کلیک کنید.
  2. WebSockets ازMarkus Sattler ( حداقل ورژن 3.5)
  3. ArduinoJson از Benoit Blanchon (حداقل ورژن 12.0)

نکته : آخرین نسخه کتابخانه های بالا را به صورت فایل فشرده دانلود کنید. سپس با رفتن به IDE آردوینو، قسمت Sketch، Include library و سپس Add Zip Library آن ها را نصب کنید.

کد اتوماسیون خانگی با ESP32 با استفاده از گوگل و الکسا

کد اتوماسیون خانگی با ESP32 بسیار سرراست است. هنگامی که با گوشی هوشمند دستورات on و off را ارسال میکنیم، سیگنال ها به ماژول رله ارسال شده و لامپ را به ترتیب روشن و خاموش میکند. به جای استفاده از مقاومت پول آپ با کلید، از تابع INPUT_PULLUP در IDE آردوینو استفاده کرده ایم.

به جای عبارات YourWIFISSID، YourWIFIPassword، YourAppKey  و YourAppSecret مقادیر درست و مربوط به پروژه خود را قرار دهید.

#define WIFI_SSID     "YOUR-WIFI-NAME"
#define WIFI_PASS     "YOUR-WIFI-PASSWORD"
#define APP_KEY       "YOUR-APP-KEY"
#define APP_SECRET    "YOUR-APP-SECRET"

همچنین YourDeviceId را با آیدی مخصوص دستگاه جابه جا کنید. آیدی دستگاه را از منوی Devices در حساب Sinric Pro بیابید. همان گونه که گفتیم، هنگامی که یک دستگاه در Sinric Pro افزوده میشود، یک آیدی منحصر به فرد هم برای آن تعریف میشود.

#define device_ID   "SWITCH_ID_HERE"

کد اتوماسیون خانگی با ESP32

#include <Arduino.h>
#include <WiFi.h>
#include "SinricPro.h"
#include "SinricProSwitch.h"

در این بلوک، کتابخانه های لازم فراخوانی شده اند. Arduino.h کتابخانه مرکزی آردوینوست.  WIFI.h کتابخانه ای برای اتصال به وای فای است. SinricPro.h  کتابخانه اصلی Sinric Pro برای کار با اینترنت اشیاست. SinricProSwitch.h هم کتابخانه ای برای ایجاد دستگاه کلید با Sinric Pro است.

#define WIFI_SSID         "YOUR-WIFI-NAME"    

#define WIFI_PASS         "YOUR-WIFI-PASSWORD"

#define APP_KEY           "YOUR-APP-KEY"      // Should look like "de0bxxxx-1x3x-4x3x-ax2x-5dabxxxxxxxx"

#define APP_SECRET        "YOUR-APP-SECRET "   // Should look like "5f36xxxx-x3x7-4x3x-xexe-e86724a9xxxx-4c4axxxx-3x3x-x5xe-x9x3-333d65xxxxxx"
#define device_ID   "SWITCH_ID_HERE"

در این بلوک کد، مشخصات وای فای (WIFI_SSID , WIFI_PASS) و همچنین مشخصات اپلیکیشن Sinric Pro (APP_KEY , APP_SECRET) به اضافه آیدی دستگاه (device_ID) که بیانگر آیدی دستگاه مرتبط با کلید در پلتفرم Sinric Pro را تعریف میکنیم.

مطمئن شوید که آیدی دستگاه خودتان را در کد قرار داده اید.

#define RELAY_PIN    22 // D22
#define SWITCH_PIN   12 // D12
#define wifiLed   2   //D2

این بلوک پایه های GPIO استفاده شده برای رله، کلید و LED نشانگر WIFI را تعریف میکند. RELAY_PIN پایه متصل به رله، SWITCH_PIN پایه متصل به کلید دستی و wifiLed پایه استفاده شده برای نشان دادن وضعیت اتصال اینترنت است.

bool lastSwitchState = true;
unsigned long lastSwitchChange = 0;
bool relayState = false;

در این قسمت، متغیرهای سراسری که در طی پروژه استفاده میشوند را تعریف میکنیم. LastSwitchState حالت قبلی کلید دستی را در خود ذخیره میکند.lastSwitchChange زمان آخرین باری که وضعیت کلید تغییر کرده است را ذخیره میکند. RelayState هم بیانگر وضعیت فعلی رله است.

bool onPowerState(const String& deviceId, bool &state) {
  relayState = state;
  digitalWrite(RELAY_PIN, !relayState);
  return true;
}

این تابع زمانی فراخوانی میشود که وضعیت تغذیه کلید یا به صورت دستی و یا در سرویس Sinric Pro تغییر کند. این تابع وضعیت رله را تغییر داده (تاگل کرده) و true  را برمیگرداند.

void handleSwitch() {
  unsigned long currentMillis = millis();
  bool switchState = digitalRead(SWITCH_PIN);
  if (switchState != lastSwitchState) {
    if (currentMillis - lastSwitchChange > DEBOUNCE_TIME) {
      if (switchState) {
        relayState = !relayState;  // Toggle the relay state
        digitalWrite(RELAY_PIN, relayState);
        SinricProSwitch &mySwitch = SinricPro[device_ID];
        mySwitch.sendPowerStateEvent(relayState);
      }
      lastSwitchChange = currentMillis;
    }
    lastSwitchState = switchState;
  }
}

تابع handleSwitch مسئول زیرنظر گرفتن تغییرات در وضعیت کلید دستی است. این تابع از متغیرهای سراسری برای پیگیری این تغییرات استفاده کرده و کلید را debounce  میکند. (یعنی برای اینکه مطمئن شویم کلید به درستی فشار داده شده است، ورودی را در یک بازه زمانی کوتاه دو بار بررسی میکند)

هنگامی که تغییری شناسایی شد، وضعیت رله را تغییر داده و به Sinric Pro اعلان  فرستاده تا آن را همگام نگاه دارد.

void setupWiFi()
{
  Serial.printf("\r\n[Wifi]: Connecting");
  WiFi.begin(WIFI_SSID, WIFI_PASS);
  while (WiFi.status() != WL_CONNECTED)
  {
    Serial.printf(".");
    delay(250);
  }
  digitalWrite(wifiLed, HIGH);
  Serial.printf("connected!\r\n[WiFi]: IP-Address is %s\r\n", WiFi.localIP().toString().c_str());
}

تابع setupWIFI مسئول اتصال به شبکه وای فای شماست و پیام ” در حال اتصال بودن..” را چاپ میکند و تا زمانی که اتصال با موفقیت برقرارشود، صبر کرده و سپس IP دستگاه را چاپ میکند.

void setupSinricPro() {
  SinricProSwitch& mySwitch = SinricPro[device_ID];
  mySwitch.onPowerState(onPowerState);
  SinricPro.begin(APP_KEY, APP_SECRET);
  SinricPro.restoreDeviceStates(true);
}

این تابع مسئول ارتباط سرویس Sinric Pro با پروژه IoT شماست و به این شکل کار میکند:

SinricProSwitch&mySwitch = SinricPro[device_ID]  : این خط با استفاده از device_ID یک نمونه از کلاس SinricProSwitch میسازد. این کلاس نشانگر کلیدی است که می خواهید آن را با Sinric Pro کنترل کنید.

MySwitch.onPowerState(onPowerState) : در اینجا تابع onPowerState را برای مدیریت تغییرات وضعیت منبع دوباره فراخوانی میکنیم. وقتی یک دستور برای روشن یا خاموش کردن کلید ارسال میشود، این تابع هم فراخوانی میشود.

SinricPro.begin(APP_KEY,APP_SECRET) : ارتباط سرویس Sinric Pro با APP_KEY  و APP_SECRET که نشانه ای منحصر به فرد برای حساب Sinric Pro شما هستند را برقرار میکند.

SinricPro.restoreDeviceStates(true) : این خط به Sinric Pro اطلاع میدهد که پس از اتصال، وضعیت دستگاه را بازیابی کند.

void setupRelay() {
  pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN,HIGH); // Initialize relay in the OFF state

این خط RELAY_PIN را به عنوان یک پایه خروجی پیکربندی میکند.  این پایه  به ماژول رله ای متصل است که برای کنترل لامپ خود از آن استفاده میکنید.

DigitalWrite(RELAY_PIN,HIGH) : این خط با HIGH کردن پایه، حالت ابتدایی را خاموش نگاه میدارد.

void setupSwitch() {
  pinMode(SWITCH_PIN, INPUT_PULLUP);
}

این تابع برای تنظیم و پیکربندی SWITCH_PIN به عنوان پایه ورودی به همراه مقاومت پول آپ است. این نوع تنظیمات برای کلیدهای دستی مرسوم است.

void setup() {
  Serial.begin(BAUD_RATE);
  pinMode(wifiLed, OUTPUT);
  digitalWrite(wifiLed, LOW);
  setupRelay();
  setupSwitch();
  setupWiFi();
  setupSinricPro();  
}

در تابع ()setup، راه اندازی اولیه پروژه اینترنت اشیا ما شروع میشود.

Serial.begin(BAUD_RATE) :این تابع ارتباط سریال را برای اشکال زدایی برقرار میکند.

سپس پایه wifiLed برای نمایش وضعیت اتصال اینترنت به عنوان پایه خروجی تنظیم میشود. سپس تابع ()setupRelay را برای پیکربندی پایه رله فراخوانی میکند.

همچنین ()setupSwitch را برای پیکربندی پایه کلید دستی، ()setupWIFI را برای اتصال به شبکه اینترنت و ()setupSinricPro را برای آغاز سرویس Sinric Pro  فراخوانی میکند.

void loop() {
  SinricPro.handle();
  handleSwitch();
}

تابع ()loop، تابع اصلی پروژه ماست. این تابع ()SinricPro.handle را برای مدیریت پیام های ارسال شده از ()Sinric Pro،  handleSwitch را برای زیرنظر گرفتن وضعیت کلید دستی و به روز رسانی رله براساس آن، فراخوانی میکند. این تابع به صراحت در قطعه کد ارائه نشده است اما حتما در جای دیگری از کد برای مدیریت ورودی کلید دستی تعریف شده است.

این کد پروژه اتوماسیون خانگی با ESP32 را به Sinric Pro متصل کرده، رله را مدیریت و بر تغییرات در وضعیت کلید دستی نظارت میکند. درنتیجه خواهیم توانست دستگاه متصل شده را با کلید دستی و Sinric Pro کنترل کنیم.

اتوماسیون خانگی با الکسا و ESP32

ابتدا اپلیکیشن Amazon Alexa را از گوگل پلی یا App Store دانلود و نصب کنید.

پیش از برقراری ارتباط با الکسا، لازم است دستگاه را به پلتفرم Sinric Pro اضافه کنیم. در اپلیکیشن الکسا، روی More کلیک کرده، Skills & Games را انتخاب کنید. Sinric Pro را جست و جو کرده و آن را انتخاب کنید. بر ENABLE TO USE کلیک کرده و اجازه استفاده را بدهید. آدرس ایمیل و رمزورود را وارد کرده و سپس بر Sign in بزنید.

پس از متصل شده به حساب Sinric Pro، مراحل زیر را برای افزودن دستگاه ها طی کنید.

بر روی CLOSE و سپس DISCOVER DEVICES  بزنید. حال الکسا به دنبال دستگاه های جدید میگردد. این پروسه ممکن است کمی زمانبر باشد. سپس، به Devices رفته، Plug را انتخاب کنید. میتوانید دستگاه های متصل شده را ببینید. حال اگر ESP32 به وای فای متصل باشد، میتوانید لوازم خود را از اپلیکیشن الکسا کنترل کنید. همچنین میتوانید با گفتن عبارتی مانند ” الکسا، لامپ را روشن کن” به صورت صوتی دستور داده و وسایل را کنترل کنید.

ESP32 و Google Home

ابتدا از گوگل پلی یا App Store، اپلیکیشن Google App را دانلود و نصب کنید.

در گوشه سمت چپ و بالا، بر آیکون “+” کلیک کنید. Create new home را بزنید. نام و آدرس خانه را وارد کرده و سپس بر Continue بزنید. حال خانه ایجاد شده است.

دوباره بر “+” کلیک کنید تا بتوانید دستگاه های خود را اضافه کنید.

بعد از ایجاد خانه در اپلیکیشن Google Home، میتوانید بین Sinric Pro و آن ارتباط برقرار کنید.

پیش از اتصال به Google Home، از اضافه شدن دستگاه ها به Sinric Pro مطمئن شوید. مراحل زیر را برای افزودن دستگاه ها طی کنید.

بر روی آیکون “+” کلیک کرده و Set up device را انتخاب کنید.

Works with Google  را انتخاب کرده و دنبال Sinric Pro بگردید. سپس روی آن کلیک کنید. آدرس ایمیل و رمزعبور حساب Sinric Pro خود را وارد کرده و Sign in کنید. حال به صفحه اصلی Google Home بروید. در این مرحله باید بتوانید تمام دستگاه ها را در اپلیکیشن مشاهده کنید.

اگر ESP32 به وای فای متصل باشد، میتوانید وسایل را از طریق این اپلیکیشن کنترل کنید. همچنین میتوانید با گفتن ” گوگل لامپ را روشن کن”، به دستیار گوگل دستور دهید تا وسایل را کنترل کند.

اتوماسیون خانگی با ESP32 با استفاده از الکسا و دستیار گوگل

پس از انجام مراحل لازم، شما قادر به کنترل لامپ خود با کلید دستی، دستیار گوگل و الکسا هستید.

برای کنترل لامپ با کلید دستی یا دکمه فشاری تنها کافی است دکمه فشاری را روشن و خاموش کنید و اگر ESP32 به وای فای متصل باشد، میتوانید وضعیت را به صورت همزمان در الکسا و Google Home پیگیری کنید.

اگر ESP32 به وای فای متصل باشد، میتوانید از الکسا بخواهید لامپ را روشن کند. سپس لامپ را با دستورات صوتی از طریق اپلیکیشن Amazon Alexa کنترل کرده و وضعیت فعلی کلیدها را از نقاط مختلف جهان با اپلیکیشن الکسا پیگیری کنید.

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

به انتهای این مطلب رسیدیم. برای پروژه های بیشتر اتوماسیون خانگی مانند، اتوماسیون خانگی با کنترل صوتی با آردوینو، فن هوشمند مبتنی دما، خانه هوشمند کنترل شده با بلوتوث را بررسی کنید.

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

موارد موجود در فایل : سورس کامل

5 (1 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

1 دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *